
/* 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>(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char,
   std::char_traits<char> >, std::ios_base&, std::_Ios_Iostate&, unsigned long&) const */

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

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  uint uVar4;
  uint uVar5;
  int iVar6;
  undefined4 *puVar7;
  char cVar9;
  int iVar8;
  bool bVar10;
  int *piVar11;
  uint uVar12;
  int iVar13;
  uint uVar14;
  bool bVar15;
  undefined1 uVar16;
  uint uVar17;
  int *local_res8;
  int local_resc;
  uint *local_68;
  uint local_64;
  uint local_60 [4];
  uint local_50;
  uint local_4c;
  uint local_48;
  uint local_44;
  uint *local_40;
  int local_3c;
  uint local_38;
  uint local_34;
  uint local_30;
  uint **local_2c;
  
  iVar3 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c32f8);
  piVar11 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);
  iVar13 = *piVar11;
  if (iVar13 == 0) {
                    /* try { // try from 003c72a4 to 003c72ab has its CatchHandler @ 003c75c8 */
    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 003c72f0 to 003c72f7 has its CatchHandler @ 003c7598 */
    *(undefined1 *)(puVar7 + 0x19) = 0;
    (*(code *)puVar2)(puVar7,param_7 + 0x6c);
    (*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);
    iVar13 = *piVar11;
  }
  uVar14 = *(uint *)(param_7 + 0xc) & 0x4a;
  local_res8 = param_3;
  local_resc = param_4;
  if (uVar14 == 0x40) {
    uVar4 = 8;
    if (param_3 != (int *)0x0) goto LAB_003c6834;
LAB_003c7160:
    bVar15 = param_4 == -1;
    if (param_5 != (int *)0x0) goto LAB_003c684c;
LAB_003c7170:
    if ((param_6 == -1) != bVar15) goto LAB_003c6864;
LAB_003c717c:
    cVar9 = *(char *)(iVar13 + 0x10);
    uVar14 = 1;
    local_38 = 0;
    uVar12 = 0;
    iVar3 = 0;
    bVar15 = false;
LAB_003c6be4:
    if (uVar4 == 0x10) goto LAB_003c6bf0;
LAB_003c692c:
    local_60[0] = local_60[0] & 0xffffff;
    local_44 = uVar4;
    if (cVar9 != '\0') goto LAB_003c6c10;
LAB_003c6944:
    local_68 = local_60;
    local_64 = 0;
    local_4c = (uint)*(byte *)(iVar13 + 100);
    if (uVar4 == 0) {
      trap(7);
    }
    local_50 = 0xffffffff / uVar4;
    local_40 = local_68;
    if (local_4c != 0) goto LAB_003c6c44;
LAB_003c6964:
    if (uVar14 == 0) {
      uVar17 = 0;
      local_4c = (uint)(local_44 < 0xb);
      local_48 = (uint)(char)((char)local_44 + '0');
      uVar5 = 0;
      local_44 = (uint)(param_6 == -1);
LAB_003c6990:
      uVar14 = uVar12 & 0xff;
      if (local_4c == 0) {
        if (9 < uVar14 - 0x30) goto LAB_003c6edc;
      }
      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;
      uVar12 = uVar12 - 0x30;
LAB_003c69bc:
      if (uVar5 <= local_50) goto LAB_003c6efc;
LAB_003c69c8:
      uVar14 = local_res8[2];
      uVar17 = 1;
      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;
LAB_003c69e0:
      local_res8[2] = uVar14 + 1;
LAB_003c69f0:
      uVar14 = 0;
                    /* try { // try from 003c7324 to 003c7397 has its CatchHandler @ 003c7568 */
      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&
         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {
        uVar14 = 1;
        local_res8 = (int *)0x0;
      }
      if (param_5 == (int *)0x0) goto LAB_003c6f5c;
      while( true ) {
        if (param_6 == -1) {
          uVar12 = 0;
          if ((uint)param_5[3] <= (uint)param_5[2]) {
                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */
            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);
            uVar12 = (uint)(iVar8 == -1);
            if (iVar8 == -1) {
              param_5 = (int *)0x0;
            }
          }
        }
        else {
          uVar12 = 0;
        }
        if (uVar12 == uVar14) break;
        while( true ) {
          local_resc = -1;
          if (local_res8 == (int *)0x0) {
            uVar12 = 0xffffffff;
            goto LAB_003c6990;
          }
          if ((char *)local_res8[2] < (char *)local_res8[3]) {
            uVar12 = (uint)*(char *)local_res8[2];
            goto LAB_003c6990;
          }
                    /* try { // try from 003c7464 to 003c74cb has its CatchHandler @ 003c7568 */
          iVar8 = (**(code **)(*local_res8 + 0x24))();
          uVar12 = (uint)(char)iVar8;
          if (iVar8 != -1) goto LAB_003c6990;
          local_res8 = (int *)0x0;
          if (local_4c != 0) goto LAB_003c6d60;
          uVar14 = 0xff;
          uVar12 = 0xffffffff;
LAB_003c6edc:
          if (5 < uVar14 - 0x61) {
            uVar12 = uVar12 - 0x37;
            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;
            goto LAB_003c6d60;
          }
          uVar12 = uVar12 - 0x57;
          if (local_50 < uVar5) goto LAB_003c69c8;
LAB_003c6efc:
          iVar3 = iVar3 + 1;
          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;
          uVar14 = local_res8[2];
          uVar5 = uVar12 + uVar4 * uVar5;
          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;
LAB_003c6f2c:
                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */
          (**(code **)(*local_res8 + 0x28))();
          uVar14 = 1;
          if (local_res8 != (int *)0x0) goto LAB_003c69f0;
          if (param_5 != (int *)0x0) break;
LAB_003c6f5c:
          if (local_44 == uVar14) goto LAB_003c6a24;
        }
      }
LAB_003c6a24:
      local_resc = -1;
      local_4c = 1;
      goto LAB_003c6a28;
    }
    uVar17 = 0;
    uVar5 = 0;
    local_4c = uVar14;
  }
  else {
    uVar4 = 10;
    if (uVar14 == 8) {
      uVar4 = 0x10;
    }
    if (param_3 == (int *)0x0) goto LAB_003c7160;
LAB_003c6834:
    if (param_4 == -1) {
      bVar15 = false;
      if (((uint)param_3[3] <= (uint)param_3[2]) &&
         (iVar3 = (**(code **)(*param_3 + 0x24))(), iVar3 == -1)) {
        local_res8 = (int *)0x0;
        bVar15 = true;
      }
    }
    else {
      bVar15 = false;
    }
    if (param_5 == (int *)0x0) goto LAB_003c7170;
LAB_003c684c:
    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 == bVar15) goto LAB_003c717c;
LAB_003c6864:
    if ((local_res8 == (int *)0x0) || (param_4 != -1)) {
      uVar12 = (uint)(char)param_4;
    }
    else if ((char *)local_res8[2] < (char *)local_res8[3]) {
      uVar12 = (uint)*(char *)local_res8[2];
    }
    else {
      iVar3 = (**(code **)(*local_res8 + 0x24))();
      if (iVar3 == -1) {
        uVar12 = 0xffffffff;
        local_res8 = (int *)0x0;
      }
      else {
        uVar12 = (uint)(char)iVar3;
      }
    }
    cVar9 = *(char *)(iVar13 + 0x10);
    local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12);
    if (((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)) {
      local_38 = 0;
LAB_003c6b0c:
      iVar3 = 0;
      bVar15 = false;
      do {
        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||
           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;
        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {
          if (bVar15) {
            if (uVar4 != 10) goto LAB_003c6b4c;
            if (uVar14 == 0) {
              iVar3 = 0;
              uVar4 = 8;
            }
            else {
LAB_003c6ff4:
              iVar3 = iVar3 + 1;
              bVar15 = true;
            }
          }
          else {
            bVar15 = true;
            if (uVar14 == 0) {
              iVar3 = 0;
              uVar4 = 8;
            }
            else {
              if (uVar4 != 8) goto LAB_003c6ff4;
              iVar3 = 0;
              bVar15 = true;
            }
          }
LAB_003c6b80:
          uVar5 = local_res8[2];
          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;
LAB_003c6b98:
          local_res8[2] = uVar5 + 1;
LAB_003c6ba8:
          uVar5 = 0;
          if ((uint)local_res8[3] <= (uint)local_res8[2]) {
            local_50 = 0;
            iVar8 = (**(code **)(*local_res8 + 0x24))();
            uVar5 = local_50;
            if (iVar8 == -1) {
              uVar5 = 1;
              local_res8 = (int *)0x0;
            }
          }
          if (param_5 != (int *)0x0) goto LAB_003c6bc8;
LAB_003c6e58:
          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;
        }
        else {
          if (!bVar15) break;
LAB_003c6b4c:
          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)
             ) {
            uVar14 = 0;
            bVar15 = true;
            goto LAB_003c6be4;
          }
          if (uVar14 != 0) {
            if (uVar4 == 0x10) {
              iVar3 = 0;
              bVar15 = false;
              goto LAB_003c6b80;
            }
            uVar14 = 0;
            bVar15 = true;
            goto LAB_003c692c;
          }
          iVar3 = 0;
          bVar15 = false;
          uVar5 = local_res8[2];
          uVar4 = 0x10;
          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;
LAB_003c6e28:
          (**(code **)(*local_res8 + 0x28))();
          uVar5 = 1;
          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;
          if (param_5 == (int *)0x0) goto LAB_003c6e58;
LAB_003c6bc8:
          if (param_6 == -1) {
            uVar17 = 0;
            if ((uint)param_5[3] <= (uint)param_5[2]) {
              local_50 = uVar5;
              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);
              uVar17 = (uint)(iVar8 == -1);
              uVar5 = local_50;
              if (iVar8 == -1) {
                param_5 = (int *)0x0;
              }
            }
          }
          else {
            uVar17 = 0;
          }
          if (uVar17 == uVar5) {
LAB_003c6bdc:
            local_resc = -1;
            cVar9 = *(char *)(iVar13 + 0x10);
            uVar14 = 1;
            goto LAB_003c6be4;
          }
        }
        local_resc = -1;
        if (local_res8 == (int *)0x0) {
          uVar12 = 0xffffffff;
        }
        else if ((char *)local_res8[2] < (char *)local_res8[3]) {
          uVar12 = (uint)*(char *)local_res8[2];
        }
        else {
          iVar8 = (**(code **)(*local_res8 + 0x24))();
          if (iVar8 == -1) {
            uVar12 = 0xffffffff;
            local_res8 = (int *)0x0;
          }
          else {
            uVar12 = (uint)(char)iVar8;
          }
        }
        cVar9 = *(char *)(iVar13 + 0x10);
      } while (bVar15);
      uVar14 = 0;
      goto LAB_003c6be4;
    }
    if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||
       ((int)*(char *)(iVar13 + 0x24) == uVar12)) goto LAB_003c6b0c;
    if ((uint)local_res8[2] < (uint)local_res8[3]) {
      local_res8[2] = local_res8[2] + 1;
      uVar5 = local_res8[2];
LAB_003c68e8:
      bVar15 = false;
      if (((uint)local_res8[3] <= uVar5) &&
         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {
        bVar15 = true;
        local_res8 = (int *)0x0;
      }
    }
    else {
      bVar15 = true;
      (**(code **)(*local_res8 + 0x28))();
      if (local_res8 != (int *)0x0) {
        uVar5 = local_res8[2];
        goto LAB_003c68e8;
      }
    }
    local_resc = -1;
    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 != bVar15) {
      cVar9 = istreambuf_iterator<char,std::char_traits<char>>::_M_get();
      uVar12 = (uint)cVar9;
      cVar9 = *(char *)(iVar13 + 0x10);
      goto LAB_003c6b0c;
    }
    cVar9 = *(char *)(iVar13 + 0x10);
    uVar14 = 1;
    iVar3 = 0;
    bVar15 = false;
    if (uVar4 != 0x10) goto LAB_003c692c;
LAB_003c6bf0:
    local_60[0] = local_60[0] & 0xffffff;
    local_44 = 0x16;
    if (cVar9 == '\0') goto LAB_003c6944;
LAB_003c6c10:
    local_40 = local_60;
    local_68 = local_60;
    local_64 = 0;
                    /* try { // try from 003c6c18 to 003c6c1f has its CatchHandler @ 003c7568 */
    (*(code *)PTR_reserve_004c2458)(&local_68,0x20);
    local_4c = (uint)*(byte *)(iVar13 + 100);
    if (uVar4 == 0) {
      trap(7);
    }
    local_50 = 0xffffffff / uVar4;
    if (local_4c == 0) goto LAB_003c6964;
LAB_003c6c44:
    if (uVar14 == 0) {
      local_2c = &local_68;
      local_34 = (uint)(param_6 == -1);
      uVar17 = 0;
      uVar5 = 0;
      local_3c = iVar13 + 0x4e;
LAB_003c6c68:
      iVar8 = local_3c;
      uVar14 = local_64;
      local_48 = (uint)*(byte *)(iVar13 + 0x10);
      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {
        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||
           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))
        goto LAB_003c6d60;
        uVar14 = iVar6 - iVar8;
        if (0xf < (int)uVar14) {
          uVar14 = uVar14 - 6;
        }
        if (uVar5 <= local_50) {
          uVar12 = uVar4 * uVar5;
          iVar3 = iVar3 + 1;
          uVar5 = uVar14 + uVar12;
          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);
          goto LAB_003c6ce4;
        }
        uVar14 = local_res8[2];
        uVar17 = local_4c;
        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;
LAB_003c7078:
        (**(code **)(*local_res8 + 0x28))();
        uVar14 = local_4c;
        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;
      }
      else {
        if (iVar3 == 0) {
          if (local_64 != 0) {
            local_4c = 0;
            uVar16 = 0;
            goto LAB_003c6d78;
          }
          *param_9 = 0;
          *param_8 = 4;
          goto LAB_003c6a70;
        }
        local_48 = (uint)(char)iVar3;
        local_30 = local_64 + 1;
        uVar12 = 0xf;
        if (local_68 != local_40) {
          uVar12 = local_60[0];
        }
        if (uVar12 < local_64 + 1) {
          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);
        }
        local_64 = local_30;
        iVar3 = 0;
        *(char *)((int)local_68 + uVar14) = (char)local_48;
        *(undefined1 *)((int)local_68 + local_30) = 0;
LAB_003c6ce4:
        uVar14 = local_res8[2];
        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;
LAB_003c6cfc:
        local_res8[2] = uVar14 + 1;
LAB_003c6d0c:
        uVar14 = 0;
        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&
           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {
          local_res8 = (int *)0x0;
          uVar14 = local_4c;
        }
      }
      uVar12 = local_34;
      if (param_5 != (int *)0x0) {
        if (param_6 == -1) {
          uVar12 = 0;
          if ((uint)param_5[3] <= (uint)param_5[2]) {
            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);
            if (iVar8 == -1) {
              param_5 = (int *)0x0;
              uVar12 = local_4c;
            }
            else {
              uVar12 = 0;
            }
          }
        }
        else {
          uVar12 = 0;
        }
      }
      local_resc = -1;
      if (uVar14 != uVar12) {
        if (local_res8 == (int *)0x0) {
          uVar12 = 0xffffffff;
        }
        else if ((char *)local_res8[2] < (char *)local_res8[3]) {
          uVar12 = (uint)*(char *)local_res8[2];
        }
        else {
          iVar8 = (**(code **)(*local_res8 + 0x24))();
          uVar12 = (uint)(char)iVar8;
          if (iVar8 == -1) {
            local_res8 = (int *)0x0;
            uVar12 = 0xffffffff;
          }
        }
        goto LAB_003c6c68;
      }
    }
    else {
      uVar17 = 0;
      uVar5 = 0;
      local_4c = uVar14;
    }
  }
LAB_003c6a28:
  if (local_64 != 0) goto LAB_003c6d70;
LAB_003c6a34:
  if ((iVar3 != 0) || (bVar15)) goto LAB_003c6de8;
LAB_003c6a48:
  *param_9 = 0;
  *param_8 = 4;
LAB_003c6a54:
  if (local_4c != 0) {
    *param_8 = *param_8 | 2;
  }
LAB_003c6a70:
  *param_1 = (int)local_res8;
  param_1[1] = local_resc;
  if (local_68 != local_40) {
    (*(code *)PTR_operator_delete_004c12fc)();
  }
  return param_1;
LAB_003c6d60:
  local_4c = 0;
  if (local_64 == 0) goto LAB_003c6a34;
LAB_003c6d70:
  uVar16 = (undefined1)iVar3;
  local_48 = 0;
LAB_003c6d78:
  uVar14 = local_64;
  uVar12 = local_64 + 1;
  uVar4 = local_60[0];
  if (local_68 == local_40) {
    uVar4 = 0xf;
  }
  if (uVar4 < uVar12) {
    (*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,0,0,1);
  }
  *(undefined1 *)((int)local_68 + uVar14) = uVar16;
  *(undefined1 *)((int)local_68 + uVar12) = 0;
  local_64 = uVar12;
  iVar13 = __verify_grouping(*(char **)(iVar13 + 8),*(uint *)(iVar13 + 0xc),(string *)&local_68);
  if (iVar13 == 0) {
    *param_8 = 4;
  }
  if ((((iVar3 != 0) || (bVar15)) || (local_64 != 0)) && (local_48 == 0)) {
LAB_003c6de8:
    if (uVar17 == 0) {
      if (local_38 != 0) {
        uVar5 = -uVar5;
      }
      *param_9 = uVar5;
    }
    else {
      *param_9 = 0xffffffff;
      *param_8 = 4;
    }
    goto LAB_003c6a54;
  }
  goto LAB_003c6a48;
}



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

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  uint uVar4;
  uint uVar5;
  int iVar6;
  undefined4 *puVar7;
  char cVar9;
  int iVar8;
  bool bVar10;
  int *piVar11;
  uint uVar12;
  int iVar13;
  uint uVar14;
  bool bVar15;
  undefined1 uVar16;
  uint uVar17;
  int *local_res8;
  int local_resc;
  uint *local_68;
  uint local_64;
  uint local_60 [4];
  uint local_50;
  uint local_4c;
  uint local_48;
  uint local_44;
  uint *local_40;
  int local_3c;
  uint local_38;
  uint local_34;
  uint local_30;
  uint **local_2c;
  
  local_res8 = param_3;
  local_resc = param_4;
  iVar3 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c32f8);
  piVar11 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);
  iVar13 = *piVar11;
  if (iVar13 == 0) {
                    /* try { // try from 003c72a4 to 003c72ab has its CatchHandler @ 003c75c8 */
    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 003c72f0 to 003c72f7 has its CatchHandler @ 003c7598 */
    *(undefined1 *)(puVar7 + 0x19) = 0;
    (*(code *)puVar2)(puVar7,param_7 + 0x6c);
    (*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);
    iVar13 = *piVar11;
  }
  uVar14 = *(uint *)(param_7 + 0xc) & 0x4a;
  if (uVar14 == 0x40) {
    uVar4 = 8;
    if (local_res8 == (int *)0x0) goto LAB_003c7160;
LAB_003c6834:
    if (local_resc == -1) {
      bVar15 = false;
      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&
         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {
        local_res8 = (int *)0x0;
        bVar15 = true;
      }
    }
    else {
      bVar15 = false;
    }
    if (param_5 != (int *)0x0) goto LAB_003c684c;
LAB_003c7170:
    if ((param_6 == -1) == bVar15) goto LAB_003c717c;
LAB_003c6864:
    if ((local_res8 == (int *)0x0) || (local_resc != -1)) {
      uVar12 = (uint)(char)local_resc;
    }
    else if ((char *)local_res8[2] < (char *)local_res8[3]) {
      uVar12 = (uint)*(char *)local_res8[2];
    }
    else {
      iVar3 = (**(code **)(*local_res8 + 0x24))();
      if (iVar3 == -1) {
        uVar12 = 0xffffffff;
        local_res8 = (int *)0x0;
      }
      else {
        uVar12 = (uint)(char)iVar3;
      }
    }
    cVar9 = *(char *)(iVar13 + 0x10);
    local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12);
    if (((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)) {
      local_38 = 0;
LAB_003c6b0c:
      iVar3 = 0;
      bVar15 = false;
      do {
        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||
           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;
        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {
          if (bVar15) {
            if (uVar4 != 10) goto LAB_003c6b4c;
            if (uVar14 == 0) {
              iVar3 = 0;
              uVar4 = 8;
            }
            else {
LAB_003c6ff4:
              iVar3 = iVar3 + 1;
              bVar15 = true;
            }
          }
          else {
            bVar15 = true;
            if (uVar14 == 0) {
              iVar3 = 0;
              uVar4 = 8;
            }
            else {
              if (uVar4 != 8) goto LAB_003c6ff4;
              iVar3 = 0;
              bVar15 = true;
            }
          }
LAB_003c6b80:
          uVar5 = local_res8[2];
          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;
LAB_003c6e28:
          (**(code **)(*local_res8 + 0x28))();
          uVar5 = 1;
          local_resc = -1;
          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;
          if (param_5 == (int *)0x0) goto LAB_003c6e58;
LAB_003c6bc8:
          if (param_6 == -1) {
            uVar17 = 0;
            if ((uint)param_5[3] <= (uint)param_5[2]) {
              local_50 = uVar5;
              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);
              uVar17 = (uint)(iVar8 == -1);
              uVar5 = local_50;
              if (iVar8 == -1) {
                param_5 = (int *)0x0;
              }
            }
          }
          else {
            uVar17 = 0;
          }
          if (uVar17 == uVar5) {
LAB_003c6bdc:
            cVar9 = *(char *)(iVar13 + 0x10);
            uVar14 = 1;
            goto LAB_003c6be4;
          }
        }
        else {
          if (!bVar15) break;
LAB_003c6b4c:
          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)
             ) {
            uVar14 = 0;
            bVar15 = true;
            goto LAB_003c6be4;
          }
          if (uVar14 != 0) {
            if (uVar4 == 0x10) {
              iVar3 = 0;
              bVar15 = false;
              goto LAB_003c6b80;
            }
            uVar14 = 0;
            bVar15 = true;
            goto LAB_003c692c;
          }
          iVar3 = 0;
          bVar15 = false;
          uVar5 = local_res8[2];
          uVar4 = 0x10;
          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;
LAB_003c6b98:
          local_res8[2] = uVar5 + 1;
LAB_003c6ba8:
          local_resc = -1;
          uVar5 = 0;
          if ((uint)local_res8[3] <= (uint)local_res8[2]) {
            local_50 = 0;
            iVar8 = (**(code **)(*local_res8 + 0x24))();
            uVar5 = local_50;
            if (iVar8 == -1) {
              uVar5 = 1;
              local_res8 = (int *)0x0;
            }
          }
          if (param_5 != (int *)0x0) goto LAB_003c6bc8;
LAB_003c6e58:
          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;
        }
        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {
          uVar12 = (uint)(char)local_resc;
        }
        else if ((char *)local_res8[2] < (char *)local_res8[3]) {
          uVar12 = (uint)*(char *)local_res8[2];
        }
        else {
          iVar8 = (**(code **)(*local_res8 + 0x24))();
          if (iVar8 == -1) {
            uVar12 = 0xffffffff;
            local_res8 = (int *)0x0;
          }
          else {
            uVar12 = (uint)(char)iVar8;
          }
        }
        cVar9 = *(char *)(iVar13 + 0x10);
      } while (bVar15);
      uVar14 = 0;
      goto LAB_003c6be4;
    }
    if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||
       ((int)*(char *)(iVar13 + 0x24) == uVar12)) goto LAB_003c6b0c;
    if ((uint)local_res8[2] < (uint)local_res8[3]) {
      local_res8[2] = local_res8[2] + 1;
      uVar5 = local_res8[2];
LAB_003c68e8:
      local_resc = -1;
      bVar15 = false;
      if (((uint)local_res8[3] <= uVar5) &&
         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {
        bVar15 = true;
        local_res8 = (int *)0x0;
      }
    }
    else {
      bVar15 = true;
      (**(code **)(*local_res8 + 0x28))();
      local_resc = -1;
      if (local_res8 != (int *)0x0) {
        uVar5 = local_res8[2];
        goto LAB_003c68e8;
      }
    }
    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 != bVar15) {
      cVar9 = FUN_003c05e4(&local_res8,local_resc);
      uVar12 = (uint)cVar9;
      cVar9 = *(char *)(iVar13 + 0x10);
      goto LAB_003c6b0c;
    }
    cVar9 = *(char *)(iVar13 + 0x10);
    uVar14 = 1;
    iVar3 = 0;
    bVar15 = false;
    if (uVar4 == 0x10) goto LAB_003c6bf0;
LAB_003c692c:
    local_60[0] = local_60[0] & 0xffffff;
    local_44 = uVar4;
    if (cVar9 == '\0') goto LAB_003c6944;
LAB_003c6c10:
    local_40 = local_60;
    local_68 = local_60;
    local_64 = 0;
                    /* try { // try from 003c6c18 to 003c6c1f has its CatchHandler @ 003c7568 */
    (*(code *)PTR_reserve_004c2458)(&local_68,0x20);
    local_4c = (uint)*(byte *)(iVar13 + 100);
    if (uVar4 == 0) {
      trap(7);
    }
    local_50 = 0xffffffff / uVar4;
    if (local_4c != 0) goto LAB_003c6c44;
LAB_003c6964:
    if (uVar14 == 0) {
      uVar17 = 0;
      local_4c = (uint)(local_44 < 0xb);
      local_48 = (uint)(char)((char)local_44 + '0');
      uVar5 = 0;
      local_44 = (uint)(param_6 == -1);
LAB_003c6990:
      uVar14 = uVar12 & 0xff;
      if (local_4c == 0) {
        if (9 < uVar14 - 0x30) goto LAB_003c6edc;
      }
      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;
      uVar12 = uVar12 - 0x30;
LAB_003c69bc:
      if (uVar5 <= local_50) goto LAB_003c6efc;
LAB_003c69c8:
      uVar14 = local_res8[2];
      uVar17 = 1;
      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;
LAB_003c69e0:
      local_res8[2] = uVar14 + 1;
LAB_003c69f0:
      local_resc = -1;
      uVar14 = 0;
                    /* try { // try from 003c7324 to 003c7397 has its CatchHandler @ 003c7568 */
      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&
         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {
        uVar14 = 1;
        local_res8 = (int *)0x0;
      }
      if (param_5 == (int *)0x0) goto LAB_003c6f5c;
      while( true ) {
        if (param_6 == -1) {
          uVar12 = 0;
          if ((uint)param_5[3] <= (uint)param_5[2]) {
                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */
            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);
            uVar12 = (uint)(iVar8 == -1);
            if (iVar8 == -1) {
              param_5 = (int *)0x0;
            }
          }
        }
        else {
          uVar12 = 0;
        }
        if (uVar12 == uVar14) break;
        while( true ) {
          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {
            uVar12 = (uint)(char)local_resc;
            goto LAB_003c6990;
          }
          if ((char *)local_res8[2] < (char *)local_res8[3]) {
            uVar12 = (uint)*(char *)local_res8[2];
            goto LAB_003c6990;
          }
                    /* try { // try from 003c7464 to 003c74cb has its CatchHandler @ 003c7568 */
          iVar8 = (**(code **)(*local_res8 + 0x24))();
          uVar12 = (uint)(char)iVar8;
          if (iVar8 != -1) goto LAB_003c6990;
          local_res8 = (int *)0x0;
          if (local_4c != 0) goto LAB_003c6d60;
          uVar14 = 0xff;
          uVar12 = 0xffffffff;
LAB_003c6edc:
          if (5 < uVar14 - 0x61) {
            uVar12 = uVar12 - 0x37;
            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;
            goto LAB_003c6d60;
          }
          uVar12 = uVar12 - 0x57;
          if (local_50 < uVar5) goto LAB_003c69c8;
LAB_003c6efc:
          iVar3 = iVar3 + 1;
          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;
          uVar14 = local_res8[2];
          uVar5 = uVar12 + uVar4 * uVar5;
          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;
LAB_003c6f2c:
                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */
          (**(code **)(*local_res8 + 0x28))();
          uVar14 = 1;
          local_resc = -1;
          if (local_res8 != (int *)0x0) goto LAB_003c69f0;
          if (param_5 != (int *)0x0) break;
LAB_003c6f5c:
          if (local_44 == uVar14) goto LAB_003c6a24;
        }
      }
LAB_003c6a24:
      local_4c = 1;
      goto LAB_003c6a28;
    }
    uVar17 = 0;
    uVar5 = 0;
    local_4c = uVar14;
  }
  else {
    uVar4 = 10;
    if (uVar14 == 8) {
      uVar4 = 0x10;
    }
    if (local_res8 != (int *)0x0) goto LAB_003c6834;
LAB_003c7160:
    bVar15 = local_resc == -1;
    if (param_5 == (int *)0x0) goto LAB_003c7170;
LAB_003c684c:
    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 != bVar15) goto LAB_003c6864;
LAB_003c717c:
    cVar9 = *(char *)(iVar13 + 0x10);
    uVar14 = 1;
    local_38 = 0;
    uVar12 = 0;
    iVar3 = 0;
    bVar15 = false;
LAB_003c6be4:
    if (uVar4 != 0x10) goto LAB_003c692c;
LAB_003c6bf0:
    local_60[0] = local_60[0] & 0xffffff;
    local_44 = 0x16;
    if (cVar9 != '\0') goto LAB_003c6c10;
LAB_003c6944:
    local_68 = local_60;
    local_64 = 0;
    local_4c = (uint)*(byte *)(iVar13 + 100);
    if (uVar4 == 0) {
      trap(7);
    }
    local_50 = 0xffffffff / uVar4;
    local_40 = local_68;
    if (local_4c == 0) goto LAB_003c6964;
LAB_003c6c44:
    if (uVar14 == 0) {
      local_2c = &local_68;
      local_34 = (uint)(param_6 == -1);
      uVar17 = 0;
      uVar5 = 0;
      local_3c = iVar13 + 0x4e;
LAB_003c6c68:
      iVar8 = local_3c;
      uVar14 = local_64;
      local_48 = (uint)*(byte *)(iVar13 + 0x10);
      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {
        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||
           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))
        goto LAB_003c6d60;
        uVar14 = iVar6 - iVar8;
        if (0xf < (int)uVar14) {
          uVar14 = uVar14 - 6;
        }
        if (uVar5 <= local_50) {
          uVar12 = uVar4 * uVar5;
          iVar3 = iVar3 + 1;
          uVar5 = uVar14 + uVar12;
          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);
          goto LAB_003c6ce4;
        }
        uVar14 = local_res8[2];
        uVar17 = local_4c;
        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;
LAB_003c6cfc:
        local_res8[2] = uVar14 + 1;
LAB_003c6d0c:
        local_resc = -1;
        uVar14 = 0;
        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&
           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {
          local_res8 = (int *)0x0;
          uVar14 = local_4c;
        }
      }
      else {
        if (iVar3 == 0) {
          if (local_64 == 0) {
            *param_9 = 0;
            *param_8 = 4;
            goto LAB_003c6a70;
          }
          local_4c = 0;
          uVar16 = 0;
          goto LAB_003c6d78;
        }
        local_48 = (uint)(char)iVar3;
        local_30 = local_64 + 1;
        uVar12 = 0xf;
        if (local_68 != local_40) {
          uVar12 = local_60[0];
        }
        if (uVar12 < local_64 + 1) {
          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);
        }
        local_64 = local_30;
        iVar3 = 0;
        *(char *)((int)local_68 + uVar14) = (char)local_48;
        *(undefined1 *)((int)local_68 + local_30) = 0;
LAB_003c6ce4:
        uVar14 = local_res8[2];
        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;
LAB_003c7078:
        (**(code **)(*local_res8 + 0x28))();
        local_resc = -1;
        uVar14 = local_4c;
        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;
      }
      uVar12 = local_34;
      if (param_5 != (int *)0x0) {
        if (param_6 == -1) {
          uVar12 = 0;
          if ((uint)param_5[3] <= (uint)param_5[2]) {
            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);
            if (iVar8 == -1) {
              param_5 = (int *)0x0;
              uVar12 = local_4c;
            }
            else {
              uVar12 = 0;
            }
          }
        }
        else {
          uVar12 = 0;
        }
      }
      if (uVar14 != uVar12) {
        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {
          uVar12 = (uint)(char)local_resc;
        }
        else if ((char *)local_res8[2] < (char *)local_res8[3]) {
          uVar12 = (uint)*(char *)local_res8[2];
        }
        else {
          iVar8 = (**(code **)(*local_res8 + 0x24))();
          uVar12 = (uint)(char)iVar8;
          if (iVar8 == -1) {
            local_res8 = (int *)0x0;
            uVar12 = 0xffffffff;
          }
        }
        goto LAB_003c6c68;
      }
    }
    else {
      uVar17 = 0;
      uVar5 = 0;
      local_4c = uVar14;
    }
  }
LAB_003c6a28:
  if (local_64 == 0) goto LAB_003c6a34;
LAB_003c6d70:
  uVar16 = (undefined1)iVar3;
  local_48 = 0;
LAB_003c6d78:
  uVar14 = local_64;
  uVar12 = local_64 + 1;
  uVar4 = local_60[0];
  if (local_68 == local_40) {
    uVar4 = 0xf;
  }
  if (uVar4 < uVar12) {
    (*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,0,0,1);
  }
  *(undefined1 *)((int)local_68 + uVar14) = uVar16;
  *(undefined1 *)((int)local_68 + uVar12) = 0;
  local_64 = uVar12;
  iVar13 = std::__verify_grouping
                     (*(char **)(iVar13 + 8),*(uint *)(iVar13 + 0xc),(string *)&local_68);
  if (iVar13 == 0) {
    *param_8 = 4;
  }
  if ((((iVar3 != 0) || (bVar15)) || (local_64 != 0)) && (local_48 == 0)) goto LAB_003c6de8;
LAB_003c6a48:
  *param_9 = 0;
  *param_8 = 4;
LAB_003c6a54:
  if (local_4c != 0) {
    *param_8 = *param_8 | 2;
  }
LAB_003c6a70:
  *param_1 = local_res8;
  param_1[1] = local_resc;
  if (local_68 != local_40) {
    (*(code *)PTR_operator_delete_004c12fc)();
  }
  return param_1;
LAB_003c6d60:
  local_4c = 0;
  if (local_64 != 0) goto LAB_003c6d70;
LAB_003c6a34:
  if ((iVar3 != 0) || (bVar15)) {
LAB_003c6de8:
    if (uVar17 == 0) {
      if (local_38 != 0) {
        uVar5 = -uVar5;
      }
      *param_9 = uVar5;
    }
    else {
      *param_9 = 0xffffffff;
      *param_8 = 4;
    }
    goto LAB_003c6a54;
  }
  goto LAB_003c6a48;
}


lui gp,0x10
addiu gp,gp,0x2abc
addu gp,gp,t9
addiu sp,sp,-0x88
lw t9,-0x65cc(gp)
sw s3,0x6c(sp)
sw a0,0x88(sp)
sw gp,0x18(sp)
sw s7,0x7c(sp)
sw s4,0x70(sp)
sw s2,0x68(sp)
sw s1,0x64(sp)
sw s0,0x60(sp)
sw ra,0x84(sp)
sw s8,0x80(sp)
sw s6,0x78(sp)
sw s5,0x74(sp)
sw a2,0x90(sp)
sw a3,0x94(sp)
lw s3,0xa0(sp)
lw a0,-0x5f48(gp)
lw s2,0x98(sp)
jalr t9
_lw s7,0x9c(sp)
lw v1,0x6c(s3)
or s4,v0,zero
sll v0,v0,0x2
lw s0,0xc(v1)
addu s0,s0,v0
lw s1,0x0(s0)
beq s1,zero,0x003c72a0
_lw gp,0x18(sp)
lw a2,0xc(s3)
li v0,0x40
andi s3,a2,0x4a
beq s3,v0,0x003c7150
_li v1,0x10
lw a0,0x90(sp)
li v0,0xa
lw s0,0x94(sp)
xori s6,s3,0x8
movz v0,v1,s6
beq a0,zero,0x003c7160
_or s6,v0,zero
li v0,-0x1
beq s0,v0,0x003c6acc
_nop
or s4,zero,zero
beq s2,zero,0x003c7170
_addiu v1,s7,0x1
li v0,-0x1
beq s7,v0,0x003c71c8
_nop
or v1,zero,zero
beq v1,s4,0x003c717c
_nop
lw a0,0x90(sp)
beq a0,zero,0x003c687c
_lw s0,0x94(sp)
li v0,-0x1
beq s0,v0,0x003c724c
_nop
seb s0,s0
lb v1,0x4a(s1)
lbu v0,0x10(s1)
xor a0,v1,s0
sltiu a0,a0,0x1
beq v1,s0,0x003c68a4
_sw a0,0x50(sp)
lb v1,0x4b(s1)
bne v1,s0,0x003c6b04
_nop
beq v0,zero,0x003c68b8
_nop
lb v1,0x25(s1)
beq v1,s0,0x003c6b0c
_addiu s8,s7,0x1
lb v1,0x24(s1)
beq v1,s0,0x003c6b08
_lw a0,0x90(sp)
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v1,v0,v1
beq v1,zero,0x003c73d4
_addiu v0,v0,0x1
sw v0,0x8(a0)
li v0,-0x1
sw v0,0x94(sp)
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v0,v0,v1
beq v0,zero,0x003c7434
_or s4,zero,zero
beq s2,zero,0x003c73c8
_li v0,-0x1
beq s7,v0,0x003c7268
_nop
or v1,zero,zero
bne v1,s4,0x003c73a4
_li v1,0x10
lbu v0,0x10(s1)
li s3,0x1
or s5,zero,zero
beq s6,v1,0x003c6bf0
_or s4,zero,zero
addiu v1,sp,0x28
sw s6,0x44(sp)
sw zero,0x24(sp)
sw v1,0x48(sp)
sb zero,0x28(sp)
bne v0,zero,0x003c6c10
_sw v1,0x20(sp)
li v0,-0x1
lbu v1,0x64(s1)
teq s6,zero
divu v0,s6
sw v1,0x3c(sp)
mflo v0
bne v1,zero,0x003c6c44
_sw v0,0x38(sp)
bne s3,zero,0x003c7508
_addiu v0,s7,0x1
lw a0,0x44(sp)
or s8,zero,zero
sltiu v0,v0,0x1
addiu v1,a0,0x30
sw v0,0x44(sp)
sltiu a0,a0,0xb
seb v1,v1
sw a0,0x3c(sp)
sw v1,0x40(sp)
lw v0,0x3c(sp)
beq v0,zero,0x003c6ecc
_andi v1,s0,0xff
slti v0,s0,0x30
bne v0,zero,0x003c6d60
_lw v0,0x40(sp)
slt v0,s0,v0
beq v0,zero,0x003c6d60
_nop
addiu s0,s0,-0x30
lw v0,0x38(sp)
sltu v0,v0,s3
beq v0,zero,0x003c6efc
_nop
lw a0,0x90(sp)
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v1,v0,v1
beq v1,zero,0x003c6f2c
_li s8,0x1
addiu v0,v0,0x1
sw v0,0x8(a0)
li v0,-0x1
sw v0,0x94(sp)
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v0,v0,v1
beq v0,zero,0x003c731c
_or s0,zero,zero
beq s2,zero,0x003c6f5c
_lw v1,0x44(sp)
li v0,-0x1
beq s7,v0,0x003c700c
_nop
or v1,zero,zero
bne v1,s0,0x003c6f64
_li v0,0x1
sw v0,0x3c(sp)
lw s0,0x24(sp)
bne s0,zero,0x003c6d70
_lw a0,0x20(sp)
bne s5,zero,0x003c6de8
_nop
bne s4,zero,0x003c6de8
_lw v0,0xa8(sp)
lw v1,0xa4(sp)
sw zero,0x0(v0)
li v0,0x4
sw v0,0x0(v1)
lw v0,0x3c(sp)
beq v0,zero,0x003c6a70
_lw v0,0xa4(sp)
lw v1,0xa4(sp)
lw v0,0x0(v0)
ori v0,v0,0x2
sw v0,0x0(v1)
lw v1,0x88(sp)
lw v0,0x90(sp)
sw v0,0x0(v1)
lw v0,0x94(sp)
sw v0,0x4(v1)
lw v0,0x48(sp)
beq a0,v0,0x003c6a98
_lw t9,-0x7f44(gp)
jalr t9
_nop
lw ra,0x84(sp)
lw v0,0x88(sp)
lw s8,0x80(sp)
lw s7,0x7c(sp)
lw s6,0x78(sp)
lw s5,0x74(sp)
lw s4,0x70(sp)
lw s3,0x6c(sp)
lw s2,0x68(sp)
lw s1,0x64(sp)
lw s0,0x60(sp)
jr ra
_addiu sp,sp,0x88
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v0,v0,v1
bne v0,zero,0x003c6844
_or s4,zero,zero
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
bne v0,s0,0x003c6844
_lw gp,0x18(sp)
sw zero,0x90(sp)
b 0x003c6844
_li s4,0x1
sw zero,0x50(sp)
addiu s8,s7,0x1
or s5,zero,zero
or s4,zero,zero
sltiu s8,s8,0x1
beq v0,zero,0x003c6b2c
_nop
lb v1,0x25(s1)
beq v1,s0,0x003c6e84
_nop
lb v1,0x24(s1)
beq v1,s0,0x003c6e84
_nop
lb v1,0x4e(s1)
beq v1,s0,0x003c6e8c
_nop
beq s4,zero,0x003c6e84
_nop
lb v1,0x4c(s1)
beq v1,s0,0x003c6b64
_nop
lb v1,0x4d(s1)
bne v1,s0,0x003c736c
_nop
beq s3,zero,0x003c6e0c
_lw a0,0x90(sp)
li v1,0x10
bne s6,v1,0x003c7420
_nop
or s5,zero,zero
or s4,zero,zero
lw a0,0x90(sp)
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v1,v0,v1
beq v1,zero,0x003c6e28
_nop
addiu v0,v0,0x1
sw v0,0x8(a0)
li v0,-0x1
sw v0,0x94(sp)
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v0,v0,v1
beq v0,zero,0x003c7198
_or a1,zero,zero
beq s2,zero,0x003c6e58
_or v1,s8,zero
li v0,-0x1
beq s7,v0,0x003c6f84
_nop
or v1,zero,zero
bne v1,a1,0x003c6e60
_nop
lbu v0,0x10(s1)
li s3,0x1
li v1,0x10
bne s6,v1,0x003c692c
_addiu v1,sp,0x28
li v1,0x16
sw zero,0x24(sp)
sb zero,0x28(sp)
sw v1,0x44(sp)
addiu v1,sp,0x28
sw v1,0x48(sp)
beq v0,zero,0x003c6944
_sw v1,0x20(sp)
lw t9,-0x6de8(gp)
li a1,0x20
jalr t9
_addiu a0,sp,0x20
li v0,-0x1
lbu v1,0x64(s1)
lw gp,0x18(sp)
teq s6,zero
divu v0,s6
sw v1,0x3c(sp)
mflo v0
beq v1,zero,0x003c6964
_sw v0,0x38(sp)
bne s3,zero,0x003c7518
_addiu v1,s1,0x4e
addiu v0,s7,0x1
sw v1,0x4c(sp)
addiu v1,sp,0x20
sltiu v0,v0,0x1
or s8,zero,zero
sw v1,0x5c(sp)
sw v0,0x54(sp)
lbu v0,0x10(s1)
beq v0,zero,0x003c6c80
_sw v0,0x40(sp)
lb v0,0x25(s1)
beq v0,s0,0x003c70ec
_nop
lb v0,0x24(s1)
beq v0,s0,0x003c6d60
_or a1,s0,zero
lw s0,0x4c(sp)
lw t9,-0x3778(gp)
lw a2,0x44(sp)
jalr t9
_or a0,s0,zero
beq v0,zero,0x003c6d60
_lw gp,0x18(sp)
subu v0,v0,s0
slti v1,v0,0x10
bne v1,zero,0x003c6cbc
_lw v1,0x38(sp)
addiu v0,v0,-0x6
sltu v1,v1,s3
bne v1,zero,0x003c7064
_lw a0,0x90(sp)
mul s3,s6,s3
nor v1,zero,v0
addiu s5,s5,0x1
sltu v1,v1,s3
or s8,s8,v1
addu s3,v0,s3
andi s8,s8,0xff
lw a0,0x90(sp)
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v1,v0,v1
beq v1,zero,0x003c7078
_nop
addiu v0,v0,0x1
sw v0,0x8(a0)
li v0,-0x1
sw v0,0x94(sp)
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v0,v0,v1
beq v0,zero,0x003c7494
_or s0,zero,zero
beq s2,zero,0x003c6d38
_lw v1,0x54(sp)
li v0,-0x1
beq s7,v0,0x003c70b0
_nop
or v1,zero,zero
beq s0,v1,0x003c6a28
_nop
lw a0,0x90(sp)
beq a0,zero,0x003c6d58
_lw s0,0x94(sp)
li v0,-0x1
beq s0,v0,0x003c7230
_nop
b 0x003c6c68
_seb s0,s0
lw s0,0x24(sp)
lw a0,0x20(sp)
beq s0,zero,0x003c6a34
_sw zero,0x3c(sp)
seb s7,s5
sw zero,0x40(sp)
lw v0,0x48(sp)
beq a0,v0,0x003c742c
_addiu s2,s0,0x1
lw v0,0x28(sp)
sltu v0,v0,s2
bne v0,zero,0x003c7378
_addiu s6,sp,0x20
addu s0,a0,s0
lw t9,-0x60a8(gp)
or a2,s6,zero
sb s7,0x0(s0)
sw s2,0x24(sp)
lw v0,0x20(sp)
addu s2,v0,s2
sb zero,0x0(s2)
lw a1,0xc(s1)
bal 0x003e6968
_lw a0,0x8(s1)
bne v0,zero,0x003c6dd4
_lw gp,0x18(sp)
lw v1,0xa4(sp)
li v0,0x4
sw v0,0x0(v1)
beq s5,zero,0x003c7214
_lw a0,0x20(sp)
lw v0,0x40(sp)
bne v0,zero,0x003c6a44
_lw v0,0xa8(sp)
beq s8,zero,0x003c7200
_lw v0,0x50(sp)
lw v1,0xa8(sp)
li v0,-0x1
sw v0,0x0(v1)
li v0,0x4
lw v1,0xa4(sp)
b 0x003c6a54
_sw v0,0x0(v1)
or s5,zero,zero
or s4,zero,zero
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v1,v0,v1
bne v1,zero,0x003c6b98
_li s6,0x10
lw v0,0x0(a0)
lw t9,0x28(v0)
jalr t9
_nop
li v0,-0x1
lw a0,0x90(sp)
li a1,0x1
lw gp,0x18(sp)
bne a0,zero,0x003c6ba8
_sw v0,0x94(sp)
bne s2,zero,0x003c6bc8
_or v1,s8,zero
beq v1,a1,0x003c6bdc
_nop
lw a0,0x90(sp)
beq a0,zero,0x003c6e78
_lw s0,0x94(sp)
li v0,-0x1
beq s0,v0,0x003c6eb0
_nop
seb s0,s0
bne s4,zero,0x003c6b18
_lbu v0,0x10(s1)
b 0x003c6be4
_or s3,zero,zero
beq s4,zero,0x003c6fe0
_li v1,0xa
bne s6,v1,0x003c6b4c
_nop
bne s3,zero,0x003c6ff4
_nop
or s5,zero,zero
b 0x003c6b80
_li s6,0x8
lw v1,0x8(a0)
lw v0,0xc(a0)
sltu v0,v1,v0
beq v0,zero,0x003c7400
_nop
b 0x003c6e7c
_lb s0,0x0(v1)
addiu v0,v1,-0x30
sltiu v0,v0,0xa
bne v0,zero,0x003c69b4
_nop
addiu v0,v1,-0x61
sltiu v0,v0,0x6
beq v0,zero,0x003c7050
_addiu v1,v1,-0x41
lw v0,0x38(sp)
sltu v0,v0,s3
bne v0,zero,0x003c69c8
_addiu s0,s0,-0x57
mul s3,s6,s3
lw a0,0x90(sp)
nor v0,zero,s0
addiu s5,s5,0x1
lw v1,0xc(a0)
sltu v0,v0,s3
or s8,s8,v0
lw v0,0x8(a0)
andi s8,s8,0xff
sltu v1,v0,v1
bne v1,zero,0x003c69e0
_addu s3,s0,s3
lw v0,0x0(a0)
lw t9,0x28(v0)
jalr t9
_nop
lw a0,0x90(sp)
li v0,-0x1
lw gp,0x18(sp)
li s0,0x1
bne a0,zero,0x003c69f0
_sw v0,0x94(sp)
bne s2,zero,0x003c6a10
_lw v1,0x44(sp)
beq v1,s0,0x003c6a24
_li v0,0x1
lw a0,0x90(sp)
beq a0,zero,0x003c6f7c
_lw s0,0x94(sp)
li v0,-0x1
beq s0,v0,0x003c6fc4
_nop
b 0x003c6990
_seb s0,s0
lw v0,0x8(s2)
lw a0,0xc(s2)
sltu v0,v0,a0
bne v0,zero,0x003c6bd4
_or v1,zero,zero
lw v0,0x0(s2)
sw a1,0x38(sp)
lw t9,0x24(v0)
jalr t9
_or a0,s2,zero
nor v0,zero,v0
lw gp,0x18(sp)
sltiu v1,v0,0x1
movz s2,zero,v0
b 0x003c6bd4
_lw a1,0x38(sp)
lw v1,0x8(a0)
lw v0,0xc(a0)
sltu v0,v1,v0
beq v0,zero,0x003c745c
_nop
b 0x003c6990
_lb s0,0x0(v1)
beq s3,zero,0x003c7044
_li s4,0x1
li v0,0x8
beq s6,v0,0x003c7000
_nop
addiu s5,s5,0x1
b 0x003c6b80
_li s4,0x1
or s5,zero,zero
b 0x003c6b80
_li s4,0x1
lw v0,0x8(s2)
lw a0,0xc(s2)
sltu v0,v0,a0
bne v0,zero,0x003c6a1c
_or v1,zero,zero
lw v0,0x0(s2)
lw t9,0x24(v0)
jalr t9
_or a0,s2,zero
nor v0,zero,v0
lw gp,0x18(sp)
sltiu v1,v0,0x1
b 0x003c6a1c
_movz s2,zero,v0
or s5,zero,zero
b 0x003c6b80
_li s6,0x8
sltiu v1,v1,0x6
beq v1,zero,0x003c6d60
_addiu s0,s0,-0x37
b 0x003c69bc
_lw v0,0x38(sp)
lw v0,0x8(a0)
lw v1,0xc(a0)
sltu v1,v0,v1
bne v1,zero,0x003c6cfc
_lw s8,0x3c(sp)
lw v0,0x0(a0)
lw t9,0x28(v0)
jalr t9
_nop
lw a0,0x90(sp)
li v0,-0x1
lw gp,0x18(sp)
lw s0,0x3c(sp)
bne a0,zero,0x003c6d0c
_sw v0,0x94(sp)
bne s2,zero,0x003c6d2c
_lw v1,0x54(sp)
b 0x003c6d38
_nop
lw v0,0x8(s2)
lw a0,0xc(s2)
sltu v0,v0,a0
bne v0,zero,0x003c6d38
_or v1,zero,zero
lw v0,0x0(s2)
lw t9,0x24(v0)
jalr t9
_or a0,s2,zero
lw v1,0x3c(sp)
nor v0,zero,v0
lw gp,0x18(sp)
movz s2,zero,v0
b 0x003c6d38
_movn v1,zero,v0
lw s0,0x24(sp)
beq s5,zero,0x003c7534
_lw a0,0x20(sp)
seb v0,s5
sw v0,0x40(sp)
addiu v0,s0,0x1
sw v0,0x58(sp)
lw v0,0x48(sp)
beq a0,v0,0x003c7118
_li v0,0xf
lw v0,0x28(sp)
addiu v1,s0,0x1
sltu v0,v0,v1
bne v0,zero,0x003c7344
_li v0,0x1
lw v0,0x40(sp)
addu s0,a0,s0
lw v1,0x58(sp)
or s5,zero,zero
sb v0,0x0(s0)
lw v0,0x20(sp)
sw v1,0x24(sp)
addu v0,v0,v1
b 0x003c6ce4
_sb zero,0x0(v0)
lw a0,0x90(sp)
li s6,0x8
bne a0,zero,0x003c6834
_lw s0,0x94(sp)
addiu s0,s0,0x1
bne s2,zero,0x003c684c
_sltiu s4,s0,0x1
addiu v1,s7,0x1
sltiu v1,v1,0x1
bne v1,s4,0x003c6864
_nop
lbu v0,0x10(s1)
li s3,0x1
sw zero,0x50(sp)
or s0,zero,zero
or s5,zero,zero
b 0x003c6be4
_or s4,zero,zero
lw v0,0x0(a0)
sw a1,0x38(sp)
lw t9,0x24(v0)
jalr t9
_nop
li v1,-0x1
lw gp,0x18(sp)
bne v0,v1,0x003c6bbc
_lw a1,0x38(sp)
li a1,0x1
b 0x003c6bbc
_sw zero,0x90(sp)
lw v0,0x8(s2)
lw a0,0xc(s2)
sltu v0,v0,a0
bne v0,zero,0x003c685c
_or v1,zero,zero
lw v0,0x0(s2)
lw t9,0x24(v0)
jalr t9
_or a0,s2,zero
nor v0,zero,v0
lw gp,0x18(sp)
sltiu v1,v0,0x1
b 0x003c685c
_movz s2,zero,v0
beq v0,zero,0x003c720c
_lw v0,0xa8(sp)
subu s3,zero,s3
b 0x003c6a54
_sw s3,0x0(v0)
bne s4,zero,0x003c6de0
_lw v0,0x40(sp)
lw v0,0x24(sp)
bne v0,zero,0x003c6ddc
_lw v0,0xa8(sp)
b 0x003c6a48
_lw v1,0xa4(sp)
lw v1,0x8(a0)
lw v0,0xc(a0)
sltu v0,v1,v0
beq v0,zero,0x003c74bc
_nop
b 0x003c6c68
_lb s0,0x0(v1)
lw v1,0x8(a0)
lw v0,0xc(a0)
sltu v0,v1,v0
beq v0,zero,0x003c74e8
_nop
b 0x003c6880
_lb s0,0x0(v1)
lw v0,0x8(s2)
lw a0,0xc(s2)
sltu v0,v0,a0
bne v0,zero,0x003c690c
_or v1,zero,zero
lw v0,0x0(s2)
lw t9,0x24(v0)
jalr t9
_or a0,s2,zero
nor v0,zero,v0
lw gp,0x18(sp)
sltiu v1,v0,0x1
b 0x003c690c
_movz s2,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,s3,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(s3)
lw t9,-0x6528(gp)
jalr t9
_or a2,s4,zero
lw gp,0x18(sp)
b 0x003c6804
_lw s1,0x0(s0)
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
li v1,-0x1
bne v0,v1,0x003c6a04
_lw gp,0x18(sp)
li s0,0x1
b 0x003c6a04
_sw zero,0x90(sp)
lw t9,-0x71b0(gp)
lw a0,0x5c(sp)
or a3,zero,zero
or a2,zero,zero
sw v0,0x10(sp)
jalr t9
_or a1,s0,zero
lw gp,0x18(sp)
b 0x003c7128
_lw a0,0x20(sp)
or s3,zero,zero
b 0x003c6be4
_li s4,0x1
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,s6,zero
lw gp,0x18(sp)
b 0x003c6d94
_lw a0,0x20(sp)
lw t9,-0x6054(gp)
addiu a0,sp,0x90
addiu t9,t9,0x5e4
bal 0x003c05e4
_lw a1,0x94(sp)
seb s0,v0
lw gp,0x18(sp)
b 0x003c6b08
_lbu v0,0x10(s1)
addiu v1,s7,0x1
b 0x003c690c
_sltiu v1,v1,0x1
lw v0,0x0(a0)
lw t9,0x28(v0)
jalr t9
_li s4,0x1
li v0,-0x1
lw a0,0x90(sp)
lw gp,0x18(sp)
beq a0,zero,0x003c68f8
_sw v0,0x94(sp)
b 0x003c68e8
_lw v0,0x8(a0)
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
beq v0,s0,0x003c7528
_lw gp,0x18(sp)
b 0x003c6e7c
_seb s0,v0
or s3,zero,zero
b 0x003c6928
_li s4,0x1
b 0x003c6d88
_li v0,0xf
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
li v1,-0x1
bne v0,v1,0x003c68f8
_lw gp,0x18(sp)
li s4,0x1
b 0x003c68f8
_sw zero,0x90(sp)
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
li v1,-0x1
lw gp,0x18(sp)
bne v0,v1,0x003c6990
_seb s0,v0
lw v0,0x3c(sp)
bne v0,zero,0x003c6d60
_sw zero,0x90(sp)
li v1,0xff
b 0x003c6edc
_li s0,-0x1
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
li v1,-0x1
bne v0,v1,0x003c6d20
_lw gp,0x18(sp)
lw s0,0x3c(sp)
b 0x003c6d20
_sw zero,0x90(sp)
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
li v1,-0x1
lw gp,0x18(sp)
bne v0,v1,0x003c6c68
_seb s0,v0
sw zero,0x90(sp)
b 0x003c6c68
_li s0,-0x1
lw v0,0x0(a0)
lw t9,0x24(v0)
jalr t9
_nop
beq v0,s0,0x003c755c
_lw gp,0x18(sp)
b 0x003c6880
_seb s0,v0
sw s3,0x3c(sp)
or s8,zero,zero
b 0x003c6a28
_or s3,zero,zero
sw s3,0x3c(sp)
or s8,zero,zero
b 0x003c6a28
_or s3,zero,zero
li s0,-0x1
b 0x003c6e7c
_sw zero,0x90(sp)
bne s0,zero,0x003c7550
_lw v0,0xa8(sp)
lw v1,0xa4(sp)
sw zero,0x0(v0)
li v0,0x4
b 0x003c6a70
_sw v0,0x0(v1)
sw zero,0x3c(sp)
b 0x003c6d78
_or s7,zero,zero
li s0,-0x1
b 0x003c6880
_sw zero,0x90(sp)
(translation_unit "undefined4 *\nFUN_003c6784(undefined4 *param_1,undefined4 param_2,int *param_3,int 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  int *piVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  uint uVar17;\n  int *local_res8;\n  int local_resc;\n  uint *local_68;\n  uint local_64;\n  uint local_60 [4];\n  uint local_50;\n  uint local_4c;\n  uint local_48;\n  uint local_44;\n  uint *local_40;\n  int local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  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  piVar11 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar13 = *piVar11;\n  if (iVar13 == 0) {\n                    /* try { // try from 003c72a4 to 003c72ab has its CatchHandler @ 003c75c8 */\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 003c72f0 to 003c72f7 has its CatchHandler @ 003c7598 */\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    iVar13 = *piVar11;\n  }\n  uVar14 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar14 == 0x40) {\n    uVar4 = 8;\n    if (local_res8 == (int *)0x0) goto LAB_003c7160;\nLAB_003c6834:\n    if (local_resc == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c684c;\nLAB_003c7170:\n    if ((param_6 == -1) == bVar15) goto LAB_003c717c;\nLAB_003c6864:\n    if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n      uVar12 = (uint)(char)local_resc;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12);\n    if (((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)) {\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }\n    if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)) goto LAB_003c6b0c;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 1;\n      uVar5 = local_res8[2];\nLAB_003c68e8:\n      local_resc = -1;\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }\n    }\n    else {\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\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 != bVar15) {\n      cVar9 = FUN_003c05e4(&local_res8,local_resc);\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    iVar3 = 0;\n    bVar15 = false;\n    if (uVar4 == 0x10) goto LAB_003c6bf0;\nLAB_003c692c:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = uVar4;\n    if (cVar9 == '\0') goto LAB_003c6944;\nLAB_003c6c10:\n    local_40 = local_60;\n    local_68 = local_60;\n    local_64 = 0;\n                    /* try { // try from 003c6c18 to 003c6c1f has its CatchHandler @ 003c7568 */\n    (*(code *)PTR_reserve_004c2458)(&local_68,0x20);\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    if (local_4c != 0) goto LAB_003c6c44;\nLAB_003c6964:\n    if (uVar14 == 0) {\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      local_resc = -1;\n      uVar14 = 0;\n                    /* try { // try from 003c7324 to 003c7397 has its CatchHandler @ 003c7568 */\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    /* try { // try from 003c7464 to 003c74cb has its CatchHandler @ 003c7568 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */\n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }\n    uVar17 = 0;\n    uVar5 = 0;\n    local_4c = uVar14;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar14 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c6834;\nLAB_003c7160:\n    bVar15 = local_resc == -1;\n    if (param_5 == (int *)0x0) goto LAB_003c7170;\nLAB_003c684c:\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 != bVar15) goto LAB_003c6864;\nLAB_003c717c:\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    local_38 = 0;\n    uVar12 = 0;\n    iVar3 = 0;\n    bVar15 = false;\nLAB_003c6be4:\n    if (uVar4 != 0x10) goto LAB_003c692c;\nLAB_003c6bf0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = 0x16;\n    if (cVar9 != '\0') goto LAB_003c6c10;\nLAB_003c6944:\n    local_68 = local_60;\n    local_64 = 0;\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (local_4c == 0) goto LAB_003c6964;\nLAB_003c6c44:\n    if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }\n  }\nLAB_003c6a28:\n  if (local_64 == 0) goto LAB_003c6a34;\nLAB_003c6d70:\n  uVar16 = (undefined1)iVar3;\n  local_48 = 0;\nLAB_003c6d78:\n  uVar14 = local_64;\n  uVar12 = local_64 + 1;\n  uVar4 = local_60[0];\n  if (local_68 == local_40) {\n    uVar4 = 0xf;\n  }\n  if (uVar4 < uVar12) {\n    (*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,0,0,1);\n  }\n  *(undefined1 *)((int)local_68 + uVar14) = uVar16;\n  *(undefined1 *)((int)local_68 + uVar12) = 0;\n  local_64 = uVar12;\n  iVar13 = std::__verify_grouping\n                     (*(char **)(iVar13 + 8),*(uint *)(iVar13 + 0xc),(string *)&local_68);\n  if (iVar13 == 0) {\n    *param_8 = 4;\n  }\n  if ((((iVar3 != 0) || (bVar15)) || (local_64 != 0)) && (local_48 == 0)) goto LAB_003c6de8;\nLAB_003c6a48:\n  *param_9 = 0;\n  *param_8 = 4;\nLAB_003c6a54:\n  if (local_4c != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_003c6a70:\n  *param_1 = local_res8;\n  param_1[1] = local_resc;\n  if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return param_1;\nLAB_003c6d60:\n  local_4c = 0;\n  if (local_64 != 0) goto LAB_003c6d70;\nLAB_003c6a34:\n  if ((iVar3 != 0) || (bVar15)) {\nLAB_003c6de8:\n    if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }\n    goto LAB_003c6a54;\n  }\n  goto LAB_003c6a48;\n}\n\n" (function_definition "undefined4 *\nFUN_003c6784(undefined4 *param_1,undefined4 param_2,int *param_3,int 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  int *piVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  uint uVar17;\n  int *local_res8;\n  int local_resc;\n  uint *local_68;\n  uint local_64;\n  uint local_60 [4];\n  uint local_50;\n  uint local_4c;\n  uint local_48;\n  uint local_44;\n  uint *local_40;\n  int local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  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  piVar11 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar13 = *piVar11;\n  if (iVar13 == 0) {\n                    /* try { // try from 003c72a4 to 003c72ab has its CatchHandler @ 003c75c8 */\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 003c72f0 to 003c72f7 has its CatchHandler @ 003c7598 */\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    iVar13 = *piVar11;\n  }\n  uVar14 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar14 == 0x40) {\n    uVar4 = 8;\n    if (local_res8 == (int *)0x0) goto LAB_003c7160;\nLAB_003c6834:\n    if (local_resc == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c684c;\nLAB_003c7170:\n    if ((param_6 == -1) == bVar15) goto LAB_003c717c;\nLAB_003c6864:\n    if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n      uVar12 = (uint)(char)local_resc;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12);\n    if (((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)) {\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }\n    if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)) goto LAB_003c6b0c;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 1;\n      uVar5 = local_res8[2];\nLAB_003c68e8:\n      local_resc = -1;\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }\n    }\n    else {\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\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 != bVar15) {\n      cVar9 = FUN_003c05e4(&local_res8,local_resc);\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    iVar3 = 0;\n    bVar15 = false;\n    if (uVar4 == 0x10) goto LAB_003c6bf0;\nLAB_003c692c:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = uVar4;\n    if (cVar9 == '\0') goto LAB_003c6944;\nLAB_003c6c10:\n    local_40 = local_60;\n    local_68 = local_60;\n    local_64 = 0;\n                    /* try { // try from 003c6c18 to 003c6c1f has its CatchHandler @ 003c7568 */\n    (*(code *)PTR_reserve_004c2458)(&local_68,0x20);\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    if (local_4c != 0) goto LAB_003c6c44;\nLAB_003c6964:\n    if (uVar14 == 0) {\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      local_resc = -1;\n      uVar14 = 0;\n                    /* try { // try from 003c7324 to 003c7397 has its CatchHandler @ 003c7568 */\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    /* try { // try from 003c7464 to 003c74cb has its CatchHandler @ 003c7568 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */\n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }\n    uVar17 = 0;\n    uVar5 = 0;\n    local_4c = uVar14;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar14 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c6834;\nLAB_003c7160:\n    bVar15 = local_resc == -1;\n    if (param_5 == (int *)0x0) goto LAB_003c7170;\nLAB_003c684c:\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 != bVar15) goto LAB_003c6864;\nLAB_003c717c:\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    local_38 = 0;\n    uVar12 = 0;\n    iVar3 = 0;\n    bVar15 = false;\nLAB_003c6be4:\n    if (uVar4 != 0x10) goto LAB_003c692c;\nLAB_003c6bf0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = 0x16;\n    if (cVar9 != '\0') goto LAB_003c6c10;\nLAB_003c6944:\n    local_68 = local_60;\n    local_64 = 0;\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (local_4c == 0) goto LAB_003c6964;\nLAB_003c6c44:\n    if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }\n  }\nLAB_003c6a28:\n  if (local_64 == 0) goto LAB_003c6a34;\nLAB_003c6d70:\n  uVar16 = (undefined1)iVar3;\n  local_48 = 0;\nLAB_003c6d78:\n  uVar14 = local_64;\n  uVar12 = local_64 + 1;\n  uVar4 = local_60[0];\n  if (local_68 == local_40) {\n    uVar4 = 0xf;\n  }\n  if (uVar4 < uVar12) {\n    (*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,0,0,1);\n  }\n  *(undefined1 *)((int)local_68 + uVar14) = uVar16;\n  *(undefined1 *)((int)local_68 + uVar12) = 0;\n  local_64 = uVar12;\n  iVar13 = std::__verify_grouping\n                     (*(char **)(iVar13 + 8),*(uint *)(iVar13 + 0xc),(string *)&local_68);\n  if (iVar13 == 0) {\n    *param_8 = 4;\n  }\n  if ((((iVar3 != 0) || (bVar15)) || (local_64 != 0)) && (local_48 == 0)) goto LAB_003c6de8;\nLAB_003c6a48:\n  *param_9 = 0;\n  *param_8 = 4;\nLAB_003c6a54:\n  if (local_4c != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_003c6a70:\n  *param_1 = local_res8;\n  param_1[1] = local_resc;\n  if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return param_1;\nLAB_003c6d60:\n  local_4c = 0;\n  if (local_64 != 0) goto LAB_003c6d70;\nLAB_003c6a34:\n  if ((iVar3 != 0) || (bVar15)) {\nLAB_003c6de8:\n    if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }\n    goto LAB_003c6a54;\n  }\n  goto LAB_003c6a48;\n}" type_identifier (pointer_declarator "*\nFUN_003c6784(undefined4 *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,\n            int param_6,int param_7,uint *param_8,uint *param_9)" * (function_declarator "FUN_003c6784(undefined4 *param_1,undefined4 param_2,int *param_3,int 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,int 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 "int param_4" primitive_type identifier) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "uint *param_8" type_identifier (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "uint *param_9" type_identifier (pointer_declarator "*param_9" * identifier)) )))) (compound_statement "{\n  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  int *piVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  uint uVar17;\n  int *local_res8;\n  int local_resc;\n  uint *local_68;\n  uint local_64;\n  uint local_60 [4];\n  uint local_50;\n  uint local_4c;\n  uint local_48;\n  uint local_44;\n  uint *local_40;\n  int local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  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  piVar11 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar13 = *piVar11;\n  if (iVar13 == 0) {\n                    /* try { // try from 003c72a4 to 003c72ab has its CatchHandler @ 003c75c8 */\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 003c72f0 to 003c72f7 has its CatchHandler @ 003c7598 */\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    iVar13 = *piVar11;\n  }\n  uVar14 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar14 == 0x40) {\n    uVar4 = 8;\n    if (local_res8 == (int *)0x0) goto LAB_003c7160;\nLAB_003c6834:\n    if (local_resc == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c684c;\nLAB_003c7170:\n    if ((param_6 == -1) == bVar15) goto LAB_003c717c;\nLAB_003c6864:\n    if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n      uVar12 = (uint)(char)local_resc;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12);\n    if (((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)) {\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }\n    if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)) goto LAB_003c6b0c;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 1;\n      uVar5 = local_res8[2];\nLAB_003c68e8:\n      local_resc = -1;\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }\n    }\n    else {\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\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 != bVar15) {\n      cVar9 = FUN_003c05e4(&local_res8,local_resc);\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    iVar3 = 0;\n    bVar15 = false;\n    if (uVar4 == 0x10) goto LAB_003c6bf0;\nLAB_003c692c:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = uVar4;\n    if (cVar9 == '\0') goto LAB_003c6944;\nLAB_003c6c10:\n    local_40 = local_60;\n    local_68 = local_60;\n    local_64 = 0;\n                    /* try { // try from 003c6c18 to 003c6c1f has its CatchHandler @ 003c7568 */\n    (*(code *)PTR_reserve_004c2458)(&local_68,0x20);\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    if (local_4c != 0) goto LAB_003c6c44;\nLAB_003c6964:\n    if (uVar14 == 0) {\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      local_resc = -1;\n      uVar14 = 0;\n                    /* try { // try from 003c7324 to 003c7397 has its CatchHandler @ 003c7568 */\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    /* try { // try from 003c7464 to 003c74cb has its CatchHandler @ 003c7568 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */\n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }\n    uVar17 = 0;\n    uVar5 = 0;\n    local_4c = uVar14;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar14 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c6834;\nLAB_003c7160:\n    bVar15 = local_resc == -1;\n    if (param_5 == (int *)0x0) goto LAB_003c7170;\nLAB_003c684c:\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 != bVar15) goto LAB_003c6864;\nLAB_003c717c:\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    local_38 = 0;\n    uVar12 = 0;\n    iVar3 = 0;\n    bVar15 = false;\nLAB_003c6be4:\n    if (uVar4 != 0x10) goto LAB_003c692c;\nLAB_003c6bf0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = 0x16;\n    if (cVar9 != '\0') goto LAB_003c6c10;\nLAB_003c6944:\n    local_68 = local_60;\n    local_64 = 0;\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (local_4c == 0) goto LAB_003c6964;\nLAB_003c6c44:\n    if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }\n  }\nLAB_003c6a28:\n  if (local_64 == 0) goto LAB_003c6a34;\nLAB_003c6d70:\n  uVar16 = (undefined1)iVar3;\n  local_48 = 0;\nLAB_003c6d78:\n  uVar14 = local_64;\n  uVar12 = local_64 + 1;\n  uVar4 = local_60[0];\n  if (local_68 == local_40) {\n    uVar4 = 0xf;\n  }\n  if (uVar4 < uVar12) {\n    (*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,0,0,1);\n  }\n  *(undefined1 *)((int)local_68 + uVar14) = uVar16;\n  *(undefined1 *)((int)local_68 + uVar12) = 0;\n  local_64 = uVar12;\n  iVar13 = std::__verify_grouping\n                     (*(char **)(iVar13 + 8),*(uint *)(iVar13 + 0xc),(string *)&local_68);\n  if (iVar13 == 0) {\n    *param_8 = 4;\n  }\n  if ((((iVar3 != 0) || (bVar15)) || (local_64 != 0)) && (local_48 == 0)) goto LAB_003c6de8;\nLAB_003c6a48:\n  *param_9 = 0;\n  *param_8 = 4;\nLAB_003c6a54:\n  if (local_4c != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_003c6a70:\n  *param_1 = local_res8;\n  param_1[1] = local_resc;\n  if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return param_1;\nLAB_003c6d60:\n  local_4c = 0;\n  if (local_64 != 0) goto LAB_003c6d70;\nLAB_003c6a34:\n  if ((iVar3 != 0) || (bVar15)) {\nLAB_003c6de8:\n    if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }\n    goto LAB_003c6a54;\n  }\n  goto LAB_003c6a48;\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 "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "undefined1 uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int *local_res8;" primitive_type (pointer_declarator "*local_res8" * identifier) ;) (declaration "int local_resc;" primitive_type identifier ;) (declaration "uint *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "uint local_60 [4];" type_identifier (array_declarator "local_60 [4]" identifier [ number_literal ]) ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "uint *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "uint local_34;" type_identifier 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 "piVar11 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);" (assignment_expression "piVar11 = (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 "iVar13 = *piVar11;" (assignment_expression "iVar13 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (if_statement "if (iVar13 == 0) {\n                    /* try { // try from 003c72a4 to 003c72ab has its CatchHandler @ 003c75c8 */\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 003c72f0 to 003c72f7 has its CatchHandler @ 003c7598 */\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    iVar13 = *piVar11;\n  }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* try { // try from 003c72a4 to 003c72ab has its CatchHandler @ 003c75c8 */\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 003c72f0 to 003c72f7 has its CatchHandler @ 003c7598 */\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    iVar13 = *piVar11;\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 "iVar13 = *piVar11;" (assignment_expression "iVar13 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) })) (expression_statement "uVar14 = *(uint *)(param_7 + 0xc) & 0x4a;" (assignment_expression "uVar14 = *(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 (uVar14 == 0x40) {\n    uVar4 = 8;\n    if (local_res8 == (int *)0x0) goto LAB_003c7160;\nLAB_003c6834:\n    if (local_resc == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c684c;\nLAB_003c7170:\n    if ((param_6 == -1) == bVar15) goto LAB_003c717c;\nLAB_003c6864:\n    if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n      uVar12 = (uint)(char)local_resc;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12);\n    if (((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)) {\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }\n    if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)) goto LAB_003c6b0c;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 1;\n      uVar5 = local_res8[2];\nLAB_003c68e8:\n      local_resc = -1;\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }\n    }\n    else {\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\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 != bVar15) {\n      cVar9 = FUN_003c05e4(&local_res8,local_resc);\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    iVar3 = 0;\n    bVar15 = false;\n    if (uVar4 == 0x10) goto LAB_003c6bf0;\nLAB_003c692c:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = uVar4;\n    if (cVar9 == '\0') goto LAB_003c6944;\nLAB_003c6c10:\n    local_40 = local_60;\n    local_68 = local_60;\n    local_64 = 0;\n                    /* try { // try from 003c6c18 to 003c6c1f has its CatchHandler @ 003c7568 */\n    (*(code *)PTR_reserve_004c2458)(&local_68,0x20);\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    if (local_4c != 0) goto LAB_003c6c44;\nLAB_003c6964:\n    if (uVar14 == 0) {\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      local_resc = -1;\n      uVar14 = 0;\n                    /* try { // try from 003c7324 to 003c7397 has its CatchHandler @ 003c7568 */\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    /* try { // try from 003c7464 to 003c74cb has its CatchHandler @ 003c7568 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */\n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }\n    uVar17 = 0;\n    uVar5 = 0;\n    local_4c = uVar14;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar14 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c6834;\nLAB_003c7160:\n    bVar15 = local_resc == -1;\n    if (param_5 == (int *)0x0) goto LAB_003c7170;\nLAB_003c684c:\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 != bVar15) goto LAB_003c6864;\nLAB_003c717c:\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    local_38 = 0;\n    uVar12 = 0;\n    iVar3 = 0;\n    bVar15 = false;\nLAB_003c6be4:\n    if (uVar4 != 0x10) goto LAB_003c692c;\nLAB_003c6bf0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = 0x16;\n    if (cVar9 != '\0') goto LAB_003c6c10;\nLAB_003c6944:\n    local_68 = local_60;\n    local_64 = 0;\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (local_4c == 0) goto LAB_003c6964;\nLAB_003c6c44:\n    if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }\n  }" if (parenthesized_expression "(uVar14 == 0x40)" ( (binary_expression "uVar14 == 0x40" identifier == number_literal) )) (compound_statement "{\n    uVar4 = 8;\n    if (local_res8 == (int *)0x0) goto LAB_003c7160;\nLAB_003c6834:\n    if (local_resc == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c684c;\nLAB_003c7170:\n    if ((param_6 == -1) == bVar15) goto LAB_003c717c;\nLAB_003c6864:\n    if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n      uVar12 = (uint)(char)local_resc;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12);\n    if (((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)) {\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }\n    if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)) goto LAB_003c6b0c;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 1;\n      uVar5 = local_res8[2];\nLAB_003c68e8:\n      local_resc = -1;\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }\n    }\n    else {\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\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 != bVar15) {\n      cVar9 = FUN_003c05e4(&local_res8,local_resc);\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    iVar3 = 0;\n    bVar15 = false;\n    if (uVar4 == 0x10) goto LAB_003c6bf0;\nLAB_003c692c:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = uVar4;\n    if (cVar9 == '\0') goto LAB_003c6944;\nLAB_003c6c10:\n    local_40 = local_60;\n    local_68 = local_60;\n    local_64 = 0;\n                    /* try { // try from 003c6c18 to 003c6c1f has its CatchHandler @ 003c7568 */\n    (*(code *)PTR_reserve_004c2458)(&local_68,0x20);\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    if (local_4c != 0) goto LAB_003c6c44;\nLAB_003c6964:\n    if (uVar14 == 0) {\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      local_resc = -1;\n      uVar14 = 0;\n                    /* try { // try from 003c7324 to 003c7397 has its CatchHandler @ 003c7568 */\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    /* try { // try from 003c7464 to 003c74cb has its CatchHandler @ 003c7568 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */\n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }\n    uVar17 = 0;\n    uVar5 = 0;\n    local_4c = uVar14;\n  }" { (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" identifier = number_literal) ;) (if_statement "if (local_res8 == (int *)0x0) goto LAB_003c7160;" 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_003c7160;" goto statement_identifier ;)) (labeled_statement "LAB_003c6834:\n    if (local_resc == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }" statement_identifier : (if_statement "if (local_resc == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }" if (parenthesized_expression "(local_resc == -1)" ( (binary_expression "local_resc == -1" identifier == number_literal) )) (compound_statement "{\n      bVar15 = 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        bVar15 = true;\n      }\n    }" { (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = 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        bVar15 = 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        bVar15 = 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 "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) })) }) (else_clause "else {\n      bVar15 = false;\n    }" else (compound_statement "{\n      bVar15 = false;\n    }" { (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) })))) (if_statement "if (param_5 != (int *)0x0) goto LAB_003c684c;" 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_003c684c;" goto statement_identifier ;)) (labeled_statement "LAB_003c7170:\n    if ((param_6 == -1) == bVar15) goto LAB_003c717c;" statement_identifier : (if_statement "if ((param_6 == -1) == bVar15) goto LAB_003c717c;" if (parenthesized_expression "((param_6 == -1) == bVar15)" ( (binary_expression "(param_6 == -1) == bVar15" (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) == identifier) )) (goto_statement "goto LAB_003c717c;" goto statement_identifier ;))) (labeled_statement "LAB_003c6864:\n    if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n      uVar12 = (uint)(char)local_resc;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }" statement_identifier : (if_statement "if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n      uVar12 = (uint)(char)local_resc;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }" if (parenthesized_expression "((local_res8 == (int *)0x0) || (local_resc != -1))" ( (binary_expression "(local_res8 == (int *)0x0) || (local_resc != -1)" (parenthesized_expression "(local_res8 == (int *)0x0)" ( (binary_expression "local_res8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_resc != -1)" ( (binary_expression "local_resc != -1" identifier != number_literal) ))) )) (compound_statement "{\n      uVar12 = (uint)(char)local_resc;\n    }" { (expression_statement "uVar12 = (uint)(char)local_resc;" (assignment_expression "uVar12 = (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      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }" else (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (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      uVar12 = (uint)*(char *)local_res8[2];\n    }" { (expression_statement "uVar12 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar12 = (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        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }" else (compound_statement "{\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (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        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }" { (expression_statement "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 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        uVar12 = (uint)(char)iVar3;\n      }" else (compound_statement "{\n        uVar12 = (uint)(char)iVar3;\n      }" { (expression_statement "uVar12 = (uint)(char)iVar3;" (assignment_expression "uVar12 = (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 *)(iVar13 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar13 + 0x10)" identifier = (pointer_expression "*(char *)(iVar13 + 0x10)" * (cast_expression "(char *)(iVar13 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12);" (assignment_expression "local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12)" identifier = (call_expression "(uint)((int)*(char *)(iVar13 + 0x4a) == uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)*(char *)(iVar13 + 0x4a) == uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x4a) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x4a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x4a)" * (cast_expression "(char *)(iVar13 + 0x4a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x4a)" ( (binary_expression "iVar13 + 0x4a" identifier + number_literal) ))))) == identifier) )))) ;) (if_statement "if (((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)) {\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }" if (parenthesized_expression "(((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12))" ( (binary_expression "((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)" (parenthesized_expression "((int)*(char *)(iVar13 + 0x4a) != uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x4a) != uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x4a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x4a)" * (cast_expression "(char *)(iVar13 + 0x4a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x4a)" ( (binary_expression "iVar13 + 0x4a" identifier + number_literal) ))))) != identifier) )) && (parenthesized_expression "((int)*(char *)(iVar13 + 0x4b) != uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x4b) != uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x4b)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x4b)" * (cast_expression "(char *)(iVar13 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x4b)" ( (binary_expression "iVar13 + 0x4b" identifier + number_literal) ))))) != identifier) ))) )) (compound_statement "{\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }" { (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (labeled_statement "LAB_003c6b0c:\n      iVar3 = 0;" statement_identifier : (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;)) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (do_statement "do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);" do (compound_statement "{\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      }" { (if_statement "if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;" if (parenthesized_expression "(((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12))" ( (binary_expression "((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)" (parenthesized_expression "((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12))" ( (binary_expression "(cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)" (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((int)*(char *)(iVar13 + 0x25) == uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x25) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x25)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x25)" * (cast_expression "(char *)(iVar13 + 0x25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x25)" ( (binary_expression "iVar13 + 0x25" identifier + number_literal) ))))) == identifier) ))) )) || (parenthesized_expression "((int)*(char *)(iVar13 + 0x24) == uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x24) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x24)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x24)" * (cast_expression "(char *)(iVar13 + 0x24)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x24)" ( (binary_expression "iVar13 + 0x24" identifier + number_literal) ))))) == identifier) ))) )) (break_statement "break;" break ;)) (if_statement "if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }" if (parenthesized_expression "((int)*(char *)(iVar13 + 0x4e) == uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x4e) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x4e)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x4e)" * (cast_expression "(char *)(iVar13 + 0x4e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x4e)" ( (binary_expression "iVar13 + 0x4e" identifier + number_literal) ))))) == identifier) )) (compound_statement "{\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }" { (if_statement "if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }" { (if_statement "if (uVar4 != 10) goto LAB_003c6b4c;" if (parenthesized_expression "(uVar4 != 10)" ( (binary_expression "uVar4 != 10" identifier != number_literal) )) (goto_statement "goto LAB_003c6b4c;" goto statement_identifier ;)) (if_statement "if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 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_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }" else (compound_statement "{\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }" { (labeled_statement "LAB_003c6ff4:\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 "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) }))) }) (else_clause "else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }" else (compound_statement "{\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }" { (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) (if_statement "if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 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_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }" else (compound_statement "{\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }" { (if_statement "if (uVar4 != 8) goto LAB_003c6ff4;" if (parenthesized_expression "(uVar4 != 8)" ( (binary_expression "uVar4 != 8" identifier != number_literal) )) (goto_statement "goto LAB_003c6ff4;" goto statement_identifier ;)) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) }))) }))) (labeled_statement "LAB_003c6b80:\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_003c6b98;" 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_003c6b98;" goto statement_identifier ;)) (labeled_statement "LAB_003c6e28:\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 "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c6ba8;" 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_003c6ba8;" goto statement_identifier ;)) (if_statement "if (param_5 == (int *)0x0) goto LAB_003c6e58;" 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_003c6e58;" goto statement_identifier ;)) (labeled_statement "LAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\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              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\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              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\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              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\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              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }" { (expression_statement "local_50 = uVar5;" (assignment_expression "local_50 = uVar5" identifier = identifier) ;) (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) )))) ;) (expression_statement "uVar5 = local_50;" (assignment_expression "uVar5 = local_50" identifier = identifier) ;) (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) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }" if (parenthesized_expression "(uVar17 == uVar5)" ( (binary_expression "uVar17 == uVar5" identifier == identifier) )) (compound_statement "{\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }" { (labeled_statement "LAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);" statement_identifier : (expression_statement "cVar9 = *(char *)(iVar13 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar13 + 0x10)" identifier = (pointer_expression "*(char *)(iVar13 + 0x10)" * (cast_expression "(char *)(iVar13 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_003c6be4;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }" else (compound_statement "{\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }" { (if_statement "if (!bVar15) break;" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }" statement_identifier : (if_statement "if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }" if (parenthesized_expression "(((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             )" ( (binary_expression "((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)" (parenthesized_expression "((int)*(char *)(iVar13 + 0x4c) != uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x4c) != uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x4c)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x4c)" * (cast_expression "(char *)(iVar13 + 0x4c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x4c)" ( (binary_expression "iVar13 + 0x4c" identifier + number_literal) ))))) != identifier) )) && (parenthesized_expression "((int)*(char *)(iVar13 + 0x4d) != uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x4d) != uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x4d)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x4d)" * (cast_expression "(char *)(iVar13 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x4d)" ( (binary_expression "iVar13 + 0x4d" identifier + number_literal) ))))) != identifier) ))) )) (compound_statement "{\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) (goto_statement "goto LAB_003c6be4;" goto statement_identifier ;) }))) (if_statement "if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (compound_statement "{\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }" { (if_statement "if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }" if (parenthesized_expression "(uVar4 == 0x10)" ( (binary_expression "uVar4 == 0x10" identifier == number_literal) )) (compound_statement "{\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (goto_statement "goto LAB_003c6b80;" goto statement_identifier ;) })) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) (goto_statement "goto LAB_003c692c;" goto statement_identifier ;) })) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = 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_003c6e28;" 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_003c6e28;" goto statement_identifier ;)) (labeled_statement "LAB_003c6b98:\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_003c6ba8:\n          local_resc = -1;" statement_identifier : (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" 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            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\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            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }" { (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (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 "uVar5 = local_50;" (assignment_expression "uVar5 = local_50" identifier = identifier) ;) (if_statement "if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }" if (parenthesized_expression "(iVar8 == -1)" ( (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_003c6bc8;" 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_003c6bc8;" goto statement_identifier ;)) (labeled_statement "LAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;" statement_identifier : (if_statement "if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;" if (parenthesized_expression "((param_6 == -1) == uVar5)" ( (binary_expression "(param_6 == -1) == uVar5" (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) == identifier) )) (goto_statement "goto LAB_003c6bdc;" goto statement_identifier ;))) }))) (if_statement "if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }" if (parenthesized_expression "((local_res8 == (int *)0x0) || (local_resc != -1))" ( (binary_expression "(local_res8 == (int *)0x0) || (local_resc != -1)" (parenthesized_expression "(local_res8 == (int *)0x0)" ( (binary_expression "local_res8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_resc != -1)" ( (binary_expression "local_resc != -1" identifier != number_literal) ))) )) (compound_statement "{\n          uVar12 = (uint)(char)local_resc;\n        }" { (expression_statement "uVar12 = (uint)(char)local_resc;" (assignment_expression "uVar12 = (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          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }" else (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (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          uVar12 = (uint)*(char *)local_res8[2];\n        }" { (expression_statement "uVar12 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar12 = (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            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }" else (compound_statement "{\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (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            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }" { (expression_statement "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 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            uVar12 = (uint)(char)iVar8;\n          }" else (compound_statement "{\n            uVar12 = (uint)(char)iVar8;\n          }" { (expression_statement "uVar12 = (uint)(char)iVar8;" (assignment_expression "uVar12 = (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 "cVar9 = *(char *)(iVar13 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar13 + 0x10)" identifier = (pointer_expression "*(char *)(iVar13 + 0x10)" * (cast_expression "(char *)(iVar13 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_003c6be4;" goto statement_identifier ;) })) (if_statement "if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)) goto LAB_003c6b0c;" if (parenthesized_expression "(((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12))" ( (binary_expression "((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)" (parenthesized_expression "((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12))" ( (binary_expression "(cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)" (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((int)*(char *)(iVar13 + 0x25) == uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x25) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x25)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x25)" * (cast_expression "(char *)(iVar13 + 0x25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x25)" ( (binary_expression "iVar13 + 0x25" identifier + number_literal) ))))) == identifier) ))) )) || (parenthesized_expression "((int)*(char *)(iVar13 + 0x24) == uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x24) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x24)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x24)" * (cast_expression "(char *)(iVar13 + 0x24)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x24)" ( (binary_expression "iVar13 + 0x24" identifier + number_literal) ))))) == identifier) ))) )) (goto_statement "goto LAB_003c6b0c;" 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_003c68e8:\n      local_resc = -1;\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }\n    }\n    else {\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\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_003c68e8:\n      local_resc = -1;\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = 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_003c68e8:\n      local_resc = -1;" statement_identifier : (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;)) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (if_statement "if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }" if (parenthesized_expression "(((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1))" ( (binary_expression "((uint)local_res8[3] <= uVar5) &&\n         (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        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }" { (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = 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      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\n      }\n    }" else (compound_statement "{\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\n      }\n    }" { (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) (expression_statement "(**(code **)(*local_res8 + 0x28))();" (call_expression "(**(code **)(*local_res8 + 0x28))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x28))" ( (pointer_expression "**(code **)(*local_res8 + 0x28)" * (pointer_expression "*(code **)(*local_res8 + 0x28)" * (cast_expression "(code **)(*local_res8 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x28)" ( (binary_expression "*local_res8 + 0x28" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;) (if_statement "if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\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_003c68e8;\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_003c68e8;" 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 != bVar15) {\n      cVar9 = FUN_003c05e4(&local_res8,local_resc);\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\n    }" if (parenthesized_expression "(bVar10 != bVar15)" ( (binary_expression "bVar10 != bVar15" identifier != identifier) )) (compound_statement "{\n      cVar9 = FUN_003c05e4(&local_res8,local_resc);\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\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 "uVar12 = (uint)cVar9;" (assignment_expression "uVar12 = (uint)cVar9" identifier = (cast_expression "(uint)cVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "cVar9 = *(char *)(iVar13 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar13 + 0x10)" identifier = (pointer_expression "*(char *)(iVar13 + 0x10)" * (cast_expression "(char *)(iVar13 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_003c6b0c;" goto statement_identifier ;) })) (expression_statement "cVar9 = *(char *)(iVar13 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar13 + 0x10)" identifier = (pointer_expression "*(char *)(iVar13 + 0x10)" * (cast_expression "(char *)(iVar13 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (if_statement "if (uVar4 == 0x10) goto LAB_003c6bf0;" if (parenthesized_expression "(uVar4 == 0x10)" ( (binary_expression "uVar4 == 0x10" identifier == number_literal) )) (goto_statement "goto LAB_003c6bf0;" goto statement_identifier ;)) (labeled_statement "LAB_003c692c:\n    local_60[0] = local_60[0] & 0xffffff;" statement_identifier : (expression_statement "local_60[0] = local_60[0] & 0xffffff;" (assignment_expression "local_60[0] = local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) = (binary_expression "local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) & number_literal)) ;)) (expression_statement "local_44 = uVar4;" (assignment_expression "local_44 = uVar4" identifier = identifier) ;) (if_statement "if (cVar9 == '\0') goto LAB_003c6944;" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_003c6944;" goto statement_identifier ;)) (labeled_statement "LAB_003c6c10:\n    local_40 = local_60;" statement_identifier : (expression_statement "local_40 = local_60;" (assignment_expression "local_40 = local_60" identifier = identifier) ;)) (expression_statement "local_68 = local_60;" (assignment_expression "local_68 = local_60" identifier = identifier) ;) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) comment (expression_statement "(*(code *)PTR_reserve_004c2458)(&local_68,0x20);" (call_expression "(*(code *)PTR_reserve_004c2458)(&local_68,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_68,0x20)" ( (pointer_expression "&local_68" & identifier) , number_literal ))) ;) (expression_statement "local_4c = (uint)*(byte *)(iVar13 + 100);" (assignment_expression "local_4c = (uint)*(byte *)(iVar13 + 100)" identifier = (binary_expression "(uint)*(byte *)(iVar13 + 100)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar13 + 100)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 100)" ( (binary_expression "iVar13 + 100" identifier + number_literal) ))))) ;) (if_statement "if (uVar4 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "local_50 = 0xffffffff / uVar4;" (assignment_expression "local_50 = 0xffffffff / uVar4" identifier = (binary_expression "0xffffffff / uVar4" number_literal / identifier)) ;) (if_statement "if (local_4c != 0) goto LAB_003c6c44;" if (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) (goto_statement "goto LAB_003c6c44;" goto statement_identifier ;)) (labeled_statement "LAB_003c6964:\n    if (uVar14 == 0) {\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      local_resc = -1;\n      uVar14 = 0;\n                    /* try { // try from 003c7324 to 003c7397 has its CatchHandler @ 003c7568 */\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    /* try { // try from 003c7464 to 003c74cb has its CatchHandler @ 003c7568 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */\n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }" statement_identifier : (if_statement "if (uVar14 == 0) {\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      local_resc = -1;\n      uVar14 = 0;\n                    /* try { // try from 003c7324 to 003c7397 has its CatchHandler @ 003c7568 */\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    /* try { // try from 003c7464 to 003c74cb has its CatchHandler @ 003c7568 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */\n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      local_resc = -1;\n      uVar14 = 0;\n                    /* try { // try from 003c7324 to 003c7397 has its CatchHandler @ 003c7568 */\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    /* try { // try from 003c7464 to 003c74cb has its CatchHandler @ 003c7568 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */\n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "local_4c = (uint)(local_44 < 0xb);" (assignment_expression "local_4c = (uint)(local_44 < 0xb)" identifier = (call_expression "(uint)(local_44 < 0xb)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_44 < 0xb)" ( (binary_expression "local_44 < 0xb" identifier < number_literal) )))) ;) (expression_statement "local_48 = (uint)(char)((char)local_44 + '0');" (assignment_expression "local_48 = (uint)(char)((char)local_44 + '0')" identifier = (call_expression "(uint)(char)((char)local_44 + '0')" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) (argument_list "((char)local_44 + '0')" ( (binary_expression "(char)local_44 + '0'" (cast_expression "(char)local_44" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'0'" ' character ')) )))) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "local_44 = (uint)(param_6 == -1);" (assignment_expression "local_44 = (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_003c6990:\n      uVar14 = uVar12 & 0xff;" statement_identifier : (expression_statement "uVar14 = uVar12 & 0xff;" (assignment_expression "uVar14 = uVar12 & 0xff" identifier = (binary_expression "uVar12 & 0xff" identifier & number_literal)) ;)) (if_statement "if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;" if (parenthesized_expression "(local_4c == 0)" ( (binary_expression "local_4c == 0" identifier == number_literal) )) (compound_statement "{\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }" { (if_statement "if (9 < uVar14 - 0x30) goto LAB_003c6edc;" if (parenthesized_expression "(9 < uVar14 - 0x30)" ( (binary_expression "9 < uVar14 - 0x30" number_literal < (binary_expression "uVar14 - 0x30" identifier - number_literal)) )) (goto_statement "goto LAB_003c6edc;" goto statement_identifier ;)) }) (else_clause "else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;" else (if_statement "if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;" if (parenthesized_expression "(((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12))" ( (binary_expression "((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)" (parenthesized_expression "((int)uVar12 < 0x30)" ( (binary_expression "(int)uVar12 < 0x30" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "((int)local_48 <= (int)uVar12)" ( (binary_expression "(int)local_48 <= (int)uVar12" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (goto_statement "goto LAB_003c6d60;" goto statement_identifier ;)))) (expression_statement "uVar12 = uVar12 - 0x30;" (assignment_expression "uVar12 = uVar12 - 0x30" identifier = (binary_expression "uVar12 - 0x30" identifier - number_literal)) ;) (labeled_statement "LAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;" statement_identifier : (if_statement "if (uVar5 <= local_50) goto LAB_003c6efc;" if (parenthesized_expression "(uVar5 <= local_50)" ( (binary_expression "uVar5 <= local_50" identifier <= identifier) )) (goto_statement "goto LAB_003c6efc;" goto statement_identifier ;))) (labeled_statement "LAB_003c69c8:\n      uVar14 = local_res8[2];" statement_identifier : (expression_statement "uVar14 = local_res8[2];" (assignment_expression "uVar14 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;)) (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" identifier = number_literal) ;) (if_statement "if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;" if (parenthesized_expression "((uint)local_res8[3] <= uVar14)" ( (binary_expression "(uint)local_res8[3] <= uVar14" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= identifier) )) (goto_statement "goto LAB_003c6f2c;" goto statement_identifier ;)) (labeled_statement "LAB_003c69e0:\n      local_res8[2] = uVar14 + 1;" statement_identifier : (expression_statement "local_res8[2] = uVar14 + 1;" (assignment_expression "local_res8[2] = uVar14 + 1" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "uVar14 + 1" identifier + number_literal)) ;)) (labeled_statement "LAB_003c69f0:\n      local_resc = -1;" statement_identifier : (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;)) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) comment (if_statement "if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 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        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }" { (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 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_003c6f5c;" 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_003c6f5c;" goto statement_identifier ;)) (while_statement "while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    /* try { // try from 003c7464 to 003c74cb has its CatchHandler @ 003c7568 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */\n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    /* try { // try from 003c7464 to 003c74cb has its CatchHandler @ 003c7568 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */\n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }" { (if_statement "if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (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                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\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 "uVar12 = (uint)(iVar8 == -1);" (assignment_expression "uVar12 = (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          uVar12 = 0;\n        }" else (compound_statement "{\n          uVar12 = 0;\n        }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) }))) (if_statement "if (uVar12 == uVar14) break;" if (parenthesized_expression "(uVar12 == uVar14)" ( (binary_expression "uVar12 == uVar14" identifier == identifier) )) (break_statement "break;" break ;)) (while_statement "while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    /* try { // try from 003c7464 to 003c74cb has its CatchHandler @ 003c7568 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */\n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    /* try { // try from 003c7464 to 003c74cb has its CatchHandler @ 003c7568 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */\n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }" { (if_statement "if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }" if (parenthesized_expression "((local_res8 == (int *)0x0) || (local_resc != -1))" ( (binary_expression "(local_res8 == (int *)0x0) || (local_resc != -1)" (parenthesized_expression "(local_res8 == (int *)0x0)" ( (binary_expression "local_res8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_resc != -1)" ( (binary_expression "local_resc != -1" identifier != number_literal) ))) )) (compound_statement "{\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }" { (expression_statement "uVar12 = (uint)(char)local_resc;" (assignment_expression "uVar12 = (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))) ;) (goto_statement "goto LAB_003c6990;" goto statement_identifier ;) })) (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\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            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }" { (expression_statement "uVar12 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar12 = (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_003c6990;" 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 "uVar12 = (uint)(char)iVar8;" (assignment_expression "uVar12 = (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_003c6990;" if (parenthesized_expression "(iVar8 != -1)" ( (binary_expression "iVar8 != -1" identifier != number_literal) )) (goto_statement "goto LAB_003c6990;" goto statement_identifier ;)) (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_4c != 0) goto LAB_003c6d60;" if (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) (goto_statement "goto LAB_003c6d60;" goto statement_identifier ;)) (expression_statement "uVar14 = 0xff;" (assignment_expression "uVar14 = 0xff" identifier = number_literal) ;) (expression_statement "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 0xffffffff" identifier = number_literal) ;) (labeled_statement "LAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }" statement_identifier : (if_statement "if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }" if (parenthesized_expression "(5 < uVar14 - 0x61)" ( (binary_expression "5 < uVar14 - 0x61" number_literal < (binary_expression "uVar14 - 0x61" identifier - number_literal)) )) (compound_statement "{\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }" { (expression_statement "uVar12 = uVar12 - 0x37;" (assignment_expression "uVar12 = uVar12 - 0x37" identifier = (binary_expression "uVar12 - 0x37" identifier - number_literal)) ;) (if_statement "if (uVar14 - 0x41 < 6) goto LAB_003c69bc;" if (parenthesized_expression "(uVar14 - 0x41 < 6)" ( (binary_expression "uVar14 - 0x41 < 6" (binary_expression "uVar14 - 0x41" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_003c69bc;" goto statement_identifier ;)) (goto_statement "goto LAB_003c6d60;" goto statement_identifier ;) }))) (expression_statement "uVar12 = uVar12 - 0x57;" (assignment_expression "uVar12 = uVar12 - 0x57" identifier = (binary_expression "uVar12 - 0x57" identifier - number_literal)) ;) (if_statement "if (local_50 < uVar5) goto LAB_003c69c8;" if (parenthesized_expression "(local_50 < uVar5)" ( (binary_expression "local_50 < uVar5" identifier < identifier) )) (goto_statement "goto LAB_003c69c8;" goto statement_identifier ;)) (labeled_statement "LAB_003c6efc:\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 "uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;" (assignment_expression "uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5" identifier = (binary_expression "uVar17 | ~uVar12 < uVar4 * uVar5" identifier | (binary_expression "~uVar12 < uVar4 * uVar5" (unary_expression "~uVar12" ~ identifier) < (binary_expression "uVar4 * uVar5" identifier * identifier)))) ;) (expression_statement "uVar14 = local_res8[2];" (assignment_expression "uVar14 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = uVar12 + uVar4 * uVar5;" (assignment_expression "uVar5 = uVar12 + uVar4 * uVar5" identifier = (binary_expression "uVar12 + uVar4 * uVar5" identifier + (binary_expression "uVar4 * uVar5" identifier * identifier))) ;) (if_statement "if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;" if (parenthesized_expression "(uVar14 < (uint)local_res8[3])" ( (binary_expression "uVar14 < (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_003c69e0;" goto statement_identifier ;)) (labeled_statement "LAB_003c6f2c:\n                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */\n          (**(code **)(*local_res8 + 0x28))();" statement_identifier : comment (expression_statement "(**(code **)(*local_res8 + 0x28))();" (call_expression "(**(code **)(*local_res8 + 0x28))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x28))" ( (pointer_expression "**(code **)(*local_res8 + 0x28)" * (pointer_expression "*(code **)(*local_res8 + 0x28)" * (cast_expression "(code **)(*local_res8 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x28)" ( (binary_expression "*local_res8 + 0x28" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;)) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c69f0;" 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_003c69f0;" goto statement_identifier ;)) (if_statement "if (param_5 != (int *)0x0) break;" 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)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;" statement_identifier : (if_statement "if (local_44 == uVar14) goto LAB_003c6a24;" if (parenthesized_expression "(local_44 == uVar14)" ( (binary_expression "local_44 == uVar14" identifier == identifier) )) (goto_statement "goto LAB_003c6a24;" goto statement_identifier ;))) })) })) (labeled_statement "LAB_003c6a24:\n      local_4c = 1;" statement_identifier : (expression_statement "local_4c = 1;" (assignment_expression "local_4c = 1" identifier = number_literal) ;)) (goto_statement "goto LAB_003c6a28;" goto statement_identifier ;) }))) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "local_4c = uVar14;" (assignment_expression "local_4c = uVar14" identifier = identifier) ;) }) (else_clause "else {\n    uVar4 = 10;\n    if (uVar14 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c6834;\nLAB_003c7160:\n    bVar15 = local_resc == -1;\n    if (param_5 == (int *)0x0) goto LAB_003c7170;\nLAB_003c684c:\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 != bVar15) goto LAB_003c6864;\nLAB_003c717c:\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    local_38 = 0;\n    uVar12 = 0;\n    iVar3 = 0;\n    bVar15 = false;\nLAB_003c6be4:\n    if (uVar4 != 0x10) goto LAB_003c692c;\nLAB_003c6bf0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = 0x16;\n    if (cVar9 != '\0') goto LAB_003c6c10;\nLAB_003c6944:\n    local_68 = local_60;\n    local_64 = 0;\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (local_4c == 0) goto LAB_003c6964;\nLAB_003c6c44:\n    if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }\n  }" else (compound_statement "{\n    uVar4 = 10;\n    if (uVar14 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c6834;\nLAB_003c7160:\n    bVar15 = local_resc == -1;\n    if (param_5 == (int *)0x0) goto LAB_003c7170;\nLAB_003c684c:\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 != bVar15) goto LAB_003c6864;\nLAB_003c717c:\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    local_38 = 0;\n    uVar12 = 0;\n    iVar3 = 0;\n    bVar15 = false;\nLAB_003c6be4:\n    if (uVar4 != 0x10) goto LAB_003c692c;\nLAB_003c6bf0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = 0x16;\n    if (cVar9 != '\0') goto LAB_003c6c10;\nLAB_003c6944:\n    local_68 = local_60;\n    local_64 = 0;\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (local_4c == 0) goto LAB_003c6964;\nLAB_003c6c44:\n    if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }\n  }" { (expression_statement "uVar4 = 10;" (assignment_expression "uVar4 = 10" identifier = number_literal) ;) (if_statement "if (uVar14 == 8) {\n      uVar4 = 0x10;\n    }" if (parenthesized_expression "(uVar14 == 8)" ( (binary_expression "uVar14 == 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_003c6834;" 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_003c6834;" goto statement_identifier ;)) (labeled_statement "LAB_003c7160:\n    bVar15 = local_resc == -1;" statement_identifier : (expression_statement "bVar15 = local_resc == -1;" (assignment_expression "bVar15 = local_resc == -1" identifier = (binary_expression "local_resc == -1" identifier == number_literal)) ;)) (if_statement "if (param_5 == (int *)0x0) goto LAB_003c7170;" 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_003c7170;" goto statement_identifier ;)) (labeled_statement "LAB_003c684c:\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 != bVar15) goto LAB_003c6864;" if (parenthesized_expression "(bVar10 != bVar15)" ( (binary_expression "bVar10 != bVar15" identifier != identifier) )) (goto_statement "goto LAB_003c6864;" goto statement_identifier ;)) (labeled_statement "LAB_003c717c:\n    cVar9 = *(char *)(iVar13 + 0x10);" statement_identifier : (expression_statement "cVar9 = *(char *)(iVar13 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar13 + 0x10)" identifier = (pointer_expression "*(char *)(iVar13 + 0x10)" * (cast_expression "(char *)(iVar13 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (labeled_statement "LAB_003c6be4:\n    if (uVar4 != 0x10) goto LAB_003c692c;" statement_identifier : (if_statement "if (uVar4 != 0x10) goto LAB_003c692c;" if (parenthesized_expression "(uVar4 != 0x10)" ( (binary_expression "uVar4 != 0x10" identifier != number_literal) )) (goto_statement "goto LAB_003c692c;" goto statement_identifier ;))) (labeled_statement "LAB_003c6bf0:\n    local_60[0] = local_60[0] & 0xffffff;" statement_identifier : (expression_statement "local_60[0] = local_60[0] & 0xffffff;" (assignment_expression "local_60[0] = local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) = (binary_expression "local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) & number_literal)) ;)) (expression_statement "local_44 = 0x16;" (assignment_expression "local_44 = 0x16" identifier = number_literal) ;) (if_statement "if (cVar9 != '\0') goto LAB_003c6c10;" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_003c6c10;" goto statement_identifier ;)) (labeled_statement "LAB_003c6944:\n    local_68 = local_60;" statement_identifier : (expression_statement "local_68 = local_60;" (assignment_expression "local_68 = local_60" identifier = identifier) ;)) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "local_4c = (uint)*(byte *)(iVar13 + 100);" (assignment_expression "local_4c = (uint)*(byte *)(iVar13 + 100)" identifier = (binary_expression "(uint)*(byte *)(iVar13 + 100)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar13 + 100)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 100)" ( (binary_expression "iVar13 + 100" identifier + number_literal) ))))) ;) (if_statement "if (uVar4 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "local_50 = 0xffffffff / uVar4;" (assignment_expression "local_50 = 0xffffffff / uVar4" identifier = (binary_expression "0xffffffff / uVar4" number_literal / identifier)) ;) (expression_statement "local_40 = local_68;" (assignment_expression "local_40 = local_68" identifier = identifier) ;) (if_statement "if (local_4c == 0) goto LAB_003c6964;" if (parenthesized_expression "(local_4c == 0)" ( (binary_expression "local_4c == 0" identifier == number_literal) )) (goto_statement "goto LAB_003c6964;" goto statement_identifier ;)) (labeled_statement "LAB_003c6c44:\n    if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }" statement_identifier : (if_statement "if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (compound_statement "{\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }" { (expression_statement "local_2c = &local_68;" (assignment_expression "local_2c = &local_68" identifier = (pointer_expression "&local_68" & 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 "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "local_3c = iVar13 + 0x4e;" (assignment_expression "local_3c = iVar13 + 0x4e" identifier = (binary_expression "iVar13 + 0x4e" identifier + number_literal)) ;) (labeled_statement "LAB_003c6c68:\n      iVar8 = local_3c;" statement_identifier : (expression_statement "iVar8 = local_3c;" (assignment_expression "iVar8 = local_3c" identifier = identifier) ;)) (expression_statement "uVar14 = local_64;" (assignment_expression "uVar14 = local_64" identifier = identifier) ;) (expression_statement "local_48 = (uint)*(byte *)(iVar13 + 0x10);" (assignment_expression "local_48 = (uint)*(byte *)(iVar13 + 0x10)" identifier = (binary_expression "(uint)*(byte *)(iVar13 + 0x10)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar13 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }" if (parenthesized_expression "((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12))" ( (binary_expression "(local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)" (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) || (parenthesized_expression "((int)*(char *)(iVar13 + 0x25) != uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x25) != uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x25)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x25)" * (cast_expression "(char *)(iVar13 + 0x25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x25)" ( (binary_expression "iVar13 + 0x25" identifier + number_literal) ))))) != identifier) ))) )) (compound_statement "{\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }" { (if_statement "if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;" if (parenthesized_expression "(((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))" ( (binary_expression "((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0)" (parenthesized_expression "((int)*(char *)(iVar13 + 0x24) == uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x24) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x24)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x24)" * (cast_expression "(char *)(iVar13 + 0x24)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x24)" ( (binary_expression "iVar13 + 0x24" identifier + number_literal) ))))) == identifier) )) || (parenthesized_expression "(iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0)" ( (comma_expression "iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0" (assignment_expression "iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44)" identifier = (call_expression "(*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44)" (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,uVar12,local_44)" ( identifier , identifier , identifier )))) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_003c6d60;" goto statement_identifier ;)) (expression_statement "uVar14 = iVar6 - iVar8;" (assignment_expression "uVar14 = iVar6 - iVar8" identifier = (binary_expression "iVar6 - iVar8" identifier - identifier)) ;) (if_statement "if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }" if (parenthesized_expression "(0xf < (int)uVar14)" ( (binary_expression "0xf < (int)uVar14" number_literal < (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar14 = uVar14 - 6;\n        }" { (expression_statement "uVar14 = uVar14 - 6;" (assignment_expression "uVar14 = uVar14 - 6" identifier = (binary_expression "uVar14 - 6" identifier - number_literal)) ;) })) (if_statement "if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }" if (parenthesized_expression "(uVar5 <= local_50)" ( (binary_expression "uVar5 <= local_50" identifier <= identifier) )) (compound_statement "{\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }" { (expression_statement "uVar12 = uVar4 * uVar5;" (assignment_expression "uVar12 = uVar4 * uVar5" identifier = (binary_expression "uVar4 * uVar5" identifier * identifier)) ;) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = uVar14 + uVar12;" (assignment_expression "uVar5 = uVar14 + uVar12" identifier = (binary_expression "uVar14 + uVar12" identifier + identifier)) ;) (expression_statement "uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);" (assignment_expression "uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12)" identifier = (binary_expression "uVar17 & 0xff | (uint)(~uVar14 < uVar12)" (binary_expression "uVar17 & 0xff" identifier & number_literal) | (call_expression "(uint)(~uVar14 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(~uVar14 < uVar12)" ( (binary_expression "~uVar14 < uVar12" (unary_expression "~uVar14" ~ identifier) < identifier) ))))) ;) (goto_statement "goto LAB_003c6ce4;" goto statement_identifier ;) })) (expression_statement "uVar14 = local_res8[2];" (assignment_expression "uVar14 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = local_4c;" (assignment_expression "uVar17 = local_4c" identifier = identifier) ;) (if_statement "if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;" if (parenthesized_expression "((uint)local_res8[3] <= uVar14)" ( (binary_expression "(uint)local_res8[3] <= uVar14" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= identifier) )) (goto_statement "goto LAB_003c7078;" goto statement_identifier ;)) (labeled_statement "LAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;" statement_identifier : (expression_statement "local_res8[2] = uVar14 + 1;" (assignment_expression "local_res8[2] = uVar14 + 1" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "uVar14 + 1" identifier + number_literal)) ;)) (labeled_statement "LAB_003c6d0c:\n        local_resc = -1;" statement_identifier : (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;)) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (if_statement "if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\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          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\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 "uVar14 = local_4c;" (assignment_expression "uVar14 = local_4c" identifier = identifier) ;) })) }) (else_clause "else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }" else (compound_statement "{\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }" { (if_statement "if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }" { (if_statement "if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }" if (parenthesized_expression "(local_64 == 0)" ( (binary_expression "local_64 == 0" identifier == number_literal) )) (compound_statement "{\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }" { (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" * identifier) = number_literal) ;) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;) (goto_statement "goto LAB_003c6a70;" goto statement_identifier ;) })) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_003c6d78;" goto statement_identifier ;) })) (expression_statement "local_48 = (uint)(char)iVar3;" (assignment_expression "local_48 = (uint)(char)iVar3" identifier = (cast_expression "(uint)(char)iVar3" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)iVar3" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "local_30 = local_64 + 1;" (assignment_expression "local_30 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "uVar12 = 0xf;" (assignment_expression "uVar12 = 0xf" identifier = number_literal) ;) (if_statement "if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }" if (parenthesized_expression "(local_68 != local_40)" ( (binary_expression "local_68 != local_40" identifier != identifier) )) (compound_statement "{\n          uVar12 = local_60[0];\n        }" { (expression_statement "uVar12 = local_60[0];" (assignment_expression "uVar12 = local_60[0]" identifier = (subscript_expression "local_60[0]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }" if (parenthesized_expression "(uVar12 < local_64 + 1)" ( (binary_expression "uVar12 < local_64 + 1" identifier < (binary_expression "local_64 + 1" identifier + number_literal)) )) (compound_statement "{\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }" { (expression_statement "(*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);" (call_expression "(*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,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_64,0,0,1)" ( identifier , identifier , number_literal , number_literal , number_literal ))) ;) })) (expression_statement "local_64 = local_30;" (assignment_expression "local_64 = local_30" identifier = identifier) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "*(char *)((int)local_68 + uVar14) = (char)local_48;" (assignment_expression "*(char *)((int)local_68 + uVar14) = (char)local_48" (pointer_expression "*(char *)((int)local_68 + uVar14)" * (cast_expression "(char *)((int)local_68 + uVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_68 + uVar14)" ( (binary_expression "(int)local_68 + uVar14" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = (cast_expression "(char)local_48" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(undefined1 *)((int)local_68 + local_30) = 0;" (assignment_expression "*(undefined1 *)((int)local_68 + local_30) = 0" (pointer_expression "*(undefined1 *)((int)local_68 + local_30)" * (cast_expression "(undefined1 *)((int)local_68 + local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_68 + local_30)" ( (binary_expression "(int)local_68 + local_30" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (labeled_statement "LAB_003c6ce4:\n        uVar14 = local_res8[2];" statement_identifier : (expression_statement "uVar14 = local_res8[2];" (assignment_expression "uVar14 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;)) (if_statement "if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;" if (parenthesized_expression "(uVar14 < (uint)local_res8[3])" ( (binary_expression "uVar14 < (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_003c6cfc;" goto statement_identifier ;)) (labeled_statement "LAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();" statement_identifier : (expression_statement "(**(code **)(*local_res8 + 0x28))();" (call_expression "(**(code **)(*local_res8 + 0x28))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x28))" ( (pointer_expression "**(code **)(*local_res8 + 0x28)" * (pointer_expression "*(code **)(*local_res8 + 0x28)" * (cast_expression "(code **)(*local_res8 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x28)" ( (binary_expression "*local_res8 + 0x28" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;)) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;) (expression_statement "uVar14 = local_4c;" (assignment_expression "uVar14 = local_4c" identifier = identifier) ;) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c6d0c;" 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_003c6d0c;" goto statement_identifier ;)) }))) (expression_statement "uVar12 = local_34;" (assignment_expression "uVar12 = local_34" identifier = identifier) ;) (if_statement "if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 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        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }" { (if_statement "if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 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            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 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 )))) ;) (if_statement "if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\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 "uVar12 = local_4c;" (assignment_expression "uVar12 = local_4c" identifier = identifier) ;) }) (else_clause "else {\n              uVar12 = 0;\n            }" else (compound_statement "{\n              uVar12 = 0;\n            }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) }))) })) }) (else_clause "else {\n          uVar12 = 0;\n        }" else (compound_statement "{\n          uVar12 = 0;\n        }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) }))) })) (if_statement "if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }" if (parenthesized_expression "(uVar14 != uVar12)" ( (binary_expression "uVar14 != uVar12" identifier != identifier) )) (compound_statement "{\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }" { (if_statement "if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }" if (parenthesized_expression "((local_res8 == (int *)0x0) || (local_resc != -1))" ( (binary_expression "(local_res8 == (int *)0x0) || (local_resc != -1)" (parenthesized_expression "(local_res8 == (int *)0x0)" ( (binary_expression "local_res8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_resc != -1)" ( (binary_expression "local_resc != -1" identifier != number_literal) ))) )) (compound_statement "{\n          uVar12 = (uint)(char)local_resc;\n        }" { (expression_statement "uVar12 = (uint)(char)local_resc;" (assignment_expression "uVar12 = (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          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }" else (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\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          uVar12 = (uint)*(char *)local_res8[2];\n        }" { (expression_statement "uVar12 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar12 = (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          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }" else (compound_statement "{\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\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 "uVar12 = (uint)(char)iVar8;" (assignment_expression "uVar12 = (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) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\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 "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 0xffffffff" identifier = number_literal) ;) })) }))))) (goto_statement "goto LAB_003c6c68;" goto statement_identifier ;) })) }) (else_clause "else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }" else (compound_statement "{\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "local_4c = uVar14;" (assignment_expression "local_4c = uVar14" identifier = identifier) ;) })))) }))) (labeled_statement "LAB_003c6a28:\n  if (local_64 == 0) goto LAB_003c6a34;" statement_identifier : (if_statement "if (local_64 == 0) goto LAB_003c6a34;" if (parenthesized_expression "(local_64 == 0)" ( (binary_expression "local_64 == 0" identifier == number_literal) )) (goto_statement "goto LAB_003c6a34;" goto statement_identifier ;))) (labeled_statement "LAB_003c6d70:\n  uVar16 = (undefined1)iVar3;" statement_identifier : (expression_statement "uVar16 = (undefined1)iVar3;" (assignment_expression "uVar16 = (undefined1)iVar3" identifier = (cast_expression "(undefined1)iVar3" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;)) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (labeled_statement "LAB_003c6d78:\n  uVar14 = local_64;" statement_identifier : (expression_statement "uVar14 = local_64;" (assignment_expression "uVar14 = local_64" identifier = identifier) ;)) (expression_statement "uVar12 = local_64 + 1;" (assignment_expression "uVar12 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = local_60[0];" (assignment_expression "uVar4 = local_60[0]" identifier = (subscript_expression "local_60[0]" identifier [ number_literal ])) ;) (if_statement "if (local_68 == local_40) {\n    uVar4 = 0xf;\n  }" if (parenthesized_expression "(local_68 == local_40)" ( (binary_expression "local_68 == local_40" identifier == identifier) )) (compound_statement "{\n    uVar4 = 0xf;\n  }" { (expression_statement "uVar4 = 0xf;" (assignment_expression "uVar4 = 0xf" identifier = number_literal) ;) })) (if_statement "if (uVar4 < uVar12) {\n    (*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,0,0,1);\n  }" if (parenthesized_expression "(uVar4 < uVar12)" ( (binary_expression "uVar4 < uVar12" identifier < identifier) )) (compound_statement "{\n    (*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,0,0,1);\n  }" { (expression_statement "(*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,0,0,1);" (call_expression "(*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,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_68,local_64,0,0,1)" ( (cast_expression "(string *)&local_68" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_68" & identifier)) , identifier , number_literal , number_literal , number_literal ))) ;) })) (expression_statement "*(undefined1 *)((int)local_68 + uVar14) = uVar16;" (assignment_expression "*(undefined1 *)((int)local_68 + uVar14) = uVar16" (pointer_expression "*(undefined1 *)((int)local_68 + uVar14)" * (cast_expression "(undefined1 *)((int)local_68 + uVar14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_68 + uVar14)" ( (binary_expression "(int)local_68 + uVar14" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "*(undefined1 *)((int)local_68 + uVar12) = 0;" (assignment_expression "*(undefined1 *)((int)local_68 + uVar12) = 0" (pointer_expression "*(undefined1 *)((int)local_68 + uVar12)" * (cast_expression "(undefined1 *)((int)local_68 + uVar12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_68 + uVar12)" ( (binary_expression "(int)local_68 + uVar12" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "local_64 = uVar12;" (assignment_expression "local_64 = uVar12" identifier = identifier) ;) (ERROR "iVar13 = std::" (assignment_expression "iVar13 = std" identifier = identifier) : :) (expression_statement "__verify_grouping\n                     (*(char **)(iVar13 + 8),*(uint *)(iVar13 + 0xc),(string *)&local_68);" (call_expression "__verify_grouping\n                     (*(char **)(iVar13 + 8),*(uint *)(iVar13 + 0xc),(string *)&local_68)" identifier (argument_list "(*(char **)(iVar13 + 8),*(uint *)(iVar13 + 0xc),(string *)&local_68)" ( (pointer_expression "*(char **)(iVar13 + 8)" * (cast_expression "(char **)(iVar13 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) , (pointer_expression "*(uint *)(iVar13 + 0xc)" * (cast_expression "(uint *)(iVar13 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xc)" ( (binary_expression "iVar13 + 0xc" identifier + number_literal) )))) , (cast_expression "(string *)&local_68" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_68" & identifier)) ))) ;) (if_statement "if (iVar13 == 0) {\n    *param_8 = 4;\n  }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 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) || (bVar15)) || (local_64 != 0)) && (local_48 == 0)) goto LAB_003c6de8;" if (parenthesized_expression "((((iVar3 != 0) || (bVar15)) || (local_64 != 0)) && (local_48 == 0))" ( (binary_expression "(((iVar3 != 0) || (bVar15)) || (local_64 != 0)) && (local_48 == 0)" (parenthesized_expression "(((iVar3 != 0) || (bVar15)) || (local_64 != 0))" ( (binary_expression "((iVar3 != 0) || (bVar15)) || (local_64 != 0)" (parenthesized_expression "((iVar3 != 0) || (bVar15))" ( (binary_expression "(iVar3 != 0) || (bVar15)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) || (parenthesized_expression "(bVar15)" ( identifier ))) )) || (parenthesized_expression "(local_64 != 0)" ( (binary_expression "local_64 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_003c6de8;" goto statement_identifier ;)) (labeled_statement "LAB_003c6a48:\n  *param_9 = 0;" statement_identifier : (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" * identifier) = number_literal) ;)) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;) (labeled_statement "LAB_003c6a54:\n  if (local_4c != 0) {\n    *param_8 = *param_8 | 2;\n  }" statement_identifier : (if_statement "if (local_4c != 0) {\n    *param_8 = *param_8 | 2;\n  }" if (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 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_003c6a70:\n  *param_1 = local_res8;" statement_identifier : (expression_statement "*param_1 = local_res8;" (assignment_expression "*param_1 = local_res8" (pointer_expression "*param_1" * identifier) = identifier) ;)) (expression_statement "param_1[1] = local_resc;" (assignment_expression "param_1[1] = local_resc" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" if (parenthesized_expression "(local_68 != local_40)" ( (binary_expression "local_68 != 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_003c6d60:\n  local_4c = 0;" statement_identifier : (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;)) (if_statement "if (local_64 != 0) goto LAB_003c6d70;" if (parenthesized_expression "(local_64 != 0)" ( (binary_expression "local_64 != 0" identifier != number_literal) )) (goto_statement "goto LAB_003c6d70;" goto statement_identifier ;)) (labeled_statement "LAB_003c6a34:\n  if ((iVar3 != 0) || (bVar15)) {\nLAB_003c6de8:\n    if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }\n    goto LAB_003c6a54;\n  }" statement_identifier : (if_statement "if ((iVar3 != 0) || (bVar15)) {\nLAB_003c6de8:\n    if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }\n    goto LAB_003c6a54;\n  }" if (parenthesized_expression "((iVar3 != 0) || (bVar15))" ( (binary_expression "(iVar3 != 0) || (bVar15)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) || (parenthesized_expression "(bVar15)" ( identifier ))) )) (compound_statement "{\nLAB_003c6de8:\n    if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }\n    goto LAB_003c6a54;\n  }" { (labeled_statement "LAB_003c6de8:\n    if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }" statement_identifier : (if_statement "if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (compound_statement "{\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }" { (if_statement "if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }" if (parenthesized_expression "(local_38 != 0)" ( (binary_expression "local_38 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar5 = -uVar5;\n      }" { (expression_statement "uVar5 = -uVar5;" (assignment_expression "uVar5 = -uVar5" identifier = (unary_expression "-uVar5" - identifier)) ;) })) (expression_statement "*param_9 = uVar5;" (assignment_expression "*param_9 = uVar5" (pointer_expression "*param_9" * identifier) = identifier) ;) }) (else_clause "else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }" else (compound_statement "{\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }" { (expression_statement "*param_9 = 0xffffffff;" (assignment_expression "*param_9 = 0xffffffff" (pointer_expression "*param_9" * identifier) = number_literal) ;) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;) })))) (goto_statement "goto LAB_003c6a54;" goto statement_identifier ;) }))) (goto_statement "goto LAB_003c6a48;" goto statement_identifier ;) })))
(translation_unit "/* 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>(std::istreambuf_iterator<char, std::char_traits<char> >, std::istreambuf_iterator<char,\n   std::char_traits<char> >, std::ios_base&, std::_Ios_Iostate&, unsigned long&) const */\n\nint * std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::\n      _M_extract_int_abi_cxx11_<unsigned_long>\n                (int *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6,\n                int param_7,uint *param_8,uint *param_9)\n\n{\n  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  int *piVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  uint uVar17;\n  int *local_res8;\n  int local_resc;\n  uint *local_68;\n  uint local_64;\n  uint local_60 [4];\n  uint local_50;\n  uint local_4c;\n  uint local_48;\n  uint local_44;\n  uint *local_40;\n  int local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  uint **local_2c;\n  \n  iVar3 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c32f8);\n  piVar11 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar13 = *piVar11;\n  if (iVar13 == 0) {\n                    /* try { // try from 003c72a4 to 003c72ab has its CatchHandler @ 003c75c8 */\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 003c72f0 to 003c72f7 has its CatchHandler @ 003c7598 */\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    iVar13 = *piVar11;\n  }\n  uVar14 = *(uint *)(param_7 + 0xc) & 0x4a;\n  local_res8 = param_3;\n  local_resc = param_4;\n  if (uVar14 == 0x40) {\n    uVar4 = 8;\n    if (param_3 != (int *)0x0) goto LAB_003c6834;\nLAB_003c7160:\n    bVar15 = param_4 == -1;\n    if (param_5 != (int *)0x0) goto LAB_003c684c;\nLAB_003c7170:\n    if ((param_6 == -1) != bVar15) goto LAB_003c6864;\nLAB_003c717c:\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    local_38 = 0;\n    uVar12 = 0;\n    iVar3 = 0;\n    bVar15 = false;\nLAB_003c6be4:\n    if (uVar4 == 0x10) goto LAB_003c6bf0;\nLAB_003c692c:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = uVar4;\n    if (cVar9 != '\0') goto LAB_003c6c10;\nLAB_003c6944:\n    local_68 = local_60;\n    local_64 = 0;\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (local_4c != 0) goto LAB_003c6c44;\nLAB_003c6964:\n    if (uVar14 == 0) {\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      uVar14 = 0;\n                    /* try { // try from 003c7324 to 003c7397 has its CatchHandler @ 003c7568 */\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          local_resc = -1;\n          if (local_res8 == (int *)0x0) {\n            uVar12 = 0xffffffff;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    /* try { // try from 003c7464 to 003c74cb has its CatchHandler @ 003c7568 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */\n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_resc = -1;\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }\n    uVar17 = 0;\n    uVar5 = 0;\n    local_4c = uVar14;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar14 == 8) {\n      uVar4 = 0x10;\n    }\n    if (param_3 == (int *)0x0) goto LAB_003c7160;\nLAB_003c6834:\n    if (param_4 == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }\n    if (param_5 == (int *)0x0) goto LAB_003c7170;\nLAB_003c684c:\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 == bVar15) goto LAB_003c717c;\nLAB_003c6864:\n    if ((local_res8 == (int *)0x0) || (param_4 != -1)) {\n      uVar12 = (uint)(char)param_4;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12);\n    if (((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)) {\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            local_resc = -1;\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        local_resc = -1;\n        if (local_res8 == (int *)0x0) {\n          uVar12 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }\n    if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)) goto LAB_003c6b0c;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 1;\n      uVar5 = local_res8[2];\nLAB_003c68e8:\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }\n    }\n    else {\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\n      }\n    }\n    local_resc = -1;\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 != bVar15) {\n      cVar9 = istreambuf_iterator<char,std::char_traits<char>>::_M_get();\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    iVar3 = 0;\n    bVar15 = false;\n    if (uVar4 != 0x10) goto LAB_003c692c;\nLAB_003c6bf0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = 0x16;\n    if (cVar9 == '\0') goto LAB_003c6944;\nLAB_003c6c10:\n    local_40 = local_60;\n    local_68 = local_60;\n    local_64 = 0;\n                    /* try { // try from 003c6c18 to 003c6c1f has its CatchHandler @ 003c7568 */\n    (*(code *)PTR_reserve_004c2458)(&local_68,0x20);\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    if (local_4c == 0) goto LAB_003c6964;\nLAB_003c6c44:\n    if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 != 0) {\n            local_4c = 0;\n            uVar16 = 0;\n            goto LAB_003c6d78;\n          }\n          *param_9 = 0;\n          *param_8 = 4;\n          goto LAB_003c6a70;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      local_resc = -1;\n      if (uVar14 != uVar12) {\n        if (local_res8 == (int *)0x0) {\n          uVar12 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }\n  }\nLAB_003c6a28:\n  if (local_64 != 0) goto LAB_003c6d70;\nLAB_003c6a34:\n  if ((iVar3 != 0) || (bVar15)) goto LAB_003c6de8;\nLAB_003c6a48:\n  *param_9 = 0;\n  *param_8 = 4;\nLAB_003c6a54:\n  if (local_4c != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_003c6a70:\n  *param_1 = (int)local_res8;\n  param_1[1] = local_resc;\n  if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return param_1;\nLAB_003c6d60:\n  local_4c = 0;\n  if (local_64 == 0) goto LAB_003c6a34;\nLAB_003c6d70:\n  uVar16 = (undefined1)iVar3;\n  local_48 = 0;\nLAB_003c6d78:\n  uVar14 = local_64;\n  uVar12 = local_64 + 1;\n  uVar4 = local_60[0];\n  if (local_68 == local_40) {\n    uVar4 = 0xf;\n  }\n  if (uVar4 < uVar12) {\n    (*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,0,0,1);\n  }\n  *(undefined1 *)((int)local_68 + uVar14) = uVar16;\n  *(undefined1 *)((int)local_68 + uVar12) = 0;\n  local_64 = uVar12;\n  iVar13 = __verify_grouping(*(char **)(iVar13 + 8),*(uint *)(iVar13 + 0xc),(string *)&local_68);\n  if (iVar13 == 0) {\n    *param_8 = 4;\n  }\n  if ((((iVar3 != 0) || (bVar15)) || (local_64 != 0)) && (local_48 == 0)) {\nLAB_003c6de8:\n    if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }\n    goto LAB_003c6a54;\n  }\n  goto LAB_003c6a48;\n}\n\n" comment (declaration "int * std::num_get<char,std::istreambuf_iterator<char,std::char_traits<char>>>::\n      _M_extract_int_abi_cxx11_<unsigned_long>\n                (int *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6,\n                int param_7,uint *param_8,uint *param_9)\n\n{\n  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>\n                (int *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6,\n                int param_7,uint *param_8,uint *param_9)\n\n{\n  undefined" identifier : : identifier < primitive_type >> > : : identifier < (function_declarator "unsigned_long>\n                (int *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6,\n                int param_7,uint *param_8,uint *param_9)" identifier (ERROR ">" >) (parameter_list "(int *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,int param_6,\n                int param_7,uint *param_8,uint *param_9)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "int *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "int param_4" primitive_type identifier) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "uint *param_8" type_identifier (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "uint *param_9" type_identifier (pointer_declarator "*param_9" * identifier)) ))) { 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 "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "undefined1 uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int *local_res8;" primitive_type (pointer_declarator "*local_res8" * identifier) ;) (declaration "int local_resc;" primitive_type identifier ;) (declaration "uint *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "uint local_60 [4];" type_identifier (array_declarator "local_60 [4]" identifier [ number_literal ]) ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "uint *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "uint local_34;" type_identifier 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 "piVar11 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);" (assignment_expression "piVar11 = (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 "iVar13 = *piVar11;" (assignment_expression "iVar13 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (if_statement "if (iVar13 == 0) {\n                    /* try { // try from 003c72a4 to 003c72ab has its CatchHandler @ 003c75c8 */\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 003c72f0 to 003c72f7 has its CatchHandler @ 003c7598 */\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    iVar13 = *piVar11;\n  }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n                    /* try { // try from 003c72a4 to 003c72ab has its CatchHandler @ 003c75c8 */\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 003c72f0 to 003c72f7 has its CatchHandler @ 003c7598 */\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    iVar13 = *piVar11;\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 "iVar13 = *piVar11;" (assignment_expression "iVar13 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) })) (expression_statement "uVar14 = *(uint *)(param_7 + 0xc) & 0x4a;" (assignment_expression "uVar14 = *(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 (uVar14 == 0x40) {\n    uVar4 = 8;\n    if (param_3 != (int *)0x0) goto LAB_003c6834;\nLAB_003c7160:\n    bVar15 = param_4 == -1;\n    if (param_5 != (int *)0x0) goto LAB_003c684c;\nLAB_003c7170:\n    if ((param_6 == -1) != bVar15) goto LAB_003c6864;\nLAB_003c717c:\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    local_38 = 0;\n    uVar12 = 0;\n    iVar3 = 0;\n    bVar15 = false;\nLAB_003c6be4:\n    if (uVar4 == 0x10) goto LAB_003c6bf0;\nLAB_003c692c:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = uVar4;\n    if (cVar9 != '\0') goto LAB_003c6c10;\nLAB_003c6944:\n    local_68 = local_60;\n    local_64 = 0;\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (local_4c != 0) goto LAB_003c6c44;\nLAB_003c6964:\n    if (uVar14 == 0) {\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      uVar14 = 0;\n                    /* try { // try from 003c7324 to 003c7397 has its CatchHandler @ 003c7568 */\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          local_resc = -1;\n          if (local_res8 == (int *)0x0) {\n            uVar12 = 0xffffffff;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    /* try { // try from 003c7464 to 003c74cb has its CatchHandler @ 003c7568 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */\n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_resc = -1;\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }\n    uVar17 = 0;\n    uVar5 = 0;\n    local_4c = uVar14;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar14 == 8) {\n      uVar4 = 0x10;\n    }\n    if (param_3 == (int *)0x0) goto LAB_003c7160;\nLAB_003c6834:\n    if (param_4 == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }\n    if (param_5 == (int *)0x0) goto LAB_003c7170;\nLAB_003c684c:\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 == bVar15) goto LAB_003c717c;\nLAB_003c6864:\n    if ((local_res8 == (int *)0x0) || (param_4 != -1)) {\n      uVar12 = (uint)(char)param_4;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12);\n    if (((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)) {\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            local_resc = -1;\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        local_resc = -1;\n        if (local_res8 == (int *)0x0) {\n          uVar12 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }\n    if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)) goto LAB_003c6b0c;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 1;\n      uVar5 = local_res8[2];\nLAB_003c68e8:\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }\n    }\n    else {\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\n      }\n    }\n    local_resc = -1;\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 != bVar15) {\n      cVar9 = istreambuf_iterator<char,std::char_traits<char>>::_M_get();\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    iVar3 = 0;\n    bVar15 = false;\n    if (uVar4 != 0x10) goto LAB_003c692c;\nLAB_003c6bf0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = 0x16;\n    if (cVar9 == '\0') goto LAB_003c6944;\nLAB_003c6c10:\n    local_40 = local_60;\n    local_68 = local_60;\n    local_64 = 0;\n                    /* try { // try from 003c6c18 to 003c6c1f has its CatchHandler @ 003c7568 */\n    (*(code *)PTR_reserve_004c2458)(&local_68,0x20);\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    if (local_4c == 0) goto LAB_003c6964;\nLAB_003c6c44:\n    if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 != 0) {\n            local_4c = 0;\n            uVar16 = 0;\n            goto LAB_003c6d78;\n          }\n          *param_9 = 0;\n          *param_8 = 4;\n          goto LAB_003c6a70;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      local_resc = -1;\n      if (uVar14 != uVar12) {\n        if (local_res8 == (int *)0x0) {\n          uVar12 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }\n  }" if (parenthesized_expression "(uVar14 == 0x40)" ( (binary_expression "uVar14 == 0x40" identifier == number_literal) )) (compound_statement "{\n    uVar4 = 8;\n    if (param_3 != (int *)0x0) goto LAB_003c6834;\nLAB_003c7160:\n    bVar15 = param_4 == -1;\n    if (param_5 != (int *)0x0) goto LAB_003c684c;\nLAB_003c7170:\n    if ((param_6 == -1) != bVar15) goto LAB_003c6864;\nLAB_003c717c:\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    local_38 = 0;\n    uVar12 = 0;\n    iVar3 = 0;\n    bVar15 = false;\nLAB_003c6be4:\n    if (uVar4 == 0x10) goto LAB_003c6bf0;\nLAB_003c692c:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = uVar4;\n    if (cVar9 != '\0') goto LAB_003c6c10;\nLAB_003c6944:\n    local_68 = local_60;\n    local_64 = 0;\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (local_4c != 0) goto LAB_003c6c44;\nLAB_003c6964:\n    if (uVar14 == 0) {\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      uVar14 = 0;\n                    /* try { // try from 003c7324 to 003c7397 has its CatchHandler @ 003c7568 */\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          local_resc = -1;\n          if (local_res8 == (int *)0x0) {\n            uVar12 = 0xffffffff;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    /* try { // try from 003c7464 to 003c74cb has its CatchHandler @ 003c7568 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */\n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_resc = -1;\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }\n    uVar17 = 0;\n    uVar5 = 0;\n    local_4c = uVar14;\n  }" { (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" identifier = number_literal) ;) (if_statement "if (param_3 != (int *)0x0) goto LAB_003c6834;" 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_003c6834;" goto statement_identifier ;)) (labeled_statement "LAB_003c7160:\n    bVar15 = param_4 == -1;" statement_identifier : (expression_statement "bVar15 = param_4 == -1;" (assignment_expression "bVar15 = param_4 == -1" identifier = (binary_expression "param_4 == -1" identifier == number_literal)) ;)) (if_statement "if (param_5 != (int *)0x0) goto LAB_003c684c;" 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_003c684c;" goto statement_identifier ;)) (labeled_statement "LAB_003c7170:\n    if ((param_6 == -1) != bVar15) goto LAB_003c6864;" statement_identifier : (if_statement "if ((param_6 == -1) != bVar15) goto LAB_003c6864;" if (parenthesized_expression "((param_6 == -1) != bVar15)" ( (binary_expression "(param_6 == -1) != bVar15" (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) != identifier) )) (goto_statement "goto LAB_003c6864;" goto statement_identifier ;))) (labeled_statement "LAB_003c717c:\n    cVar9 = *(char *)(iVar13 + 0x10);" statement_identifier : (expression_statement "cVar9 = *(char *)(iVar13 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar13 + 0x10)" identifier = (pointer_expression "*(char *)(iVar13 + 0x10)" * (cast_expression "(char *)(iVar13 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (labeled_statement "LAB_003c6be4:\n    if (uVar4 == 0x10) goto LAB_003c6bf0;" statement_identifier : (if_statement "if (uVar4 == 0x10) goto LAB_003c6bf0;" if (parenthesized_expression "(uVar4 == 0x10)" ( (binary_expression "uVar4 == 0x10" identifier == number_literal) )) (goto_statement "goto LAB_003c6bf0;" goto statement_identifier ;))) (labeled_statement "LAB_003c692c:\n    local_60[0] = local_60[0] & 0xffffff;" statement_identifier : (expression_statement "local_60[0] = local_60[0] & 0xffffff;" (assignment_expression "local_60[0] = local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) = (binary_expression "local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) & number_literal)) ;)) (expression_statement "local_44 = uVar4;" (assignment_expression "local_44 = uVar4" identifier = identifier) ;) (if_statement "if (cVar9 != '\0') goto LAB_003c6c10;" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_003c6c10;" goto statement_identifier ;)) (labeled_statement "LAB_003c6944:\n    local_68 = local_60;" statement_identifier : (expression_statement "local_68 = local_60;" (assignment_expression "local_68 = local_60" identifier = identifier) ;)) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "local_4c = (uint)*(byte *)(iVar13 + 100);" (assignment_expression "local_4c = (uint)*(byte *)(iVar13 + 100)" identifier = (binary_expression "(uint)*(byte *)(iVar13 + 100)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar13 + 100)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 100)" ( (binary_expression "iVar13 + 100" identifier + number_literal) ))))) ;) (if_statement "if (uVar4 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "local_50 = 0xffffffff / uVar4;" (assignment_expression "local_50 = 0xffffffff / uVar4" identifier = (binary_expression "0xffffffff / uVar4" number_literal / identifier)) ;) (expression_statement "local_40 = local_68;" (assignment_expression "local_40 = local_68" identifier = identifier) ;) (if_statement "if (local_4c != 0) goto LAB_003c6c44;" if (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) (goto_statement "goto LAB_003c6c44;" goto statement_identifier ;)) (labeled_statement "LAB_003c6964:\n    if (uVar14 == 0) {\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      uVar14 = 0;\n                    /* try { // try from 003c7324 to 003c7397 has its CatchHandler @ 003c7568 */\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          local_resc = -1;\n          if (local_res8 == (int *)0x0) {\n            uVar12 = 0xffffffff;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    /* try { // try from 003c7464 to 003c74cb has its CatchHandler @ 003c7568 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */\n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_resc = -1;\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }" statement_identifier : (if_statement "if (uVar14 == 0) {\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      uVar14 = 0;\n                    /* try { // try from 003c7324 to 003c7397 has its CatchHandler @ 003c7568 */\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          local_resc = -1;\n          if (local_res8 == (int *)0x0) {\n            uVar12 = 0xffffffff;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    /* try { // try from 003c7464 to 003c74cb has its CatchHandler @ 003c7568 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */\n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_resc = -1;\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      uVar14 = 0;\n                    /* try { // try from 003c7324 to 003c7397 has its CatchHandler @ 003c7568 */\n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          local_resc = -1;\n          if (local_res8 == (int *)0x0) {\n            uVar12 = 0xffffffff;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    /* try { // try from 003c7464 to 003c74cb has its CatchHandler @ 003c7568 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */\n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_resc = -1;\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "local_4c = (uint)(local_44 < 0xb);" (assignment_expression "local_4c = (uint)(local_44 < 0xb)" identifier = (call_expression "(uint)(local_44 < 0xb)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_44 < 0xb)" ( (binary_expression "local_44 < 0xb" identifier < number_literal) )))) ;) (expression_statement "local_48 = (uint)(char)((char)local_44 + '0');" (assignment_expression "local_48 = (uint)(char)((char)local_44 + '0')" identifier = (call_expression "(uint)(char)((char)local_44 + '0')" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) (argument_list "((char)local_44 + '0')" ( (binary_expression "(char)local_44 + '0'" (cast_expression "(char)local_44" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'0'" ' character ')) )))) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "local_44 = (uint)(param_6 == -1);" (assignment_expression "local_44 = (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_003c6990:\n      uVar14 = uVar12 & 0xff;" statement_identifier : (expression_statement "uVar14 = uVar12 & 0xff;" (assignment_expression "uVar14 = uVar12 & 0xff" identifier = (binary_expression "uVar12 & 0xff" identifier & number_literal)) ;)) (if_statement "if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;" if (parenthesized_expression "(local_4c == 0)" ( (binary_expression "local_4c == 0" identifier == number_literal) )) (compound_statement "{\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }" { (if_statement "if (9 < uVar14 - 0x30) goto LAB_003c6edc;" if (parenthesized_expression "(9 < uVar14 - 0x30)" ( (binary_expression "9 < uVar14 - 0x30" number_literal < (binary_expression "uVar14 - 0x30" identifier - number_literal)) )) (goto_statement "goto LAB_003c6edc;" goto statement_identifier ;)) }) (else_clause "else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;" else (if_statement "if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;" if (parenthesized_expression "(((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12))" ( (binary_expression "((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)" (parenthesized_expression "((int)uVar12 < 0x30)" ( (binary_expression "(int)uVar12 < 0x30" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "((int)local_48 <= (int)uVar12)" ( (binary_expression "(int)local_48 <= (int)uVar12" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (goto_statement "goto LAB_003c6d60;" goto statement_identifier ;)))) (expression_statement "uVar12 = uVar12 - 0x30;" (assignment_expression "uVar12 = uVar12 - 0x30" identifier = (binary_expression "uVar12 - 0x30" identifier - number_literal)) ;) (labeled_statement "LAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;" statement_identifier : (if_statement "if (uVar5 <= local_50) goto LAB_003c6efc;" if (parenthesized_expression "(uVar5 <= local_50)" ( (binary_expression "uVar5 <= local_50" identifier <= identifier) )) (goto_statement "goto LAB_003c6efc;" goto statement_identifier ;))) (labeled_statement "LAB_003c69c8:\n      uVar14 = local_res8[2];" statement_identifier : (expression_statement "uVar14 = local_res8[2];" (assignment_expression "uVar14 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;)) (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" identifier = number_literal) ;) (if_statement "if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;" if (parenthesized_expression "((uint)local_res8[3] <= uVar14)" ( (binary_expression "(uint)local_res8[3] <= uVar14" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= identifier) )) (goto_statement "goto LAB_003c6f2c;" goto statement_identifier ;)) (labeled_statement "LAB_003c69e0:\n      local_res8[2] = uVar14 + 1;" statement_identifier : (expression_statement "local_res8[2] = uVar14 + 1;" (assignment_expression "local_res8[2] = uVar14 + 1" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "uVar14 + 1" identifier + number_literal)) ;)) (labeled_statement "LAB_003c69f0:\n      uVar14 = 0;" statement_identifier : (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;)) comment (if_statement "if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 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        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }" { (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 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_003c6f5c;" 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_003c6f5c;" goto statement_identifier ;)) (while_statement "while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          local_resc = -1;\n          if (local_res8 == (int *)0x0) {\n            uVar12 = 0xffffffff;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    /* try { // try from 003c7464 to 003c74cb has its CatchHandler @ 003c7568 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */\n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          local_resc = -1;\n          if (local_res8 == (int *)0x0) {\n            uVar12 = 0xffffffff;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    /* try { // try from 003c7464 to 003c74cb has its CatchHandler @ 003c7568 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */\n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }" { (if_statement "if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (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                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\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 "uVar12 = (uint)(iVar8 == -1);" (assignment_expression "uVar12 = (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          uVar12 = 0;\n        }" else (compound_statement "{\n          uVar12 = 0;\n        }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) }))) (if_statement "if (uVar12 == uVar14) break;" if (parenthesized_expression "(uVar12 == uVar14)" ( (binary_expression "uVar12 == uVar14" identifier == identifier) )) (break_statement "break;" break ;)) (while_statement "while( true ) {\n          local_resc = -1;\n          if (local_res8 == (int *)0x0) {\n            uVar12 = 0xffffffff;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    /* try { // try from 003c7464 to 003c74cb has its CatchHandler @ 003c7568 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */\n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          local_resc = -1;\n          if (local_res8 == (int *)0x0) {\n            uVar12 = 0xffffffff;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    /* try { // try from 003c7464 to 003c74cb has its CatchHandler @ 003c7568 */\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */\n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }" { (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;) (if_statement "if (local_res8 == (int *)0x0) {\n            uVar12 = 0xffffffff;\n            goto LAB_003c6990;\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            uVar12 = 0xffffffff;\n            goto LAB_003c6990;\n          }" { (expression_statement "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 0xffffffff" identifier = number_literal) ;) (goto_statement "goto LAB_003c6990;" goto statement_identifier ;) })) (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\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            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }" { (expression_statement "uVar12 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar12 = (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_003c6990;" 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 "uVar12 = (uint)(char)iVar8;" (assignment_expression "uVar12 = (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_003c6990;" if (parenthesized_expression "(iVar8 != -1)" ( (binary_expression "iVar8 != -1" identifier != number_literal) )) (goto_statement "goto LAB_003c6990;" goto statement_identifier ;)) (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_4c != 0) goto LAB_003c6d60;" if (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) (goto_statement "goto LAB_003c6d60;" goto statement_identifier ;)) (expression_statement "uVar14 = 0xff;" (assignment_expression "uVar14 = 0xff" identifier = number_literal) ;) (expression_statement "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 0xffffffff" identifier = number_literal) ;) (labeled_statement "LAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }" statement_identifier : (if_statement "if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }" if (parenthesized_expression "(5 < uVar14 - 0x61)" ( (binary_expression "5 < uVar14 - 0x61" number_literal < (binary_expression "uVar14 - 0x61" identifier - number_literal)) )) (compound_statement "{\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }" { (expression_statement "uVar12 = uVar12 - 0x37;" (assignment_expression "uVar12 = uVar12 - 0x37" identifier = (binary_expression "uVar12 - 0x37" identifier - number_literal)) ;) (if_statement "if (uVar14 - 0x41 < 6) goto LAB_003c69bc;" if (parenthesized_expression "(uVar14 - 0x41 < 6)" ( (binary_expression "uVar14 - 0x41 < 6" (binary_expression "uVar14 - 0x41" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_003c69bc;" goto statement_identifier ;)) (goto_statement "goto LAB_003c6d60;" goto statement_identifier ;) }))) (expression_statement "uVar12 = uVar12 - 0x57;" (assignment_expression "uVar12 = uVar12 - 0x57" identifier = (binary_expression "uVar12 - 0x57" identifier - number_literal)) ;) (if_statement "if (local_50 < uVar5) goto LAB_003c69c8;" if (parenthesized_expression "(local_50 < uVar5)" ( (binary_expression "local_50 < uVar5" identifier < identifier) )) (goto_statement "goto LAB_003c69c8;" goto statement_identifier ;)) (labeled_statement "LAB_003c6efc:\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 "uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;" (assignment_expression "uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5" identifier = (binary_expression "uVar17 | ~uVar12 < uVar4 * uVar5" identifier | (binary_expression "~uVar12 < uVar4 * uVar5" (unary_expression "~uVar12" ~ identifier) < (binary_expression "uVar4 * uVar5" identifier * identifier)))) ;) (expression_statement "uVar14 = local_res8[2];" (assignment_expression "uVar14 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = uVar12 + uVar4 * uVar5;" (assignment_expression "uVar5 = uVar12 + uVar4 * uVar5" identifier = (binary_expression "uVar12 + uVar4 * uVar5" identifier + (binary_expression "uVar4 * uVar5" identifier * identifier))) ;) (if_statement "if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;" if (parenthesized_expression "(uVar14 < (uint)local_res8[3])" ( (binary_expression "uVar14 < (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_003c69e0;" goto statement_identifier ;)) (labeled_statement "LAB_003c6f2c:\n                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */\n          (**(code **)(*local_res8 + 0x28))();" statement_identifier : comment (expression_statement "(**(code **)(*local_res8 + 0x28))();" (call_expression "(**(code **)(*local_res8 + 0x28))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x28))" ( (pointer_expression "**(code **)(*local_res8 + 0x28)" * (pointer_expression "*(code **)(*local_res8 + 0x28)" * (cast_expression "(code **)(*local_res8 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x28)" ( (binary_expression "*local_res8 + 0x28" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;)) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c69f0;" 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_003c69f0;" goto statement_identifier ;)) (if_statement "if (param_5 != (int *)0x0) break;" 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)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;" statement_identifier : (if_statement "if (local_44 == uVar14) goto LAB_003c6a24;" if (parenthesized_expression "(local_44 == uVar14)" ( (binary_expression "local_44 == uVar14" identifier == identifier) )) (goto_statement "goto LAB_003c6a24;" goto statement_identifier ;))) })) })) (labeled_statement "LAB_003c6a24:\n      local_resc = -1;" statement_identifier : (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;)) (expression_statement "local_4c = 1;" (assignment_expression "local_4c = 1" identifier = number_literal) ;) (goto_statement "goto LAB_003c6a28;" goto statement_identifier ;) }))) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "local_4c = uVar14;" (assignment_expression "local_4c = uVar14" identifier = identifier) ;) }) (else_clause "else {\n    uVar4 = 10;\n    if (uVar14 == 8) {\n      uVar4 = 0x10;\n    }\n    if (param_3 == (int *)0x0) goto LAB_003c7160;\nLAB_003c6834:\n    if (param_4 == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }\n    if (param_5 == (int *)0x0) goto LAB_003c7170;\nLAB_003c684c:\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 == bVar15) goto LAB_003c717c;\nLAB_003c6864:\n    if ((local_res8 == (int *)0x0) || (param_4 != -1)) {\n      uVar12 = (uint)(char)param_4;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12);\n    if (((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)) {\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            local_resc = -1;\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        local_resc = -1;\n        if (local_res8 == (int *)0x0) {\n          uVar12 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }\n    if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)) goto LAB_003c6b0c;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 1;\n      uVar5 = local_res8[2];\nLAB_003c68e8:\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }\n    }\n    else {\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\n      }\n    }\n    local_resc = -1;\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 != bVar15) {\n      cVar9 = istreambuf_iterator<char,std::char_traits<char>>::_M_get();\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    iVar3 = 0;\n    bVar15 = false;\n    if (uVar4 != 0x10) goto LAB_003c692c;\nLAB_003c6bf0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = 0x16;\n    if (cVar9 == '\0') goto LAB_003c6944;\nLAB_003c6c10:\n    local_40 = local_60;\n    local_68 = local_60;\n    local_64 = 0;\n                    /* try { // try from 003c6c18 to 003c6c1f has its CatchHandler @ 003c7568 */\n    (*(code *)PTR_reserve_004c2458)(&local_68,0x20);\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    if (local_4c == 0) goto LAB_003c6964;\nLAB_003c6c44:\n    if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 != 0) {\n            local_4c = 0;\n            uVar16 = 0;\n            goto LAB_003c6d78;\n          }\n          *param_9 = 0;\n          *param_8 = 4;\n          goto LAB_003c6a70;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      local_resc = -1;\n      if (uVar14 != uVar12) {\n        if (local_res8 == (int *)0x0) {\n          uVar12 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }\n  }" else (compound_statement "{\n    uVar4 = 10;\n    if (uVar14 == 8) {\n      uVar4 = 0x10;\n    }\n    if (param_3 == (int *)0x0) goto LAB_003c7160;\nLAB_003c6834:\n    if (param_4 == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }\n    if (param_5 == (int *)0x0) goto LAB_003c7170;\nLAB_003c684c:\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 == bVar15) goto LAB_003c717c;\nLAB_003c6864:\n    if ((local_res8 == (int *)0x0) || (param_4 != -1)) {\n      uVar12 = (uint)(char)param_4;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12);\n    if (((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)) {\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            local_resc = -1;\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        local_resc = -1;\n        if (local_res8 == (int *)0x0) {\n          uVar12 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }\n    if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)) goto LAB_003c6b0c;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 1;\n      uVar5 = local_res8[2];\nLAB_003c68e8:\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }\n    }\n    else {\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\n      }\n    }\n    local_resc = -1;\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 != bVar15) {\n      cVar9 = istreambuf_iterator<char,std::char_traits<char>>::_M_get();\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    iVar3 = 0;\n    bVar15 = false;\n    if (uVar4 != 0x10) goto LAB_003c692c;\nLAB_003c6bf0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = 0x16;\n    if (cVar9 == '\0') goto LAB_003c6944;\nLAB_003c6c10:\n    local_40 = local_60;\n    local_68 = local_60;\n    local_64 = 0;\n                    /* try { // try from 003c6c18 to 003c6c1f has its CatchHandler @ 003c7568 */\n    (*(code *)PTR_reserve_004c2458)(&local_68,0x20);\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    if (local_4c == 0) goto LAB_003c6964;\nLAB_003c6c44:\n    if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 != 0) {\n            local_4c = 0;\n            uVar16 = 0;\n            goto LAB_003c6d78;\n          }\n          *param_9 = 0;\n          *param_8 = 4;\n          goto LAB_003c6a70;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      local_resc = -1;\n      if (uVar14 != uVar12) {\n        if (local_res8 == (int *)0x0) {\n          uVar12 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }\n  }" { (expression_statement "uVar4 = 10;" (assignment_expression "uVar4 = 10" identifier = number_literal) ;) (if_statement "if (uVar14 == 8) {\n      uVar4 = 0x10;\n    }" if (parenthesized_expression "(uVar14 == 8)" ( (binary_expression "uVar14 == 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_003c7160;" 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_003c7160;" goto statement_identifier ;)) (labeled_statement "LAB_003c6834:\n    if (param_4 == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }" statement_identifier : (if_statement "if (param_4 == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }" if (parenthesized_expression "(param_4 == -1)" ( (binary_expression "param_4 == -1" identifier == number_literal) )) (compound_statement "{\n      bVar15 = 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        bVar15 = true;\n      }\n    }" { (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = 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        bVar15 = 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        bVar15 = 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 "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) })) }) (else_clause "else {\n      bVar15 = false;\n    }" else (compound_statement "{\n      bVar15 = false;\n    }" { (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) })))) (if_statement "if (param_5 == (int *)0x0) goto LAB_003c7170;" 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_003c7170;" goto statement_identifier ;)) (labeled_statement "LAB_003c684c:\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 == bVar15) goto LAB_003c717c;" if (parenthesized_expression "(bVar10 == bVar15)" ( (binary_expression "bVar10 == bVar15" identifier == identifier) )) (goto_statement "goto LAB_003c717c;" goto statement_identifier ;)) (labeled_statement "LAB_003c6864:\n    if ((local_res8 == (int *)0x0) || (param_4 != -1)) {\n      uVar12 = (uint)(char)param_4;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }" statement_identifier : (if_statement "if ((local_res8 == (int *)0x0) || (param_4 != -1)) {\n      uVar12 = (uint)(char)param_4;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }" if (parenthesized_expression "((local_res8 == (int *)0x0) || (param_4 != -1))" ( (binary_expression "(local_res8 == (int *)0x0) || (param_4 != -1)" (parenthesized_expression "(local_res8 == (int *)0x0)" ( (binary_expression "local_res8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(param_4 != -1)" ( (binary_expression "param_4 != -1" identifier != number_literal) ))) )) (compound_statement "{\n      uVar12 = (uint)(char)param_4;\n    }" { (expression_statement "uVar12 = (uint)(char)param_4;" (assignment_expression "uVar12 = (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      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }" else (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (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      uVar12 = (uint)*(char *)local_res8[2];\n    }" { (expression_statement "uVar12 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar12 = (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        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }" else (compound_statement "{\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (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        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }" { (expression_statement "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 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        uVar12 = (uint)(char)iVar3;\n      }" else (compound_statement "{\n        uVar12 = (uint)(char)iVar3;\n      }" { (expression_statement "uVar12 = (uint)(char)iVar3;" (assignment_expression "uVar12 = (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 *)(iVar13 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar13 + 0x10)" identifier = (pointer_expression "*(char *)(iVar13 + 0x10)" * (cast_expression "(char *)(iVar13 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12);" (assignment_expression "local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12)" identifier = (call_expression "(uint)((int)*(char *)(iVar13 + 0x4a) == uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)*(char *)(iVar13 + 0x4a) == uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x4a) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x4a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x4a)" * (cast_expression "(char *)(iVar13 + 0x4a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x4a)" ( (binary_expression "iVar13 + 0x4a" identifier + number_literal) ))))) == identifier) )))) ;) (if_statement "if (((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)) {\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            local_resc = -1;\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        local_resc = -1;\n        if (local_res8 == (int *)0x0) {\n          uVar12 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }" if (parenthesized_expression "(((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12))" ( (binary_expression "((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)" (parenthesized_expression "((int)*(char *)(iVar13 + 0x4a) != uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x4a) != uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x4a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x4a)" * (cast_expression "(char *)(iVar13 + 0x4a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x4a)" ( (binary_expression "iVar13 + 0x4a" identifier + number_literal) ))))) != identifier) )) && (parenthesized_expression "((int)*(char *)(iVar13 + 0x4b) != uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x4b) != uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x4b)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x4b)" * (cast_expression "(char *)(iVar13 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x4b)" ( (binary_expression "iVar13 + 0x4b" identifier + number_literal) ))))) != identifier) ))) )) (compound_statement "{\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            local_resc = -1;\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        local_resc = -1;\n        if (local_res8 == (int *)0x0) {\n          uVar12 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }" { (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (labeled_statement "LAB_003c6b0c:\n      iVar3 = 0;" statement_identifier : (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;)) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (do_statement "do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            local_resc = -1;\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        local_resc = -1;\n        if (local_res8 == (int *)0x0) {\n          uVar12 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);" do (compound_statement "{\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            local_resc = -1;\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        local_resc = -1;\n        if (local_res8 == (int *)0x0) {\n          uVar12 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      }" { (if_statement "if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;" if (parenthesized_expression "(((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12))" ( (binary_expression "((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)" (parenthesized_expression "((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12))" ( (binary_expression "(cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)" (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((int)*(char *)(iVar13 + 0x25) == uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x25) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x25)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x25)" * (cast_expression "(char *)(iVar13 + 0x25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x25)" ( (binary_expression "iVar13 + 0x25" identifier + number_literal) ))))) == identifier) ))) )) || (parenthesized_expression "((int)*(char *)(iVar13 + 0x24) == uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x24) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x24)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x24)" * (cast_expression "(char *)(iVar13 + 0x24)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x24)" ( (binary_expression "iVar13 + 0x24" identifier + number_literal) ))))) == identifier) ))) )) (break_statement "break;" break ;)) (if_statement "if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            local_resc = -1;\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }" if (parenthesized_expression "((int)*(char *)(iVar13 + 0x4e) == uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x4e) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x4e)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x4e)" * (cast_expression "(char *)(iVar13 + 0x4e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x4e)" ( (binary_expression "iVar13 + 0x4e" identifier + number_literal) ))))) == identifier) )) (compound_statement "{\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }" { (if_statement "if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }" { (if_statement "if (uVar4 != 10) goto LAB_003c6b4c;" if (parenthesized_expression "(uVar4 != 10)" ( (binary_expression "uVar4 != 10" identifier != number_literal) )) (goto_statement "goto LAB_003c6b4c;" goto statement_identifier ;)) (if_statement "if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 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_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }" else (compound_statement "{\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }" { (labeled_statement "LAB_003c6ff4:\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 "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) }))) }) (else_clause "else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }" else (compound_statement "{\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }" { (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) (if_statement "if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 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_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }" else (compound_statement "{\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }" { (if_statement "if (uVar4 != 8) goto LAB_003c6ff4;" if (parenthesized_expression "(uVar4 != 8)" ( (binary_expression "uVar4 != 8" identifier != number_literal) )) (goto_statement "goto LAB_003c6ff4;" goto statement_identifier ;)) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) }))) }))) (labeled_statement "LAB_003c6b80:\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 ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;" 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_003c6e28;" goto statement_identifier ;)) (labeled_statement "LAB_003c6b98:\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_003c6ba8:\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            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\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            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }" { (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (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 "uVar5 = local_50;" (assignment_expression "uVar5 = local_50" identifier = identifier) ;) (if_statement "if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }" if (parenthesized_expression "(iVar8 == -1)" ( (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_003c6bc8;" 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_003c6bc8;" goto statement_identifier ;)) (labeled_statement "LAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;" statement_identifier : (if_statement "if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;" if (parenthesized_expression "((param_6 == -1) == uVar5)" ( (binary_expression "(param_6 == -1) == uVar5" (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) == identifier) )) (goto_statement "goto LAB_003c6bdc;" goto statement_identifier ;))) }) (else_clause "else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            local_resc = -1;\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }" else (compound_statement "{\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            local_resc = -1;\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }" { (if_statement "if (!bVar15) break;" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }" statement_identifier : (if_statement "if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }" if (parenthesized_expression "(((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             )" ( (binary_expression "((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)" (parenthesized_expression "((int)*(char *)(iVar13 + 0x4c) != uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x4c) != uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x4c)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x4c)" * (cast_expression "(char *)(iVar13 + 0x4c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x4c)" ( (binary_expression "iVar13 + 0x4c" identifier + number_literal) ))))) != identifier) )) && (parenthesized_expression "((int)*(char *)(iVar13 + 0x4d) != uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x4d) != uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x4d)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x4d)" * (cast_expression "(char *)(iVar13 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x4d)" ( (binary_expression "iVar13 + 0x4d" identifier + number_literal) ))))) != identifier) ))) )) (compound_statement "{\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) (goto_statement "goto LAB_003c6be4;" goto statement_identifier ;) }))) (if_statement "if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (compound_statement "{\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }" { (if_statement "if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }" if (parenthesized_expression "(uVar4 == 0x10)" ( (binary_expression "uVar4 == 0x10" identifier == number_literal) )) (compound_statement "{\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (goto_statement "goto LAB_003c6b80;" goto statement_identifier ;) })) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) (goto_statement "goto LAB_003c692c;" goto statement_identifier ;) })) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = 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 (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;" 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_003c6b98;" goto statement_identifier ;)) (labeled_statement "LAB_003c6e28:\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 "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c6ba8;" 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_003c6ba8;" goto statement_identifier ;)) (if_statement "if (param_5 == (int *)0x0) goto LAB_003c6e58;" 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_003c6e58;" goto statement_identifier ;)) (labeled_statement "LAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\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              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\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              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\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              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\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              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }" { (expression_statement "local_50 = uVar5;" (assignment_expression "local_50 = uVar5" identifier = identifier) ;) (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) )))) ;) (expression_statement "uVar5 = local_50;" (assignment_expression "uVar5 = local_50" identifier = identifier) ;) (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) {\nLAB_003c6bdc:\n            local_resc = -1;\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }" if (parenthesized_expression "(uVar17 == uVar5)" ( (binary_expression "uVar17 == uVar5" identifier == identifier) )) (compound_statement "{\nLAB_003c6bdc:\n            local_resc = -1;\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }" { (labeled_statement "LAB_003c6bdc:\n            local_resc = -1;" statement_identifier : (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;)) (expression_statement "cVar9 = *(char *)(iVar13 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar13 + 0x10)" identifier = (pointer_expression "*(char *)(iVar13 + 0x10)" * (cast_expression "(char *)(iVar13 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_003c6be4;" goto statement_identifier ;) })) }))) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;) (if_statement "if (local_res8 == (int *)0x0) {\n          uVar12 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (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          uVar12 = 0xffffffff;\n        }" { (expression_statement "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 0xffffffff" identifier = number_literal) ;) }) (else_clause "else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }" else (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (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          uVar12 = (uint)*(char *)local_res8[2];\n        }" { (expression_statement "uVar12 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar12 = (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            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }" else (compound_statement "{\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (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            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }" { (expression_statement "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 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            uVar12 = (uint)(char)iVar8;\n          }" else (compound_statement "{\n            uVar12 = (uint)(char)iVar8;\n          }" { (expression_statement "uVar12 = (uint)(char)iVar8;" (assignment_expression "uVar12 = (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 "cVar9 = *(char *)(iVar13 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar13 + 0x10)" identifier = (pointer_expression "*(char *)(iVar13 + 0x10)" * (cast_expression "(char *)(iVar13 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_003c6be4;" goto statement_identifier ;) })) (if_statement "if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)) goto LAB_003c6b0c;" if (parenthesized_expression "(((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12))" ( (binary_expression "((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)" (parenthesized_expression "((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12))" ( (binary_expression "(cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)" (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((int)*(char *)(iVar13 + 0x25) == uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x25) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x25)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x25)" * (cast_expression "(char *)(iVar13 + 0x25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x25)" ( (binary_expression "iVar13 + 0x25" identifier + number_literal) ))))) == identifier) ))) )) || (parenthesized_expression "((int)*(char *)(iVar13 + 0x24) == uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x24) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x24)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x24)" * (cast_expression "(char *)(iVar13 + 0x24)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x24)" ( (binary_expression "iVar13 + 0x24" identifier + number_literal) ))))) == identifier) ))) )) (goto_statement "goto LAB_003c6b0c;" 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_003c68e8:\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }\n    }\n    else {\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\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_003c68e8:\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = 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_003c68e8:\n      bVar15 = false;" statement_identifier : (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;)) (if_statement "if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }" if (parenthesized_expression "(((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1))" ( (binary_expression "((uint)local_res8[3] <= uVar5) &&\n         (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        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }" { (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = 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      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\n      }\n    }" else (compound_statement "{\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\n      }\n    }" { (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = 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_003c68e8;\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_003c68e8;\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_003c68e8;" goto statement_identifier ;) })) }))) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" 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 != bVar15) {\n      cVar9 = istreambuf_iterator<char,std::char_traits<char>>::_M_get();\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\n    }" if (parenthesized_expression "(bVar10 != bVar15)" ( (binary_expression "bVar10 != bVar15" identifier != identifier) )) (compound_statement "{\n      cVar9 = istreambuf_iterator<char,std::char_traits<char>>::_M_get();\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\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 "uVar12 = (uint)cVar9;" (assignment_expression "uVar12 = (uint)cVar9" identifier = (cast_expression "(uint)cVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "cVar9 = *(char *)(iVar13 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar13 + 0x10)" identifier = (pointer_expression "*(char *)(iVar13 + 0x10)" * (cast_expression "(char *)(iVar13 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_003c6b0c;" goto statement_identifier ;) })) (expression_statement "cVar9 = *(char *)(iVar13 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar13 + 0x10)" identifier = (pointer_expression "*(char *)(iVar13 + 0x10)" * (cast_expression "(char *)(iVar13 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (if_statement "if (uVar4 != 0x10) goto LAB_003c692c;" if (parenthesized_expression "(uVar4 != 0x10)" ( (binary_expression "uVar4 != 0x10" identifier != number_literal) )) (goto_statement "goto LAB_003c692c;" goto statement_identifier ;)) (labeled_statement "LAB_003c6bf0:\n    local_60[0] = local_60[0] & 0xffffff;" statement_identifier : (expression_statement "local_60[0] = local_60[0] & 0xffffff;" (assignment_expression "local_60[0] = local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) = (binary_expression "local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) & number_literal)) ;)) (expression_statement "local_44 = 0x16;" (assignment_expression "local_44 = 0x16" identifier = number_literal) ;) (if_statement "if (cVar9 == '\0') goto LAB_003c6944;" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_003c6944;" goto statement_identifier ;)) (labeled_statement "LAB_003c6c10:\n    local_40 = local_60;" statement_identifier : (expression_statement "local_40 = local_60;" (assignment_expression "local_40 = local_60" identifier = identifier) ;)) (expression_statement "local_68 = local_60;" (assignment_expression "local_68 = local_60" identifier = identifier) ;) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) comment (expression_statement "(*(code *)PTR_reserve_004c2458)(&local_68,0x20);" (call_expression "(*(code *)PTR_reserve_004c2458)(&local_68,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_68,0x20)" ( (pointer_expression "&local_68" & identifier) , number_literal ))) ;) (expression_statement "local_4c = (uint)*(byte *)(iVar13 + 100);" (assignment_expression "local_4c = (uint)*(byte *)(iVar13 + 100)" identifier = (binary_expression "(uint)*(byte *)(iVar13 + 100)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar13 + 100)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 100)" ( (binary_expression "iVar13 + 100" identifier + number_literal) ))))) ;) (if_statement "if (uVar4 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "local_50 = 0xffffffff / uVar4;" (assignment_expression "local_50 = 0xffffffff / uVar4" identifier = (binary_expression "0xffffffff / uVar4" number_literal / identifier)) ;) (if_statement "if (local_4c == 0) goto LAB_003c6964;" if (parenthesized_expression "(local_4c == 0)" ( (binary_expression "local_4c == 0" identifier == number_literal) )) (goto_statement "goto LAB_003c6964;" goto statement_identifier ;)) (labeled_statement "LAB_003c6c44:\n    if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 != 0) {\n            local_4c = 0;\n            uVar16 = 0;\n            goto LAB_003c6d78;\n          }\n          *param_9 = 0;\n          *param_8 = 4;\n          goto LAB_003c6a70;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      local_resc = -1;\n      if (uVar14 != uVar12) {\n        if (local_res8 == (int *)0x0) {\n          uVar12 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }" statement_identifier : (if_statement "if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 != 0) {\n            local_4c = 0;\n            uVar16 = 0;\n            goto LAB_003c6d78;\n          }\n          *param_9 = 0;\n          *param_8 = 4;\n          goto LAB_003c6a70;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      local_resc = -1;\n      if (uVar14 != uVar12) {\n        if (local_res8 == (int *)0x0) {\n          uVar12 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (compound_statement "{\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 != 0) {\n            local_4c = 0;\n            uVar16 = 0;\n            goto LAB_003c6d78;\n          }\n          *param_9 = 0;\n          *param_8 = 4;\n          goto LAB_003c6a70;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      local_resc = -1;\n      if (uVar14 != uVar12) {\n        if (local_res8 == (int *)0x0) {\n          uVar12 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }" { (expression_statement "local_2c = &local_68;" (assignment_expression "local_2c = &local_68" identifier = (pointer_expression "&local_68" & 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 "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "local_3c = iVar13 + 0x4e;" (assignment_expression "local_3c = iVar13 + 0x4e" identifier = (binary_expression "iVar13 + 0x4e" identifier + number_literal)) ;) (labeled_statement "LAB_003c6c68:\n      iVar8 = local_3c;" statement_identifier : (expression_statement "iVar8 = local_3c;" (assignment_expression "iVar8 = local_3c" identifier = identifier) ;)) (expression_statement "uVar14 = local_64;" (assignment_expression "uVar14 = local_64" identifier = identifier) ;) (expression_statement "local_48 = (uint)*(byte *)(iVar13 + 0x10);" (assignment_expression "local_48 = (uint)*(byte *)(iVar13 + 0x10)" identifier = (binary_expression "(uint)*(byte *)(iVar13 + 0x10)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar13 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 != 0) {\n            local_4c = 0;\n            uVar16 = 0;\n            goto LAB_003c6d78;\n          }\n          *param_9 = 0;\n          *param_8 = 4;\n          goto LAB_003c6a70;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }" if (parenthesized_expression "((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12))" ( (binary_expression "(local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)" (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) || (parenthesized_expression "((int)*(char *)(iVar13 + 0x25) != uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x25) != uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x25)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x25)" * (cast_expression "(char *)(iVar13 + 0x25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x25)" ( (binary_expression "iVar13 + 0x25" identifier + number_literal) ))))) != identifier) ))) )) (compound_statement "{\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }" { (if_statement "if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;" if (parenthesized_expression "(((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))" ( (binary_expression "((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0)" (parenthesized_expression "((int)*(char *)(iVar13 + 0x24) == uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x24) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x24)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x24)" * (cast_expression "(char *)(iVar13 + 0x24)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x24)" ( (binary_expression "iVar13 + 0x24" identifier + number_literal) ))))) == identifier) )) || (parenthesized_expression "(iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0)" ( (comma_expression "iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0" (assignment_expression "iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44)" identifier = (call_expression "(*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44)" (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,uVar12,local_44)" ( identifier , identifier , identifier )))) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_003c6d60;" goto statement_identifier ;)) (expression_statement "uVar14 = iVar6 - iVar8;" (assignment_expression "uVar14 = iVar6 - iVar8" identifier = (binary_expression "iVar6 - iVar8" identifier - identifier)) ;) (if_statement "if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }" if (parenthesized_expression "(0xf < (int)uVar14)" ( (binary_expression "0xf < (int)uVar14" number_literal < (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar14 = uVar14 - 6;\n        }" { (expression_statement "uVar14 = uVar14 - 6;" (assignment_expression "uVar14 = uVar14 - 6" identifier = (binary_expression "uVar14 - 6" identifier - number_literal)) ;) })) (if_statement "if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }" if (parenthesized_expression "(uVar5 <= local_50)" ( (binary_expression "uVar5 <= local_50" identifier <= identifier) )) (compound_statement "{\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }" { (expression_statement "uVar12 = uVar4 * uVar5;" (assignment_expression "uVar12 = uVar4 * uVar5" identifier = (binary_expression "uVar4 * uVar5" identifier * identifier)) ;) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = uVar14 + uVar12;" (assignment_expression "uVar5 = uVar14 + uVar12" identifier = (binary_expression "uVar14 + uVar12" identifier + identifier)) ;) (expression_statement "uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);" (assignment_expression "uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12)" identifier = (binary_expression "uVar17 & 0xff | (uint)(~uVar14 < uVar12)" (binary_expression "uVar17 & 0xff" identifier & number_literal) | (call_expression "(uint)(~uVar14 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(~uVar14 < uVar12)" ( (binary_expression "~uVar14 < uVar12" (unary_expression "~uVar14" ~ identifier) < identifier) ))))) ;) (goto_statement "goto LAB_003c6ce4;" goto statement_identifier ;) })) (expression_statement "uVar14 = local_res8[2];" (assignment_expression "uVar14 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = local_4c;" (assignment_expression "uVar17 = local_4c" identifier = identifier) ;) (if_statement "if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;" if (parenthesized_expression "(uVar14 < (uint)local_res8[3])" ( (binary_expression "uVar14 < (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_003c6cfc;" goto statement_identifier ;)) (labeled_statement "LAB_003c7078:\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 "uVar14 = local_4c;" (assignment_expression "uVar14 = local_4c" identifier = identifier) ;) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c6d0c;" 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_003c6d0c;" goto statement_identifier ;)) }) (else_clause "else {\n        if (iVar3 == 0) {\n          if (local_64 != 0) {\n            local_4c = 0;\n            uVar16 = 0;\n            goto LAB_003c6d78;\n          }\n          *param_9 = 0;\n          *param_8 = 4;\n          goto LAB_003c6a70;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }" else (compound_statement "{\n        if (iVar3 == 0) {\n          if (local_64 != 0) {\n            local_4c = 0;\n            uVar16 = 0;\n            goto LAB_003c6d78;\n          }\n          *param_9 = 0;\n          *param_8 = 4;\n          goto LAB_003c6a70;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }" { (if_statement "if (iVar3 == 0) {\n          if (local_64 != 0) {\n            local_4c = 0;\n            uVar16 = 0;\n            goto LAB_003c6d78;\n          }\n          *param_9 = 0;\n          *param_8 = 4;\n          goto LAB_003c6a70;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          if (local_64 != 0) {\n            local_4c = 0;\n            uVar16 = 0;\n            goto LAB_003c6d78;\n          }\n          *param_9 = 0;\n          *param_8 = 4;\n          goto LAB_003c6a70;\n        }" { (if_statement "if (local_64 != 0) {\n            local_4c = 0;\n            uVar16 = 0;\n            goto LAB_003c6d78;\n          }" if (parenthesized_expression "(local_64 != 0)" ( (binary_expression "local_64 != 0" identifier != number_literal) )) (compound_statement "{\n            local_4c = 0;\n            uVar16 = 0;\n            goto LAB_003c6d78;\n          }" { (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_003c6d78;" goto statement_identifier ;) })) (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" * identifier) = number_literal) ;) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;) (goto_statement "goto LAB_003c6a70;" goto statement_identifier ;) })) (expression_statement "local_48 = (uint)(char)iVar3;" (assignment_expression "local_48 = (uint)(char)iVar3" identifier = (cast_expression "(uint)(char)iVar3" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)iVar3" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "local_30 = local_64 + 1;" (assignment_expression "local_30 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "uVar12 = 0xf;" (assignment_expression "uVar12 = 0xf" identifier = number_literal) ;) (if_statement "if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }" if (parenthesized_expression "(local_68 != local_40)" ( (binary_expression "local_68 != local_40" identifier != identifier) )) (compound_statement "{\n          uVar12 = local_60[0];\n        }" { (expression_statement "uVar12 = local_60[0];" (assignment_expression "uVar12 = local_60[0]" identifier = (subscript_expression "local_60[0]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }" if (parenthesized_expression "(uVar12 < local_64 + 1)" ( (binary_expression "uVar12 < local_64 + 1" identifier < (binary_expression "local_64 + 1" identifier + number_literal)) )) (compound_statement "{\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }" { (expression_statement "(*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);" (call_expression "(*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,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_64,0,0,1)" ( identifier , identifier , number_literal , number_literal , number_literal ))) ;) })) (expression_statement "local_64 = local_30;" (assignment_expression "local_64 = local_30" identifier = identifier) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "*(char *)((int)local_68 + uVar14) = (char)local_48;" (assignment_expression "*(char *)((int)local_68 + uVar14) = (char)local_48" (pointer_expression "*(char *)((int)local_68 + uVar14)" * (cast_expression "(char *)((int)local_68 + uVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_68 + uVar14)" ( (binary_expression "(int)local_68 + uVar14" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = (cast_expression "(char)local_48" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(undefined1 *)((int)local_68 + local_30) = 0;" (assignment_expression "*(undefined1 *)((int)local_68 + local_30) = 0" (pointer_expression "*(undefined1 *)((int)local_68 + local_30)" * (cast_expression "(undefined1 *)((int)local_68 + local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_68 + local_30)" ( (binary_expression "(int)local_68 + local_30" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (labeled_statement "LAB_003c6ce4:\n        uVar14 = local_res8[2];" statement_identifier : (expression_statement "uVar14 = local_res8[2];" (assignment_expression "uVar14 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;)) (if_statement "if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;" if (parenthesized_expression "((uint)local_res8[3] <= uVar14)" ( (binary_expression "(uint)local_res8[3] <= uVar14" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= identifier) )) (goto_statement "goto LAB_003c7078;" goto statement_identifier ;)) (labeled_statement "LAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;" statement_identifier : (expression_statement "local_res8[2] = uVar14 + 1;" (assignment_expression "local_res8[2] = uVar14 + 1" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "uVar14 + 1" identifier + number_literal)) ;)) (labeled_statement "LAB_003c6d0c:\n        uVar14 = 0;" statement_identifier : (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;)) (if_statement "if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\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          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\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 "uVar14 = local_4c;" (assignment_expression "uVar14 = local_4c" identifier = identifier) ;) })) }))) (expression_statement "uVar12 = local_34;" (assignment_expression "uVar12 = local_34" identifier = identifier) ;) (if_statement "if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 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        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }" { (if_statement "if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 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            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 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 )))) ;) (if_statement "if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\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 "uVar12 = local_4c;" (assignment_expression "uVar12 = local_4c" identifier = identifier) ;) }) (else_clause "else {\n              uVar12 = 0;\n            }" else (compound_statement "{\n              uVar12 = 0;\n            }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) }))) })) }) (else_clause "else {\n          uVar12 = 0;\n        }" else (compound_statement "{\n          uVar12 = 0;\n        }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) }))) })) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;) (if_statement "if (uVar14 != uVar12) {\n        if (local_res8 == (int *)0x0) {\n          uVar12 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }" if (parenthesized_expression "(uVar14 != uVar12)" ( (binary_expression "uVar14 != uVar12" identifier != identifier) )) (compound_statement "{\n        if (local_res8 == (int *)0x0) {\n          uVar12 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }" { (if_statement "if (local_res8 == (int *)0x0) {\n          uVar12 = 0xffffffff;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\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          uVar12 = 0xffffffff;\n        }" { (expression_statement "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 0xffffffff" identifier = number_literal) ;) }) (else_clause "else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }" else (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\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          uVar12 = (uint)*(char *)local_res8[2];\n        }" { (expression_statement "uVar12 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar12 = (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          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }" else (compound_statement "{\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\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 "uVar12 = (uint)(char)iVar8;" (assignment_expression "uVar12 = (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) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\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 "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 0xffffffff" identifier = number_literal) ;) })) }))))) (goto_statement "goto LAB_003c6c68;" goto statement_identifier ;) })) }) (else_clause "else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }" else (compound_statement "{\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "local_4c = uVar14;" (assignment_expression "local_4c = uVar14" identifier = identifier) ;) })))) }))) (labeled_statement "LAB_003c6a28:\n  if (local_64 != 0) goto LAB_003c6d70;" statement_identifier : (if_statement "if (local_64 != 0) goto LAB_003c6d70;" if (parenthesized_expression "(local_64 != 0)" ( (binary_expression "local_64 != 0" identifier != number_literal) )) (goto_statement "goto LAB_003c6d70;" goto statement_identifier ;))) (labeled_statement "LAB_003c6a34:\n  if ((iVar3 != 0) || (bVar15)) goto LAB_003c6de8;" statement_identifier : (if_statement "if ((iVar3 != 0) || (bVar15)) goto LAB_003c6de8;" if (parenthesized_expression "((iVar3 != 0) || (bVar15))" ( (binary_expression "(iVar3 != 0) || (bVar15)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) || (parenthesized_expression "(bVar15)" ( identifier ))) )) (goto_statement "goto LAB_003c6de8;" goto statement_identifier ;))) (labeled_statement "LAB_003c6a48:\n  *param_9 = 0;" statement_identifier : (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" * identifier) = number_literal) ;)) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;) (labeled_statement "LAB_003c6a54:\n  if (local_4c != 0) {\n    *param_8 = *param_8 | 2;\n  }" statement_identifier : (if_statement "if (local_4c != 0) {\n    *param_8 = *param_8 | 2;\n  }" if (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 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_003c6a70:\n  *param_1 = (int)local_res8;" statement_identifier : (expression_statement "*param_1 = (int)local_res8;" (assignment_expression "*param_1 = (int)local_res8" (pointer_expression "*param_1" * identifier) = (cast_expression "(int)local_res8" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (expression_statement "param_1[1] = local_resc;" (assignment_expression "param_1[1] = local_resc" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" if (parenthesized_expression "(local_68 != local_40)" ( (binary_expression "local_68 != 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_003c6d60:\n  local_4c = 0;" statement_identifier : (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;)) (if_statement "if (local_64 == 0) goto LAB_003c6a34;" if (parenthesized_expression "(local_64 == 0)" ( (binary_expression "local_64 == 0" identifier == number_literal) )) (goto_statement "goto LAB_003c6a34;" goto statement_identifier ;)) (labeled_statement "LAB_003c6d70:\n  uVar16 = (undefined1)iVar3;" statement_identifier : (expression_statement "uVar16 = (undefined1)iVar3;" (assignment_expression "uVar16 = (undefined1)iVar3" identifier = (cast_expression "(undefined1)iVar3" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;)) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (labeled_statement "LAB_003c6d78:\n  uVar14 = local_64;" statement_identifier : (expression_statement "uVar14 = local_64;" (assignment_expression "uVar14 = local_64" identifier = identifier) ;)) (expression_statement "uVar12 = local_64 + 1;" (assignment_expression "uVar12 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = local_60[0];" (assignment_expression "uVar4 = local_60[0]" identifier = (subscript_expression "local_60[0]" identifier [ number_literal ])) ;) (if_statement "if (local_68 == local_40) {\n    uVar4 = 0xf;\n  }" if (parenthesized_expression "(local_68 == local_40)" ( (binary_expression "local_68 == local_40" identifier == identifier) )) (compound_statement "{\n    uVar4 = 0xf;\n  }" { (expression_statement "uVar4 = 0xf;" (assignment_expression "uVar4 = 0xf" identifier = number_literal) ;) })) (if_statement "if (uVar4 < uVar12) {\n    (*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,0,0,1);\n  }" if (parenthesized_expression "(uVar4 < uVar12)" ( (binary_expression "uVar4 < uVar12" identifier < identifier) )) (compound_statement "{\n    (*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,0,0,1);\n  }" { (expression_statement "(*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,0,0,1);" (call_expression "(*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,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_68,local_64,0,0,1)" ( (cast_expression "(string *)&local_68" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_68" & identifier)) , identifier , number_literal , number_literal , number_literal ))) ;) })) (expression_statement "*(undefined1 *)((int)local_68 + uVar14) = uVar16;" (assignment_expression "*(undefined1 *)((int)local_68 + uVar14) = uVar16" (pointer_expression "*(undefined1 *)((int)local_68 + uVar14)" * (cast_expression "(undefined1 *)((int)local_68 + uVar14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_68 + uVar14)" ( (binary_expression "(int)local_68 + uVar14" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "*(undefined1 *)((int)local_68 + uVar12) = 0;" (assignment_expression "*(undefined1 *)((int)local_68 + uVar12) = 0" (pointer_expression "*(undefined1 *)((int)local_68 + uVar12)" * (cast_expression "(undefined1 *)((int)local_68 + uVar12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_68 + uVar12)" ( (binary_expression "(int)local_68 + uVar12" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "local_64 = uVar12;" (assignment_expression "local_64 = uVar12" identifier = identifier) ;) (expression_statement "iVar13 = __verify_grouping(*(char **)(iVar13 + 8),*(uint *)(iVar13 + 0xc),(string *)&local_68);" (assignment_expression "iVar13 = __verify_grouping(*(char **)(iVar13 + 8),*(uint *)(iVar13 + 0xc),(string *)&local_68)" identifier = (call_expression "__verify_grouping(*(char **)(iVar13 + 8),*(uint *)(iVar13 + 0xc),(string *)&local_68)" identifier (argument_list "(*(char **)(iVar13 + 8),*(uint *)(iVar13 + 0xc),(string *)&local_68)" ( (pointer_expression "*(char **)(iVar13 + 8)" * (cast_expression "(char **)(iVar13 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) , (pointer_expression "*(uint *)(iVar13 + 0xc)" * (cast_expression "(uint *)(iVar13 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xc)" ( (binary_expression "iVar13 + 0xc" identifier + number_literal) )))) , (cast_expression "(string *)&local_68" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_68" & identifier)) )))) ;) (if_statement "if (iVar13 == 0) {\n    *param_8 = 4;\n  }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 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) || (bVar15)) || (local_64 != 0)) && (local_48 == 0)) {\nLAB_003c6de8:\n    if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }\n    goto LAB_003c6a54;\n  }" if (parenthesized_expression "((((iVar3 != 0) || (bVar15)) || (local_64 != 0)) && (local_48 == 0))" ( (binary_expression "(((iVar3 != 0) || (bVar15)) || (local_64 != 0)) && (local_48 == 0)" (parenthesized_expression "(((iVar3 != 0) || (bVar15)) || (local_64 != 0))" ( (binary_expression "((iVar3 != 0) || (bVar15)) || (local_64 != 0)" (parenthesized_expression "((iVar3 != 0) || (bVar15))" ( (binary_expression "(iVar3 != 0) || (bVar15)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) || (parenthesized_expression "(bVar15)" ( identifier ))) )) || (parenthesized_expression "(local_64 != 0)" ( (binary_expression "local_64 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) ))) )) (compound_statement "{\nLAB_003c6de8:\n    if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }\n    goto LAB_003c6a54;\n  }" { (labeled_statement "LAB_003c6de8:\n    if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }" statement_identifier : (if_statement "if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (compound_statement "{\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }" { (if_statement "if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }" if (parenthesized_expression "(local_38 != 0)" ( (binary_expression "local_38 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar5 = -uVar5;\n      }" { (expression_statement "uVar5 = -uVar5;" (assignment_expression "uVar5 = -uVar5" identifier = (unary_expression "-uVar5" - identifier)) ;) })) (expression_statement "*param_9 = uVar5;" (assignment_expression "*param_9 = uVar5" (pointer_expression "*param_9" * identifier) = identifier) ;) }) (else_clause "else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }" else (compound_statement "{\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }" { (expression_statement "*param_9 = 0xffffffff;" (assignment_expression "*param_9 = 0xffffffff" (pointer_expression "*param_9" * identifier) = number_literal) ;) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;) })))) (goto_statement "goto LAB_003c6a54;" goto statement_identifier ;) })) (goto_statement "goto LAB_003c6a48;" goto statement_identifier ;) (ERROR "}" }))
(translation_unit "undefined4 *\nFUN_003c6784(undefined4 *param_1,undefined4 param_2,int *param_3,int 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  int *piVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  uint uVar17;\n  int *local_res8;\n  int local_resc;\n  uint *local_68;\n  uint local_64;\n  uint local_60 [4];\n  uint local_50;\n  uint local_4c;\n  uint local_48;\n  uint local_44;\n  uint *local_40;\n  int local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  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  piVar11 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar13 = *piVar11;\n  if (iVar13 == 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    iVar13 = *piVar11;\n  }\n  uVar14 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar14 == 0x40) {\n    uVar4 = 8;\n    if (local_res8 == (int *)0x0) goto LAB_003c7160;\nLAB_003c6834:\n    if (local_resc == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c684c;\nLAB_003c7170:\n    if ((param_6 == -1) == bVar15) goto LAB_003c717c;\nLAB_003c6864:\n    if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n      uVar12 = (uint)(char)local_resc;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12);\n    if (((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)) {\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }\n    if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)) goto LAB_003c6b0c;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 1;\n      uVar5 = local_res8[2];\nLAB_003c68e8:\n      local_resc = -1;\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }\n    }\n    else {\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\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 != bVar15) {\n      cVar9 = FUN_003c05e4(&local_res8,local_resc);\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    iVar3 = 0;\n    bVar15 = false;\n    if (uVar4 == 0x10) goto LAB_003c6bf0;\nLAB_003c692c:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = uVar4;\n    if (cVar9 == '\0') goto LAB_003c6944;\nLAB_003c6c10:\n    local_40 = local_60;\n    local_68 = local_60;\n    local_64 = 0;\n                    \n    (*(code *)PTR_reserve_004c2458)(&local_68,0x20);\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    if (local_4c != 0) goto LAB_003c6c44;\nLAB_003c6964:\n    if (uVar14 == 0) {\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      local_resc = -1;\n      uVar14 = 0;\n                    \n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    \n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }\n    uVar17 = 0;\n    uVar5 = 0;\n    local_4c = uVar14;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar14 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c6834;\nLAB_003c7160:\n    bVar15 = local_resc == -1;\n    if (param_5 == (int *)0x0) goto LAB_003c7170;\nLAB_003c684c:\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 != bVar15) goto LAB_003c6864;\nLAB_003c717c:\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    local_38 = 0;\n    uVar12 = 0;\n    iVar3 = 0;\n    bVar15 = false;\nLAB_003c6be4:\n    if (uVar4 != 0x10) goto LAB_003c692c;\nLAB_003c6bf0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = 0x16;\n    if (cVar9 != '\0') goto LAB_003c6c10;\nLAB_003c6944:\n    local_68 = local_60;\n    local_64 = 0;\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (local_4c == 0) goto LAB_003c6964;\nLAB_003c6c44:\n    if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }\n  }\nLAB_003c6a28:\n  if (local_64 == 0) goto LAB_003c6a34;\nLAB_003c6d70:\n  uVar16 = (undefined1)iVar3;\n  local_48 = 0;\nLAB_003c6d78:\n  uVar14 = local_64;\n  uVar12 = local_64 + 1;\n  uVar4 = local_60[0];\n  if (local_68 == local_40) {\n    uVar4 = 0xf;\n  }\n  if (uVar4 < uVar12) {\n    (*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,0,0,1);\n  }\n  *(undefined1 *)((int)local_68 + uVar14) = uVar16;\n  *(undefined1 *)((int)local_68 + uVar12) = 0;\n  local_64 = uVar12;\n  iVar13 = std::__verify_grouping\n                     (*(char **)(iVar13 + 8),*(uint *)(iVar13 + 0xc),(string *)&local_68);\n  if (iVar13 == 0) {\n    *param_8 = 4;\n  }\n  if ((((iVar3 != 0) || (bVar15)) || (local_64 != 0)) && (local_48 == 0)) goto LAB_003c6de8;\nLAB_003c6a48:\n  *param_9 = 0;\n  *param_8 = 4;\nLAB_003c6a54:\n  if (local_4c != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_003c6a70:\n  *param_1 = local_res8;\n  param_1[1] = local_resc;\n  if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return param_1;\nLAB_003c6d60:\n  local_4c = 0;\n  if (local_64 != 0) goto LAB_003c6d70;\nLAB_003c6a34:\n  if ((iVar3 != 0) || (bVar15)) {\nLAB_003c6de8:\n    if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }\n    goto LAB_003c6a54;\n  }\n  goto LAB_003c6a48;\n}\n\n" (function_definition "undefined4 *\nFUN_003c6784(undefined4 *param_1,undefined4 param_2,int *param_3,int 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  int *piVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  uint uVar17;\n  int *local_res8;\n  int local_resc;\n  uint *local_68;\n  uint local_64;\n  uint local_60 [4];\n  uint local_50;\n  uint local_4c;\n  uint local_48;\n  uint local_44;\n  uint *local_40;\n  int local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  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  piVar11 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar13 = *piVar11;\n  if (iVar13 == 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    iVar13 = *piVar11;\n  }\n  uVar14 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar14 == 0x40) {\n    uVar4 = 8;\n    if (local_res8 == (int *)0x0) goto LAB_003c7160;\nLAB_003c6834:\n    if (local_resc == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c684c;\nLAB_003c7170:\n    if ((param_6 == -1) == bVar15) goto LAB_003c717c;\nLAB_003c6864:\n    if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n      uVar12 = (uint)(char)local_resc;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12);\n    if (((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)) {\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }\n    if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)) goto LAB_003c6b0c;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 1;\n      uVar5 = local_res8[2];\nLAB_003c68e8:\n      local_resc = -1;\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }\n    }\n    else {\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\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 != bVar15) {\n      cVar9 = FUN_003c05e4(&local_res8,local_resc);\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    iVar3 = 0;\n    bVar15 = false;\n    if (uVar4 == 0x10) goto LAB_003c6bf0;\nLAB_003c692c:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = uVar4;\n    if (cVar9 == '\0') goto LAB_003c6944;\nLAB_003c6c10:\n    local_40 = local_60;\n    local_68 = local_60;\n    local_64 = 0;\n                    \n    (*(code *)PTR_reserve_004c2458)(&local_68,0x20);\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    if (local_4c != 0) goto LAB_003c6c44;\nLAB_003c6964:\n    if (uVar14 == 0) {\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      local_resc = -1;\n      uVar14 = 0;\n                    \n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    \n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }\n    uVar17 = 0;\n    uVar5 = 0;\n    local_4c = uVar14;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar14 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c6834;\nLAB_003c7160:\n    bVar15 = local_resc == -1;\n    if (param_5 == (int *)0x0) goto LAB_003c7170;\nLAB_003c684c:\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 != bVar15) goto LAB_003c6864;\nLAB_003c717c:\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    local_38 = 0;\n    uVar12 = 0;\n    iVar3 = 0;\n    bVar15 = false;\nLAB_003c6be4:\n    if (uVar4 != 0x10) goto LAB_003c692c;\nLAB_003c6bf0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = 0x16;\n    if (cVar9 != '\0') goto LAB_003c6c10;\nLAB_003c6944:\n    local_68 = local_60;\n    local_64 = 0;\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (local_4c == 0) goto LAB_003c6964;\nLAB_003c6c44:\n    if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }\n  }\nLAB_003c6a28:\n  if (local_64 == 0) goto LAB_003c6a34;\nLAB_003c6d70:\n  uVar16 = (undefined1)iVar3;\n  local_48 = 0;\nLAB_003c6d78:\n  uVar14 = local_64;\n  uVar12 = local_64 + 1;\n  uVar4 = local_60[0];\n  if (local_68 == local_40) {\n    uVar4 = 0xf;\n  }\n  if (uVar4 < uVar12) {\n    (*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,0,0,1);\n  }\n  *(undefined1 *)((int)local_68 + uVar14) = uVar16;\n  *(undefined1 *)((int)local_68 + uVar12) = 0;\n  local_64 = uVar12;\n  iVar13 = std::__verify_grouping\n                     (*(char **)(iVar13 + 8),*(uint *)(iVar13 + 0xc),(string *)&local_68);\n  if (iVar13 == 0) {\n    *param_8 = 4;\n  }\n  if ((((iVar3 != 0) || (bVar15)) || (local_64 != 0)) && (local_48 == 0)) goto LAB_003c6de8;\nLAB_003c6a48:\n  *param_9 = 0;\n  *param_8 = 4;\nLAB_003c6a54:\n  if (local_4c != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_003c6a70:\n  *param_1 = local_res8;\n  param_1[1] = local_resc;\n  if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return param_1;\nLAB_003c6d60:\n  local_4c = 0;\n  if (local_64 != 0) goto LAB_003c6d70;\nLAB_003c6a34:\n  if ((iVar3 != 0) || (bVar15)) {\nLAB_003c6de8:\n    if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }\n    goto LAB_003c6a54;\n  }\n  goto LAB_003c6a48;\n}" type_identifier (pointer_declarator "*\nFUN_003c6784(undefined4 *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,\n            int param_6,int param_7,uint *param_8,uint *param_9)" * (function_declarator "FUN_003c6784(undefined4 *param_1,undefined4 param_2,int *param_3,int 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,int 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 "int param_4" primitive_type identifier) , (parameter_declaration "int *param_5" primitive_type (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "int param_6" primitive_type identifier) , (parameter_declaration "int param_7" primitive_type identifier) , (parameter_declaration "uint *param_8" type_identifier (pointer_declarator "*param_8" * identifier)) , (parameter_declaration "uint *param_9" type_identifier (pointer_declarator "*param_9" * identifier)) )))) (compound_statement "{\n  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  int *piVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  uint uVar17;\n  int *local_res8;\n  int local_resc;\n  uint *local_68;\n  uint local_64;\n  uint local_60 [4];\n  uint local_50;\n  uint local_4c;\n  uint local_48;\n  uint local_44;\n  uint *local_40;\n  int local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  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  piVar11 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar13 = *piVar11;\n  if (iVar13 == 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    iVar13 = *piVar11;\n  }\n  uVar14 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar14 == 0x40) {\n    uVar4 = 8;\n    if (local_res8 == (int *)0x0) goto LAB_003c7160;\nLAB_003c6834:\n    if (local_resc == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c684c;\nLAB_003c7170:\n    if ((param_6 == -1) == bVar15) goto LAB_003c717c;\nLAB_003c6864:\n    if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n      uVar12 = (uint)(char)local_resc;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12);\n    if (((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)) {\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }\n    if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)) goto LAB_003c6b0c;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 1;\n      uVar5 = local_res8[2];\nLAB_003c68e8:\n      local_resc = -1;\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }\n    }\n    else {\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\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 != bVar15) {\n      cVar9 = FUN_003c05e4(&local_res8,local_resc);\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    iVar3 = 0;\n    bVar15 = false;\n    if (uVar4 == 0x10) goto LAB_003c6bf0;\nLAB_003c692c:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = uVar4;\n    if (cVar9 == '\0') goto LAB_003c6944;\nLAB_003c6c10:\n    local_40 = local_60;\n    local_68 = local_60;\n    local_64 = 0;\n                    \n    (*(code *)PTR_reserve_004c2458)(&local_68,0x20);\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    if (local_4c != 0) goto LAB_003c6c44;\nLAB_003c6964:\n    if (uVar14 == 0) {\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      local_resc = -1;\n      uVar14 = 0;\n                    \n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    \n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }\n    uVar17 = 0;\n    uVar5 = 0;\n    local_4c = uVar14;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar14 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c6834;\nLAB_003c7160:\n    bVar15 = local_resc == -1;\n    if (param_5 == (int *)0x0) goto LAB_003c7170;\nLAB_003c684c:\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 != bVar15) goto LAB_003c6864;\nLAB_003c717c:\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    local_38 = 0;\n    uVar12 = 0;\n    iVar3 = 0;\n    bVar15 = false;\nLAB_003c6be4:\n    if (uVar4 != 0x10) goto LAB_003c692c;\nLAB_003c6bf0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = 0x16;\n    if (cVar9 != '\0') goto LAB_003c6c10;\nLAB_003c6944:\n    local_68 = local_60;\n    local_64 = 0;\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (local_4c == 0) goto LAB_003c6964;\nLAB_003c6c44:\n    if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }\n  }\nLAB_003c6a28:\n  if (local_64 == 0) goto LAB_003c6a34;\nLAB_003c6d70:\n  uVar16 = (undefined1)iVar3;\n  local_48 = 0;\nLAB_003c6d78:\n  uVar14 = local_64;\n  uVar12 = local_64 + 1;\n  uVar4 = local_60[0];\n  if (local_68 == local_40) {\n    uVar4 = 0xf;\n  }\n  if (uVar4 < uVar12) {\n    (*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,0,0,1);\n  }\n  *(undefined1 *)((int)local_68 + uVar14) = uVar16;\n  *(undefined1 *)((int)local_68 + uVar12) = 0;\n  local_64 = uVar12;\n  iVar13 = std::__verify_grouping\n                     (*(char **)(iVar13 + 8),*(uint *)(iVar13 + 0xc),(string *)&local_68);\n  if (iVar13 == 0) {\n    *param_8 = 4;\n  }\n  if ((((iVar3 != 0) || (bVar15)) || (local_64 != 0)) && (local_48 == 0)) goto LAB_003c6de8;\nLAB_003c6a48:\n  *param_9 = 0;\n  *param_8 = 4;\nLAB_003c6a54:\n  if (local_4c != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_003c6a70:\n  *param_1 = local_res8;\n  param_1[1] = local_resc;\n  if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return param_1;\nLAB_003c6d60:\n  local_4c = 0;\n  if (local_64 != 0) goto LAB_003c6d70;\nLAB_003c6a34:\n  if ((iVar3 != 0) || (bVar15)) {\nLAB_003c6de8:\n    if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }\n    goto LAB_003c6a54;\n  }\n  goto LAB_003c6a48;\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 "int *piVar11;" primitive_type (pointer_declarator "*piVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "bool bVar15;" primitive_type identifier ;) (declaration "undefined1 uVar16;" type_identifier identifier ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int *local_res8;" primitive_type (pointer_declarator "*local_res8" * identifier) ;) (declaration "int local_resc;" primitive_type identifier ;) (declaration "uint *local_68;" type_identifier (pointer_declarator "*local_68" * identifier) ;) (declaration "uint local_64;" type_identifier identifier ;) (declaration "uint local_60 [4];" type_identifier (array_declarator "local_60 [4]" identifier [ number_literal ]) ;) (declaration "uint local_50;" type_identifier identifier ;) (declaration "uint local_4c;" type_identifier identifier ;) (declaration "uint local_48;" type_identifier identifier ;) (declaration "uint local_44;" type_identifier identifier ;) (declaration "uint *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "uint local_38;" type_identifier identifier ;) (declaration "uint local_34;" type_identifier 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 "piVar11 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);" (assignment_expression "piVar11 = (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 "iVar13 = *piVar11;" (assignment_expression "iVar13 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) (if_statement "if (iVar13 == 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    iVar13 = *piVar11;\n  }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 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    iVar13 = *piVar11;\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 "iVar13 = *piVar11;" (assignment_expression "iVar13 = *piVar11" identifier = (pointer_expression "*piVar11" * identifier)) ;) })) (expression_statement "uVar14 = *(uint *)(param_7 + 0xc) & 0x4a;" (assignment_expression "uVar14 = *(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 (uVar14 == 0x40) {\n    uVar4 = 8;\n    if (local_res8 == (int *)0x0) goto LAB_003c7160;\nLAB_003c6834:\n    if (local_resc == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c684c;\nLAB_003c7170:\n    if ((param_6 == -1) == bVar15) goto LAB_003c717c;\nLAB_003c6864:\n    if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n      uVar12 = (uint)(char)local_resc;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12);\n    if (((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)) {\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }\n    if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)) goto LAB_003c6b0c;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 1;\n      uVar5 = local_res8[2];\nLAB_003c68e8:\n      local_resc = -1;\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }\n    }\n    else {\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\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 != bVar15) {\n      cVar9 = FUN_003c05e4(&local_res8,local_resc);\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    iVar3 = 0;\n    bVar15 = false;\n    if (uVar4 == 0x10) goto LAB_003c6bf0;\nLAB_003c692c:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = uVar4;\n    if (cVar9 == '\0') goto LAB_003c6944;\nLAB_003c6c10:\n    local_40 = local_60;\n    local_68 = local_60;\n    local_64 = 0;\n                    \n    (*(code *)PTR_reserve_004c2458)(&local_68,0x20);\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    if (local_4c != 0) goto LAB_003c6c44;\nLAB_003c6964:\n    if (uVar14 == 0) {\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      local_resc = -1;\n      uVar14 = 0;\n                    \n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    \n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }\n    uVar17 = 0;\n    uVar5 = 0;\n    local_4c = uVar14;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar14 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c6834;\nLAB_003c7160:\n    bVar15 = local_resc == -1;\n    if (param_5 == (int *)0x0) goto LAB_003c7170;\nLAB_003c684c:\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 != bVar15) goto LAB_003c6864;\nLAB_003c717c:\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    local_38 = 0;\n    uVar12 = 0;\n    iVar3 = 0;\n    bVar15 = false;\nLAB_003c6be4:\n    if (uVar4 != 0x10) goto LAB_003c692c;\nLAB_003c6bf0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = 0x16;\n    if (cVar9 != '\0') goto LAB_003c6c10;\nLAB_003c6944:\n    local_68 = local_60;\n    local_64 = 0;\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (local_4c == 0) goto LAB_003c6964;\nLAB_003c6c44:\n    if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }\n  }" if (parenthesized_expression "(uVar14 == 0x40)" ( (binary_expression "uVar14 == 0x40" identifier == number_literal) )) (compound_statement "{\n    uVar4 = 8;\n    if (local_res8 == (int *)0x0) goto LAB_003c7160;\nLAB_003c6834:\n    if (local_resc == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c684c;\nLAB_003c7170:\n    if ((param_6 == -1) == bVar15) goto LAB_003c717c;\nLAB_003c6864:\n    if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n      uVar12 = (uint)(char)local_resc;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12);\n    if (((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)) {\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }\n    if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)) goto LAB_003c6b0c;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 1;\n      uVar5 = local_res8[2];\nLAB_003c68e8:\n      local_resc = -1;\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }\n    }\n    else {\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\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 != bVar15) {\n      cVar9 = FUN_003c05e4(&local_res8,local_resc);\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    iVar3 = 0;\n    bVar15 = false;\n    if (uVar4 == 0x10) goto LAB_003c6bf0;\nLAB_003c692c:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = uVar4;\n    if (cVar9 == '\0') goto LAB_003c6944;\nLAB_003c6c10:\n    local_40 = local_60;\n    local_68 = local_60;\n    local_64 = 0;\n                    \n    (*(code *)PTR_reserve_004c2458)(&local_68,0x20);\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    if (local_4c != 0) goto LAB_003c6c44;\nLAB_003c6964:\n    if (uVar14 == 0) {\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      local_resc = -1;\n      uVar14 = 0;\n                    \n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    \n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }\n    uVar17 = 0;\n    uVar5 = 0;\n    local_4c = uVar14;\n  }" { (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" identifier = number_literal) ;) (if_statement "if (local_res8 == (int *)0x0) goto LAB_003c7160;" 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_003c7160;" goto statement_identifier ;)) (labeled_statement "LAB_003c6834:\n    if (local_resc == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }" statement_identifier : (if_statement "if (local_resc == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }" if (parenthesized_expression "(local_resc == -1)" ( (binary_expression "local_resc == -1" identifier == number_literal) )) (compound_statement "{\n      bVar15 = 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        bVar15 = true;\n      }\n    }" { (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = 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        bVar15 = 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        bVar15 = 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 "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) })) }) (else_clause "else {\n      bVar15 = false;\n    }" else (compound_statement "{\n      bVar15 = false;\n    }" { (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) })))) (if_statement "if (param_5 != (int *)0x0) goto LAB_003c684c;" 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_003c684c;" goto statement_identifier ;)) (labeled_statement "LAB_003c7170:\n    if ((param_6 == -1) == bVar15) goto LAB_003c717c;" statement_identifier : (if_statement "if ((param_6 == -1) == bVar15) goto LAB_003c717c;" if (parenthesized_expression "((param_6 == -1) == bVar15)" ( (binary_expression "(param_6 == -1) == bVar15" (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) == identifier) )) (goto_statement "goto LAB_003c717c;" goto statement_identifier ;))) (labeled_statement "LAB_003c6864:\n    if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n      uVar12 = (uint)(char)local_resc;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }" statement_identifier : (if_statement "if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n      uVar12 = (uint)(char)local_resc;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }" if (parenthesized_expression "((local_res8 == (int *)0x0) || (local_resc != -1))" ( (binary_expression "(local_res8 == (int *)0x0) || (local_resc != -1)" (parenthesized_expression "(local_res8 == (int *)0x0)" ( (binary_expression "local_res8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_resc != -1)" ( (binary_expression "local_resc != -1" identifier != number_literal) ))) )) (compound_statement "{\n      uVar12 = (uint)(char)local_resc;\n    }" { (expression_statement "uVar12 = (uint)(char)local_resc;" (assignment_expression "uVar12 = (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      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }" else (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (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      uVar12 = (uint)*(char *)local_res8[2];\n    }" { (expression_statement "uVar12 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar12 = (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        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }" else (compound_statement "{\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (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        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }" if (parenthesized_expression "(iVar3 == -1)" ( (binary_expression "iVar3 == -1" identifier == number_literal) )) (compound_statement "{\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }" { (expression_statement "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 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        uVar12 = (uint)(char)iVar3;\n      }" else (compound_statement "{\n        uVar12 = (uint)(char)iVar3;\n      }" { (expression_statement "uVar12 = (uint)(char)iVar3;" (assignment_expression "uVar12 = (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 *)(iVar13 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar13 + 0x10)" identifier = (pointer_expression "*(char *)(iVar13 + 0x10)" * (cast_expression "(char *)(iVar13 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12);" (assignment_expression "local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12)" identifier = (call_expression "(uint)((int)*(char *)(iVar13 + 0x4a) == uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "((int)*(char *)(iVar13 + 0x4a) == uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x4a) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x4a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x4a)" * (cast_expression "(char *)(iVar13 + 0x4a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x4a)" ( (binary_expression "iVar13 + 0x4a" identifier + number_literal) ))))) == identifier) )))) ;) (if_statement "if (((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)) {\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }" if (parenthesized_expression "(((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12))" ( (binary_expression "((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)" (parenthesized_expression "((int)*(char *)(iVar13 + 0x4a) != uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x4a) != uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x4a)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x4a)" * (cast_expression "(char *)(iVar13 + 0x4a)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x4a)" ( (binary_expression "iVar13 + 0x4a" identifier + number_literal) ))))) != identifier) )) && (parenthesized_expression "((int)*(char *)(iVar13 + 0x4b) != uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x4b) != uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x4b)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x4b)" * (cast_expression "(char *)(iVar13 + 0x4b)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x4b)" ( (binary_expression "iVar13 + 0x4b" identifier + number_literal) ))))) != identifier) ))) )) (compound_statement "{\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }" { (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (labeled_statement "LAB_003c6b0c:\n      iVar3 = 0;" statement_identifier : (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;)) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (do_statement "do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);" do (compound_statement "{\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      }" { (if_statement "if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;" if (parenthesized_expression "(((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12))" ( (binary_expression "((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)" (parenthesized_expression "((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12))" ( (binary_expression "(cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)" (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((int)*(char *)(iVar13 + 0x25) == uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x25) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x25)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x25)" * (cast_expression "(char *)(iVar13 + 0x25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x25)" ( (binary_expression "iVar13 + 0x25" identifier + number_literal) ))))) == identifier) ))) )) || (parenthesized_expression "((int)*(char *)(iVar13 + 0x24) == uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x24) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x24)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x24)" * (cast_expression "(char *)(iVar13 + 0x24)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x24)" ( (binary_expression "iVar13 + 0x24" identifier + number_literal) ))))) == identifier) ))) )) (break_statement "break;" break ;)) (if_statement "if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }" if (parenthesized_expression "((int)*(char *)(iVar13 + 0x4e) == uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x4e) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x4e)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x4e)" * (cast_expression "(char *)(iVar13 + 0x4e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x4e)" ( (binary_expression "iVar13 + 0x4e" identifier + number_literal) ))))) == identifier) )) (compound_statement "{\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }" { (if_statement "if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }" if (parenthesized_expression "(bVar15)" ( identifier )) (compound_statement "{\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }" { (if_statement "if (uVar4 != 10) goto LAB_003c6b4c;" if (parenthesized_expression "(uVar4 != 10)" ( (binary_expression "uVar4 != 10" identifier != number_literal) )) (goto_statement "goto LAB_003c6b4c;" goto statement_identifier ;)) (if_statement "if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 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_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }" else (compound_statement "{\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }" { (labeled_statement "LAB_003c6ff4:\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 "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) }))) }) (else_clause "else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }" else (compound_statement "{\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }" { (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) (if_statement "if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 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_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }" else (compound_statement "{\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }" { (if_statement "if (uVar4 != 8) goto LAB_003c6ff4;" if (parenthesized_expression "(uVar4 != 8)" ( (binary_expression "uVar4 != 8" identifier != number_literal) )) (goto_statement "goto LAB_003c6ff4;" goto statement_identifier ;)) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) }))) }))) (labeled_statement "LAB_003c6b80:\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_003c6b98;" 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_003c6b98;" goto statement_identifier ;)) (labeled_statement "LAB_003c6e28:\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 "uVar5 = 1;" (assignment_expression "uVar5 = 1" identifier = number_literal) ;) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c6ba8;" 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_003c6ba8;" goto statement_identifier ;)) (if_statement "if (param_5 == (int *)0x0) goto LAB_003c6e58;" 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_003c6e58;" goto statement_identifier ;)) (labeled_statement "LAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\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              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\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              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\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              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\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              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }" { (expression_statement "local_50 = uVar5;" (assignment_expression "local_50 = uVar5" identifier = identifier) ;) (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) )))) ;) (expression_statement "uVar5 = local_50;" (assignment_expression "uVar5 = local_50" identifier = identifier) ;) (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) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }" if (parenthesized_expression "(uVar17 == uVar5)" ( (binary_expression "uVar17 == uVar5" identifier == identifier) )) (compound_statement "{\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }" { (labeled_statement "LAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);" statement_identifier : (expression_statement "cVar9 = *(char *)(iVar13 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar13 + 0x10)" identifier = (pointer_expression "*(char *)(iVar13 + 0x10)" * (cast_expression "(char *)(iVar13 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_003c6be4;" goto statement_identifier ;) })) }) (else_clause "else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }" else (compound_statement "{\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }" { (if_statement "if (!bVar15) break;" if (parenthesized_expression "(!bVar15)" ( (unary_expression "!bVar15" ! identifier) )) (break_statement "break;" break ;)) (labeled_statement "LAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }" statement_identifier : (if_statement "if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }" if (parenthesized_expression "(((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             )" ( (binary_expression "((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)" (parenthesized_expression "((int)*(char *)(iVar13 + 0x4c) != uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x4c) != uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x4c)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x4c)" * (cast_expression "(char *)(iVar13 + 0x4c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x4c)" ( (binary_expression "iVar13 + 0x4c" identifier + number_literal) ))))) != identifier) )) && (parenthesized_expression "((int)*(char *)(iVar13 + 0x4d) != uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x4d) != uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x4d)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x4d)" * (cast_expression "(char *)(iVar13 + 0x4d)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x4d)" ( (binary_expression "iVar13 + 0x4d" identifier + number_literal) ))))) != identifier) ))) )) (compound_statement "{\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) (goto_statement "goto LAB_003c6be4;" goto statement_identifier ;) }))) (if_statement "if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }" if (parenthesized_expression "(uVar14 != 0)" ( (binary_expression "uVar14 != 0" identifier != number_literal) )) (compound_statement "{\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }" { (if_statement "if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }" if (parenthesized_expression "(uVar4 == 0x10)" ( (binary_expression "uVar4 == 0x10" identifier == number_literal) )) (compound_statement "{\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }" { (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (goto_statement "goto LAB_003c6b80;" goto statement_identifier ;) })) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) (goto_statement "goto LAB_003c692c;" goto statement_identifier ;) })) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = 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_003c6e28;" 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_003c6e28;" goto statement_identifier ;)) (labeled_statement "LAB_003c6b98:\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_003c6ba8:\n          local_resc = -1;" statement_identifier : (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" 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            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\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            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }" { (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" identifier = number_literal) ;) (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 "uVar5 = local_50;" (assignment_expression "uVar5 = local_50" identifier = identifier) ;) (if_statement "if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }" if (parenthesized_expression "(iVar8 == -1)" ( (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_003c6bc8;" 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_003c6bc8;" goto statement_identifier ;)) (labeled_statement "LAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;" statement_identifier : (if_statement "if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;" if (parenthesized_expression "((param_6 == -1) == uVar5)" ( (binary_expression "(param_6 == -1) == uVar5" (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) == identifier) )) (goto_statement "goto LAB_003c6bdc;" goto statement_identifier ;))) }))) (if_statement "if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }" if (parenthesized_expression "((local_res8 == (int *)0x0) || (local_resc != -1))" ( (binary_expression "(local_res8 == (int *)0x0) || (local_resc != -1)" (parenthesized_expression "(local_res8 == (int *)0x0)" ( (binary_expression "local_res8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_resc != -1)" ( (binary_expression "local_resc != -1" identifier != number_literal) ))) )) (compound_statement "{\n          uVar12 = (uint)(char)local_resc;\n        }" { (expression_statement "uVar12 = (uint)(char)local_resc;" (assignment_expression "uVar12 = (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          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }" else (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (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          uVar12 = (uint)*(char *)local_res8[2];\n        }" { (expression_statement "uVar12 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar12 = (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            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }" else (compound_statement "{\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (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            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }" { (expression_statement "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 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            uVar12 = (uint)(char)iVar8;\n          }" else (compound_statement "{\n            uVar12 = (uint)(char)iVar8;\n          }" { (expression_statement "uVar12 = (uint)(char)iVar8;" (assignment_expression "uVar12 = (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 "cVar9 = *(char *)(iVar13 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar13 + 0x10)" identifier = (pointer_expression "*(char *)(iVar13 + 0x10)" * (cast_expression "(char *)(iVar13 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) ))))) ;) }) while (parenthesized_expression "(bVar15)" ( identifier )) ;) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_003c6be4;" goto statement_identifier ;) })) (if_statement "if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)) goto LAB_003c6b0c;" if (parenthesized_expression "(((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12))" ( (binary_expression "((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)" (parenthesized_expression "((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12))" ( (binary_expression "(cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)" (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) && (parenthesized_expression "((int)*(char *)(iVar13 + 0x25) == uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x25) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x25)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x25)" * (cast_expression "(char *)(iVar13 + 0x25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x25)" ( (binary_expression "iVar13 + 0x25" identifier + number_literal) ))))) == identifier) ))) )) || (parenthesized_expression "((int)*(char *)(iVar13 + 0x24) == uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x24) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x24)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x24)" * (cast_expression "(char *)(iVar13 + 0x24)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x24)" ( (binary_expression "iVar13 + 0x24" identifier + number_literal) ))))) == identifier) ))) )) (goto_statement "goto LAB_003c6b0c;" 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_003c68e8:\n      local_resc = -1;\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }\n    }\n    else {\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\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_003c68e8:\n      local_resc = -1;\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = 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_003c68e8:\n      local_resc = -1;" statement_identifier : (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;)) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (if_statement "if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }" if (parenthesized_expression "(((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1))" ( (binary_expression "((uint)local_res8[3] <= uVar5) &&\n         (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        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }" { (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = 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      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\n      }\n    }" else (compound_statement "{\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\n      }\n    }" { (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" identifier = true) ;) (expression_statement "(**(code **)(*local_res8 + 0x28))();" (call_expression "(**(code **)(*local_res8 + 0x28))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x28))" ( (pointer_expression "**(code **)(*local_res8 + 0x28)" * (pointer_expression "*(code **)(*local_res8 + 0x28)" * (cast_expression "(code **)(*local_res8 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x28)" ( (binary_expression "*local_res8 + 0x28" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;) (if_statement "if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\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_003c68e8;\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_003c68e8;" 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 != bVar15) {\n      cVar9 = FUN_003c05e4(&local_res8,local_resc);\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\n    }" if (parenthesized_expression "(bVar10 != bVar15)" ( (binary_expression "bVar10 != bVar15" identifier != identifier) )) (compound_statement "{\n      cVar9 = FUN_003c05e4(&local_res8,local_resc);\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\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 "uVar12 = (uint)cVar9;" (assignment_expression "uVar12 = (uint)cVar9" identifier = (cast_expression "(uint)cVar9" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (expression_statement "cVar9 = *(char *)(iVar13 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar13 + 0x10)" identifier = (pointer_expression "*(char *)(iVar13 + 0x10)" * (cast_expression "(char *)(iVar13 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) ))))) ;) (goto_statement "goto LAB_003c6b0c;" goto statement_identifier ;) })) (expression_statement "cVar9 = *(char *)(iVar13 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar13 + 0x10)" identifier = (pointer_expression "*(char *)(iVar13 + 0x10)" * (cast_expression "(char *)(iVar13 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) ))))) ;) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (if_statement "if (uVar4 == 0x10) goto LAB_003c6bf0;" if (parenthesized_expression "(uVar4 == 0x10)" ( (binary_expression "uVar4 == 0x10" identifier == number_literal) )) (goto_statement "goto LAB_003c6bf0;" goto statement_identifier ;)) (labeled_statement "LAB_003c692c:\n    local_60[0] = local_60[0] & 0xffffff;" statement_identifier : (expression_statement "local_60[0] = local_60[0] & 0xffffff;" (assignment_expression "local_60[0] = local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) = (binary_expression "local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) & number_literal)) ;)) (expression_statement "local_44 = uVar4;" (assignment_expression "local_44 = uVar4" identifier = identifier) ;) (if_statement "if (cVar9 == '\0') goto LAB_003c6944;" if (parenthesized_expression "(cVar9 == '\0')" ( (binary_expression "cVar9 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_003c6944;" goto statement_identifier ;)) (labeled_statement "LAB_003c6c10:\n    local_40 = local_60;" statement_identifier : (expression_statement "local_40 = local_60;" (assignment_expression "local_40 = local_60" identifier = identifier) ;)) (expression_statement "local_68 = local_60;" (assignment_expression "local_68 = local_60" identifier = identifier) ;) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "(*(code *)PTR_reserve_004c2458)(&local_68,0x20);" (call_expression "(*(code *)PTR_reserve_004c2458)(&local_68,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_68,0x20)" ( (pointer_expression "&local_68" & identifier) , number_literal ))) ;) (expression_statement "local_4c = (uint)*(byte *)(iVar13 + 100);" (assignment_expression "local_4c = (uint)*(byte *)(iVar13 + 100)" identifier = (binary_expression "(uint)*(byte *)(iVar13 + 100)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar13 + 100)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 100)" ( (binary_expression "iVar13 + 100" identifier + number_literal) ))))) ;) (if_statement "if (uVar4 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "local_50 = 0xffffffff / uVar4;" (assignment_expression "local_50 = 0xffffffff / uVar4" identifier = (binary_expression "0xffffffff / uVar4" number_literal / identifier)) ;) (if_statement "if (local_4c != 0) goto LAB_003c6c44;" if (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) (goto_statement "goto LAB_003c6c44;" goto statement_identifier ;)) (labeled_statement "LAB_003c6964:\n    if (uVar14 == 0) {\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      local_resc = -1;\n      uVar14 = 0;\n                    \n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    \n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }" statement_identifier : (if_statement "if (uVar14 == 0) {\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      local_resc = -1;\n      uVar14 = 0;\n                    \n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    \n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (compound_statement "{\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      local_resc = -1;\n      uVar14 = 0;\n                    \n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    \n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "local_4c = (uint)(local_44 < 0xb);" (assignment_expression "local_4c = (uint)(local_44 < 0xb)" identifier = (call_expression "(uint)(local_44 < 0xb)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(local_44 < 0xb)" ( (binary_expression "local_44 < 0xb" identifier < number_literal) )))) ;) (expression_statement "local_48 = (uint)(char)((char)local_44 + '0');" (assignment_expression "local_48 = (uint)(char)((char)local_44 + '0')" identifier = (call_expression "(uint)(char)((char)local_44 + '0')" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(char)" ( identifier ))) (argument_list "((char)local_44 + '0')" ( (binary_expression "(char)local_44 + '0'" (cast_expression "(char)local_44" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'0'" ' character ')) )))) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "local_44 = (uint)(param_6 == -1);" (assignment_expression "local_44 = (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_003c6990:\n      uVar14 = uVar12 & 0xff;" statement_identifier : (expression_statement "uVar14 = uVar12 & 0xff;" (assignment_expression "uVar14 = uVar12 & 0xff" identifier = (binary_expression "uVar12 & 0xff" identifier & number_literal)) ;)) (if_statement "if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;" if (parenthesized_expression "(local_4c == 0)" ( (binary_expression "local_4c == 0" identifier == number_literal) )) (compound_statement "{\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }" { (if_statement "if (9 < uVar14 - 0x30) goto LAB_003c6edc;" if (parenthesized_expression "(9 < uVar14 - 0x30)" ( (binary_expression "9 < uVar14 - 0x30" number_literal < (binary_expression "uVar14 - 0x30" identifier - number_literal)) )) (goto_statement "goto LAB_003c6edc;" goto statement_identifier ;)) }) (else_clause "else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;" else (if_statement "if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;" if (parenthesized_expression "(((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12))" ( (binary_expression "((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)" (parenthesized_expression "((int)uVar12 < 0x30)" ( (binary_expression "(int)uVar12 < 0x30" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "((int)local_48 <= (int)uVar12)" ( (binary_expression "(int)local_48 <= (int)uVar12" (cast_expression "(int)local_48" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier)) ))) )) (goto_statement "goto LAB_003c6d60;" goto statement_identifier ;)))) (expression_statement "uVar12 = uVar12 - 0x30;" (assignment_expression "uVar12 = uVar12 - 0x30" identifier = (binary_expression "uVar12 - 0x30" identifier - number_literal)) ;) (labeled_statement "LAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;" statement_identifier : (if_statement "if (uVar5 <= local_50) goto LAB_003c6efc;" if (parenthesized_expression "(uVar5 <= local_50)" ( (binary_expression "uVar5 <= local_50" identifier <= identifier) )) (goto_statement "goto LAB_003c6efc;" goto statement_identifier ;))) (labeled_statement "LAB_003c69c8:\n      uVar14 = local_res8[2];" statement_identifier : (expression_statement "uVar14 = local_res8[2];" (assignment_expression "uVar14 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;)) (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" identifier = number_literal) ;) (if_statement "if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;" if (parenthesized_expression "((uint)local_res8[3] <= uVar14)" ( (binary_expression "(uint)local_res8[3] <= uVar14" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= identifier) )) (goto_statement "goto LAB_003c6f2c;" goto statement_identifier ;)) (labeled_statement "LAB_003c69e0:\n      local_res8[2] = uVar14 + 1;" statement_identifier : (expression_statement "local_res8[2] = uVar14 + 1;" (assignment_expression "local_res8[2] = uVar14 + 1" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "uVar14 + 1" identifier + number_literal)) ;)) (labeled_statement "LAB_003c69f0:\n      local_resc = -1;" statement_identifier : (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;)) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (if_statement "if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 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        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }" { (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 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_003c6f5c;" 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_003c6f5c;" goto statement_identifier ;)) (while_statement "while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    \n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    \n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }" { (if_statement "if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 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            uVar12 = (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                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (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 "uVar12 = (uint)(iVar8 == -1);" (assignment_expression "uVar12 = (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          uVar12 = 0;\n        }" else (compound_statement "{\n          uVar12 = 0;\n        }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) }))) (if_statement "if (uVar12 == uVar14) break;" if (parenthesized_expression "(uVar12 == uVar14)" ( (binary_expression "uVar12 == uVar14" identifier == identifier) )) (break_statement "break;" break ;)) (while_statement "while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    \n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    \n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }" { (if_statement "if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }" if (parenthesized_expression "((local_res8 == (int *)0x0) || (local_resc != -1))" ( (binary_expression "(local_res8 == (int *)0x0) || (local_resc != -1)" (parenthesized_expression "(local_res8 == (int *)0x0)" ( (binary_expression "local_res8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_resc != -1)" ( (binary_expression "local_resc != -1" identifier != number_literal) ))) )) (compound_statement "{\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }" { (expression_statement "uVar12 = (uint)(char)local_resc;" (assignment_expression "uVar12 = (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))) ;) (goto_statement "goto LAB_003c6990;" goto statement_identifier ;) })) (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\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            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }" { (expression_statement "uVar12 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar12 = (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_003c6990;" 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 "uVar12 = (uint)(char)iVar8;" (assignment_expression "uVar12 = (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_003c6990;" if (parenthesized_expression "(iVar8 != -1)" ( (binary_expression "iVar8 != -1" identifier != number_literal) )) (goto_statement "goto LAB_003c6990;" goto statement_identifier ;)) (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" identifier = (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_4c != 0) goto LAB_003c6d60;" if (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 0" identifier != number_literal) )) (goto_statement "goto LAB_003c6d60;" goto statement_identifier ;)) (expression_statement "uVar14 = 0xff;" (assignment_expression "uVar14 = 0xff" identifier = number_literal) ;) (expression_statement "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 0xffffffff" identifier = number_literal) ;) (labeled_statement "LAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }" statement_identifier : (if_statement "if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }" if (parenthesized_expression "(5 < uVar14 - 0x61)" ( (binary_expression "5 < uVar14 - 0x61" number_literal < (binary_expression "uVar14 - 0x61" identifier - number_literal)) )) (compound_statement "{\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }" { (expression_statement "uVar12 = uVar12 - 0x37;" (assignment_expression "uVar12 = uVar12 - 0x37" identifier = (binary_expression "uVar12 - 0x37" identifier - number_literal)) ;) (if_statement "if (uVar14 - 0x41 < 6) goto LAB_003c69bc;" if (parenthesized_expression "(uVar14 - 0x41 < 6)" ( (binary_expression "uVar14 - 0x41 < 6" (binary_expression "uVar14 - 0x41" identifier - number_literal) < number_literal) )) (goto_statement "goto LAB_003c69bc;" goto statement_identifier ;)) (goto_statement "goto LAB_003c6d60;" goto statement_identifier ;) }))) (expression_statement "uVar12 = uVar12 - 0x57;" (assignment_expression "uVar12 = uVar12 - 0x57" identifier = (binary_expression "uVar12 - 0x57" identifier - number_literal)) ;) (if_statement "if (local_50 < uVar5) goto LAB_003c69c8;" if (parenthesized_expression "(local_50 < uVar5)" ( (binary_expression "local_50 < uVar5" identifier < identifier) )) (goto_statement "goto LAB_003c69c8;" goto statement_identifier ;)) (labeled_statement "LAB_003c6efc:\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 "uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;" (assignment_expression "uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5" identifier = (binary_expression "uVar17 | ~uVar12 < uVar4 * uVar5" identifier | (binary_expression "~uVar12 < uVar4 * uVar5" (unary_expression "~uVar12" ~ identifier) < (binary_expression "uVar4 * uVar5" identifier * identifier)))) ;) (expression_statement "uVar14 = local_res8[2];" (assignment_expression "uVar14 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (expression_statement "uVar5 = uVar12 + uVar4 * uVar5;" (assignment_expression "uVar5 = uVar12 + uVar4 * uVar5" identifier = (binary_expression "uVar12 + uVar4 * uVar5" identifier + (binary_expression "uVar4 * uVar5" identifier * identifier))) ;) (if_statement "if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;" if (parenthesized_expression "(uVar14 < (uint)local_res8[3])" ( (binary_expression "uVar14 < (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_003c69e0;" goto statement_identifier ;)) (labeled_statement "LAB_003c6f2c:\n                    \n          (**(code **)(*local_res8 + 0x28))();" statement_identifier : (expression_statement "(**(code **)(*local_res8 + 0x28))();" (call_expression "(**(code **)(*local_res8 + 0x28))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x28))" ( (pointer_expression "**(code **)(*local_res8 + 0x28)" * (pointer_expression "*(code **)(*local_res8 + 0x28)" * (cast_expression "(code **)(*local_res8 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x28)" ( (binary_expression "*local_res8 + 0x28" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;)) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c69f0;" 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_003c69f0;" goto statement_identifier ;)) (if_statement "if (param_5 != (int *)0x0) break;" 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)) )) (break_statement "break;" break ;)) (labeled_statement "LAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;" statement_identifier : (if_statement "if (local_44 == uVar14) goto LAB_003c6a24;" if (parenthesized_expression "(local_44 == uVar14)" ( (binary_expression "local_44 == uVar14" identifier == identifier) )) (goto_statement "goto LAB_003c6a24;" goto statement_identifier ;))) })) })) (labeled_statement "LAB_003c6a24:\n      local_4c = 1;" statement_identifier : (expression_statement "local_4c = 1;" (assignment_expression "local_4c = 1" identifier = number_literal) ;)) (goto_statement "goto LAB_003c6a28;" goto statement_identifier ;) }))) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "local_4c = uVar14;" (assignment_expression "local_4c = uVar14" identifier = identifier) ;) }) (else_clause "else {\n    uVar4 = 10;\n    if (uVar14 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c6834;\nLAB_003c7160:\n    bVar15 = local_resc == -1;\n    if (param_5 == (int *)0x0) goto LAB_003c7170;\nLAB_003c684c:\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 != bVar15) goto LAB_003c6864;\nLAB_003c717c:\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    local_38 = 0;\n    uVar12 = 0;\n    iVar3 = 0;\n    bVar15 = false;\nLAB_003c6be4:\n    if (uVar4 != 0x10) goto LAB_003c692c;\nLAB_003c6bf0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = 0x16;\n    if (cVar9 != '\0') goto LAB_003c6c10;\nLAB_003c6944:\n    local_68 = local_60;\n    local_64 = 0;\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (local_4c == 0) goto LAB_003c6964;\nLAB_003c6c44:\n    if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }\n  }" else (compound_statement "{\n    uVar4 = 10;\n    if (uVar14 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c6834;\nLAB_003c7160:\n    bVar15 = local_resc == -1;\n    if (param_5 == (int *)0x0) goto LAB_003c7170;\nLAB_003c684c:\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 != bVar15) goto LAB_003c6864;\nLAB_003c717c:\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    local_38 = 0;\n    uVar12 = 0;\n    iVar3 = 0;\n    bVar15 = false;\nLAB_003c6be4:\n    if (uVar4 != 0x10) goto LAB_003c692c;\nLAB_003c6bf0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = 0x16;\n    if (cVar9 != '\0') goto LAB_003c6c10;\nLAB_003c6944:\n    local_68 = local_60;\n    local_64 = 0;\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (local_4c == 0) goto LAB_003c6964;\nLAB_003c6c44:\n    if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }\n  }" { (expression_statement "uVar4 = 10;" (assignment_expression "uVar4 = 10" identifier = number_literal) ;) (if_statement "if (uVar14 == 8) {\n      uVar4 = 0x10;\n    }" if (parenthesized_expression "(uVar14 == 8)" ( (binary_expression "uVar14 == 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_003c6834;" 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_003c6834;" goto statement_identifier ;)) (labeled_statement "LAB_003c7160:\n    bVar15 = local_resc == -1;" statement_identifier : (expression_statement "bVar15 = local_resc == -1;" (assignment_expression "bVar15 = local_resc == -1" identifier = (binary_expression "local_resc == -1" identifier == number_literal)) ;)) (if_statement "if (param_5 == (int *)0x0) goto LAB_003c7170;" 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_003c7170;" goto statement_identifier ;)) (labeled_statement "LAB_003c684c:\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 != bVar15) goto LAB_003c6864;" if (parenthesized_expression "(bVar10 != bVar15)" ( (binary_expression "bVar10 != bVar15" identifier != identifier) )) (goto_statement "goto LAB_003c6864;" goto statement_identifier ;)) (labeled_statement "LAB_003c717c:\n    cVar9 = *(char *)(iVar13 + 0x10);" statement_identifier : (expression_statement "cVar9 = *(char *)(iVar13 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar13 + 0x10)" identifier = (pointer_expression "*(char *)(iVar13 + 0x10)" * (cast_expression "(char *)(iVar13 + 0x10)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) ))))) ;)) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" identifier = number_literal) ;) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" identifier = false) ;) (labeled_statement "LAB_003c6be4:\n    if (uVar4 != 0x10) goto LAB_003c692c;" statement_identifier : (if_statement "if (uVar4 != 0x10) goto LAB_003c692c;" if (parenthesized_expression "(uVar4 != 0x10)" ( (binary_expression "uVar4 != 0x10" identifier != number_literal) )) (goto_statement "goto LAB_003c692c;" goto statement_identifier ;))) (labeled_statement "LAB_003c6bf0:\n    local_60[0] = local_60[0] & 0xffffff;" statement_identifier : (expression_statement "local_60[0] = local_60[0] & 0xffffff;" (assignment_expression "local_60[0] = local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) = (binary_expression "local_60[0] & 0xffffff" (subscript_expression "local_60[0]" identifier [ number_literal ]) & number_literal)) ;)) (expression_statement "local_44 = 0x16;" (assignment_expression "local_44 = 0x16" identifier = number_literal) ;) (if_statement "if (cVar9 != '\0') goto LAB_003c6c10;" if (parenthesized_expression "(cVar9 != '\0')" ( (binary_expression "cVar9 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_003c6c10;" goto statement_identifier ;)) (labeled_statement "LAB_003c6944:\n    local_68 = local_60;" statement_identifier : (expression_statement "local_68 = local_60;" (assignment_expression "local_68 = local_60" identifier = identifier) ;)) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" identifier = number_literal) ;) (expression_statement "local_4c = (uint)*(byte *)(iVar13 + 100);" (assignment_expression "local_4c = (uint)*(byte *)(iVar13 + 100)" identifier = (binary_expression "(uint)*(byte *)(iVar13 + 100)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar13 + 100)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 100)" ( (binary_expression "iVar13 + 100" identifier + number_literal) ))))) ;) (if_statement "if (uVar4 == 0) {\n      trap(7);\n    }" if (parenthesized_expression "(uVar4 == 0)" ( (binary_expression "uVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      trap(7);\n    }" { (expression_statement "trap(7);" (call_expression "trap(7)" identifier (argument_list "(7)" ( number_literal ))) ;) })) (expression_statement "local_50 = 0xffffffff / uVar4;" (assignment_expression "local_50 = 0xffffffff / uVar4" identifier = (binary_expression "0xffffffff / uVar4" number_literal / identifier)) ;) (expression_statement "local_40 = local_68;" (assignment_expression "local_40 = local_68" identifier = identifier) ;) (if_statement "if (local_4c == 0) goto LAB_003c6964;" if (parenthesized_expression "(local_4c == 0)" ( (binary_expression "local_4c == 0" identifier == number_literal) )) (goto_statement "goto LAB_003c6964;" goto statement_identifier ;)) (labeled_statement "LAB_003c6c44:\n    if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }" statement_identifier : (if_statement "if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }" if (parenthesized_expression "(uVar14 == 0)" ( (binary_expression "uVar14 == 0" identifier == number_literal) )) (compound_statement "{\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }" { (expression_statement "local_2c = &local_68;" (assignment_expression "local_2c = &local_68" identifier = (pointer_expression "&local_68" & 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 "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "local_3c = iVar13 + 0x4e;" (assignment_expression "local_3c = iVar13 + 0x4e" identifier = (binary_expression "iVar13 + 0x4e" identifier + number_literal)) ;) (labeled_statement "LAB_003c6c68:\n      iVar8 = local_3c;" statement_identifier : (expression_statement "iVar8 = local_3c;" (assignment_expression "iVar8 = local_3c" identifier = identifier) ;)) (expression_statement "uVar14 = local_64;" (assignment_expression "uVar14 = local_64" identifier = identifier) ;) (expression_statement "local_48 = (uint)*(byte *)(iVar13 + 0x10);" (assignment_expression "local_48 = (uint)*(byte *)(iVar13 + 0x10)" identifier = (binary_expression "(uint)*(byte *)(iVar13 + 0x10)" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(byte *)(iVar13 + 0x10)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x10)" ( (binary_expression "iVar13 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }" if (parenthesized_expression "((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12))" ( (binary_expression "(local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)" (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) || (parenthesized_expression "((int)*(char *)(iVar13 + 0x25) != uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x25) != uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x25)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x25)" * (cast_expression "(char *)(iVar13 + 0x25)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x25)" ( (binary_expression "iVar13 + 0x25" identifier + number_literal) ))))) != identifier) ))) )) (compound_statement "{\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }" { (if_statement "if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;" if (parenthesized_expression "(((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))" ( (binary_expression "((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0)" (parenthesized_expression "((int)*(char *)(iVar13 + 0x24) == uVar12)" ( (binary_expression "(int)*(char *)(iVar13 + 0x24) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x24)" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*(char *)(iVar13 + 0x24)" * (cast_expression "(char *)(iVar13 + 0x24)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0x24)" ( (binary_expression "iVar13 + 0x24" identifier + number_literal) ))))) == identifier) )) || (parenthesized_expression "(iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0)" ( (comma_expression "iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0" (assignment_expression "iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44)" identifier = (call_expression "(*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44)" (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,uVar12,local_44)" ( identifier , identifier , identifier )))) , (binary_expression "iVar6 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_003c6d60;" goto statement_identifier ;)) (expression_statement "uVar14 = iVar6 - iVar8;" (assignment_expression "uVar14 = iVar6 - iVar8" identifier = (binary_expression "iVar6 - iVar8" identifier - identifier)) ;) (if_statement "if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }" if (parenthesized_expression "(0xf < (int)uVar14)" ( (binary_expression "0xf < (int)uVar14" number_literal < (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n          uVar14 = uVar14 - 6;\n        }" { (expression_statement "uVar14 = uVar14 - 6;" (assignment_expression "uVar14 = uVar14 - 6" identifier = (binary_expression "uVar14 - 6" identifier - number_literal)) ;) })) (if_statement "if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }" if (parenthesized_expression "(uVar5 <= local_50)" ( (binary_expression "uVar5 <= local_50" identifier <= identifier) )) (compound_statement "{\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }" { (expression_statement "uVar12 = uVar4 * uVar5;" (assignment_expression "uVar12 = uVar4 * uVar5" identifier = (binary_expression "uVar4 * uVar5" identifier * identifier)) ;) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = uVar14 + uVar12;" (assignment_expression "uVar5 = uVar14 + uVar12" identifier = (binary_expression "uVar14 + uVar12" identifier + identifier)) ;) (expression_statement "uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);" (assignment_expression "uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12)" identifier = (binary_expression "uVar17 & 0xff | (uint)(~uVar14 < uVar12)" (binary_expression "uVar17 & 0xff" identifier & number_literal) | (call_expression "(uint)(~uVar14 < uVar12)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(~uVar14 < uVar12)" ( (binary_expression "~uVar14 < uVar12" (unary_expression "~uVar14" ~ identifier) < identifier) ))))) ;) (goto_statement "goto LAB_003c6ce4;" goto statement_identifier ;) })) (expression_statement "uVar14 = local_res8[2];" (assignment_expression "uVar14 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;) (expression_statement "uVar17 = local_4c;" (assignment_expression "uVar17 = local_4c" identifier = identifier) ;) (if_statement "if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;" if (parenthesized_expression "((uint)local_res8[3] <= uVar14)" ( (binary_expression "(uint)local_res8[3] <= uVar14" (cast_expression "(uint)local_res8[3]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_res8[3]" identifier [ number_literal ])) <= identifier) )) (goto_statement "goto LAB_003c7078;" goto statement_identifier ;)) (labeled_statement "LAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;" statement_identifier : (expression_statement "local_res8[2] = uVar14 + 1;" (assignment_expression "local_res8[2] = uVar14 + 1" (subscript_expression "local_res8[2]" identifier [ number_literal ]) = (binary_expression "uVar14 + 1" identifier + number_literal)) ;)) (labeled_statement "LAB_003c6d0c:\n        local_resc = -1;" statement_identifier : (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;)) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (if_statement "if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\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          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\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 "uVar14 = local_4c;" (assignment_expression "uVar14 = local_4c" identifier = identifier) ;) })) }) (else_clause "else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }" else (compound_statement "{\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }" { (if_statement "if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }" { (if_statement "if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }" if (parenthesized_expression "(local_64 == 0)" ( (binary_expression "local_64 == 0" identifier == number_literal) )) (compound_statement "{\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }" { (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" * identifier) = number_literal) ;) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;) (goto_statement "goto LAB_003c6a70;" goto statement_identifier ;) })) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" identifier = number_literal) ;) (goto_statement "goto LAB_003c6d78;" goto statement_identifier ;) })) (expression_statement "local_48 = (uint)(char)iVar3;" (assignment_expression "local_48 = (uint)(char)iVar3" identifier = (cast_expression "(uint)(char)iVar3" ( (type_descriptor "uint" type_identifier) ) (cast_expression "(char)iVar3" ( (type_descriptor "char" primitive_type) ) identifier))) ;) (expression_statement "local_30 = local_64 + 1;" (assignment_expression "local_30 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "uVar12 = 0xf;" (assignment_expression "uVar12 = 0xf" identifier = number_literal) ;) (if_statement "if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }" if (parenthesized_expression "(local_68 != local_40)" ( (binary_expression "local_68 != local_40" identifier != identifier) )) (compound_statement "{\n          uVar12 = local_60[0];\n        }" { (expression_statement "uVar12 = local_60[0];" (assignment_expression "uVar12 = local_60[0]" identifier = (subscript_expression "local_60[0]" identifier [ number_literal ])) ;) })) (if_statement "if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }" if (parenthesized_expression "(uVar12 < local_64 + 1)" ( (binary_expression "uVar12 < local_64 + 1" identifier < (binary_expression "local_64 + 1" identifier + number_literal)) )) (compound_statement "{\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }" { (expression_statement "(*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);" (call_expression "(*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,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_64,0,0,1)" ( identifier , identifier , number_literal , number_literal , number_literal ))) ;) })) (expression_statement "local_64 = local_30;" (assignment_expression "local_64 = local_30" identifier = identifier) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (expression_statement "*(char *)((int)local_68 + uVar14) = (char)local_48;" (assignment_expression "*(char *)((int)local_68 + uVar14) = (char)local_48" (pointer_expression "*(char *)((int)local_68 + uVar14)" * (cast_expression "(char *)((int)local_68 + uVar14)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_68 + uVar14)" ( (binary_expression "(int)local_68 + uVar14" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = (cast_expression "(char)local_48" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "*(undefined1 *)((int)local_68 + local_30) = 0;" (assignment_expression "*(undefined1 *)((int)local_68 + local_30) = 0" (pointer_expression "*(undefined1 *)((int)local_68 + local_30)" * (cast_expression "(undefined1 *)((int)local_68 + local_30)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_68 + local_30)" ( (binary_expression "(int)local_68 + local_30" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (labeled_statement "LAB_003c6ce4:\n        uVar14 = local_res8[2];" statement_identifier : (expression_statement "uVar14 = local_res8[2];" (assignment_expression "uVar14 = local_res8[2]" identifier = (subscript_expression "local_res8[2]" identifier [ number_literal ])) ;)) (if_statement "if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;" if (parenthesized_expression "(uVar14 < (uint)local_res8[3])" ( (binary_expression "uVar14 < (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_003c6cfc;" goto statement_identifier ;)) (labeled_statement "LAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();" statement_identifier : (expression_statement "(**(code **)(*local_res8 + 0x28))();" (call_expression "(**(code **)(*local_res8 + 0x28))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x28))" ( (pointer_expression "**(code **)(*local_res8 + 0x28)" * (pointer_expression "*(code **)(*local_res8 + 0x28)" * (cast_expression "(code **)(*local_res8 + 0x28)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*local_res8 + 0x28)" ( (binary_expression "*local_res8 + 0x28" (pointer_expression "*local_res8" * identifier) + number_literal) ))))) )) (argument_list "()" ( ))) ;)) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" identifier = number_literal) ;) (expression_statement "uVar14 = local_4c;" (assignment_expression "uVar14 = local_4c" identifier = identifier) ;) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c6d0c;" 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_003c6d0c;" goto statement_identifier ;)) }))) (expression_statement "uVar12 = local_34;" (assignment_expression "uVar12 = local_34" identifier = identifier) ;) (if_statement "if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 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        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }" { (if_statement "if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }" if (parenthesized_expression "(param_6 == -1)" ( (binary_expression "param_6 == -1" identifier == number_literal) )) (compound_statement "{\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 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            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 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 )))) ;) (if_statement "if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\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 "uVar12 = local_4c;" (assignment_expression "uVar12 = local_4c" identifier = identifier) ;) }) (else_clause "else {\n              uVar12 = 0;\n            }" else (compound_statement "{\n              uVar12 = 0;\n            }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) }))) })) }) (else_clause "else {\n          uVar12 = 0;\n        }" else (compound_statement "{\n          uVar12 = 0;\n        }" { (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" identifier = number_literal) ;) }))) })) (if_statement "if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }" if (parenthesized_expression "(uVar14 != uVar12)" ( (binary_expression "uVar14 != uVar12" identifier != identifier) )) (compound_statement "{\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }" { (if_statement "if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }" if (parenthesized_expression "((local_res8 == (int *)0x0) || (local_resc != -1))" ( (binary_expression "(local_res8 == (int *)0x0) || (local_resc != -1)" (parenthesized_expression "(local_res8 == (int *)0x0)" ( (binary_expression "local_res8 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(local_resc != -1)" ( (binary_expression "local_resc != -1" identifier != number_literal) ))) )) (compound_statement "{\n          uVar12 = (uint)(char)local_resc;\n        }" { (expression_statement "uVar12 = (uint)(char)local_resc;" (assignment_expression "uVar12 = (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          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }" else (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\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          uVar12 = (uint)*(char *)local_res8[2];\n        }" { (expression_statement "uVar12 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar12 = (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          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }" else (compound_statement "{\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\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 "uVar12 = (uint)(char)iVar8;" (assignment_expression "uVar12 = (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) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }" if (parenthesized_expression "(iVar8 == -1)" ( (binary_expression "iVar8 == -1" identifier == number_literal) )) (compound_statement "{\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\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 "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 0xffffffff" identifier = number_literal) ;) })) }))))) (goto_statement "goto LAB_003c6c68;" goto statement_identifier ;) })) }) (else_clause "else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }" else (compound_statement "{\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }" { (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" identifier = number_literal) ;) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" identifier = number_literal) ;) (expression_statement "local_4c = uVar14;" (assignment_expression "local_4c = uVar14" identifier = identifier) ;) })))) }))) (labeled_statement "LAB_003c6a28:\n  if (local_64 == 0) goto LAB_003c6a34;" statement_identifier : (if_statement "if (local_64 == 0) goto LAB_003c6a34;" if (parenthesized_expression "(local_64 == 0)" ( (binary_expression "local_64 == 0" identifier == number_literal) )) (goto_statement "goto LAB_003c6a34;" goto statement_identifier ;))) (labeled_statement "LAB_003c6d70:\n  uVar16 = (undefined1)iVar3;" statement_identifier : (expression_statement "uVar16 = (undefined1)iVar3;" (assignment_expression "uVar16 = (undefined1)iVar3" identifier = (cast_expression "(undefined1)iVar3" ( (type_descriptor "undefined1" type_identifier) ) identifier)) ;)) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (labeled_statement "LAB_003c6d78:\n  uVar14 = local_64;" statement_identifier : (expression_statement "uVar14 = local_64;" (assignment_expression "uVar14 = local_64" identifier = identifier) ;)) (expression_statement "uVar12 = local_64 + 1;" (assignment_expression "uVar12 = local_64 + 1" identifier = (binary_expression "local_64 + 1" identifier + number_literal)) ;) (expression_statement "uVar4 = local_60[0];" (assignment_expression "uVar4 = local_60[0]" identifier = (subscript_expression "local_60[0]" identifier [ number_literal ])) ;) (if_statement "if (local_68 == local_40) {\n    uVar4 = 0xf;\n  }" if (parenthesized_expression "(local_68 == local_40)" ( (binary_expression "local_68 == local_40" identifier == identifier) )) (compound_statement "{\n    uVar4 = 0xf;\n  }" { (expression_statement "uVar4 = 0xf;" (assignment_expression "uVar4 = 0xf" identifier = number_literal) ;) })) (if_statement "if (uVar4 < uVar12) {\n    (*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,0,0,1);\n  }" if (parenthesized_expression "(uVar4 < uVar12)" ( (binary_expression "uVar4 < uVar12" identifier < identifier) )) (compound_statement "{\n    (*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,0,0,1);\n  }" { (expression_statement "(*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,0,0,1);" (call_expression "(*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,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_68,local_64,0,0,1)" ( (cast_expression "(string *)&local_68" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_68" & identifier)) , identifier , number_literal , number_literal , number_literal ))) ;) })) (expression_statement "*(undefined1 *)((int)local_68 + uVar14) = uVar16;" (assignment_expression "*(undefined1 *)((int)local_68 + uVar14) = uVar16" (pointer_expression "*(undefined1 *)((int)local_68 + uVar14)" * (cast_expression "(undefined1 *)((int)local_68 + uVar14)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_68 + uVar14)" ( (binary_expression "(int)local_68 + uVar14" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = identifier) ;) (expression_statement "*(undefined1 *)((int)local_68 + uVar12) = 0;" (assignment_expression "*(undefined1 *)((int)local_68 + uVar12) = 0" (pointer_expression "*(undefined1 *)((int)local_68 + uVar12)" * (cast_expression "(undefined1 *)((int)local_68 + uVar12)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)local_68 + uVar12)" ( (binary_expression "(int)local_68 + uVar12" (cast_expression "(int)local_68" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = number_literal) ;) (expression_statement "local_64 = uVar12;" (assignment_expression "local_64 = uVar12" identifier = identifier) ;) (ERROR "iVar13 = std::" (assignment_expression "iVar13 = std" identifier = identifier) : :) (expression_statement "__verify_grouping\n                     (*(char **)(iVar13 + 8),*(uint *)(iVar13 + 0xc),(string *)&local_68);" (call_expression "__verify_grouping\n                     (*(char **)(iVar13 + 8),*(uint *)(iVar13 + 0xc),(string *)&local_68)" identifier (argument_list "(*(char **)(iVar13 + 8),*(uint *)(iVar13 + 0xc),(string *)&local_68)" ( (pointer_expression "*(char **)(iVar13 + 8)" * (cast_expression "(char **)(iVar13 + 8)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar13 + 8)" ( (binary_expression "iVar13 + 8" identifier + number_literal) )))) , (pointer_expression "*(uint *)(iVar13 + 0xc)" * (cast_expression "(uint *)(iVar13 + 0xc)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + 0xc)" ( (binary_expression "iVar13 + 0xc" identifier + number_literal) )))) , (cast_expression "(string *)&local_68" ( (type_descriptor "string *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_68" & identifier)) ))) ;) (if_statement "if (iVar13 == 0) {\n    *param_8 = 4;\n  }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 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) || (bVar15)) || (local_64 != 0)) && (local_48 == 0)) goto LAB_003c6de8;" if (parenthesized_expression "((((iVar3 != 0) || (bVar15)) || (local_64 != 0)) && (local_48 == 0))" ( (binary_expression "(((iVar3 != 0) || (bVar15)) || (local_64 != 0)) && (local_48 == 0)" (parenthesized_expression "(((iVar3 != 0) || (bVar15)) || (local_64 != 0))" ( (binary_expression "((iVar3 != 0) || (bVar15)) || (local_64 != 0)" (parenthesized_expression "((iVar3 != 0) || (bVar15))" ( (binary_expression "(iVar3 != 0) || (bVar15)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) || (parenthesized_expression "(bVar15)" ( identifier ))) )) || (parenthesized_expression "(local_64 != 0)" ( (binary_expression "local_64 != 0" identifier != number_literal) ))) )) && (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_003c6de8;" goto statement_identifier ;)) (labeled_statement "LAB_003c6a48:\n  *param_9 = 0;" statement_identifier : (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" * identifier) = number_literal) ;)) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;) (labeled_statement "LAB_003c6a54:\n  if (local_4c != 0) {\n    *param_8 = *param_8 | 2;\n  }" statement_identifier : (if_statement "if (local_4c != 0) {\n    *param_8 = *param_8 | 2;\n  }" if (parenthesized_expression "(local_4c != 0)" ( (binary_expression "local_4c != 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_003c6a70:\n  *param_1 = local_res8;" statement_identifier : (expression_statement "*param_1 = local_res8;" (assignment_expression "*param_1 = local_res8" (pointer_expression "*param_1" * identifier) = identifier) ;)) (expression_statement "param_1[1] = local_resc;" (assignment_expression "param_1[1] = local_resc" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" if (parenthesized_expression "(local_68 != local_40)" ( (binary_expression "local_68 != 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_003c6d60:\n  local_4c = 0;" statement_identifier : (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;)) (if_statement "if (local_64 != 0) goto LAB_003c6d70;" if (parenthesized_expression "(local_64 != 0)" ( (binary_expression "local_64 != 0" identifier != number_literal) )) (goto_statement "goto LAB_003c6d70;" goto statement_identifier ;)) (labeled_statement "LAB_003c6a34:\n  if ((iVar3 != 0) || (bVar15)) {\nLAB_003c6de8:\n    if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }\n    goto LAB_003c6a54;\n  }" statement_identifier : (if_statement "if ((iVar3 != 0) || (bVar15)) {\nLAB_003c6de8:\n    if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }\n    goto LAB_003c6a54;\n  }" if (parenthesized_expression "((iVar3 != 0) || (bVar15))" ( (binary_expression "(iVar3 != 0) || (bVar15)" (parenthesized_expression "(iVar3 != 0)" ( (binary_expression "iVar3 != 0" identifier != number_literal) )) || (parenthesized_expression "(bVar15)" ( identifier ))) )) (compound_statement "{\nLAB_003c6de8:\n    if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }\n    goto LAB_003c6a54;\n  }" { (labeled_statement "LAB_003c6de8:\n    if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }" statement_identifier : (if_statement "if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }" if (parenthesized_expression "(uVar17 == 0)" ( (binary_expression "uVar17 == 0" identifier == number_literal) )) (compound_statement "{\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }" { (if_statement "if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }" if (parenthesized_expression "(local_38 != 0)" ( (binary_expression "local_38 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar5 = -uVar5;\n      }" { (expression_statement "uVar5 = -uVar5;" (assignment_expression "uVar5 = -uVar5" identifier = (unary_expression "-uVar5" - identifier)) ;) })) (expression_statement "*param_9 = uVar5;" (assignment_expression "*param_9 = uVar5" (pointer_expression "*param_9" * identifier) = identifier) ;) }) (else_clause "else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }" else (compound_statement "{\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }" { (expression_statement "*param_9 = 0xffffffff;" (assignment_expression "*param_9 = 0xffffffff" (pointer_expression "*param_9" * identifier) = number_literal) ;) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" * identifier) = number_literal) ;) })))) (goto_statement "goto LAB_003c6a54;" goto statement_identifier ;) }))) (goto_statement "goto LAB_003c6a48;" 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 (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 (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 ;))) (labeled_statement 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) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (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) ))) )) (break_statement break ;)) (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 (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (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 == 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 = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })))) (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) )) (break_statement break ;)) (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 = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) <= IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;)) (labeled_statement statement_identifier : (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 = LIT) ;) (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 = 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)) ;) })) })) (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 ;))) }))) (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) ))))) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) && (parenthesized_expression ( (binary_expression (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) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) & LIT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression & IDENT) , LIT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression LIT / IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (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 = (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 = LIT) ;) (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 = (binary_expression IDENT & LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) || (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))) )) (goto_statement goto statement_identifier ;)))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (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 ;)) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (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) )) (break_statement break ;)) (while_statement while (parenthesized_expression ( BOOL )) (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))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ])) < (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 = (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 ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (compound_statement { (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 ;)) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT | (binary_expression (unary_expression ~ IDENT) < (binary_expression IDENT * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (binary_expression IDENT * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( ))) ;)) (expression_statement (assignment_expression IDENT = 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)) )) (break_statement break ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;))) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (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) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (subscript_expression IDENT [ LIT ]) & LIT)) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( LIT ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression LIT / IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT == LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 (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 ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression 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 IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT & LIT) | (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (unary_expression ~ IDENT) < IDENT) ))))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) <= IDENT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;)) (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression 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 (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT , LIT , LIT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + LIT) ))))) )) (argument_list ( ))) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (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 { (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 )))) ;) (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) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != 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))) ;) (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) ;) })) }))))) (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 = IDENT) ;) })))) }))) (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 = (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 (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)) ))) ;) (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 (pointer_expression * IDENT) = LIT) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) | LIT)) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = 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 = 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 ( IDENT ))) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - IDENT)) ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) })))) (goto_statement goto statement_identifier ;) }))) (goto_statement goto statement_identifier ;) })))
(function_definition "undefined4 *\nFUN_003c6784(undefined4 *param_1,undefined4 param_2,int *param_3,int 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  int *piVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  uint uVar17;\n  int *local_res8;\n  int local_resc;\n  uint *local_68;\n  uint local_64;\n  uint local_60 [4];\n  uint local_50;\n  uint local_4c;\n  uint local_48;\n  uint local_44;\n  uint *local_40;\n  int local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  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  piVar11 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar13 = *piVar11;\n  if (iVar13 == 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    iVar13 = *piVar11;\n  }\n  uVar14 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar14 == 0x40) {\n    uVar4 = 8;\n    if (local_res8 == (int *)0x0) goto LAB_003c7160;\nLAB_003c6834:\n    if (local_resc == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c684c;\nLAB_003c7170:\n    if ((param_6 == -1) == bVar15) goto LAB_003c717c;\nLAB_003c6864:\n    if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n      uVar12 = (uint)(char)local_resc;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12);\n    if (((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)) {\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }\n    if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)) goto LAB_003c6b0c;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 1;\n      uVar5 = local_res8[2];\nLAB_003c68e8:\n      local_resc = -1;\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }\n    }\n    else {\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\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 != bVar15) {\n      cVar9 = FUN_003c05e4(&local_res8,local_resc);\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    iVar3 = 0;\n    bVar15 = false;\n    if (uVar4 == 0x10) goto LAB_003c6bf0;\nLAB_003c692c:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = uVar4;\n    if (cVar9 == '\0') goto LAB_003c6944;\nLAB_003c6c10:\n    local_40 = local_60;\n    local_68 = local_60;\n    local_64 = 0;\n                    \n    (*(code *)PTR_reserve_004c2458)(&local_68,0x20);\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    if (local_4c != 0) goto LAB_003c6c44;\nLAB_003c6964:\n    if (uVar14 == 0) {\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      local_resc = -1;\n      uVar14 = 0;\n                    \n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    \n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }\n    uVar17 = 0;\n    uVar5 = 0;\n    local_4c = uVar14;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar14 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c6834;\nLAB_003c7160:\n    bVar15 = local_resc == -1;\n    if (param_5 == (int *)0x0) goto LAB_003c7170;\nLAB_003c684c:\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 != bVar15) goto LAB_003c6864;\nLAB_003c717c:\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    local_38 = 0;\n    uVar12 = 0;\n    iVar3 = 0;\n    bVar15 = false;\nLAB_003c6be4:\n    if (uVar4 != 0x10) goto LAB_003c692c;\nLAB_003c6bf0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = 0x16;\n    if (cVar9 != '\0') goto LAB_003c6c10;\nLAB_003c6944:\n    local_68 = local_60;\n    local_64 = 0;\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (local_4c == 0) goto LAB_003c6964;\nLAB_003c6c44:\n    if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }\n  }\nLAB_003c6a28:\n  if (local_64 == 0) goto LAB_003c6a34;\nLAB_003c6d70:\n  uVar16 = (undefined1)iVar3;\n  local_48 = 0;\nLAB_003c6d78:\n  uVar14 = local_64;\n  uVar12 = local_64 + 1;\n  uVar4 = local_60[0];\n  if (local_68 == local_40) {\n    uVar4 = 0xf;\n  }\n  if (uVar4 < uVar12) {\n    (*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,0,0,1);\n  }\n  *(undefined1 *)((int)local_68 + uVar14) = uVar16;\n  *(undefined1 *)((int)local_68 + uVar12) = 0;\n  local_64 = uVar12;\n  iVar13 = std::__verify_grouping\n                     (*(char **)(iVar13 + 8),*(uint *)(iVar13 + 0xc),(string *)&local_68);\n  if (iVar13 == 0) {\n    *param_8 = 4;\n  }\n  if ((((iVar3 != 0) || (bVar15)) || (local_64 != 0)) && (local_48 == 0)) goto LAB_003c6de8;\nLAB_003c6a48:\n  *param_9 = 0;\n  *param_8 = 4;\nLAB_003c6a54:\n  if (local_4c != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_003c6a70:\n  *param_1 = local_res8;\n  param_1[1] = local_resc;\n  if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return param_1;\nLAB_003c6d60:\n  local_4c = 0;\n  if (local_64 != 0) goto LAB_003c6d70;\nLAB_003c6a34:\n  if ((iVar3 != 0) || (bVar15)) {\nLAB_003c6de8:\n    if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }\n    goto LAB_003c6a54;\n  }\n  goto LAB_003c6a48;\n}" (type_identifier "undefined4") (pointer_declarator "*\nFUN_003c6784(undefined4 *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,\n            int param_6,int param_7,uint *param_8,uint *param_9)" (* "*") (function_declarator "FUN_003c6784(undefined4 *param_1,undefined4 param_2,int *param_3,int param_4,int *param_5,\n            int param_6,int param_7,uint *param_8,uint *param_9)" (identifier "FUN_003c6784") (parameter_list "(undefined4 *param_1,undefined4 param_2,int *param_3,int 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 "int param_4" (primitive_type "int") (identifier "param_4")) (, ",") (parameter_declaration "int *param_5" (primitive_type "int") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "int param_6" (primitive_type "int") (identifier "param_6")) (, ",") (parameter_declaration "int param_7" (primitive_type "int") (identifier "param_7")) (, ",") (parameter_declaration "uint *param_8" (type_identifier "uint") (pointer_declarator "*param_8" (* "*") (identifier "param_8"))) (, ",") (parameter_declaration "uint *param_9" (type_identifier "uint") (pointer_declarator "*param_9" (* "*") (identifier "param_9"))) () ")")))) (compound_statement "{\n  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  int *piVar11;\n  uint uVar12;\n  int iVar13;\n  uint uVar14;\n  bool bVar15;\n  undefined1 uVar16;\n  uint uVar17;\n  int *local_res8;\n  int local_resc;\n  uint *local_68;\n  uint local_64;\n  uint local_60 [4];\n  uint local_50;\n  uint local_4c;\n  uint local_48;\n  uint local_44;\n  uint *local_40;\n  int local_3c;\n  uint local_38;\n  uint local_34;\n  uint local_30;\n  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  piVar11 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);\n  iVar13 = *piVar11;\n  if (iVar13 == 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    iVar13 = *piVar11;\n  }\n  uVar14 = *(uint *)(param_7 + 0xc) & 0x4a;\n  if (uVar14 == 0x40) {\n    uVar4 = 8;\n    if (local_res8 == (int *)0x0) goto LAB_003c7160;\nLAB_003c6834:\n    if (local_resc == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c684c;\nLAB_003c7170:\n    if ((param_6 == -1) == bVar15) goto LAB_003c717c;\nLAB_003c6864:\n    if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n      uVar12 = (uint)(char)local_resc;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12);\n    if (((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)) {\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }\n    if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)) goto LAB_003c6b0c;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 1;\n      uVar5 = local_res8[2];\nLAB_003c68e8:\n      local_resc = -1;\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }\n    }\n    else {\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\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 != bVar15) {\n      cVar9 = FUN_003c05e4(&local_res8,local_resc);\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    iVar3 = 0;\n    bVar15 = false;\n    if (uVar4 == 0x10) goto LAB_003c6bf0;\nLAB_003c692c:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = uVar4;\n    if (cVar9 == '\0') goto LAB_003c6944;\nLAB_003c6c10:\n    local_40 = local_60;\n    local_68 = local_60;\n    local_64 = 0;\n                    \n    (*(code *)PTR_reserve_004c2458)(&local_68,0x20);\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    if (local_4c != 0) goto LAB_003c6c44;\nLAB_003c6964:\n    if (uVar14 == 0) {\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      local_resc = -1;\n      uVar14 = 0;\n                    \n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    \n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }\n    uVar17 = 0;\n    uVar5 = 0;\n    local_4c = uVar14;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar14 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c6834;\nLAB_003c7160:\n    bVar15 = local_resc == -1;\n    if (param_5 == (int *)0x0) goto LAB_003c7170;\nLAB_003c684c:\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 != bVar15) goto LAB_003c6864;\nLAB_003c717c:\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    local_38 = 0;\n    uVar12 = 0;\n    iVar3 = 0;\n    bVar15 = false;\nLAB_003c6be4:\n    if (uVar4 != 0x10) goto LAB_003c692c;\nLAB_003c6bf0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = 0x16;\n    if (cVar9 != '\0') goto LAB_003c6c10;\nLAB_003c6944:\n    local_68 = local_60;\n    local_64 = 0;\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (local_4c == 0) goto LAB_003c6964;\nLAB_003c6c44:\n    if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }\n  }\nLAB_003c6a28:\n  if (local_64 == 0) goto LAB_003c6a34;\nLAB_003c6d70:\n  uVar16 = (undefined1)iVar3;\n  local_48 = 0;\nLAB_003c6d78:\n  uVar14 = local_64;\n  uVar12 = local_64 + 1;\n  uVar4 = local_60[0];\n  if (local_68 == local_40) {\n    uVar4 = 0xf;\n  }\n  if (uVar4 < uVar12) {\n    (*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,0,0,1);\n  }\n  *(undefined1 *)((int)local_68 + uVar14) = uVar16;\n  *(undefined1 *)((int)local_68 + uVar12) = 0;\n  local_64 = uVar12;\n  iVar13 = std::__verify_grouping\n                     (*(char **)(iVar13 + 8),*(uint *)(iVar13 + 0xc),(string *)&local_68);\n  if (iVar13 == 0) {\n    *param_8 = 4;\n  }\n  if ((((iVar3 != 0) || (bVar15)) || (local_64 != 0)) && (local_48 == 0)) goto LAB_003c6de8;\nLAB_003c6a48:\n  *param_9 = 0;\n  *param_8 = 4;\nLAB_003c6a54:\n  if (local_4c != 0) {\n    *param_8 = *param_8 | 2;\n  }\nLAB_003c6a70:\n  *param_1 = local_res8;\n  param_1[1] = local_resc;\n  if (local_68 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }\n  return param_1;\nLAB_003c6d60:\n  local_4c = 0;\n  if (local_64 != 0) goto LAB_003c6d70;\nLAB_003c6a34:\n  if ((iVar3 != 0) || (bVar15)) {\nLAB_003c6de8:\n    if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }\n    goto LAB_003c6a54;\n  }\n  goto LAB_003c6a48;\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 "int *piVar11;" (primitive_type "int") (pointer_declarator "*piVar11" (* "*") (identifier "piVar11")) (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "bool bVar15;" (primitive_type "bool") (identifier "bVar15") (; ";")) (declaration "undefined1 uVar16;" (type_identifier "undefined1") (identifier "uVar16") (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "int *local_res8;" (primitive_type "int") (pointer_declarator "*local_res8" (* "*") (identifier "local_res8")) (; ";")) (declaration "int local_resc;" (primitive_type "int") (identifier "local_resc") (; ";")) (declaration "uint *local_68;" (type_identifier "uint") (pointer_declarator "*local_68" (* "*") (identifier "local_68")) (; ";")) (declaration "uint local_64;" (type_identifier "uint") (identifier "local_64") (; ";")) (declaration "uint local_60 [4];" (type_identifier "uint") (array_declarator "local_60 [4]" (identifier "local_60") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "uint local_50;" (type_identifier "uint") (identifier "local_50") (; ";")) (declaration "uint local_4c;" (type_identifier "uint") (identifier "local_4c") (; ";")) (declaration "uint local_48;" (type_identifier "uint") (identifier "local_48") (; ";")) (declaration "uint local_44;" (type_identifier "uint") (identifier "local_44") (; ";")) (declaration "uint *local_40;" (type_identifier "uint") (pointer_declarator "*local_40" (* "*") (identifier "local_40")) (; ";")) (declaration "int local_3c;" (primitive_type "int") (identifier "local_3c") (; ";")) (declaration "uint local_38;" (type_identifier "uint") (identifier "local_38") (; ";")) (declaration "uint local_34;" (type_identifier "uint") (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 "piVar11 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);" (assignment_expression "piVar11 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4)" (identifier "piVar11") (= "=") (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 "iVar13 = *piVar11;" (assignment_expression "iVar13 = *piVar11" (identifier "iVar13") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (if_statement "if (iVar13 == 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    iVar13 = *piVar11;\n  }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (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    iVar13 = *piVar11;\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 "iVar13 = *piVar11;" (assignment_expression "iVar13 = *piVar11" (identifier "iVar13") (= "=") (pointer_expression "*piVar11" (* "*") (identifier "piVar11"))) (; ";")) (} "}"))) (expression_statement "uVar14 = *(uint *)(param_7 + 0xc) & 0x4a;" (assignment_expression "uVar14 = *(uint *)(param_7 + 0xc) & 0x4a" (identifier "uVar14") (= "=") (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 (uVar14 == 0x40) {\n    uVar4 = 8;\n    if (local_res8 == (int *)0x0) goto LAB_003c7160;\nLAB_003c6834:\n    if (local_resc == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c684c;\nLAB_003c7170:\n    if ((param_6 == -1) == bVar15) goto LAB_003c717c;\nLAB_003c6864:\n    if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n      uVar12 = (uint)(char)local_resc;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12);\n    if (((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)) {\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }\n    if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)) goto LAB_003c6b0c;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 1;\n      uVar5 = local_res8[2];\nLAB_003c68e8:\n      local_resc = -1;\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }\n    }\n    else {\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\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 != bVar15) {\n      cVar9 = FUN_003c05e4(&local_res8,local_resc);\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    iVar3 = 0;\n    bVar15 = false;\n    if (uVar4 == 0x10) goto LAB_003c6bf0;\nLAB_003c692c:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = uVar4;\n    if (cVar9 == '\0') goto LAB_003c6944;\nLAB_003c6c10:\n    local_40 = local_60;\n    local_68 = local_60;\n    local_64 = 0;\n                    \n    (*(code *)PTR_reserve_004c2458)(&local_68,0x20);\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    if (local_4c != 0) goto LAB_003c6c44;\nLAB_003c6964:\n    if (uVar14 == 0) {\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      local_resc = -1;\n      uVar14 = 0;\n                    \n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    \n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }\n    uVar17 = 0;\n    uVar5 = 0;\n    local_4c = uVar14;\n  }\n  else {\n    uVar4 = 10;\n    if (uVar14 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c6834;\nLAB_003c7160:\n    bVar15 = local_resc == -1;\n    if (param_5 == (int *)0x0) goto LAB_003c7170;\nLAB_003c684c:\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 != bVar15) goto LAB_003c6864;\nLAB_003c717c:\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    local_38 = 0;\n    uVar12 = 0;\n    iVar3 = 0;\n    bVar15 = false;\nLAB_003c6be4:\n    if (uVar4 != 0x10) goto LAB_003c692c;\nLAB_003c6bf0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = 0x16;\n    if (cVar9 != '\0') goto LAB_003c6c10;\nLAB_003c6944:\n    local_68 = local_60;\n    local_64 = 0;\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (local_4c == 0) goto LAB_003c6964;\nLAB_003c6c44:\n    if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }\n  }" (if "if") (parenthesized_expression "(uVar14 == 0x40)" (( "(") (binary_expression "uVar14 == 0x40" (identifier "uVar14") (== "==") (number_literal "0x40")) () ")")) (compound_statement "{\n    uVar4 = 8;\n    if (local_res8 == (int *)0x0) goto LAB_003c7160;\nLAB_003c6834:\n    if (local_resc == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }\n    if (param_5 != (int *)0x0) goto LAB_003c684c;\nLAB_003c7170:\n    if ((param_6 == -1) == bVar15) goto LAB_003c717c;\nLAB_003c6864:\n    if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n      uVar12 = (uint)(char)local_resc;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12);\n    if (((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)) {\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }\n    if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)) goto LAB_003c6b0c;\n    if ((uint)local_res8[2] < (uint)local_res8[3]) {\n      local_res8[2] = local_res8[2] + 1;\n      uVar5 = local_res8[2];\nLAB_003c68e8:\n      local_resc = -1;\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }\n    }\n    else {\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\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 != bVar15) {\n      cVar9 = FUN_003c05e4(&local_res8,local_resc);\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\n    }\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    iVar3 = 0;\n    bVar15 = false;\n    if (uVar4 == 0x10) goto LAB_003c6bf0;\nLAB_003c692c:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = uVar4;\n    if (cVar9 == '\0') goto LAB_003c6944;\nLAB_003c6c10:\n    local_40 = local_60;\n    local_68 = local_60;\n    local_64 = 0;\n                    \n    (*(code *)PTR_reserve_004c2458)(&local_68,0x20);\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    if (local_4c != 0) goto LAB_003c6c44;\nLAB_003c6964:\n    if (uVar14 == 0) {\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      local_resc = -1;\n      uVar14 = 0;\n                    \n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    \n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }\n    uVar17 = 0;\n    uVar5 = 0;\n    local_4c = uVar14;\n  }" ({ "{") (expression_statement "uVar4 = 8;" (assignment_expression "uVar4 = 8" (identifier "uVar4") (= "=") (number_literal "8")) (; ";")) (if_statement "if (local_res8 == (int *)0x0) goto LAB_003c7160;" (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_003c7160;" (goto "goto") (statement_identifier "LAB_003c7160") (; ";"))) (labeled_statement "LAB_003c6834:\n    if (local_resc == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }" (statement_identifier "LAB_003c6834") (: ":") (if_statement "if (local_resc == -1) {\n      bVar15 = 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        bVar15 = true;\n      }\n    }\n    else {\n      bVar15 = false;\n    }" (if "if") (parenthesized_expression "(local_resc == -1)" (( "(") (binary_expression "local_resc == -1" (identifier "local_resc") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n      bVar15 = 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        bVar15 = true;\n      }\n    }" ({ "{") (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (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        bVar15 = 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        bVar15 = 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 "bVar15 = true;" (assignment_expression "bVar15 = true" (identifier "bVar15") (= "=") (true "true")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      bVar15 = false;\n    }" (else "else") (compound_statement "{\n      bVar15 = false;\n    }" ({ "{") (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";")) (} "}"))))) (if_statement "if (param_5 != (int *)0x0) goto LAB_003c684c;" (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_003c684c;" (goto "goto") (statement_identifier "LAB_003c684c") (; ";"))) (labeled_statement "LAB_003c7170:\n    if ((param_6 == -1) == bVar15) goto LAB_003c717c;" (statement_identifier "LAB_003c7170") (: ":") (if_statement "if ((param_6 == -1) == bVar15) goto LAB_003c717c;" (if "if") (parenthesized_expression "((param_6 == -1) == bVar15)" (( "(") (binary_expression "(param_6 == -1) == bVar15" (parenthesized_expression "(param_6 == -1)" (( "(") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1")) () ")")) (== "==") (identifier "bVar15")) () ")")) (goto_statement "goto LAB_003c717c;" (goto "goto") (statement_identifier "LAB_003c717c") (; ";")))) (labeled_statement "LAB_003c6864:\n    if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n      uVar12 = (uint)(char)local_resc;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }" (statement_identifier "LAB_003c6864") (: ":") (if_statement "if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n      uVar12 = (uint)(char)local_resc;\n    }\n    else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }" (if "if") (parenthesized_expression "((local_res8 == (int *)0x0) || (local_resc != -1))" (( "(") (binary_expression "(local_res8 == (int *)0x0) || (local_resc != -1)" (parenthesized_expression "(local_res8 == (int *)0x0)" (( "(") (binary_expression "local_res8 == (int *)0x0" (identifier "local_res8") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(local_resc != -1)" (( "(") (binary_expression "local_resc != -1" (identifier "local_resc") (!= "!=") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n      uVar12 = (uint)(char)local_resc;\n    }" ({ "{") (expression_statement "uVar12 = (uint)(char)local_resc;" (assignment_expression "uVar12 = (uint)(char)local_resc" (identifier "uVar12") (= "=") (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      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }" (else "else") (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n      uVar12 = (uint)*(char *)local_res8[2];\n    }\n    else {\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (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      uVar12 = (uint)*(char *)local_res8[2];\n    }" ({ "{") (expression_statement "uVar12 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar12 = (uint)*(char *)local_res8[2]" (identifier "uVar12") (= "=") (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        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }\n    }" (else "else") (compound_statement "{\n      iVar3 = (**(code **)(*local_res8 + 0x24))();\n      if (iVar3 == -1) {\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (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        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }\n      else {\n        uVar12 = (uint)(char)iVar3;\n      }" (if "if") (parenthesized_expression "(iVar3 == -1)" (( "(") (binary_expression "iVar3 == -1" (identifier "iVar3") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n        uVar12 = 0xffffffff;\n        local_res8 = (int *)0x0;\n      }" ({ "{") (expression_statement "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 0xffffffff" (identifier "uVar12") (= "=") (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        uVar12 = (uint)(char)iVar3;\n      }" (else "else") (compound_statement "{\n        uVar12 = (uint)(char)iVar3;\n      }" ({ "{") (expression_statement "uVar12 = (uint)(char)iVar3;" (assignment_expression "uVar12 = (uint)(char)iVar3" (identifier "uVar12") (= "=") (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 *)(iVar13 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar13 + 0x10)" (identifier "cVar9") (= "=") (pointer_expression "*(char *)(iVar13 + 0x10)" (* "*") (cast_expression "(char *)(iVar13 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x10)" (( "(") (binary_expression "iVar13 + 0x10" (identifier "iVar13") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12);" (assignment_expression "local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12)" (identifier "local_38") (= "=") (call_expression "(uint)((int)*(char *)(iVar13 + 0x4a) == uVar12)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "((int)*(char *)(iVar13 + 0x4a) == uVar12)" (( "(") (binary_expression "(int)*(char *)(iVar13 + 0x4a) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x4a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar13 + 0x4a)" (* "*") (cast_expression "(char *)(iVar13 + 0x4a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x4a)" (( "(") (binary_expression "iVar13 + 0x4a" (identifier "iVar13") (+ "+") (number_literal "0x4a")) () ")"))))) (== "==") (identifier "uVar12")) () ")")))) (; ";")) (if_statement "if (((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)) {\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }" (if "if") (parenthesized_expression "(((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12))" (( "(") (binary_expression "((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)" (parenthesized_expression "((int)*(char *)(iVar13 + 0x4a) != uVar12)" (( "(") (binary_expression "(int)*(char *)(iVar13 + 0x4a) != uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x4a)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar13 + 0x4a)" (* "*") (cast_expression "(char *)(iVar13 + 0x4a)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x4a)" (( "(") (binary_expression "iVar13 + 0x4a" (identifier "iVar13") (+ "+") (number_literal "0x4a")) () ")"))))) (!= "!=") (identifier "uVar12")) () ")")) (&& "&&") (parenthesized_expression "((int)*(char *)(iVar13 + 0x4b) != uVar12)" (( "(") (binary_expression "(int)*(char *)(iVar13 + 0x4b) != uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x4b)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar13 + 0x4b)" (* "*") (cast_expression "(char *)(iVar13 + 0x4b)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x4b)" (( "(") (binary_expression "iVar13 + 0x4b" (identifier "iVar13") (+ "+") (number_literal "0x4b")) () ")"))))) (!= "!=") (identifier "uVar12")) () ")"))) () ")")) (compound_statement "{\n      local_38 = 0;\nLAB_003c6b0c:\n      iVar3 = 0;\n      bVar15 = false;\n      do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);\n      uVar14 = 0;\n      goto LAB_003c6be4;\n    }" ({ "{") (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" (identifier "local_38") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_003c6b0c:\n      iVar3 = 0;" (statement_identifier "LAB_003c6b0c") (: ":") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";"))) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";")) (do_statement "do {\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      } while (bVar15);" (do "do") (compound_statement "{\n        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;\n        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }\n        cVar9 = *(char *)(iVar13 + 0x10);\n      }" ({ "{") (if_statement "if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;" (if "if") (parenthesized_expression "(((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12))" (( "(") (binary_expression "((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n           ((int)*(char *)(iVar13 + 0x24) == uVar12)" (parenthesized_expression "((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12))" (( "(") (binary_expression "(cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)" (parenthesized_expression "(cVar9 != '\0')" (( "(") (binary_expression "cVar9 != '\0'" (identifier "cVar9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "((int)*(char *)(iVar13 + 0x25) == uVar12)" (( "(") (binary_expression "(int)*(char *)(iVar13 + 0x25) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x25)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar13 + 0x25)" (* "*") (cast_expression "(char *)(iVar13 + 0x25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x25)" (( "(") (binary_expression "iVar13 + 0x25" (identifier "iVar13") (+ "+") (number_literal "0x25")) () ")"))))) (== "==") (identifier "uVar12")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((int)*(char *)(iVar13 + 0x24) == uVar12)" (( "(") (binary_expression "(int)*(char *)(iVar13 + 0x24) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x24)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar13 + 0x24)" (* "*") (cast_expression "(char *)(iVar13 + 0x24)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x24)" (( "(") (binary_expression "iVar13 + 0x24" (identifier "iVar13") (+ "+") (number_literal "0x24")) () ")"))))) (== "==") (identifier "uVar12")) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }\n        else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }" (if "if") (parenthesized_expression "((int)*(char *)(iVar13 + 0x4e) == uVar12)" (( "(") (binary_expression "(int)*(char *)(iVar13 + 0x4e) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x4e)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar13 + 0x4e)" (* "*") (cast_expression "(char *)(iVar13 + 0x4e)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x4e)" (( "(") (binary_expression "iVar13 + 0x4e" (identifier "iVar13") (+ "+") (number_literal "0x4e")) () ")"))))) (== "==") (identifier "uVar12")) () ")")) (compound_statement "{\n          if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }\nLAB_003c6b80:\n          uVar5 = local_res8[2];\n          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;\nLAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();\n          uVar5 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;\n          if (param_5 == (int *)0x0) goto LAB_003c6e58;\nLAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }\n          if (uVar17 == uVar5) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }\n        }" ({ "{") (if_statement "if (bVar15) {\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }\n          else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }" (if "if") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (compound_statement "{\n            if (uVar4 != 10) goto LAB_003c6b4c;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }\n          }" ({ "{") (if_statement "if (uVar4 != 10) goto LAB_003c6b4c;" (if "if") (parenthesized_expression "(uVar4 != 10)" (( "(") (binary_expression "uVar4 != 10" (identifier "uVar4") (!= "!=") (number_literal "10")) () ")")) (goto_statement "goto LAB_003c6b4c;" (goto "goto") (statement_identifier "LAB_003c6b4c") (; ";"))) (if_statement "if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }" (if "if") (parenthesized_expression "(uVar14 == 0)" (( "(") (binary_expression "uVar14 == 0" (identifier "uVar14") (== "==") (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_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }" (else "else") (compound_statement "{\nLAB_003c6ff4:\n              iVar3 = iVar3 + 1;\n              bVar15 = true;\n            }" ({ "{") (labeled_statement "LAB_003c6ff4:\n              iVar3 = iVar3 + 1;" (statement_identifier "LAB_003c6ff4") (: ":") (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" (identifier "bVar15") (= "=") (true "true")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }" (else "else") (compound_statement "{\n            bVar15 = true;\n            if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }\n          }" ({ "{") (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" (identifier "bVar15") (= "=") (true "true")) (; ";")) (if_statement "if (uVar14 == 0) {\n              iVar3 = 0;\n              uVar4 = 8;\n            }\n            else {\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }" (if "if") (parenthesized_expression "(uVar14 == 0)" (( "(") (binary_expression "uVar14 == 0" (identifier "uVar14") (== "==") (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_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }" (else "else") (compound_statement "{\n              if (uVar4 != 8) goto LAB_003c6ff4;\n              iVar3 = 0;\n              bVar15 = true;\n            }" ({ "{") (if_statement "if (uVar4 != 8) goto LAB_003c6ff4;" (if "if") (parenthesized_expression "(uVar4 != 8)" (( "(") (binary_expression "uVar4 != 8" (identifier "uVar4") (!= "!=") (number_literal "8")) () ")")) (goto_statement "goto LAB_003c6ff4;" (goto "goto") (statement_identifier "LAB_003c6ff4") (; ";"))) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" (identifier "bVar15") (= "=") (true "true")) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_003c6b80:\n          uVar5 = local_res8[2];" (statement_identifier "LAB_003c6b80") (: ":") (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_003c6b98;" (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_003c6b98;" (goto "goto") (statement_identifier "LAB_003c6b98") (; ";"))) (labeled_statement "LAB_003c6e28:\n          (**(code **)(*local_res8 + 0x28))();" (statement_identifier "LAB_003c6e28") (: ":") (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 "uVar5 = 1;" (assignment_expression "uVar5 = 1" (identifier "uVar5") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" (identifier "local_resc") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c6ba8;" (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_003c6ba8;" (goto "goto") (statement_identifier "LAB_003c6ba8") (; ";"))) (if_statement "if (param_5 == (int *)0x0) goto LAB_003c6e58;" (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_003c6e58;" (goto "goto") (statement_identifier "LAB_003c6e58") (; ";"))) (labeled_statement "LAB_003c6bc8:\n          if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }\n          }\n          else {\n            uVar17 = 0;\n          }" (statement_identifier "LAB_003c6bc8") (: ":") (if_statement "if (param_6 == -1) {\n            uVar17 = 0;\n            if ((uint)param_5[3] <= (uint)param_5[2]) {\n              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\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              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\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              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\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              local_50 = uVar5;\n              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n              uVar17 = (uint)(iVar8 == -1);\n              uVar5 = local_50;\n              if (iVar8 == -1) {\n                param_5 = (int *)0x0;\n              }\n            }" ({ "{") (expression_statement "local_50 = uVar5;" (assignment_expression "local_50 = uVar5" (identifier "local_50") (= "=") (identifier "uVar5")) (; ";")) (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")) () ")")))) (; ";")) (expression_statement "uVar5 = local_50;" (assignment_expression "uVar5 = local_50" (identifier "uVar5") (= "=") (identifier "local_50")) (; ";")) (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) {\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }" (if "if") (parenthesized_expression "(uVar17 == uVar5)" (( "(") (binary_expression "uVar17 == uVar5" (identifier "uVar17") (== "==") (identifier "uVar5")) () ")")) (compound_statement "{\nLAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);\n            uVar14 = 1;\n            goto LAB_003c6be4;\n          }" ({ "{") (labeled_statement "LAB_003c6bdc:\n            cVar9 = *(char *)(iVar13 + 0x10);" (statement_identifier "LAB_003c6bdc") (: ":") (expression_statement "cVar9 = *(char *)(iVar13 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar13 + 0x10)" (identifier "cVar9") (= "=") (pointer_expression "*(char *)(iVar13 + 0x10)" (* "*") (cast_expression "(char *)(iVar13 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x10)" (( "(") (binary_expression "iVar13 + 0x10" (identifier "iVar13") (+ "+") (number_literal "0x10")) () ")"))))) (; ";"))) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" (identifier "uVar14") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_003c6be4;" (goto "goto") (statement_identifier "LAB_003c6be4") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }" (else "else") (compound_statement "{\n          if (!bVar15) break;\nLAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }\n          if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }\n          iVar3 = 0;\n          bVar15 = false;\n          uVar5 = local_res8[2];\n          uVar4 = 0x10;\n          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;\nLAB_003c6b98:\n          local_res8[2] = uVar5 + 1;\nLAB_003c6ba8:\n          local_resc = -1;\n          uVar5 = 0;\n          if ((uint)local_res8[3] <= (uint)local_res8[2]) {\n            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }\n          if (param_5 != (int *)0x0) goto LAB_003c6bc8;\nLAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;\n        }" ({ "{") (if_statement "if (!bVar15) break;" (if "if") (parenthesized_expression "(!bVar15)" (( "(") (unary_expression "!bVar15" (! "!") (identifier "bVar15")) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_003c6b4c:\n          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }" (statement_identifier "LAB_003c6b4c") (: ":") (if_statement "if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             ) {\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }" (if "if") (parenthesized_expression "(((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)\n             )" (( "(") (binary_expression "((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)" (parenthesized_expression "((int)*(char *)(iVar13 + 0x4c) != uVar12)" (( "(") (binary_expression "(int)*(char *)(iVar13 + 0x4c) != uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x4c)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar13 + 0x4c)" (* "*") (cast_expression "(char *)(iVar13 + 0x4c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x4c)" (( "(") (binary_expression "iVar13 + 0x4c" (identifier "iVar13") (+ "+") (number_literal "0x4c")) () ")"))))) (!= "!=") (identifier "uVar12")) () ")")) (&& "&&") (parenthesized_expression "((int)*(char *)(iVar13 + 0x4d) != uVar12)" (( "(") (binary_expression "(int)*(char *)(iVar13 + 0x4d) != uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x4d)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar13 + 0x4d)" (* "*") (cast_expression "(char *)(iVar13 + 0x4d)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x4d)" (( "(") (binary_expression "iVar13 + 0x4d" (identifier "iVar13") (+ "+") (number_literal "0x4d")) () ")"))))) (!= "!=") (identifier "uVar12")) () ")"))) () ")")) (compound_statement "{\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c6be4;\n          }" ({ "{") (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" (identifier "bVar15") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_003c6be4;" (goto "goto") (statement_identifier "LAB_003c6be4") (; ";")) (} "}")))) (if_statement "if (uVar14 != 0) {\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }" (if "if") (parenthesized_expression "(uVar14 != 0)" (( "(") (binary_expression "uVar14 != 0" (identifier "uVar14") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n            if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }\n            uVar14 = 0;\n            bVar15 = true;\n            goto LAB_003c692c;\n          }" ({ "{") (if_statement "if (uVar4 == 0x10) {\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }" (if "if") (parenthesized_expression "(uVar4 == 0x10)" (( "(") (binary_expression "uVar4 == 0x10" (identifier "uVar4") (== "==") (number_literal "0x10")) () ")")) (compound_statement "{\n              iVar3 = 0;\n              bVar15 = false;\n              goto LAB_003c6b80;\n            }" ({ "{") (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";")) (goto_statement "goto LAB_003c6b80;" (goto "goto") (statement_identifier "LAB_003c6b80") (; ";")) (} "}"))) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" (identifier "bVar15") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_003c692c;" (goto "goto") (statement_identifier "LAB_003c692c") (; ";")) (} "}"))) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (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_003c6e28;" (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_003c6e28;" (goto "goto") (statement_identifier "LAB_003c6e28") (; ";"))) (labeled_statement "LAB_003c6b98:\n          local_res8[2] = uVar5 + 1;" (statement_identifier "LAB_003c6b98") (: ":") (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_003c6ba8:\n          local_resc = -1;" (statement_identifier "LAB_003c6ba8") (: ":") (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" (identifier "local_resc") (= "=") (number_literal "-1")) (; ";"))) (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            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\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            local_50 = 0;\n            iVar8 = (**(code **)(*local_res8 + 0x24))();\n            uVar5 = local_50;\n            if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }\n          }" ({ "{") (expression_statement "local_50 = 0;" (assignment_expression "local_50 = 0" (identifier "local_50") (= "=") (number_literal "0")) (; ";")) (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 "uVar5 = local_50;" (assignment_expression "uVar5 = local_50" (identifier "uVar5") (= "=") (identifier "local_50")) (; ";")) (if_statement "if (iVar8 == -1) {\n              uVar5 = 1;\n              local_res8 = (int *)0x0;\n            }" (if "if") (parenthesized_expression "(iVar8 == -1)" (( "(") (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_003c6bc8;" (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_003c6bc8;" (goto "goto") (statement_identifier "LAB_003c6bc8") (; ";"))) (labeled_statement "LAB_003c6e58:\n          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;" (statement_identifier "LAB_003c6e58") (: ":") (if_statement "if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;" (if "if") (parenthesized_expression "((param_6 == -1) == uVar5)" (( "(") (binary_expression "(param_6 == -1) == uVar5" (parenthesized_expression "(param_6 == -1)" (( "(") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1")) () ")")) (== "==") (identifier "uVar5")) () ")")) (goto_statement "goto LAB_003c6bdc;" (goto "goto") (statement_identifier "LAB_003c6bdc") (; ";")))) (} "}")))) (if_statement "if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }" (if "if") (parenthesized_expression "((local_res8 == (int *)0x0) || (local_resc != -1))" (( "(") (binary_expression "(local_res8 == (int *)0x0) || (local_resc != -1)" (parenthesized_expression "(local_res8 == (int *)0x0)" (( "(") (binary_expression "local_res8 == (int *)0x0" (identifier "local_res8") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(local_resc != -1)" (( "(") (binary_expression "local_resc != -1" (identifier "local_resc") (!= "!=") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n          uVar12 = (uint)(char)local_resc;\n        }" ({ "{") (expression_statement "uVar12 = (uint)(char)local_resc;" (assignment_expression "uVar12 = (uint)(char)local_resc" (identifier "uVar12") (= "=") (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          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }" (else "else") (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (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          uVar12 = (uint)*(char *)local_res8[2];\n        }" ({ "{") (expression_statement "uVar12 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar12 = (uint)*(char *)local_res8[2]" (identifier "uVar12") (= "=") (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            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }\n        }" (else "else") (compound_statement "{\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          if (iVar8 == -1) {\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (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            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }\n          else {\n            uVar12 = (uint)(char)iVar8;\n          }" (if "if") (parenthesized_expression "(iVar8 == -1)" (( "(") (binary_expression "iVar8 == -1" (identifier "iVar8") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            uVar12 = 0xffffffff;\n            local_res8 = (int *)0x0;\n          }" ({ "{") (expression_statement "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 0xffffffff" (identifier "uVar12") (= "=") (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            uVar12 = (uint)(char)iVar8;\n          }" (else "else") (compound_statement "{\n            uVar12 = (uint)(char)iVar8;\n          }" ({ "{") (expression_statement "uVar12 = (uint)(char)iVar8;" (assignment_expression "uVar12 = (uint)(char)iVar8" (identifier "uVar12") (= "=") (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 "cVar9 = *(char *)(iVar13 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar13 + 0x10)" (identifier "cVar9") (= "=") (pointer_expression "*(char *)(iVar13 + 0x10)" (* "*") (cast_expression "(char *)(iVar13 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x10)" (( "(") (binary_expression "iVar13 + 0x10" (identifier "iVar13") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")")) (; ";")) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_003c6be4;" (goto "goto") (statement_identifier "LAB_003c6be4") (; ";")) (} "}"))) (if_statement "if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)) goto LAB_003c6b0c;" (if "if") (parenthesized_expression "(((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12))" (( "(") (binary_expression "((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||\n       ((int)*(char *)(iVar13 + 0x24) == uVar12)" (parenthesized_expression "((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12))" (( "(") (binary_expression "(cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)" (parenthesized_expression "(cVar9 != '\0')" (( "(") (binary_expression "cVar9 != '\0'" (identifier "cVar9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "((int)*(char *)(iVar13 + 0x25) == uVar12)" (( "(") (binary_expression "(int)*(char *)(iVar13 + 0x25) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x25)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar13 + 0x25)" (* "*") (cast_expression "(char *)(iVar13 + 0x25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x25)" (( "(") (binary_expression "iVar13 + 0x25" (identifier "iVar13") (+ "+") (number_literal "0x25")) () ")"))))) (== "==") (identifier "uVar12")) () ")"))) () ")")) (|| "||") (parenthesized_expression "((int)*(char *)(iVar13 + 0x24) == uVar12)" (( "(") (binary_expression "(int)*(char *)(iVar13 + 0x24) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x24)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar13 + 0x24)" (* "*") (cast_expression "(char *)(iVar13 + 0x24)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x24)" (( "(") (binary_expression "iVar13 + 0x24" (identifier "iVar13") (+ "+") (number_literal "0x24")) () ")"))))) (== "==") (identifier "uVar12")) () ")"))) () ")")) (goto_statement "goto LAB_003c6b0c;" (goto "goto") (statement_identifier "LAB_003c6b0c") (; ";"))) (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_003c68e8:\n      local_resc = -1;\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }\n    }\n    else {\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\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_003c68e8:\n      local_resc = -1;\n      bVar15 = false;\n      if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = 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_003c68e8:\n      local_resc = -1;" (statement_identifier "LAB_003c68e8") (: ":") (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" (identifier "local_resc") (= "=") (number_literal "-1")) (; ";"))) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";")) (if_statement "if (((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {\n        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }" (if "if") (parenthesized_expression "(((uint)local_res8[3] <= uVar5) &&\n         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1))" (( "(") (binary_expression "((uint)local_res8[3] <= uVar5) &&\n         (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        bVar15 = true;\n        local_res8 = (int *)0x0;\n      }" ({ "{") (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" (identifier "bVar15") (= "=") (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      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\n      }\n    }" (else "else") (compound_statement "{\n      bVar15 = true;\n      (**(code **)(*local_res8 + 0x28))();\n      local_resc = -1;\n      if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\n      }\n    }" ({ "{") (expression_statement "bVar15 = true;" (assignment_expression "bVar15 = true" (identifier "bVar15") (= "=") (true "true")) (; ";")) (expression_statement "(**(code **)(*local_res8 + 0x28))();" (call_expression "(**(code **)(*local_res8 + 0x28))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x28))" (( "(") (pointer_expression "**(code **)(*local_res8 + 0x28)" (* "*") (pointer_expression "*(code **)(*local_res8 + 0x28)" (* "*") (cast_expression "(code **)(*local_res8 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_res8 + 0x28)" (( "(") (binary_expression "*local_res8 + 0x28" (pointer_expression "*local_res8" (* "*") (identifier "local_res8")) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" (identifier "local_resc") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (local_res8 != (int *)0x0) {\n        uVar5 = local_res8[2];\n        goto LAB_003c68e8;\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_003c68e8;\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_003c68e8;" (goto "goto") (statement_identifier "LAB_003c68e8") (; ";")) (} "}"))) (} "}")))) (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 != bVar15) {\n      cVar9 = FUN_003c05e4(&local_res8,local_resc);\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\n    }" (if "if") (parenthesized_expression "(bVar10 != bVar15)" (( "(") (binary_expression "bVar10 != bVar15" (identifier "bVar10") (!= "!=") (identifier "bVar15")) () ")")) (compound_statement "{\n      cVar9 = FUN_003c05e4(&local_res8,local_resc);\n      uVar12 = (uint)cVar9;\n      cVar9 = *(char *)(iVar13 + 0x10);\n      goto LAB_003c6b0c;\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 "uVar12 = (uint)cVar9;" (assignment_expression "uVar12 = (uint)cVar9" (identifier "uVar12") (= "=") (cast_expression "(uint)cVar9" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "cVar9"))) (; ";")) (expression_statement "cVar9 = *(char *)(iVar13 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar13 + 0x10)" (identifier "cVar9") (= "=") (pointer_expression "*(char *)(iVar13 + 0x10)" (* "*") (cast_expression "(char *)(iVar13 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x10)" (( "(") (binary_expression "iVar13 + 0x10" (identifier "iVar13") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (goto_statement "goto LAB_003c6b0c;" (goto "goto") (statement_identifier "LAB_003c6b0c") (; ";")) (} "}"))) (expression_statement "cVar9 = *(char *)(iVar13 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar13 + 0x10)" (identifier "cVar9") (= "=") (pointer_expression "*(char *)(iVar13 + 0x10)" (* "*") (cast_expression "(char *)(iVar13 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x10)" (( "(") (binary_expression "iVar13 + 0x10" (identifier "iVar13") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" (identifier "uVar14") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";")) (if_statement "if (uVar4 == 0x10) goto LAB_003c6bf0;" (if "if") (parenthesized_expression "(uVar4 == 0x10)" (( "(") (binary_expression "uVar4 == 0x10" (identifier "uVar4") (== "==") (number_literal "0x10")) () ")")) (goto_statement "goto LAB_003c6bf0;" (goto "goto") (statement_identifier "LAB_003c6bf0") (; ";"))) (labeled_statement "LAB_003c692c:\n    local_60[0] = local_60[0] & 0xffffff;" (statement_identifier "LAB_003c692c") (: ":") (expression_statement "local_60[0] = local_60[0] & 0xffffff;" (assignment_expression "local_60[0] = local_60[0] & 0xffffff" (subscript_expression "local_60[0]" (identifier "local_60") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "local_60[0] & 0xffffff" (subscript_expression "local_60[0]" (identifier "local_60") ([ "[") (number_literal "0") (] "]")) (& "&") (number_literal "0xffffff"))) (; ";"))) (expression_statement "local_44 = uVar4;" (assignment_expression "local_44 = uVar4" (identifier "local_44") (= "=") (identifier "uVar4")) (; ";")) (if_statement "if (cVar9 == '\0') goto LAB_003c6944;" (if "if") (parenthesized_expression "(cVar9 == '\0')" (( "(") (binary_expression "cVar9 == '\0'" (identifier "cVar9") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_003c6944;" (goto "goto") (statement_identifier "LAB_003c6944") (; ";"))) (labeled_statement "LAB_003c6c10:\n    local_40 = local_60;" (statement_identifier "LAB_003c6c10") (: ":") (expression_statement "local_40 = local_60;" (assignment_expression "local_40 = local_60" (identifier "local_40") (= "=") (identifier "local_60")) (; ";"))) (expression_statement "local_68 = local_60;" (assignment_expression "local_68 = local_60" (identifier "local_68") (= "=") (identifier "local_60")) (; ";")) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" (identifier "local_64") (= "=") (number_literal "0")) (; ";")) (expression_statement "(*(code *)PTR_reserve_004c2458)(&local_68,0x20);" (call_expression "(*(code *)PTR_reserve_004c2458)(&local_68,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_68,0x20)" (( "(") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (number_literal "0x20") () ")"))) (; ";")) (expression_statement "local_4c = (uint)*(byte *)(iVar13 + 100);" (assignment_expression "local_4c = (uint)*(byte *)(iVar13 + 100)" (identifier "local_4c") (= "=") (binary_expression "(uint)*(byte *)(iVar13 + 100)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar13 + 100)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 100)" (( "(") (binary_expression "iVar13 + 100" (identifier "iVar13") (+ "+") (number_literal "100")) () ")"))))) (; ";")) (if_statement "if (uVar4 == 0) {\n      trap(7);\n    }" (if "if") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      trap(7);\n    }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "local_50 = 0xffffffff / uVar4;" (assignment_expression "local_50 = 0xffffffff / uVar4" (identifier "local_50") (= "=") (binary_expression "0xffffffff / uVar4" (number_literal "0xffffffff") (/ "/") (identifier "uVar4"))) (; ";")) (if_statement "if (local_4c != 0) goto LAB_003c6c44;" (if "if") (parenthesized_expression "(local_4c != 0)" (( "(") (binary_expression "local_4c != 0" (identifier "local_4c") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_003c6c44;" (goto "goto") (statement_identifier "LAB_003c6c44") (; ";"))) (labeled_statement "LAB_003c6964:\n    if (uVar14 == 0) {\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      local_resc = -1;\n      uVar14 = 0;\n                    \n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    \n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }" (statement_identifier "LAB_003c6964") (: ":") (if_statement "if (uVar14 == 0) {\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      local_resc = -1;\n      uVar14 = 0;\n                    \n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    \n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }" (if "if") (parenthesized_expression "(uVar14 == 0)" (( "(") (binary_expression "uVar14 == 0" (identifier "uVar14") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      uVar17 = 0;\n      local_4c = (uint)(local_44 < 0xb);\n      local_48 = (uint)(char)((char)local_44 + '0');\n      uVar5 = 0;\n      local_44 = (uint)(param_6 == -1);\nLAB_003c6990:\n      uVar14 = uVar12 & 0xff;\n      if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;\n      uVar12 = uVar12 - 0x30;\nLAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;\nLAB_003c69c8:\n      uVar14 = local_res8[2];\n      uVar17 = 1;\n      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;\nLAB_003c69e0:\n      local_res8[2] = uVar14 + 1;\nLAB_003c69f0:\n      local_resc = -1;\n      uVar14 = 0;\n                    \n      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }\n      if (param_5 == (int *)0x0) goto LAB_003c6f5c;\n      while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    \n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }\nLAB_003c6a24:\n      local_4c = 1;\n      goto LAB_003c6a28;\n    }" ({ "{") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4c = (uint)(local_44 < 0xb);" (assignment_expression "local_4c = (uint)(local_44 < 0xb)" (identifier "local_4c") (= "=") (call_expression "(uint)(local_44 < 0xb)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(local_44 < 0xb)" (( "(") (binary_expression "local_44 < 0xb" (identifier "local_44") (< "<") (number_literal "0xb")) () ")")))) (; ";")) (expression_statement "local_48 = (uint)(char)((char)local_44 + '0');" (assignment_expression "local_48 = (uint)(char)((char)local_44 + '0')" (identifier "local_48") (= "=") (call_expression "(uint)(char)((char)local_44 + '0')" (call_expression "(uint)(char)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(char)" (( "(") (identifier "char") () ")"))) (argument_list "((char)local_44 + '0')" (( "(") (binary_expression "(char)local_44 + '0'" (cast_expression "(char)local_44" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_44")) (+ "+") (char_literal "'0'" (' "'") (character "0") (' "'"))) () ")")))) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_44 = (uint)(param_6 == -1);" (assignment_expression "local_44 = (uint)(param_6 == -1)" (identifier "local_44") (= "=") (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_003c6990:\n      uVar14 = uVar12 & 0xff;" (statement_identifier "LAB_003c6990") (: ":") (expression_statement "uVar14 = uVar12 & 0xff;" (assignment_expression "uVar14 = uVar12 & 0xff" (identifier "uVar14") (= "=") (binary_expression "uVar12 & 0xff" (identifier "uVar12") (& "&") (number_literal "0xff"))) (; ";"))) (if_statement "if (local_4c == 0) {\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }\n      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;" (if "if") (parenthesized_expression "(local_4c == 0)" (( "(") (binary_expression "local_4c == 0" (identifier "local_4c") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if (9 < uVar14 - 0x30) goto LAB_003c6edc;\n      }" ({ "{") (if_statement "if (9 < uVar14 - 0x30) goto LAB_003c6edc;" (if "if") (parenthesized_expression "(9 < uVar14 - 0x30)" (( "(") (binary_expression "9 < uVar14 - 0x30" (number_literal "9") (< "<") (binary_expression "uVar14 - 0x30" (identifier "uVar14") (- "-") (number_literal "0x30"))) () ")")) (goto_statement "goto LAB_003c6edc;" (goto "goto") (statement_identifier "LAB_003c6edc") (; ";"))) (} "}")) (else_clause "else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;" (else "else") (if_statement "if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;" (if "if") (parenthesized_expression "(((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12))" (( "(") (binary_expression "((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)" (parenthesized_expression "((int)uVar12 < 0x30)" (( "(") (binary_expression "(int)uVar12 < 0x30" (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12")) (< "<") (number_literal "0x30")) () ")")) (|| "||") (parenthesized_expression "((int)local_48 <= (int)uVar12)" (( "(") (binary_expression "(int)local_48 <= (int)uVar12" (cast_expression "(int)local_48" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_48")) (<= "<=") (cast_expression "(int)uVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar12"))) () ")"))) () ")")) (goto_statement "goto LAB_003c6d60;" (goto "goto") (statement_identifier "LAB_003c6d60") (; ";"))))) (expression_statement "uVar12 = uVar12 - 0x30;" (assignment_expression "uVar12 = uVar12 - 0x30" (identifier "uVar12") (= "=") (binary_expression "uVar12 - 0x30" (identifier "uVar12") (- "-") (number_literal "0x30"))) (; ";")) (labeled_statement "LAB_003c69bc:\n      if (uVar5 <= local_50) goto LAB_003c6efc;" (statement_identifier "LAB_003c69bc") (: ":") (if_statement "if (uVar5 <= local_50) goto LAB_003c6efc;" (if "if") (parenthesized_expression "(uVar5 <= local_50)" (( "(") (binary_expression "uVar5 <= local_50" (identifier "uVar5") (<= "<=") (identifier "local_50")) () ")")) (goto_statement "goto LAB_003c6efc;" (goto "goto") (statement_identifier "LAB_003c6efc") (; ";")))) (labeled_statement "LAB_003c69c8:\n      uVar14 = local_res8[2];" (statement_identifier "LAB_003c69c8") (: ":") (expression_statement "uVar14 = local_res8[2];" (assignment_expression "uVar14 = local_res8[2]" (identifier "uVar14") (= "=") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))) (; ";"))) (expression_statement "uVar17 = 1;" (assignment_expression "uVar17 = 1" (identifier "uVar17") (= "=") (number_literal "1")) (; ";")) (if_statement "if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;" (if "if") (parenthesized_expression "((uint)local_res8[3] <= uVar14)" (( "(") (binary_expression "(uint)local_res8[3] <= uVar14" (cast_expression "(uint)local_res8[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]"))) (<= "<=") (identifier "uVar14")) () ")")) (goto_statement "goto LAB_003c6f2c;" (goto "goto") (statement_identifier "LAB_003c6f2c") (; ";"))) (labeled_statement "LAB_003c69e0:\n      local_res8[2] = uVar14 + 1;" (statement_identifier "LAB_003c69e0") (: ":") (expression_statement "local_res8[2] = uVar14 + 1;" (assignment_expression "local_res8[2] = uVar14 + 1" (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";"))) (labeled_statement "LAB_003c69f0:\n      local_resc = -1;" (statement_identifier "LAB_003c69f0") (: ":") (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" (identifier "local_resc") (= "=") (number_literal "-1")) (; ";"))) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (if_statement "if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n        uVar14 = 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        uVar14 = 1;\n        local_res8 = (int *)0x0;\n      }" ({ "{") (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" (identifier "uVar14") (= "=") (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_003c6f5c;" (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_003c6f5c;" (goto "goto") (statement_identifier "LAB_003c6f5c") (; ";"))) (while_statement "while( true ) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    \n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n        if (uVar12 == uVar14) break;\n        while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    \n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }\n      }" ({ "{") (if_statement "if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }" (if "if") (parenthesized_expression "(param_6 == -1)" (( "(") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (uint)(iVar8 == -1);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n            }\n          }\n        }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (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                    \n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            uVar12 = (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 "uVar12 = (uint)(iVar8 == -1);" (assignment_expression "uVar12 = (uint)(iVar8 == -1)" (identifier "uVar12") (= "=") (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          uVar12 = 0;\n        }" (else "else") (compound_statement "{\n          uVar12 = 0;\n        }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (} "}")))) (if_statement "if (uVar12 == uVar14) break;" (if "if") (parenthesized_expression "(uVar12 == uVar14)" (( "(") (binary_expression "uVar12 == uVar14" (identifier "uVar12") (== "==") (identifier "uVar14")) () ")")) (break_statement "break;" (break "break") (; ";"))) (while_statement "while( true ) {\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    \n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }\n          if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }\n                    \n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 != -1) goto LAB_003c6990;\n          local_res8 = (int *)0x0;\n          if (local_4c != 0) goto LAB_003c6d60;\n          uVar14 = 0xff;\n          uVar12 = 0xffffffff;\nLAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }\n          uVar12 = uVar12 - 0x57;\n          if (local_50 < uVar5) goto LAB_003c69c8;\nLAB_003c6efc:\n          iVar3 = iVar3 + 1;\n          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;\n          uVar14 = local_res8[2];\n          uVar5 = uVar12 + uVar4 * uVar5;\n          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;\nLAB_003c6f2c:\n                    \n          (**(code **)(*local_res8 + 0x28))();\n          uVar14 = 1;\n          local_resc = -1;\n          if (local_res8 != (int *)0x0) goto LAB_003c69f0;\n          if (param_5 != (int *)0x0) break;\nLAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;\n        }" ({ "{") (if_statement "if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }" (if "if") (parenthesized_expression "((local_res8 == (int *)0x0) || (local_resc != -1))" (( "(") (binary_expression "(local_res8 == (int *)0x0) || (local_resc != -1)" (parenthesized_expression "(local_res8 == (int *)0x0)" (( "(") (binary_expression "local_res8 == (int *)0x0" (identifier "local_res8") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(local_resc != -1)" (( "(") (binary_expression "local_resc != -1" (identifier "local_resc") (!= "!=") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n            uVar12 = (uint)(char)local_resc;\n            goto LAB_003c6990;\n          }" ({ "{") (expression_statement "uVar12 = (uint)(char)local_resc;" (assignment_expression "uVar12 = (uint)(char)local_resc" (identifier "uVar12") (= "=") (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")))) (; ";")) (goto_statement "goto LAB_003c6990;" (goto "goto") (statement_identifier "LAB_003c6990") (; ";")) (} "}"))) (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\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            uVar12 = (uint)*(char *)local_res8[2];\n            goto LAB_003c6990;\n          }" ({ "{") (expression_statement "uVar12 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar12 = (uint)*(char *)local_res8[2]" (identifier "uVar12") (= "=") (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_003c6990;" (goto "goto") (statement_identifier "LAB_003c6990") (; ";")) (} "}"))) (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 "uVar12 = (uint)(char)iVar8;" (assignment_expression "uVar12 = (uint)(char)iVar8" (identifier "uVar12") (= "=") (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_003c6990;" (if "if") (parenthesized_expression "(iVar8 != -1)" (( "(") (binary_expression "iVar8 != -1" (identifier "iVar8") (!= "!=") (number_literal "-1")) () ")")) (goto_statement "goto LAB_003c6990;" (goto "goto") (statement_identifier "LAB_003c6990") (; ";"))) (expression_statement "local_res8 = (int *)0x0;" (assignment_expression "local_res8 = (int *)0x0" (identifier "local_res8") (= "=") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (local_4c != 0) goto LAB_003c6d60;" (if "if") (parenthesized_expression "(local_4c != 0)" (( "(") (binary_expression "local_4c != 0" (identifier "local_4c") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_003c6d60;" (goto "goto") (statement_identifier "LAB_003c6d60") (; ";"))) (expression_statement "uVar14 = 0xff;" (assignment_expression "uVar14 = 0xff" (identifier "uVar14") (= "=") (number_literal "0xff")) (; ";")) (expression_statement "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 0xffffffff" (identifier "uVar12") (= "=") (number_literal "0xffffffff")) (; ";")) (labeled_statement "LAB_003c6edc:\n          if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }" (statement_identifier "LAB_003c6edc") (: ":") (if_statement "if (5 < uVar14 - 0x61) {\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }" (if "if") (parenthesized_expression "(5 < uVar14 - 0x61)" (( "(") (binary_expression "5 < uVar14 - 0x61" (number_literal "5") (< "<") (binary_expression "uVar14 - 0x61" (identifier "uVar14") (- "-") (number_literal "0x61"))) () ")")) (compound_statement "{\n            uVar12 = uVar12 - 0x37;\n            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;\n            goto LAB_003c6d60;\n          }" ({ "{") (expression_statement "uVar12 = uVar12 - 0x37;" (assignment_expression "uVar12 = uVar12 - 0x37" (identifier "uVar12") (= "=") (binary_expression "uVar12 - 0x37" (identifier "uVar12") (- "-") (number_literal "0x37"))) (; ";")) (if_statement "if (uVar14 - 0x41 < 6) goto LAB_003c69bc;" (if "if") (parenthesized_expression "(uVar14 - 0x41 < 6)" (( "(") (binary_expression "uVar14 - 0x41 < 6" (binary_expression "uVar14 - 0x41" (identifier "uVar14") (- "-") (number_literal "0x41")) (< "<") (number_literal "6")) () ")")) (goto_statement "goto LAB_003c69bc;" (goto "goto") (statement_identifier "LAB_003c69bc") (; ";"))) (goto_statement "goto LAB_003c6d60;" (goto "goto") (statement_identifier "LAB_003c6d60") (; ";")) (} "}")))) (expression_statement "uVar12 = uVar12 - 0x57;" (assignment_expression "uVar12 = uVar12 - 0x57" (identifier "uVar12") (= "=") (binary_expression "uVar12 - 0x57" (identifier "uVar12") (- "-") (number_literal "0x57"))) (; ";")) (if_statement "if (local_50 < uVar5) goto LAB_003c69c8;" (if "if") (parenthesized_expression "(local_50 < uVar5)" (( "(") (binary_expression "local_50 < uVar5" (identifier "local_50") (< "<") (identifier "uVar5")) () ")")) (goto_statement "goto LAB_003c69c8;" (goto "goto") (statement_identifier "LAB_003c69c8") (; ";"))) (labeled_statement "LAB_003c6efc:\n          iVar3 = iVar3 + 1;" (statement_identifier "LAB_003c6efc") (: ":") (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;" (assignment_expression "uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5" (identifier "uVar17") (= "=") (binary_expression "uVar17 | ~uVar12 < uVar4 * uVar5" (identifier "uVar17") (| "|") (binary_expression "~uVar12 < uVar4 * uVar5" (unary_expression "~uVar12" (~ "~") (identifier "uVar12")) (< "<") (binary_expression "uVar4 * uVar5" (identifier "uVar4") (* "*") (identifier "uVar5"))))) (; ";")) (expression_statement "uVar14 = local_res8[2];" (assignment_expression "uVar14 = local_res8[2]" (identifier "uVar14") (= "=") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar5 = uVar12 + uVar4 * uVar5;" (assignment_expression "uVar5 = uVar12 + uVar4 * uVar5" (identifier "uVar5") (= "=") (binary_expression "uVar12 + uVar4 * uVar5" (identifier "uVar12") (+ "+") (binary_expression "uVar4 * uVar5" (identifier "uVar4") (* "*") (identifier "uVar5")))) (; ";")) (if_statement "if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;" (if "if") (parenthesized_expression "(uVar14 < (uint)local_res8[3])" (( "(") (binary_expression "uVar14 < (uint)local_res8[3]" (identifier "uVar14") (< "<") (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_003c69e0;" (goto "goto") (statement_identifier "LAB_003c69e0") (; ";"))) (labeled_statement "LAB_003c6f2c:\n                    \n          (**(code **)(*local_res8 + 0x28))();" (statement_identifier "LAB_003c6f2c") (: ":") (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 "uVar14 = 1;" (assignment_expression "uVar14 = 1" (identifier "uVar14") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" (identifier "local_resc") (= "=") (number_literal "-1")) (; ";")) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c69f0;" (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_003c69f0;" (goto "goto") (statement_identifier "LAB_003c69f0") (; ";"))) (if_statement "if (param_5 != (int *)0x0) break;" (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"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (labeled_statement "LAB_003c6f5c:\n          if (local_44 == uVar14) goto LAB_003c6a24;" (statement_identifier "LAB_003c6f5c") (: ":") (if_statement "if (local_44 == uVar14) goto LAB_003c6a24;" (if "if") (parenthesized_expression "(local_44 == uVar14)" (( "(") (binary_expression "local_44 == uVar14" (identifier "local_44") (== "==") (identifier "uVar14")) () ")")) (goto_statement "goto LAB_003c6a24;" (goto "goto") (statement_identifier "LAB_003c6a24") (; ";")))) (} "}"))) (} "}"))) (labeled_statement "LAB_003c6a24:\n      local_4c = 1;" (statement_identifier "LAB_003c6a24") (: ":") (expression_statement "local_4c = 1;" (assignment_expression "local_4c = 1" (identifier "local_4c") (= "=") (number_literal "1")) (; ";"))) (goto_statement "goto LAB_003c6a28;" (goto "goto") (statement_identifier "LAB_003c6a28") (; ";")) (} "}")))) (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4c = uVar14;" (assignment_expression "local_4c = uVar14" (identifier "local_4c") (= "=") (identifier "uVar14")) (; ";")) (} "}")) (else_clause "else {\n    uVar4 = 10;\n    if (uVar14 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c6834;\nLAB_003c7160:\n    bVar15 = local_resc == -1;\n    if (param_5 == (int *)0x0) goto LAB_003c7170;\nLAB_003c684c:\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 != bVar15) goto LAB_003c6864;\nLAB_003c717c:\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    local_38 = 0;\n    uVar12 = 0;\n    iVar3 = 0;\n    bVar15 = false;\nLAB_003c6be4:\n    if (uVar4 != 0x10) goto LAB_003c692c;\nLAB_003c6bf0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = 0x16;\n    if (cVar9 != '\0') goto LAB_003c6c10;\nLAB_003c6944:\n    local_68 = local_60;\n    local_64 = 0;\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (local_4c == 0) goto LAB_003c6964;\nLAB_003c6c44:\n    if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }\n  }" (else "else") (compound_statement "{\n    uVar4 = 10;\n    if (uVar14 == 8) {\n      uVar4 = 0x10;\n    }\n    if (local_res8 != (int *)0x0) goto LAB_003c6834;\nLAB_003c7160:\n    bVar15 = local_resc == -1;\n    if (param_5 == (int *)0x0) goto LAB_003c7170;\nLAB_003c684c:\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 != bVar15) goto LAB_003c6864;\nLAB_003c717c:\n    cVar9 = *(char *)(iVar13 + 0x10);\n    uVar14 = 1;\n    local_38 = 0;\n    uVar12 = 0;\n    iVar3 = 0;\n    bVar15 = false;\nLAB_003c6be4:\n    if (uVar4 != 0x10) goto LAB_003c692c;\nLAB_003c6bf0:\n    local_60[0] = local_60[0] & 0xffffff;\n    local_44 = 0x16;\n    if (cVar9 != '\0') goto LAB_003c6c10;\nLAB_003c6944:\n    local_68 = local_60;\n    local_64 = 0;\n    local_4c = (uint)*(byte *)(iVar13 + 100);\n    if (uVar4 == 0) {\n      trap(7);\n    }\n    local_50 = 0xffffffff / uVar4;\n    local_40 = local_68;\n    if (local_4c == 0) goto LAB_003c6964;\nLAB_003c6c44:\n    if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }\n  }" ({ "{") (expression_statement "uVar4 = 10;" (assignment_expression "uVar4 = 10" (identifier "uVar4") (= "=") (number_literal "10")) (; ";")) (if_statement "if (uVar14 == 8) {\n      uVar4 = 0x10;\n    }" (if "if") (parenthesized_expression "(uVar14 == 8)" (( "(") (binary_expression "uVar14 == 8" (identifier "uVar14") (== "==") (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_003c6834;" (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_003c6834;" (goto "goto") (statement_identifier "LAB_003c6834") (; ";"))) (labeled_statement "LAB_003c7160:\n    bVar15 = local_resc == -1;" (statement_identifier "LAB_003c7160") (: ":") (expression_statement "bVar15 = local_resc == -1;" (assignment_expression "bVar15 = local_resc == -1" (identifier "bVar15") (= "=") (binary_expression "local_resc == -1" (identifier "local_resc") (== "==") (number_literal "-1"))) (; ";"))) (if_statement "if (param_5 == (int *)0x0) goto LAB_003c7170;" (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_003c7170;" (goto "goto") (statement_identifier "LAB_003c7170") (; ";"))) (labeled_statement "LAB_003c684c:\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_003c684c") (: ":") (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 != bVar15) goto LAB_003c6864;" (if "if") (parenthesized_expression "(bVar10 != bVar15)" (( "(") (binary_expression "bVar10 != bVar15" (identifier "bVar10") (!= "!=") (identifier "bVar15")) () ")")) (goto_statement "goto LAB_003c6864;" (goto "goto") (statement_identifier "LAB_003c6864") (; ";"))) (labeled_statement "LAB_003c717c:\n    cVar9 = *(char *)(iVar13 + 0x10);" (statement_identifier "LAB_003c717c") (: ":") (expression_statement "cVar9 = *(char *)(iVar13 + 0x10);" (assignment_expression "cVar9 = *(char *)(iVar13 + 0x10)" (identifier "cVar9") (= "=") (pointer_expression "*(char *)(iVar13 + 0x10)" (* "*") (cast_expression "(char *)(iVar13 + 0x10)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x10)" (( "(") (binary_expression "iVar13 + 0x10" (identifier "iVar13") (+ "+") (number_literal "0x10")) () ")"))))) (; ";"))) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" (identifier "uVar14") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_38 = 0;" (assignment_expression "local_38 = 0" (identifier "local_38") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar15 = false;" (assignment_expression "bVar15 = false" (identifier "bVar15") (= "=") (false "false")) (; ";")) (labeled_statement "LAB_003c6be4:\n    if (uVar4 != 0x10) goto LAB_003c692c;" (statement_identifier "LAB_003c6be4") (: ":") (if_statement "if (uVar4 != 0x10) goto LAB_003c692c;" (if "if") (parenthesized_expression "(uVar4 != 0x10)" (( "(") (binary_expression "uVar4 != 0x10" (identifier "uVar4") (!= "!=") (number_literal "0x10")) () ")")) (goto_statement "goto LAB_003c692c;" (goto "goto") (statement_identifier "LAB_003c692c") (; ";")))) (labeled_statement "LAB_003c6bf0:\n    local_60[0] = local_60[0] & 0xffffff;" (statement_identifier "LAB_003c6bf0") (: ":") (expression_statement "local_60[0] = local_60[0] & 0xffffff;" (assignment_expression "local_60[0] = local_60[0] & 0xffffff" (subscript_expression "local_60[0]" (identifier "local_60") ([ "[") (number_literal "0") (] "]")) (= "=") (binary_expression "local_60[0] & 0xffffff" (subscript_expression "local_60[0]" (identifier "local_60") ([ "[") (number_literal "0") (] "]")) (& "&") (number_literal "0xffffff"))) (; ";"))) (expression_statement "local_44 = 0x16;" (assignment_expression "local_44 = 0x16" (identifier "local_44") (= "=") (number_literal "0x16")) (; ";")) (if_statement "if (cVar9 != '\0') goto LAB_003c6c10;" (if "if") (parenthesized_expression "(cVar9 != '\0')" (( "(") (binary_expression "cVar9 != '\0'" (identifier "cVar9") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_003c6c10;" (goto "goto") (statement_identifier "LAB_003c6c10") (; ";"))) (labeled_statement "LAB_003c6944:\n    local_68 = local_60;" (statement_identifier "LAB_003c6944") (: ":") (expression_statement "local_68 = local_60;" (assignment_expression "local_68 = local_60" (identifier "local_68") (= "=") (identifier "local_60")) (; ";"))) (expression_statement "local_64 = 0;" (assignment_expression "local_64 = 0" (identifier "local_64") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4c = (uint)*(byte *)(iVar13 + 100);" (assignment_expression "local_4c = (uint)*(byte *)(iVar13 + 100)" (identifier "local_4c") (= "=") (binary_expression "(uint)*(byte *)(iVar13 + 100)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar13 + 100)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 100)" (( "(") (binary_expression "iVar13 + 100" (identifier "iVar13") (+ "+") (number_literal "100")) () ")"))))) (; ";")) (if_statement "if (uVar4 == 0) {\n      trap(7);\n    }" (if "if") (parenthesized_expression "(uVar4 == 0)" (( "(") (binary_expression "uVar4 == 0" (identifier "uVar4") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      trap(7);\n    }" ({ "{") (expression_statement "trap(7);" (call_expression "trap(7)" (identifier "trap") (argument_list "(7)" (( "(") (number_literal "7") () ")"))) (; ";")) (} "}"))) (expression_statement "local_50 = 0xffffffff / uVar4;" (assignment_expression "local_50 = 0xffffffff / uVar4" (identifier "local_50") (= "=") (binary_expression "0xffffffff / uVar4" (number_literal "0xffffffff") (/ "/") (identifier "uVar4"))) (; ";")) (expression_statement "local_40 = local_68;" (assignment_expression "local_40 = local_68" (identifier "local_40") (= "=") (identifier "local_68")) (; ";")) (if_statement "if (local_4c == 0) goto LAB_003c6964;" (if "if") (parenthesized_expression "(local_4c == 0)" (( "(") (binary_expression "local_4c == 0" (identifier "local_4c") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_003c6964;" (goto "goto") (statement_identifier "LAB_003c6964") (; ";"))) (labeled_statement "LAB_003c6c44:\n    if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }" (statement_identifier "LAB_003c6c44") (: ":") (if_statement "if (uVar14 == 0) {\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }\n    else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }" (if "if") (parenthesized_expression "(uVar14 == 0)" (( "(") (binary_expression "uVar14 == 0" (identifier "uVar14") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      local_2c = &local_68;\n      local_34 = (uint)(param_6 == -1);\n      uVar17 = 0;\n      uVar5 = 0;\n      local_3c = iVar13 + 0x4e;\nLAB_003c6c68:\n      iVar8 = local_3c;\n      uVar14 = local_64;\n      local_48 = (uint)*(byte *)(iVar13 + 0x10);\n      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }\n      uVar12 = local_34;\n      if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }\n      if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }\n    }" ({ "{") (expression_statement "local_2c = &local_68;" (assignment_expression "local_2c = &local_68" (identifier "local_2c") (= "=") (pointer_expression "&local_68" (& "&") (identifier "local_68"))) (; ";")) (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 "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_3c = iVar13 + 0x4e;" (assignment_expression "local_3c = iVar13 + 0x4e" (identifier "local_3c") (= "=") (binary_expression "iVar13 + 0x4e" (identifier "iVar13") (+ "+") (number_literal "0x4e"))) (; ";")) (labeled_statement "LAB_003c6c68:\n      iVar8 = local_3c;" (statement_identifier "LAB_003c6c68") (: ":") (expression_statement "iVar8 = local_3c;" (assignment_expression "iVar8 = local_3c" (identifier "iVar8") (= "=") (identifier "local_3c")) (; ";"))) (expression_statement "uVar14 = local_64;" (assignment_expression "uVar14 = local_64" (identifier "uVar14") (= "=") (identifier "local_64")) (; ";")) (expression_statement "local_48 = (uint)*(byte *)(iVar13 + 0x10);" (assignment_expression "local_48 = (uint)*(byte *)(iVar13 + 0x10)" (identifier "local_48") (= "=") (binary_expression "(uint)*(byte *)(iVar13 + 0x10)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(byte *)(iVar13 + 0x10)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x10)" (( "(") (binary_expression "iVar13 + 0x10" (identifier "iVar13") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }\n      else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }" (if "if") (parenthesized_expression "((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12))" (( "(") (binary_expression "(local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)" (parenthesized_expression "(local_48 == 0)" (( "(") (binary_expression "local_48 == 0" (identifier "local_48") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((int)*(char *)(iVar13 + 0x25) != uVar12)" (( "(") (binary_expression "(int)*(char *)(iVar13 + 0x25) != uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x25)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar13 + 0x25)" (* "*") (cast_expression "(char *)(iVar13 + 0x25)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x25)" (( "(") (binary_expression "iVar13 + 0x25" (identifier "iVar13") (+ "+") (number_literal "0x25")) () ")"))))) (!= "!=") (identifier "uVar12")) () ")"))) () ")")) (compound_statement "{\n        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;\n        uVar14 = iVar6 - iVar8;\n        if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }\n        if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }\n        uVar14 = local_res8[2];\n        uVar17 = local_4c;\n        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;\nLAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;\nLAB_003c6d0c:\n        local_resc = -1;\n        uVar14 = 0;\n        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\n        }\n      }" ({ "{") (if_statement "if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))\n        goto LAB_003c6d60;" (if "if") (parenthesized_expression "(((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))" (( "(") (binary_expression "((int)*(char *)(iVar13 + 0x24) == uVar12) ||\n           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0)" (parenthesized_expression "((int)*(char *)(iVar13 + 0x24) == uVar12)" (( "(") (binary_expression "(int)*(char *)(iVar13 + 0x24) == uVar12" (cast_expression "(int)*(char *)(iVar13 + 0x24)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "*(char *)(iVar13 + 0x24)" (* "*") (cast_expression "(char *)(iVar13 + 0x24)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0x24)" (( "(") (binary_expression "iVar13 + 0x24" (identifier "iVar13") (+ "+") (number_literal "0x24")) () ")"))))) (== "==") (identifier "uVar12")) () ")")) (|| "||") (parenthesized_expression "(iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0)" (( "(") (comma_expression "iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0" (assignment_expression "iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44)" (identifier "iVar6") (= "=") (call_expression "(*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44)" (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,uVar12,local_44)" (( "(") (identifier "local_3c") (, ",") (identifier "uVar12") (, ",") (identifier "local_44") () ")")))) (, ",") (binary_expression "iVar6 == 0" (identifier "iVar6") (== "==") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_003c6d60;" (goto "goto") (statement_identifier "LAB_003c6d60") (; ";"))) (expression_statement "uVar14 = iVar6 - iVar8;" (assignment_expression "uVar14 = iVar6 - iVar8" (identifier "uVar14") (= "=") (binary_expression "iVar6 - iVar8" (identifier "iVar6") (- "-") (identifier "iVar8"))) (; ";")) (if_statement "if (0xf < (int)uVar14) {\n          uVar14 = uVar14 - 6;\n        }" (if "if") (parenthesized_expression "(0xf < (int)uVar14)" (( "(") (binary_expression "0xf < (int)uVar14" (number_literal "0xf") (< "<") (cast_expression "(int)uVar14" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar14"))) () ")")) (compound_statement "{\n          uVar14 = uVar14 - 6;\n        }" ({ "{") (expression_statement "uVar14 = uVar14 - 6;" (assignment_expression "uVar14 = uVar14 - 6" (identifier "uVar14") (= "=") (binary_expression "uVar14 - 6" (identifier "uVar14") (- "-") (number_literal "6"))) (; ";")) (} "}"))) (if_statement "if (uVar5 <= local_50) {\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }" (if "if") (parenthesized_expression "(uVar5 <= local_50)" (( "(") (binary_expression "uVar5 <= local_50" (identifier "uVar5") (<= "<=") (identifier "local_50")) () ")")) (compound_statement "{\n          uVar12 = uVar4 * uVar5;\n          iVar3 = iVar3 + 1;\n          uVar5 = uVar14 + uVar12;\n          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);\n          goto LAB_003c6ce4;\n        }" ({ "{") (expression_statement "uVar12 = uVar4 * uVar5;" (assignment_expression "uVar12 = uVar4 * uVar5" (identifier "uVar12") (= "=") (binary_expression "uVar4 * uVar5" (identifier "uVar4") (* "*") (identifier "uVar5"))) (; ";")) (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar5 = uVar14 + uVar12;" (assignment_expression "uVar5 = uVar14 + uVar12" (identifier "uVar5") (= "=") (binary_expression "uVar14 + uVar12" (identifier "uVar14") (+ "+") (identifier "uVar12"))) (; ";")) (expression_statement "uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);" (assignment_expression "uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12)" (identifier "uVar17") (= "=") (binary_expression "uVar17 & 0xff | (uint)(~uVar14 < uVar12)" (binary_expression "uVar17 & 0xff" (identifier "uVar17") (& "&") (number_literal "0xff")) (| "|") (call_expression "(uint)(~uVar14 < uVar12)" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (argument_list "(~uVar14 < uVar12)" (( "(") (binary_expression "~uVar14 < uVar12" (unary_expression "~uVar14" (~ "~") (identifier "uVar14")) (< "<") (identifier "uVar12")) () ")"))))) (; ";")) (goto_statement "goto LAB_003c6ce4;" (goto "goto") (statement_identifier "LAB_003c6ce4") (; ";")) (} "}"))) (expression_statement "uVar14 = local_res8[2];" (assignment_expression "uVar14 = local_res8[2]" (identifier "uVar14") (= "=") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "uVar17 = local_4c;" (assignment_expression "uVar17 = local_4c" (identifier "uVar17") (= "=") (identifier "local_4c")) (; ";")) (if_statement "if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;" (if "if") (parenthesized_expression "((uint)local_res8[3] <= uVar14)" (( "(") (binary_expression "(uint)local_res8[3] <= uVar14" (cast_expression "(uint)local_res8[3]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_res8[3]" (identifier "local_res8") ([ "[") (number_literal "3") (] "]"))) (<= "<=") (identifier "uVar14")) () ")")) (goto_statement "goto LAB_003c7078;" (goto "goto") (statement_identifier "LAB_003c7078") (; ";"))) (labeled_statement "LAB_003c6cfc:\n        local_res8[2] = uVar14 + 1;" (statement_identifier "LAB_003c6cfc") (: ":") (expression_statement "local_res8[2] = uVar14 + 1;" (assignment_expression "local_res8[2] = uVar14 + 1" (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]")) (= "=") (binary_expression "uVar14 + 1" (identifier "uVar14") (+ "+") (number_literal "1"))) (; ";"))) (labeled_statement "LAB_003c6d0c:\n        local_resc = -1;" (statement_identifier "LAB_003c6d0c") (: ":") (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" (identifier "local_resc") (= "=") (number_literal "-1")) (; ";"))) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (if_statement "if (((uint)local_res8[3] <= (uint)local_res8[2]) &&\n           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {\n          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\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          local_res8 = (int *)0x0;\n          uVar14 = local_4c;\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 "uVar14 = local_4c;" (assignment_expression "uVar14 = local_4c" (identifier "uVar14") (= "=") (identifier "local_4c")) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }" (else "else") (compound_statement "{\n        if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }\n        local_48 = (uint)(char)iVar3;\n        local_30 = local_64 + 1;\n        uVar12 = 0xf;\n        if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }\n        if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }\n        local_64 = local_30;\n        iVar3 = 0;\n        *(char *)((int)local_68 + uVar14) = (char)local_48;\n        *(undefined1 *)((int)local_68 + local_30) = 0;\nLAB_003c6ce4:\n        uVar14 = local_res8[2];\n        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;\nLAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();\n        local_resc = -1;\n        uVar14 = local_4c;\n        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;\n      }" ({ "{") (if_statement "if (iVar3 == 0) {\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }\n          local_4c = 0;\n          uVar16 = 0;\n          goto LAB_003c6d78;\n        }" ({ "{") (if_statement "if (local_64 == 0) {\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }" (if "if") (parenthesized_expression "(local_64 == 0)" (( "(") (binary_expression "local_64 == 0" (identifier "local_64") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            *param_9 = 0;\n            *param_8 = 4;\n            goto LAB_003c6a70;\n          }" ({ "{") (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (number_literal "4")) (; ";")) (goto_statement "goto LAB_003c6a70;" (goto "goto") (statement_identifier "LAB_003c6a70") (; ";")) (} "}"))) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar16 = 0;" (assignment_expression "uVar16 = 0" (identifier "uVar16") (= "=") (number_literal "0")) (; ";")) (goto_statement "goto LAB_003c6d78;" (goto "goto") (statement_identifier "LAB_003c6d78") (; ";")) (} "}"))) (expression_statement "local_48 = (uint)(char)iVar3;" (assignment_expression "local_48 = (uint)(char)iVar3" (identifier "local_48") (= "=") (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_64 + 1;" (assignment_expression "local_30 = local_64 + 1" (identifier "local_30") (= "=") (binary_expression "local_64 + 1" (identifier "local_64") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar12 = 0xf;" (assignment_expression "uVar12 = 0xf" (identifier "uVar12") (= "=") (number_literal "0xf")) (; ";")) (if_statement "if (local_68 != local_40) {\n          uVar12 = local_60[0];\n        }" (if "if") (parenthesized_expression "(local_68 != local_40)" (( "(") (binary_expression "local_68 != local_40" (identifier "local_68") (!= "!=") (identifier "local_40")) () ")")) (compound_statement "{\n          uVar12 = local_60[0];\n        }" ({ "{") (expression_statement "uVar12 = local_60[0];" (assignment_expression "uVar12 = local_60[0]" (identifier "uVar12") (= "=") (subscript_expression "local_60[0]" (identifier "local_60") ([ "[") (number_literal "0") (] "]"))) (; ";")) (} "}"))) (if_statement "if (uVar12 < local_64 + 1) {\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }" (if "if") (parenthesized_expression "(uVar12 < local_64 + 1)" (( "(") (binary_expression "uVar12 < local_64 + 1" (identifier "uVar12") (< "<") (binary_expression "local_64 + 1" (identifier "local_64") (+ "+") (number_literal "1"))) () ")")) (compound_statement "{\n          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);\n        }" ({ "{") (expression_statement "(*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);" (call_expression "(*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,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_64,0,0,1)" (( "(") (identifier "local_2c") (, ",") (identifier "local_64") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (expression_statement "local_64 = local_30;" (assignment_expression "local_64 = local_30" (identifier "local_64") (= "=") (identifier "local_30")) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(char *)((int)local_68 + uVar14) = (char)local_48;" (assignment_expression "*(char *)((int)local_68 + uVar14) = (char)local_48" (pointer_expression "*(char *)((int)local_68 + uVar14)" (* "*") (cast_expression "(char *)((int)local_68 + uVar14)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_68 + uVar14)" (( "(") (binary_expression "(int)local_68 + uVar14" (cast_expression "(int)local_68" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_68")) (+ "+") (identifier "uVar14")) () ")")))) (= "=") (cast_expression "(char)local_48" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "local_48"))) (; ";")) (expression_statement "*(undefined1 *)((int)local_68 + local_30) = 0;" (assignment_expression "*(undefined1 *)((int)local_68 + local_30) = 0" (pointer_expression "*(undefined1 *)((int)local_68 + local_30)" (* "*") (cast_expression "(undefined1 *)((int)local_68 + local_30)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_68 + local_30)" (( "(") (binary_expression "(int)local_68 + local_30" (cast_expression "(int)local_68" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_68")) (+ "+") (identifier "local_30")) () ")")))) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_003c6ce4:\n        uVar14 = local_res8[2];" (statement_identifier "LAB_003c6ce4") (: ":") (expression_statement "uVar14 = local_res8[2];" (assignment_expression "uVar14 = local_res8[2]" (identifier "uVar14") (= "=") (subscript_expression "local_res8[2]" (identifier "local_res8") ([ "[") (number_literal "2") (] "]"))) (; ";"))) (if_statement "if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;" (if "if") (parenthesized_expression "(uVar14 < (uint)local_res8[3])" (( "(") (binary_expression "uVar14 < (uint)local_res8[3]" (identifier "uVar14") (< "<") (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_003c6cfc;" (goto "goto") (statement_identifier "LAB_003c6cfc") (; ";"))) (labeled_statement "LAB_003c7078:\n        (**(code **)(*local_res8 + 0x28))();" (statement_identifier "LAB_003c7078") (: ":") (expression_statement "(**(code **)(*local_res8 + 0x28))();" (call_expression "(**(code **)(*local_res8 + 0x28))()" (parenthesized_expression "(**(code **)(*local_res8 + 0x28))" (( "(") (pointer_expression "**(code **)(*local_res8 + 0x28)" (* "*") (pointer_expression "*(code **)(*local_res8 + 0x28)" (* "*") (cast_expression "(code **)(*local_res8 + 0x28)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*local_res8 + 0x28)" (( "(") (binary_expression "*local_res8 + 0x28" (pointer_expression "*local_res8" (* "*") (identifier "local_res8")) (+ "+") (number_literal "0x28")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (expression_statement "local_resc = -1;" (assignment_expression "local_resc = -1" (identifier "local_resc") (= "=") (number_literal "-1")) (; ";")) (expression_statement "uVar14 = local_4c;" (assignment_expression "uVar14 = local_4c" (identifier "uVar14") (= "=") (identifier "local_4c")) (; ";")) (if_statement "if (local_res8 != (int *)0x0) goto LAB_003c6d0c;" (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_003c6d0c;" (goto "goto") (statement_identifier "LAB_003c6d0c") (; ";"))) (} "}")))) (expression_statement "uVar12 = local_34;" (assignment_expression "uVar12 = local_34" (identifier "uVar12") (= "=") (identifier "local_34")) (; ";")) (if_statement "if (param_5 != (int *)0x0) {\n        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 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        if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }\n      }" ({ "{") (if_statement "if (param_6 == -1) {\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }\n        else {\n          uVar12 = 0;\n        }" (if "if") (parenthesized_expression "(param_6 == -1)" (( "(") (binary_expression "param_6 == -1" (identifier "param_6") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n          uVar12 = 0;\n          if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 0;\n            }\n          }\n        }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((uint)param_5[3] <= (uint)param_5[2]) {\n            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);\n            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 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            if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 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") () ")")))) (; ";")) (if_statement "if (iVar8 == -1) {\n              param_5 = (int *)0x0;\n              uVar12 = local_4c;\n            }\n            else {\n              uVar12 = 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              uVar12 = local_4c;\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 "uVar12 = local_4c;" (assignment_expression "uVar12 = local_4c" (identifier "uVar12") (= "=") (identifier "local_4c")) (; ";")) (} "}")) (else_clause "else {\n              uVar12 = 0;\n            }" (else "else") (compound_statement "{\n              uVar12 = 0;\n            }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}"))) (} "}")) (else_clause "else {\n          uVar12 = 0;\n        }" (else "else") (compound_statement "{\n          uVar12 = 0;\n        }" ({ "{") (expression_statement "uVar12 = 0;" (assignment_expression "uVar12 = 0" (identifier "uVar12") (= "=") (number_literal "0")) (; ";")) (} "}")))) (} "}"))) (if_statement "if (uVar14 != uVar12) {\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }" (if "if") (parenthesized_expression "(uVar14 != uVar12)" (( "(") (binary_expression "uVar14 != uVar12" (identifier "uVar14") (!= "!=") (identifier "uVar12")) () ")")) (compound_statement "{\n        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }\n        goto LAB_003c6c68;\n      }" ({ "{") (if_statement "if ((local_res8 == (int *)0x0) || (local_resc != -1)) {\n          uVar12 = (uint)(char)local_resc;\n        }\n        else if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }" (if "if") (parenthesized_expression "((local_res8 == (int *)0x0) || (local_resc != -1))" (( "(") (binary_expression "(local_res8 == (int *)0x0) || (local_resc != -1)" (parenthesized_expression "(local_res8 == (int *)0x0)" (( "(") (binary_expression "local_res8 == (int *)0x0" (identifier "local_res8") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(local_resc != -1)" (( "(") (binary_expression "local_resc != -1" (identifier "local_resc") (!= "!=") (number_literal "-1")) () ")"))) () ")")) (compound_statement "{\n          uVar12 = (uint)(char)local_resc;\n        }" ({ "{") (expression_statement "uVar12 = (uint)(char)local_resc;" (assignment_expression "uVar12 = (uint)(char)local_resc" (identifier "uVar12") (= "=") (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          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }" (else "else") (if_statement "if ((char *)local_res8[2] < (char *)local_res8[3]) {\n          uVar12 = (uint)*(char *)local_res8[2];\n        }\n        else {\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\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          uVar12 = (uint)*(char *)local_res8[2];\n        }" ({ "{") (expression_statement "uVar12 = (uint)*(char *)local_res8[2];" (assignment_expression "uVar12 = (uint)*(char *)local_res8[2]" (identifier "uVar12") (= "=") (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          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }\n        }" (else "else") (compound_statement "{\n          iVar8 = (**(code **)(*local_res8 + 0x24))();\n          uVar12 = (uint)(char)iVar8;\n          if (iVar8 == -1) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\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 "uVar12 = (uint)(char)iVar8;" (assignment_expression "uVar12 = (uint)(char)iVar8" (identifier "uVar12") (= "=") (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) {\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\n          }" (if "if") (parenthesized_expression "(iVar8 == -1)" (( "(") (binary_expression "iVar8 == -1" (identifier "iVar8") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n            local_res8 = (int *)0x0;\n            uVar12 = 0xffffffff;\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 "uVar12 = 0xffffffff;" (assignment_expression "uVar12 = 0xffffffff" (identifier "uVar12") (= "=") (number_literal "0xffffffff")) (; ";")) (} "}"))) (} "}")))))) (goto_statement "goto LAB_003c6c68;" (goto "goto") (statement_identifier "LAB_003c6c68") (; ";")) (} "}"))) (} "}")) (else_clause "else {\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }" (else "else") (compound_statement "{\n      uVar17 = 0;\n      uVar5 = 0;\n      local_4c = uVar14;\n    }" ({ "{") (expression_statement "uVar17 = 0;" (assignment_expression "uVar17 = 0" (identifier "uVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar5 = 0;" (assignment_expression "uVar5 = 0" (identifier "uVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_4c = uVar14;" (assignment_expression "local_4c = uVar14" (identifier "local_4c") (= "=") (identifier "uVar14")) (; ";")) (} "}"))))) (} "}")))) (labeled_statement "LAB_003c6a28:\n  if (local_64 == 0) goto LAB_003c6a34;" (statement_identifier "LAB_003c6a28") (: ":") (if_statement "if (local_64 == 0) goto LAB_003c6a34;" (if "if") (parenthesized_expression "(local_64 == 0)" (( "(") (binary_expression "local_64 == 0" (identifier "local_64") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_003c6a34;" (goto "goto") (statement_identifier "LAB_003c6a34") (; ";")))) (labeled_statement "LAB_003c6d70:\n  uVar16 = (undefined1)iVar3;" (statement_identifier "LAB_003c6d70") (: ":") (expression_statement "uVar16 = (undefined1)iVar3;" (assignment_expression "uVar16 = (undefined1)iVar3" (identifier "uVar16") (= "=") (cast_expression "(undefined1)iVar3" (( "(") (type_descriptor "undefined1" (type_identifier "undefined1")) () ")") (identifier "iVar3"))) (; ";"))) (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_003c6d78:\n  uVar14 = local_64;" (statement_identifier "LAB_003c6d78") (: ":") (expression_statement "uVar14 = local_64;" (assignment_expression "uVar14 = local_64" (identifier "uVar14") (= "=") (identifier "local_64")) (; ";"))) (expression_statement "uVar12 = local_64 + 1;" (assignment_expression "uVar12 = local_64 + 1" (identifier "uVar12") (= "=") (binary_expression "local_64 + 1" (identifier "local_64") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar4 = local_60[0];" (assignment_expression "uVar4 = local_60[0]" (identifier "uVar4") (= "=") (subscript_expression "local_60[0]" (identifier "local_60") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (local_68 == local_40) {\n    uVar4 = 0xf;\n  }" (if "if") (parenthesized_expression "(local_68 == local_40)" (( "(") (binary_expression "local_68 == local_40" (identifier "local_68") (== "==") (identifier "local_40")) () ")")) (compound_statement "{\n    uVar4 = 0xf;\n  }" ({ "{") (expression_statement "uVar4 = 0xf;" (assignment_expression "uVar4 = 0xf" (identifier "uVar4") (= "=") (number_literal "0xf")) (; ";")) (} "}"))) (if_statement "if (uVar4 < uVar12) {\n    (*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,0,0,1);\n  }" (if "if") (parenthesized_expression "(uVar4 < uVar12)" (( "(") (binary_expression "uVar4 < uVar12" (identifier "uVar4") (< "<") (identifier "uVar12")) () ")")) (compound_statement "{\n    (*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,0,0,1);\n  }" ({ "{") (expression_statement "(*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,0,0,1);" (call_expression "(*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,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_68,local_64,0,0,1)" (( "(") (cast_expression "(string *)&local_68" (( "(") (type_descriptor "string *" (type_identifier "string") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_68" (& "&") (identifier "local_68"))) (, ",") (identifier "local_64") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "1") () ")"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)((int)local_68 + uVar14) = uVar16;" (assignment_expression "*(undefined1 *)((int)local_68 + uVar14) = uVar16" (pointer_expression "*(undefined1 *)((int)local_68 + uVar14)" (* "*") (cast_expression "(undefined1 *)((int)local_68 + uVar14)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_68 + uVar14)" (( "(") (binary_expression "(int)local_68 + uVar14" (cast_expression "(int)local_68" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_68")) (+ "+") (identifier "uVar14")) () ")")))) (= "=") (identifier "uVar16")) (; ";")) (expression_statement "*(undefined1 *)((int)local_68 + uVar12) = 0;" (assignment_expression "*(undefined1 *)((int)local_68 + uVar12) = 0" (pointer_expression "*(undefined1 *)((int)local_68 + uVar12)" (* "*") (cast_expression "(undefined1 *)((int)local_68 + uVar12)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)local_68 + uVar12)" (( "(") (binary_expression "(int)local_68 + uVar12" (cast_expression "(int)local_68" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_68")) (+ "+") (identifier "uVar12")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_64 = uVar12;" (assignment_expression "local_64 = uVar12" (identifier "local_64") (= "=") (identifier "uVar12")) (; ";")) (ERROR "iVar13 = std::" (assignment_expression "iVar13 = std" (identifier "iVar13") (= "=") (identifier "std")) (: ":") (: ":")) (expression_statement "__verify_grouping\n                     (*(char **)(iVar13 + 8),*(uint *)(iVar13 + 0xc),(string *)&local_68);" (call_expression "__verify_grouping\n                     (*(char **)(iVar13 + 8),*(uint *)(iVar13 + 0xc),(string *)&local_68)" (identifier "__verify_grouping") (argument_list "(*(char **)(iVar13 + 8),*(uint *)(iVar13 + 0xc),(string *)&local_68)" (( "(") (pointer_expression "*(char **)(iVar13 + 8)" (* "*") (cast_expression "(char **)(iVar13 + 8)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar13 + 8)" (( "(") (binary_expression "iVar13 + 8" (identifier "iVar13") (+ "+") (number_literal "8")) () ")")))) (, ",") (pointer_expression "*(uint *)(iVar13 + 0xc)" (* "*") (cast_expression "(uint *)(iVar13 + 0xc)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + 0xc)" (( "(") (binary_expression "iVar13 + 0xc" (identifier "iVar13") (+ "+") (number_literal "0xc")) () ")")))) (, ",") (cast_expression "(string *)&local_68" (( "(") (type_descriptor "string *" (type_identifier "string") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_68" (& "&") (identifier "local_68"))) () ")"))) (; ";")) (if_statement "if (iVar13 == 0) {\n    *param_8 = 4;\n  }" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (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) || (bVar15)) || (local_64 != 0)) && (local_48 == 0)) goto LAB_003c6de8;" (if "if") (parenthesized_expression "((((iVar3 != 0) || (bVar15)) || (local_64 != 0)) && (local_48 == 0))" (( "(") (binary_expression "(((iVar3 != 0) || (bVar15)) || (local_64 != 0)) && (local_48 == 0)" (parenthesized_expression "(((iVar3 != 0) || (bVar15)) || (local_64 != 0))" (( "(") (binary_expression "((iVar3 != 0) || (bVar15)) || (local_64 != 0)" (parenthesized_expression "((iVar3 != 0) || (bVar15))" (( "(") (binary_expression "(iVar3 != 0) || (bVar15)" (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")"))) () ")")) (|| "||") (parenthesized_expression "(local_64 != 0)" (( "(") (binary_expression "local_64 != 0" (identifier "local_64") (!= "!=") (number_literal "0")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(local_48 == 0)" (( "(") (binary_expression "local_48 == 0" (identifier "local_48") (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_003c6de8;" (goto "goto") (statement_identifier "LAB_003c6de8") (; ";"))) (labeled_statement "LAB_003c6a48:\n  *param_9 = 0;" (statement_identifier "LAB_003c6a48") (: ":") (expression_statement "*param_9 = 0;" (assignment_expression "*param_9 = 0" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (= "=") (number_literal "0")) (; ";"))) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (number_literal "4")) (; ";")) (labeled_statement "LAB_003c6a54:\n  if (local_4c != 0) {\n    *param_8 = *param_8 | 2;\n  }" (statement_identifier "LAB_003c6a54") (: ":") (if_statement "if (local_4c != 0) {\n    *param_8 = *param_8 | 2;\n  }" (if "if") (parenthesized_expression "(local_4c != 0)" (( "(") (binary_expression "local_4c != 0" (identifier "local_4c") (!= "!=") (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_003c6a70:\n  *param_1 = local_res8;" (statement_identifier "LAB_003c6a70") (: ":") (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_68 != local_40) {\n    (*(code *)PTR_operator_delete_004c12fc)();\n  }" (if "if") (parenthesized_expression "(local_68 != local_40)" (( "(") (binary_expression "local_68 != local_40" (identifier "local_68") (!= "!=") (identifier "local_40")) () ")")) (compound_statement "{\n    (*(code *)PTR_operator_delete_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_003c6d60:\n  local_4c = 0;" (statement_identifier "LAB_003c6d60") (: ":") (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";"))) (if_statement "if (local_64 != 0) goto LAB_003c6d70;" (if "if") (parenthesized_expression "(local_64 != 0)" (( "(") (binary_expression "local_64 != 0" (identifier "local_64") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_003c6d70;" (goto "goto") (statement_identifier "LAB_003c6d70") (; ";"))) (labeled_statement "LAB_003c6a34:\n  if ((iVar3 != 0) || (bVar15)) {\nLAB_003c6de8:\n    if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }\n    goto LAB_003c6a54;\n  }" (statement_identifier "LAB_003c6a34") (: ":") (if_statement "if ((iVar3 != 0) || (bVar15)) {\nLAB_003c6de8:\n    if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }\n    goto LAB_003c6a54;\n  }" (if "if") (parenthesized_expression "((iVar3 != 0) || (bVar15))" (( "(") (binary_expression "(iVar3 != 0) || (bVar15)" (parenthesized_expression "(iVar3 != 0)" (( "(") (binary_expression "iVar3 != 0" (identifier "iVar3") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(bVar15)" (( "(") (identifier "bVar15") () ")"))) () ")")) (compound_statement "{\nLAB_003c6de8:\n    if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }\n    goto LAB_003c6a54;\n  }" ({ "{") (labeled_statement "LAB_003c6de8:\n    if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }" (statement_identifier "LAB_003c6de8") (: ":") (if_statement "if (uVar17 == 0) {\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }\n    else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }" (if "if") (parenthesized_expression "(uVar17 == 0)" (( "(") (binary_expression "uVar17 == 0" (identifier "uVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }\n      *param_9 = uVar5;\n    }" ({ "{") (if_statement "if (local_38 != 0) {\n        uVar5 = -uVar5;\n      }" (if "if") (parenthesized_expression "(local_38 != 0)" (( "(") (binary_expression "local_38 != 0" (identifier "local_38") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar5 = -uVar5;\n      }" ({ "{") (expression_statement "uVar5 = -uVar5;" (assignment_expression "uVar5 = -uVar5" (identifier "uVar5") (= "=") (unary_expression "-uVar5" (- "-") (identifier "uVar5"))) (; ";")) (} "}"))) (expression_statement "*param_9 = uVar5;" (assignment_expression "*param_9 = uVar5" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (= "=") (identifier "uVar5")) (; ";")) (} "}")) (else_clause "else {\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }" (else "else") (compound_statement "{\n      *param_9 = 0xffffffff;\n      *param_8 = 4;\n    }" ({ "{") (expression_statement "*param_9 = 0xffffffff;" (assignment_expression "*param_9 = 0xffffffff" (pointer_expression "*param_9" (* "*") (identifier "param_9")) (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "*param_8 = 4;" (assignment_expression "*param_8 = 4" (pointer_expression "*param_8" (* "*") (identifier "param_8")) (= "=") (number_literal "4")) (; ";")) (} "}"))))) (goto_statement "goto LAB_003c6a54;" (goto "goto") (statement_identifier "LAB_003c6a54") (; ";")) (} "}")))) (goto_statement "goto LAB_003c6a48;" (goto "goto") (statement_identifier "LAB_003c6a48") (; ";")) (} "}")))
(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: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier)))))) body: (compound_statement (declaration type: (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: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (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)))) (labeled_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))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (false))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (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: (break_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: (compound_statement (if_statement condition: (parenthesized_expression (identifier)) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (true))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (true))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (true))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (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: (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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (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 (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: (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: (break_statement)) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (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))) (expression_statement (assignment_expression left: (identifier) right: (true))) (goto_statement label: (statement_identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (false))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (true))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (false))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) (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: (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: (number_literal))) (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: (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)))))))) (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))))))) (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)))))))) condition: (parenthesized_expression (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) right: (parenthesized_expression (binary_expression left: (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))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (false))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_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: (identifier)) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (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: (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: (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: (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)))))) (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: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) 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: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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))) (while_statement condition: (parenthesized_expression (true)) body: (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))) (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: (break_statement)) (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (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 (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: (number_literal))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) 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: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (unary_expression argument: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (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: (break_statement)) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (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: (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: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (false))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (char_literal (escape_sequence)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (number_literal) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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: (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)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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: (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 (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (identifier)))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (unary_expression argument: (identifier)) right: (identifier))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal))))) (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: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (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: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (identifier) (number_literal) (number_literal) (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) right: (number_literal))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) arguments: (argument_list)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (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 (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))))) (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)))) 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)))))))) (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))))) (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)))))))))) (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: (identifier)))))))))) (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: (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: (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)))))) (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: (pointer_expression argument: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (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: (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 (identifier)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))))))) (goto_statement label: (statement_identifier))))) (goto_statement label: (statement_identifier)))))

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

{
  undefined *puVar1;
  undefined *puVar2;
  int iVar3;
  uint uVar4;
  uint uVar5;
  int iVar6;
  undefined4 *puVar7;
  char cVar9;
  int iVar8;
  bool bVar10;
  int *piVar11;
  uint uVar12;
  int iVar13;
  uint uVar14;
  bool bVar15;
  undefined1 uVar16;
  uint uVar17;
  int *local_res8;
  int local_resc;
  uint *local_68;
  uint local_64;
  uint local_60 [4];
  uint local_50;
  uint local_4c;
  uint local_48;
  uint local_44;
  uint *local_40;
  int local_3c;
  uint local_38;
  uint local_34;
  uint local_30;
  uint **local_2c;
  
  local_res8 = param_3;
  local_resc = param_4;
  iVar3 = (*(code *)PTR__M_id_004c2c74)(PTR_id_004c32f8);
  piVar11 = (int *)(*(int *)(*(int *)(param_7 + 0x6c) + 0xc) + iVar3 * 4);
  iVar13 = *piVar11;
  if (iVar13 == 0) {
                    /* try { // try from 003c72a4 to 003c72ab has its CatchHandler @ 003c75c8 */
    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 003c72f0 to 003c72f7 has its CatchHandler @ 003c7598 */
    *(undefined1 *)(puVar7 + 0x19) = 0;
    (*(code *)puVar2)(puVar7,param_7 + 0x6c);
    (*(code *)PTR__M_install_cache_004c2d18)(*(undefined4 *)(param_7 + 0x6c),puVar7,iVar3);
    iVar13 = *piVar11;
  }
  uVar14 = *(uint *)(param_7 + 0xc) & 0x4a;
  if (uVar14 == 0x40) {
    uVar4 = 8;
    if (local_res8 == (int *)0x0) goto LAB_003c7160;
LAB_003c6834:
    if (local_resc == -1) {
      bVar15 = false;
      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&
         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {
        local_res8 = (int *)0x0;
        bVar15 = true;
      }
    }
    else {
      bVar15 = false;
    }
    if (param_5 != (int *)0x0) goto LAB_003c684c;
LAB_003c7170:
    if ((param_6 == -1) == bVar15) goto LAB_003c717c;
LAB_003c6864:
    if ((local_res8 == (int *)0x0) || (local_resc != -1)) {
      uVar12 = (uint)(char)local_resc;
    }
    else if ((char *)local_res8[2] < (char *)local_res8[3]) {
      uVar12 = (uint)*(char *)local_res8[2];
    }
    else {
      iVar3 = (**(code **)(*local_res8 + 0x24))();
      if (iVar3 == -1) {
        uVar12 = 0xffffffff;
        local_res8 = (int *)0x0;
      }
      else {
        uVar12 = (uint)(char)iVar3;
      }
    }
    cVar9 = *(char *)(iVar13 + 0x10);
    local_38 = (uint)((int)*(char *)(iVar13 + 0x4a) == uVar12);
    if (((int)*(char *)(iVar13 + 0x4a) != uVar12) && ((int)*(char *)(iVar13 + 0x4b) != uVar12)) {
      local_38 = 0;
LAB_003c6b0c:
      iVar3 = 0;
      bVar15 = false;
      do {
        if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||
           ((int)*(char *)(iVar13 + 0x24) == uVar12)) break;
        if ((int)*(char *)(iVar13 + 0x4e) == uVar12) {
          if (bVar15) {
            if (uVar4 != 10) goto LAB_003c6b4c;
            if (uVar14 == 0) {
              iVar3 = 0;
              uVar4 = 8;
            }
            else {
LAB_003c6ff4:
              iVar3 = iVar3 + 1;
              bVar15 = true;
            }
          }
          else {
            bVar15 = true;
            if (uVar14 == 0) {
              iVar3 = 0;
              uVar4 = 8;
            }
            else {
              if (uVar4 != 8) goto LAB_003c6ff4;
              iVar3 = 0;
              bVar15 = true;
            }
          }
LAB_003c6b80:
          uVar5 = local_res8[2];
          if (uVar5 < (uint)local_res8[3]) goto LAB_003c6b98;
LAB_003c6e28:
          (**(code **)(*local_res8 + 0x28))();
          uVar5 = 1;
          local_resc = -1;
          if (local_res8 != (int *)0x0) goto LAB_003c6ba8;
          if (param_5 == (int *)0x0) goto LAB_003c6e58;
LAB_003c6bc8:
          if (param_6 == -1) {
            uVar17 = 0;
            if ((uint)param_5[3] <= (uint)param_5[2]) {
              local_50 = uVar5;
              iVar8 = (**(code **)(*param_5 + 0x24))(param_5);
              uVar17 = (uint)(iVar8 == -1);
              uVar5 = local_50;
              if (iVar8 == -1) {
                param_5 = (int *)0x0;
              }
            }
          }
          else {
            uVar17 = 0;
          }
          if (uVar17 == uVar5) {
LAB_003c6bdc:
            cVar9 = *(char *)(iVar13 + 0x10);
            uVar14 = 1;
            goto LAB_003c6be4;
          }
        }
        else {
          if (!bVar15) break;
LAB_003c6b4c:
          if (((int)*(char *)(iVar13 + 0x4c) != uVar12) && ((int)*(char *)(iVar13 + 0x4d) != uVar12)
             ) {
            uVar14 = 0;
            bVar15 = true;
            goto LAB_003c6be4;
          }
          if (uVar14 != 0) {
            if (uVar4 == 0x10) {
              iVar3 = 0;
              bVar15 = false;
              goto LAB_003c6b80;
            }
            uVar14 = 0;
            bVar15 = true;
            goto LAB_003c692c;
          }
          iVar3 = 0;
          bVar15 = false;
          uVar5 = local_res8[2];
          uVar4 = 0x10;
          if ((uint)local_res8[3] <= uVar5) goto LAB_003c6e28;
LAB_003c6b98:
          local_res8[2] = uVar5 + 1;
LAB_003c6ba8:
          local_resc = -1;
          uVar5 = 0;
          if ((uint)local_res8[3] <= (uint)local_res8[2]) {
            local_50 = 0;
            iVar8 = (**(code **)(*local_res8 + 0x24))();
            uVar5 = local_50;
            if (iVar8 == -1) {
              uVar5 = 1;
              local_res8 = (int *)0x0;
            }
          }
          if (param_5 != (int *)0x0) goto LAB_003c6bc8;
LAB_003c6e58:
          if ((param_6 == -1) == uVar5) goto LAB_003c6bdc;
        }
        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {
          uVar12 = (uint)(char)local_resc;
        }
        else if ((char *)local_res8[2] < (char *)local_res8[3]) {
          uVar12 = (uint)*(char *)local_res8[2];
        }
        else {
          iVar8 = (**(code **)(*local_res8 + 0x24))();
          if (iVar8 == -1) {
            uVar12 = 0xffffffff;
            local_res8 = (int *)0x0;
          }
          else {
            uVar12 = (uint)(char)iVar8;
          }
        }
        cVar9 = *(char *)(iVar13 + 0x10);
      } while (bVar15);
      uVar14 = 0;
      goto LAB_003c6be4;
    }
    if (((cVar9 != '\0') && ((int)*(char *)(iVar13 + 0x25) == uVar12)) ||
       ((int)*(char *)(iVar13 + 0x24) == uVar12)) goto LAB_003c6b0c;
    if ((uint)local_res8[2] < (uint)local_res8[3]) {
      local_res8[2] = local_res8[2] + 1;
      uVar5 = local_res8[2];
LAB_003c68e8:
      local_resc = -1;
      bVar15 = false;
      if (((uint)local_res8[3] <= uVar5) &&
         (iVar3 = (**(code **)(*local_res8 + 0x24))(), iVar3 == -1)) {
        bVar15 = true;
        local_res8 = (int *)0x0;
      }
    }
    else {
      bVar15 = true;
      (**(code **)(*local_res8 + 0x28))();
      local_resc = -1;
      if (local_res8 != (int *)0x0) {
        uVar5 = local_res8[2];
        goto LAB_003c68e8;
      }
    }
    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 != bVar15) {
      cVar9 = FUN_003c05e4(&local_res8,local_resc);
      uVar12 = (uint)cVar9;
      cVar9 = *(char *)(iVar13 + 0x10);
      goto LAB_003c6b0c;
    }
    cVar9 = *(char *)(iVar13 + 0x10);
    uVar14 = 1;
    iVar3 = 0;
    bVar15 = false;
    if (uVar4 == 0x10) goto LAB_003c6bf0;
LAB_003c692c:
    local_60[0] = local_60[0] & 0xffffff;
    local_44 = uVar4;
    if (cVar9 == '\0') goto LAB_003c6944;
LAB_003c6c10:
    local_40 = local_60;
    local_68 = local_60;
    local_64 = 0;
                    /* try { // try from 003c6c18 to 003c6c1f has its CatchHandler @ 003c7568 */
    (*(code *)PTR_reserve_004c2458)(&local_68,0x20);
    local_4c = (uint)*(byte *)(iVar13 + 100);
    if (uVar4 == 0) {
      trap(7);
    }
    local_50 = 0xffffffff / uVar4;
    if (local_4c != 0) goto LAB_003c6c44;
LAB_003c6964:
    if (uVar14 == 0) {
      uVar17 = 0;
      local_4c = (uint)(local_44 < 0xb);
      local_48 = (uint)(char)((char)local_44 + '0');
      uVar5 = 0;
      local_44 = (uint)(param_6 == -1);
LAB_003c6990:
      uVar14 = uVar12 & 0xff;
      if (local_4c == 0) {
        if (9 < uVar14 - 0x30) goto LAB_003c6edc;
      }
      else if (((int)uVar12 < 0x30) || ((int)local_48 <= (int)uVar12)) goto LAB_003c6d60;
      uVar12 = uVar12 - 0x30;
LAB_003c69bc:
      if (uVar5 <= local_50) goto LAB_003c6efc;
LAB_003c69c8:
      uVar14 = local_res8[2];
      uVar17 = 1;
      if ((uint)local_res8[3] <= uVar14) goto LAB_003c6f2c;
LAB_003c69e0:
      local_res8[2] = uVar14 + 1;
LAB_003c69f0:
      local_resc = -1;
      uVar14 = 0;
                    /* try { // try from 003c7324 to 003c7397 has its CatchHandler @ 003c7568 */
      if (((uint)local_res8[3] <= (uint)local_res8[2]) &&
         (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {
        uVar14 = 1;
        local_res8 = (int *)0x0;
      }
      if (param_5 == (int *)0x0) goto LAB_003c6f5c;
      while( true ) {
        if (param_6 == -1) {
          uVar12 = 0;
          if ((uint)param_5[3] <= (uint)param_5[2]) {
                    /* try { // try from 003c7028 to 003c70d3 has its CatchHandler @ 003c7568 */
            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);
            uVar12 = (uint)(iVar8 == -1);
            if (iVar8 == -1) {
              param_5 = (int *)0x0;
            }
          }
        }
        else {
          uVar12 = 0;
        }
        if (uVar12 == uVar14) break;
        while( true ) {
          if ((local_res8 == (int *)0x0) || (local_resc != -1)) {
            uVar12 = (uint)(char)local_resc;
            goto LAB_003c6990;
          }
          if ((char *)local_res8[2] < (char *)local_res8[3]) {
            uVar12 = (uint)*(char *)local_res8[2];
            goto LAB_003c6990;
          }
                    /* try { // try from 003c7464 to 003c74cb has its CatchHandler @ 003c7568 */
          iVar8 = (**(code **)(*local_res8 + 0x24))();
          uVar12 = (uint)(char)iVar8;
          if (iVar8 != -1) goto LAB_003c6990;
          local_res8 = (int *)0x0;
          if (local_4c != 0) goto LAB_003c6d60;
          uVar14 = 0xff;
          uVar12 = 0xffffffff;
LAB_003c6edc:
          if (5 < uVar14 - 0x61) {
            uVar12 = uVar12 - 0x37;
            if (uVar14 - 0x41 < 6) goto LAB_003c69bc;
            goto LAB_003c6d60;
          }
          uVar12 = uVar12 - 0x57;
          if (local_50 < uVar5) goto LAB_003c69c8;
LAB_003c6efc:
          iVar3 = iVar3 + 1;
          uVar17 = uVar17 | ~uVar12 < uVar4 * uVar5;
          uVar14 = local_res8[2];
          uVar5 = uVar12 + uVar4 * uVar5;
          if (uVar14 < (uint)local_res8[3]) goto LAB_003c69e0;
LAB_003c6f2c:
                    /* try { // try from 003c6f34 to 003c6f3b has its CatchHandler @ 003c7568 */
          (**(code **)(*local_res8 + 0x28))();
          uVar14 = 1;
          local_resc = -1;
          if (local_res8 != (int *)0x0) goto LAB_003c69f0;
          if (param_5 != (int *)0x0) break;
LAB_003c6f5c:
          if (local_44 == uVar14) goto LAB_003c6a24;
        }
      }
LAB_003c6a24:
      local_4c = 1;
      goto LAB_003c6a28;
    }
    uVar17 = 0;
    uVar5 = 0;
    local_4c = uVar14;
  }
  else {
    uVar4 = 10;
    if (uVar14 == 8) {
      uVar4 = 0x10;
    }
    if (local_res8 != (int *)0x0) goto LAB_003c6834;
LAB_003c7160:
    bVar15 = local_resc == -1;
    if (param_5 == (int *)0x0) goto LAB_003c7170;
LAB_003c684c:
    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 != bVar15) goto LAB_003c6864;
LAB_003c717c:
    cVar9 = *(char *)(iVar13 + 0x10);
    uVar14 = 1;
    local_38 = 0;
    uVar12 = 0;
    iVar3 = 0;
    bVar15 = false;
LAB_003c6be4:
    if (uVar4 != 0x10) goto LAB_003c692c;
LAB_003c6bf0:
    local_60[0] = local_60[0] & 0xffffff;
    local_44 = 0x16;
    if (cVar9 != '\0') goto LAB_003c6c10;
LAB_003c6944:
    local_68 = local_60;
    local_64 = 0;
    local_4c = (uint)*(byte *)(iVar13 + 100);
    if (uVar4 == 0) {
      trap(7);
    }
    local_50 = 0xffffffff / uVar4;
    local_40 = local_68;
    if (local_4c == 0) goto LAB_003c6964;
LAB_003c6c44:
    if (uVar14 == 0) {
      local_2c = &local_68;
      local_34 = (uint)(param_6 == -1);
      uVar17 = 0;
      uVar5 = 0;
      local_3c = iVar13 + 0x4e;
LAB_003c6c68:
      iVar8 = local_3c;
      uVar14 = local_64;
      local_48 = (uint)*(byte *)(iVar13 + 0x10);
      if ((local_48 == 0) || ((int)*(char *)(iVar13 + 0x25) != uVar12)) {
        if (((int)*(char *)(iVar13 + 0x24) == uVar12) ||
           (iVar6 = (*(code *)PTR_memchr_004c5ac8)(local_3c,uVar12,local_44), iVar6 == 0))
        goto LAB_003c6d60;
        uVar14 = iVar6 - iVar8;
        if (0xf < (int)uVar14) {
          uVar14 = uVar14 - 6;
        }
        if (uVar5 <= local_50) {
          uVar12 = uVar4 * uVar5;
          iVar3 = iVar3 + 1;
          uVar5 = uVar14 + uVar12;
          uVar17 = uVar17 & 0xff | (uint)(~uVar14 < uVar12);
          goto LAB_003c6ce4;
        }
        uVar14 = local_res8[2];
        uVar17 = local_4c;
        if ((uint)local_res8[3] <= uVar14) goto LAB_003c7078;
LAB_003c6cfc:
        local_res8[2] = uVar14 + 1;
LAB_003c6d0c:
        local_resc = -1;
        uVar14 = 0;
        if (((uint)local_res8[3] <= (uint)local_res8[2]) &&
           (iVar8 = (**(code **)(*local_res8 + 0x24))(), iVar8 == -1)) {
          local_res8 = (int *)0x0;
          uVar14 = local_4c;
        }
      }
      else {
        if (iVar3 == 0) {
          if (local_64 == 0) {
            *param_9 = 0;
            *param_8 = 4;
            goto LAB_003c6a70;
          }
          local_4c = 0;
          uVar16 = 0;
          goto LAB_003c6d78;
        }
        local_48 = (uint)(char)iVar3;
        local_30 = local_64 + 1;
        uVar12 = 0xf;
        if (local_68 != local_40) {
          uVar12 = local_60[0];
        }
        if (uVar12 < local_64 + 1) {
          (*(code *)PTR__M_mutate_004c2090)(local_2c,local_64,0,0,1);
        }
        local_64 = local_30;
        iVar3 = 0;
        *(char *)((int)local_68 + uVar14) = (char)local_48;
        *(undefined1 *)((int)local_68 + local_30) = 0;
LAB_003c6ce4:
        uVar14 = local_res8[2];
        if (uVar14 < (uint)local_res8[3]) goto LAB_003c6cfc;
LAB_003c7078:
        (**(code **)(*local_res8 + 0x28))();
        local_resc = -1;
        uVar14 = local_4c;
        if (local_res8 != (int *)0x0) goto LAB_003c6d0c;
      }
      uVar12 = local_34;
      if (param_5 != (int *)0x0) {
        if (param_6 == -1) {
          uVar12 = 0;
          if ((uint)param_5[3] <= (uint)param_5[2]) {
            iVar8 = (**(code **)(*param_5 + 0x24))(param_5);
            if (iVar8 == -1) {
              param_5 = (int *)0x0;
              uVar12 = local_4c;
            }
            else {
              uVar12 = 0;
            }
          }
        }
        else {
          uVar12 = 0;
        }
      }
      if (uVar14 != uVar12) {
        if ((local_res8 == (int *)0x0) || (local_resc != -1)) {
          uVar12 = (uint)(char)local_resc;
        }
        else if ((char *)local_res8[2] < (char *)local_res8[3]) {
          uVar12 = (uint)*(char *)local_res8[2];
        }
        else {
          iVar8 = (**(code **)(*local_res8 + 0x24))();
          uVar12 = (uint)(char)iVar8;
          if (iVar8 == -1) {
            local_res8 = (int *)0x0;
            uVar12 = 0xffffffff;
          }
        }
        goto LAB_003c6c68;
      }
    }
    else {
      uVar17 = 0;
      uVar5 = 0;
      local_4c = uVar14;
    }
  }
LAB_003c6a28:
  if (local_64 == 0) goto LAB_003c6a34;
LAB_003c6d70:
  uVar16 = (undefined1)iVar3;
  local_48 = 0;
LAB_003c6d78:
  uVar14 = local_64;
  uVar12 = local_64 + 1;
  uVar4 = local_60[0];
  if (local_68 == local_40) {
    uVar4 = 0xf;
  }
  if (uVar4 < uVar12) {
    (*(code *)PTR__M_mutate_004c2090)((string *)&local_68,local_64,0,0,1);
  }
  *(undefined1 *)((int)local_68 + uVar14) = uVar16;
  *(undefined1 *)((int)local_68 + uVar12) = 0;
  local_64 = uVar12;
  iVar13 = std::__verify_grouping
                     (*(char **)(iVar13 + 8),*(uint *)(iVar13 + 0xc),(string *)&local_68);
  if (iVar13 == 0) {
    *param_8 = 4;
  }
  if ((((iVar3 != 0) || (bVar15)) || (local_64 != 0)) && (local_48 == 0)) goto LAB_003c6de8;
LAB_003c6a48:
  *param_9 = 0;
  *param_8 = 4;
LAB_003c6a54:
  if (local_4c != 0) {
    *param_8 = *param_8 | 2;
  }
LAB_003c6a70:
  *param_1 = local_res8;
  param_1[1] = local_resc;
  if (local_68 != local_40) {
    (*(code *)PTR_operator_delete_004c12fc)();
  }
  return param_1;
LAB_003c6d60:
  local_4c = 0;
  if (local_64 != 0) goto LAB_003c6d70;
LAB_003c6a34:
  if ((iVar3 != 0) || (bVar15)) {
LAB_003c6de8:
    if (uVar17 == 0) {
      if (local_38 != 0) {
        uVar5 = -uVar5;
      }
      *param_9 = uVar5;
    }
    else {
      *param_9 = 0xffffffff;
      *param_8 = 4;
    }
    goto LAB_003c6a54;
  }
  goto LAB_003c6a48;
}

