
/* WARNING: Type propagation algorithm not settling */

debug_type
parse_stab_type(void *dhandle,stab_handle *info,char *type_name,char **pp,
               debug_type_conflict **slotp,char *p_end)

{
  char cVar1;
  byte bVar2;
  char cVar3;
  bfd_boolean bVar4;
  bfd_boolean bVar5;
  debug_type_kind dVar6;
  int iVar7;
  uint uVar8;
  debug_type_conflict *ppdVar9;
  ulong uVar10;
  long lVar11;
  bfd_signed_vma *values;
  bfd_vma bVar12;
  bfd_vma bVar13;
  bfd_vma bVar14;
  debug_field pdVar15;
  char *pcVar16;
  char *pcVar17;
  debug_type pdVar18;
  debug_type pdVar19;
  debug_type_conflict pdVar20;
  debug_method_variant pdVar21;
  debug_method pdVar22;
  debug_type pdVar23;
  stab_demangle_typestring *arg_types;
  debug_baseclass pdVar24;
  char *pcVar25;
  byte *pbVar26;
  demangle_component *pdVar27;
  bfd_vma lower;
  ulong uVar28;
  uint *puVar29;
  uint *puVar30;
  char **pstart;
  byte *pbVar31;
  size_t sVar32;
  debug_type_conflict *ppdVar33;
  byte *pbVar34;
  byte *pbVar35;
  debug_visibility dVar36;
  byte bVar37;
  ulong uVar38;
  uint uVar39;
  byte *pbVar40;
  bool bVar41;
  bool bVar42;
  bool bVar43;
  bool bVar44;
  bool bVar45;
  bool bVar46;
  byte bVar47;
  char **local_148;
  uint local_13c;
  char *local_138;
  debug_field *local_130;
  debug_method_variant *local_128;
  debug_visibility local_120;
  bfd_boolean local_118;
  debug_method *local_108;
  debug_type local_100;
  debug_baseclass *local_f8;
  int local_f0;
  uint local_ec;
  uint local_e8;
  debug_visibility local_e4;
  ulong local_e0;
  ulong local_d8;
  uint local_c8;
  uint local_c4;
  char *local_c0;
  bfd_boolean varargs;
  bfd_boolean varargs_1;
  char *p;
  int typenums [2];
  int xtypenums [2];
  stab_demangle_typestring *local_58;
  uint local_50 [2];
  stab_demangle_typestring *local_48;
  uint local_40;
  uint local_3c;
  
  bVar47 = 0;
  if (slotp != (debug_type_conflict **)0x0) {
    *slotp = (debug_type_conflict *)0x0;
  }
  pbVar31 = (byte *)*pp;
  if (p_end <= pbVar31) {
    return (debug_type)0x0;
  }
  info->self_crossref = 0;
  bVar37 = *pbVar31;
  if (((_sch_istable[(ulong)bVar37 * 2] & 4) != 0) || (bVar37 == 0x2d || bVar37 == 0x28)) {
    bVar4 = parse_stab_type_number(pp,typenums,p_end);
    if (bVar4 == 0) {
      return (debug_type)0x0;
    }
    pcVar17 = *pp;
    if (*pcVar17 != '=') {
      pdVar18 = stab_find_type(dhandle,info,typenums);
      return pdVar18;
    }
    if (((slotp != (debug_type_conflict **)0x0) && (-1 < typenums[0])) && (-1 < (long)typenums)) {
      ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,
                               (stab_handle *)typenums);
      pcVar17 = *pp;
      *slotp = ppdVar9;
    }
    bVar4 = 0;
    *pp = pcVar17 + 1;
    local_13c = 0xffffffff;
    pbVar26 = (byte *)(pcVar17 + 1);
    do {
      while( true ) {
        while( true ) {
          bVar37 = *pbVar26;
          pbVar40 = pbVar26 + 1;
          if (bVar37 != 0x40) goto LAB_001311b2;
          bVar37 = pbVar26[1];
          uVar10 = (ulong)bVar37;
          if (((_sch_istable[uVar10 * 2] & 4) != 0) || (bVar37 == 0x2d || bVar37 == 0x28)) {
            *pp = (char *)pbVar40;
            goto switchD_001311d2_caseD_40;
          }
          while ((char)uVar10 != ';') {
            if ((char)uVar10 == '\0') goto switchD_001311d2_caseD_24;
            pbVar40 = pbVar40 + 1;
            uVar10 = (ulong)*pbVar40;
          }
          pbVar40 = pbVar40 + 1;
          *pp = (char *)pbVar40;
          bVar37 = pbVar26[1];
          if (bVar37 != 0x53) break;
          bVar4 = 1;
          pbVar26 = pbVar40;
        }
        if (bVar37 != 0x73) break;
        lVar11 = strtol((char *)(pbVar26 + 2),(char **)0x0,10);
        if ((int)lVar11 < 8) {
          local_13c = 0xffffffff;
          pbVar26 = (byte *)*pp;
        }
        else {
          local_13c = (int)lVar11 >> 3;
          pbVar26 = (byte *)*pp;
        }
      }
      pbVar26 = pbVar40;
    } while (bVar37 != 0);
    goto switchD_001311d2_caseD_24;
  }
  pbVar40 = pbVar31 + 1;
  bVar4 = 0;
  local_13c = 0xffffffff;
  typenums[0] = -1;
  typenums[1] = -1;
  bVar37 = *pbVar31;
  pbVar26 = pbVar31;
LAB_001311b2:
  *pp = (char *)pbVar40;
  switch(bVar37) {
  case 0x23:
    if (pbVar26[1] == 0x23) {
      *pp = (char *)(pbVar26 + 2);
      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);
      if (pdVar18 == (debug_type)0x0) {
        return (debug_type)0x0;
      }
      if (**pp != ';') goto switchD_001311d2_caseD_24;
      *pp = *pp + 1;
      pdVar20 = debug_make_method_type
                          (dhandle,pdVar18,(debug_type_conflict)0x0,(debug_type_conflict *)0x0,0);
    }
    else {
      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);
      if (pdVar18 == (debug_type)0x0) {
        return (debug_type)0x0;
      }
      if (**pp != ',') goto switchD_001311d2_caseD_24;
      *pp = *pp + 1;
      pdVar19 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);
      if (pdVar19 == (debug_type)0x0) {
        return (debug_type)0x0;
      }
      uVar38 = 10;
      ppdVar9 = (debug_type_conflict *)xmalloc(0x50);
      uVar10 = 0;
      while( true ) {
        pcVar17 = *pp;
        iVar7 = (int)uVar10;
        if (*pcVar17 == ';') break;
        if (*pcVar17 != ',') {
          bad_stab((char *)pbVar31);
          return (debug_type)0x0;
        }
        *pp = pcVar17 + 1;
        if ((uint)uVar38 <= iVar7 + 1U) {
          uVar38 = (ulong)((uint)uVar38 + 10);
          ppdVar9 = (debug_type_conflict *)xrealloc(ppdVar9,uVar38 << 3);
        }
        ppdVar33 = ppdVar9 + uVar10;
        pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);
        uVar10 = (ulong)(iVar7 + 1U);
        *ppdVar33 = pdVar23;
        if (pdVar23 == (debug_type)0x0) {
          return (debug_type)0x0;
        }
      }
      bVar4 = 1;
      *pp = pcVar17 + 1;
      ppdVar33 = ppdVar9;
      if (iVar7 != 0) {
        ppdVar33 = ppdVar9 + (iVar7 - 1);
        dVar6 = debug_get_type_kind(dhandle,*ppdVar33);
        if (dVar6 == DEBUG_KIND_VOID) {
          bVar4 = 0;
        }
        else {
          ppdVar33 = ppdVar9 + uVar10;
        }
      }
      *ppdVar33 = (debug_type_conflict)0x0;
      pdVar20 = debug_make_method_type(dhandle,pdVar19,pdVar18,ppdVar9,bVar4);
    }
    break;
  default:
    goto switchD_001311d2_caseD_24;
  case 0x26:
    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);
    pdVar20 = debug_make_reference_type(dhandle,pdVar18);
    break;
  case 0x28:
  case 0x2d:
  case 0x30:
  case 0x31:
  case 0x32:
  case 0x33:
  case 0x34:
  case 0x35:
  case 0x36:
  case 0x37:
  case 0x38:
  case 0x39:
    *pp = (char *)pbVar26;
    bVar4 = parse_stab_type_number(pp,xtypenums,p_end);
    if (bVar4 == 0) {
      return (debug_type)0x0;
    }
    if (typenums[0] == xtypenums[0]) {
      if (typenums[1] != xtypenums[1]) goto LAB_00132079;
      pdVar20 = debug_make_void_type(dhandle);
    }
    else {
LAB_00132079:
      *pp = (char *)pbVar26;
      pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);
      if (pdVar20 == (debug_type)0x0) {
        return (debug_type)0x0;
      }
    }
    if (typenums[0] != -1) {
      ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,
                               (stab_handle *)typenums);
      if (ppdVar9 == (debug_type_conflict *)0x0) {
        return (debug_type)0x0;
      }
      *ppdVar9 = pdVar20;
    }
    break;
  case 0x2a:
    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);
    pdVar20 = debug_make_pointer_type(dhandle,pdVar18);
    break;
  case 0x40:
switchD_001311d2_caseD_40:
    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);
    if (pdVar18 == (debug_type)0x0) {
      return (debug_type)0x0;
    }
    if (**pp != ',') goto switchD_001311d2_caseD_24;
    *pp = *pp + 1;
    pdVar19 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);
    if (pdVar19 == (debug_type)0x0) {
      return (debug_type)0x0;
    }
    pdVar20 = debug_make_offset_type(dhandle,pdVar18,pdVar19);
    break;
  case 0x42:
    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);
    pdVar20 = debug_make_volatile_type(dhandle,pdVar18);
    break;
  case 0x52:
    if (p_end <= pbVar40) {
      return (debug_type)0x0;
    }
    bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);
    if ((**pp != ';') || (bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end), **pp != ';'))
    goto LAB_00132126;
    if (bVar12 - 3 < 3) {
      pdVar20 = debug_make_complex_type(dhandle,(uint)bVar13);
    }
    else {
      pdVar20 = debug_make_float_type(dhandle,(uint)bVar13);
    }
    break;
  case 0x53:
    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);
    pdVar20 = debug_make_set_type(dhandle,pdVar18,bVar4);
    break;
  case 0x61:
    if (pbVar26[1] == 0x72) {
      pbVar26 = pbVar26 + 2;
      *pp = (char *)pbVar26;
      if (p_end <= pbVar26) {
        return (debug_type)0x0;
      }
      p = (char *)pbVar26;
      bVar5 = parse_stab_type_number(&p,xtypenums,p_end);
      if (bVar5 == 0) {
        return (debug_type)0x0;
      }
      if ((xtypenums[0] == 0 && xtypenums[1] == 0) && (**pp != '=')) {
        pdVar20 = debug_find_named_type(dhandle,"int");
        if ((pdVar20 == (debug_type_conflict)0x0) &&
           (pdVar20 = debug_make_int_type(dhandle,4,0), pdVar20 == (debug_type_conflict)0x0)) {
          return (debug_type)0x0;
        }
        *pp = p;
        pcVar17 = p;
      }
      else {
        pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);
        pcVar17 = *pp;
      }
      if (*pcVar17 == ';') {
        *pp = pcVar17 + 1;
        bVar47 = pcVar17[1];
        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {
          bVar43 = true;
          *pp = pcVar17 + 2;
        }
        else {
          bVar43 = false;
        }
        bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);
        pcVar17 = *pp;
        if (*pcVar17 == ';') {
          *pp = pcVar17 + 1;
          bVar47 = pcVar17[1];
          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {
            bVar43 = true;
            *pp = pcVar17 + 2;
          }
          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);
          if (**pp == ';') {
            *pp = *pp + 1;
            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)
            ;
            if (pdVar18 == (debug_type)0x0) {
              return (debug_type)0x0;
            }
            lower = 0;
            bVar14 = 0xffffffffffffffff;
            if (!bVar43) {
              lower = bVar12;
              bVar14 = bVar13;
            }
            pdVar20 = debug_make_array_type(dhandle,pdVar18,pdVar20,lower,bVar14,bVar4);
            break;
          }
        }
      }
      bad_stab((char *)pbVar26);
      return (debug_type)0x0;
    }
    goto switchD_001311d2_caseD_24;
  case 0x62:
    if (p_end <= pbVar40) {
      return (debug_type)0x0;
    }
    if (pbVar26[1] == 0x73) {
      bVar4 = 0;
    }
    else {
      if (pbVar26[1] != 0x75) goto LAB_00132126;
      bVar4 = 1;
    }
    *pp = (char *)(pbVar26 + 2);
    if (((byte)(pbVar26[2] + 0x9e) < 2) || (pbVar26[2] == 0x76)) {
      *pp = (char *)(pbVar26 + 3);
    }
    parse_number(pp,(bfd_boolean *)0x0,p_end);
    if (**pp != ';') goto LAB_00132126;
    *pp = *pp + 1;
    parse_number(pp,(bfd_boolean *)0x0,p_end);
    if (**pp != ';') goto LAB_00132126;
    *pp = *pp + 1;
    bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);
    if (**pp == ';') {
      *pp = *pp + 1;
    }
    if (bVar12 != 0) {
      pdVar20 = debug_make_int_type(dhandle,(uint)(bVar12 >> 3),bVar4);
      break;
    }
LAB_00133358:
    pdVar20 = debug_make_void_type(dhandle);
    break;
  case 0x65:
    if (p_end <= pbVar40) {
      return (debug_type)0x0;
    }
    pbVar31 = pbVar40;
    if (pbVar26[1] == 0x2d) {
      do {
        pbVar26 = pbVar31;
        *pp = (char *)(pbVar26 + 1);
        bVar47 = pbVar26[1];
        if (bVar47 == 0x3a) break;
        pbVar31 = pbVar26 + 1;
      } while (bVar47 != 0);
      if (bVar47 == 0) goto LAB_00132126;
      *pp = (char *)(pbVar26 + 2);
    }
    local_148 = (char **)xmalloc(0x50);
    values = (bfd_signed_vma *)xmalloc(0x50);
    pbVar31 = (byte *)*pp;
    uVar10 = (ulong)*pbVar31;
    if ((*pbVar31 < 0x3c) && ((0x800100000000001U >> (uVar10 & 0x3f) & 1) != 0)) {
      uVar28 = 0;
    }
    else {
      uVar38 = 10;
      uVar39 = 0;
      do {
        bVar47 = (byte)uVar10;
        pbVar26 = pbVar31;
        while ((bVar47 != 0x3a && (bVar47 != 0))) {
          pbVar26 = pbVar26 + 1;
          bVar47 = *pbVar26;
        }
        if (bVar47 == 0) {
          bad_stab((char *)pbVar40);
LAB_00132cf2:
          free(local_148);
          free(values);
          return (debug_type)0x0;
        }
        pcVar17 = savestring((char *)pbVar31,(int)pbVar26 - (int)pbVar31);
        *pp = (char *)(pbVar26 + 1);
        bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);
        if (**pp != ',') {
          bad_stab((char *)pbVar40);
          free(pcVar17);
          goto LAB_00132cf2;
        }
        uVar8 = uVar39 + 1;
        *pp = *pp + 1;
        if ((uint)uVar38 <= uVar8) {
          uVar38 = (ulong)((uint)uVar38 + 10);
          local_148 = (char **)xrealloc(local_148,uVar38 << 3);
          values = (bfd_signed_vma *)xrealloc(values,uVar38 << 3);
        }
        uVar28 = (ulong)uVar8;
        local_148[uVar39] = pcVar17;
        pbVar31 = (byte *)*pp;
        values[uVar39] = bVar12;
        uVar10 = (ulong)*pbVar31;
        uVar39 = uVar8;
      } while ((0x3b < *pbVar31) || ((0x800100000000001U >> (uVar10 & 0x3f) & 1) == 0));
    }
    local_148[uVar28] = (char *)0x0;
    pcVar17 = *pp;
    values[uVar28] = 0;
    if (*pcVar17 == ';') {
      *pp = pcVar17 + 1;
    }
    pdVar20 = debug_make_enum_type(dhandle,local_148,values);
    break;
  case 0x66:
    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);
    pdVar20 = debug_make_function_type(dhandle,pdVar18,(debug_type_conflict *)0x0,0);
    break;
  case 0x6b:
    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);
    pdVar20 = debug_make_const_type(dhandle,pdVar18);
    break;
  case 0x72:
    if (p_end <= pbVar40) {
      return (debug_type)0x0;
    }
    bVar4 = parse_stab_type_number(pp,xtypenums,p_end);
    if (bVar4 == 0) {
      return (debug_type)0x0;
    }
    bVar43 = false;
    if (xtypenums[0] == typenums[0]) {
      bVar43 = xtypenums[1] == typenums[1];
    }
    pbVar31 = (byte *)*pp;
    pdVar18 = (debug_type)0x0;
    bVar37 = *pbVar31;
    if (bVar37 == 0x3d) {
      *pp = (char *)pbVar40;
      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);
      if (pdVar18 == (debug_type)0x0) {
        return (debug_type)0x0;
      }
      pbVar31 = (byte *)*pp;
      bVar37 = *pbVar31;
    }
    if (bVar37 == 0x3b) {
      pbVar31 = pbVar31 + 1;
      *pp = (char *)pbVar31;
    }
    bVar12 = parse_number(pp,&varargs_1,p_end);
    if (**pp != ';') goto LAB_00132126;
    pcVar17 = *pp + 1;
    *pp = pcVar17;
    bVar13 = parse_number(pp,(bfd_boolean *)&p,p_end);
    bVar4 = varargs_1;
    if (**pp != ';') goto LAB_00132126;
    *pp = *pp + 1;
    if (varargs_1 != 0 || (int)p != 0) {
      bVar41 = false;
      bVar44 = pdVar18 == (debug_type)0x0;
      if (!bVar44) {
LAB_00131960:
        pcVar17 = (char *)dcgettext(0,"numeric overflow",5);
        warn_stab((char *)pbVar40,pcVar17);
        goto LAB_0013197e;
      }
      lVar11 = 0x18;
      pbVar26 = (byte *)"01000000000000000000000;";
      do {
        if (lVar11 == 0) break;
        lVar11 = lVar11 + -1;
        bVar41 = *pbVar31 < *pbVar26;
        bVar44 = *pbVar31 == *pbVar26;
        pbVar31 = pbVar31 + (ulong)bVar47 * -2 + 1;
        pbVar26 = pbVar26 + (ulong)bVar47 * -2 + 1;
      } while (bVar44);
      if (((!bVar41 && !bVar44) != bVar41) ||
         (iVar7 = strncmp(pcVar17,"0777777777777777777777;",0x17), iVar7 != 0)) {
        if ((bVar12 != 0) ||
           ((bVar4 != 0 || (iVar7 = strncmp(pcVar17,"01777777777777777777777;",0x18), iVar7 != 0))))
        goto LAB_00131960;
LAB_0013348a:
        pdVar20 = debug_make_int_type(dhandle,8,1);
        break;
      }
LAB_0013373f:
      pdVar20 = debug_make_int_type(dhandle,8,0);
      break;
    }
LAB_0013197e:
    if (pdVar18 == (debug_type)0x0) {
      if ((bVar43) && (bVar12 == 0)) {
        if (bVar13 == 0) goto LAB_00133358;
        if (bVar13 == 0xffffffffffffffff) {
LAB_00133395:
          if (type_name != (char *)0x0) {
            iVar7 = strcmp(type_name,"long long int");
            if (iVar7 == 0) goto LAB_0013373f;
            iVar7 = strcmp(type_name,"long long unsigned int");
            if (iVar7 == 0) goto LAB_0013348a;
          }
        }
        else {
          if (bVar13 == 0x7f) {
LAB_00133dee:
            pdVar20 = debug_make_int_type(dhandle,1,0);
            break;
          }
LAB_00133a66:
          uVar39 = (uint)bVar13;
          if ((long)bVar13 < 0) goto LAB_00133b55;
          if (bVar13 == 0xff) {
            pdVar20 = debug_make_int_type(dhandle,1,1);
            break;
          }
          if (bVar13 == 0xffff) {
            pdVar20 = debug_make_int_type(dhandle,2,1);
            break;
          }
          if (bVar13 != 0xffffffff) goto LAB_00131987;
        }
        pdVar20 = debug_make_int_type(dhandle,4,1);
        break;
      }
      bVar41 = bVar13 != 0;
      uVar39 = (uint)bVar12;
      if ((!bVar43) || (bVar41)) {
        if ((0 < (long)bVar12) && (!bVar41)) {
          pdVar20 = debug_make_float_type(dhandle,uVar39);
          break;
        }
        if ((bVar13 == 0xffffffffffffffff) && (bVar12 == 0)) goto LAB_00133395;
        if (bVar12 == 0) goto LAB_00133a66;
        if (((-1 < (long)bVar12) || (bVar41)) || ((bVar12 != 0xfffffffffffffff8 && (!bVar43))))
        goto LAB_001336f0;
      }
      else {
        if (0 < (long)bVar12) {
          pdVar20 = debug_make_complex_type(dhandle,uVar39);
          break;
        }
        if (-1 < (long)bVar12) {
LAB_001336f0:
          if ((bVar12 == ~bVar13) || (bVar12 == bVar13 + 1)) {
            if (bVar13 == 0x7f) goto LAB_00133dee;
            if (bVar13 == 0x7fff) {
              pdVar20 = debug_make_int_type(dhandle,2,0);
              break;
            }
            if (bVar13 == 0x7fffffff) {
              pdVar20 = debug_make_int_type(dhandle,4,0);
              break;
            }
            if (bVar13 == 0x7fffffffffffffff) goto LAB_0013373f;
          }
          goto LAB_00131987;
        }
      }
LAB_00133b55:
      pdVar20 = debug_make_int_type(dhandle,-uVar39,1);
    }
    else {
LAB_00131987:
      if (bVar43) {
LAB_00132126:
        bad_stab((char *)pbVar40);
        return (debug_type)0x0;
      }
      pdVar20 = stab_find_type(dhandle,info,xtypenums);
      if (pdVar20 == (debug_type)0x0) {
        pcVar17 = (char *)dcgettext(0,"missing index type",5);
        warn_stab((char *)pbVar40,pcVar17);
        pdVar20 = debug_make_int_type(dhandle,4,0);
      }
      pdVar20 = debug_make_range_type(dhandle,pdVar20,bVar12,bVar13);
    }
    break;
  case 0x73:
  case 0x75:
    bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);
    pbVar40 = (byte *)*pp;
    if (p_end <= pbVar40) {
      return (debug_type)0x0;
    }
    local_f8 = (debug_baseclass *)0x0;
    if (*pbVar40 == 0x21) {
      *pp = (char *)(pbVar40 + 1);
      bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);
      if (**pp != ',') goto LAB_00132126;
      iVar7 = (int)bVar13;
      uVar10 = bVar13 & 0xffffffff;
      *pp = *pp + 1;
      local_f8 = (debug_baseclass *)xmalloc((ulong)(iVar7 + 1) << 3);
      if (iVar7 != 0) {
        uVar38 = 0;
        cVar3 = **pp;
        if (cVar3 == '0') goto LAB_00132b2f;
LAB_00132a1e:
        uVar28 = uVar38;
        if (cVar3 == '1') {
          bVar4 = 1;
        }
        else {
          if (cVar3 == '\0') goto LAB_00132126;
          bVar4 = 0;
          pcVar17 = (char *)dcgettext(0,"unknown virtual character for baseclass",5);
          warn_stab((char *)pbVar40,pcVar17);
        }
        do {
          pcVar17 = *pp;
          *pp = pcVar17 + 1;
          cVar3 = pcVar17[1];
          if (cVar3 == '0') {
            dVar36 = DEBUG_VISIBILITY_PRIVATE;
          }
          else {
            if (cVar3 < '1') {
              if (cVar3 == '\0') goto LAB_00132126;
            }
            else {
              dVar36 = DEBUG_VISIBILITY_PROTECTED;
              if ((cVar3 == '1') || (dVar36 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))
              goto LAB_00132a81;
            }
            dVar36 = DEBUG_VISIBILITY_PUBLIC;
            pcVar17 = (char *)dcgettext(0,"unknown visibility character for baseclass",5);
            warn_stab((char *)pbVar40,pcVar17);
          }
LAB_00132a81:
          *pp = *pp + 1;
          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);
          if (**pp != ',') goto LAB_00132126;
          *pp = *pp + 1;
          pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);
          if (pdVar18 == (debug_type)0x0) {
            return (debug_type)0x0;
          }
          pdVar24 = debug_make_baseclass(dhandle,pdVar18,bVar13,bVar4,dVar36);
          local_f8[uVar28] = pdVar24;
          if (pdVar24 == (debug_baseclass)0x0) {
            return (debug_type)0x0;
          }
          if (**pp != ';') {
            return (debug_type)0x0;
          }
          pcVar17 = *pp + 1;
          uVar10 = (ulong)((int)uVar28 + 1);
          uVar38 = uVar28 + 1;
          *pp = pcVar17;
          if (uVar28 == iVar7 - 1) break;
          cVar3 = *pcVar17;
          if (cVar3 != '0') goto LAB_00132a1e;
LAB_00132b2f:
          bVar4 = 0;
          uVar28 = uVar38;
        } while( true );
      }
      pbVar40 = (byte *)*pp;
      local_f8[uVar10] = (debug_baseclass)0x0;
      if (p_end <= pbVar40) {
        return (debug_type)0x0;
      }
    }
    uVar10 = 0;
    local_130 = (debug_field *)xmalloc(0x50);
    pbVar31 = (byte *)*pp;
    bVar43 = false;
    bVar2 = *pbVar31;
    local_138._0_4_ = 10;
    while (bVar2 != 0x3b) {
      uVar39 = (int)uVar10 + 1;
      if ((uint)local_138 <= uVar39) {
        local_138._0_4_ = (uint)local_138 + 10;
        local_130 = (debug_field *)xrealloc(local_130,(ulong)(uint)local_138 << 3);
        bVar2 = *pbVar31;
      }
      if (((bVar2 == 0x24) || (bVar2 == 0x2e)) && (pbVar31[1] != 0x5f)) {
        pcVar17 = *pp;
        pbVar31 = (byte *)(pcVar17 + 1);
        *pp = (char *)pbVar31;
        local_130[uVar10] = (debug_field)0x0;
        if (p_end <= pbVar31) goto LAB_00131328;
        if (pcVar17[1] != 'v') goto LAB_00132740;
        *pp = pcVar17 + 2;
        cVar3 = pcVar17[2];
        if (cVar3 == '\0') goto LAB_00132740;
        *pp = pcVar17 + 3;
        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);
        if (pdVar18 == (debug_type)0x0) goto LAB_00131328;
        if (cVar3 == 'b') {
          pcVar17 = debug_get_type_name(dhandle,pdVar18);
          if (pcVar17 == (char *)0x0) {
            pcVar17 = (char *)dcgettext(0,"unnamed $vb type",5);
            warn_stab((char *)pbVar31,pcVar17);
            pcVar17 = "FOO";
          }
          pcVar17 = (char *)concat(&DAT_00146a0b,pcVar17,0);
        }
        else {
          pcVar17 = "_vptr$";
          if (cVar3 != 'f') {
            pcVar16 = (char *)dcgettext(0,"unrecognized C++ abbreviation",5);
            pcVar17 = "INVALID_CPLUSPLUS_ABBREV";
            warn_stab((char *)pbVar31,pcVar16);
          }
        }
        if (**pp != ':') goto LAB_00132740;
        *pp = *pp + 1;
        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);
        if (**pp != ',') goto LAB_00132740;
        *pp = *pp + 1;
        bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);
        if (**pp != ';') goto LAB_00132740;
        *pp = *pp + 1;
        pdVar15 = debug_make_field(dhandle,pcVar17,pdVar18,bVar13,0,DEBUG_VISIBILITY_PRIVATE);
        local_130[uVar10] = pdVar15;
        if (pdVar15 == (debug_field)0x0) goto LAB_00131328;
      }
      else {
        pcVar17 = strchr((char *)pbVar31,0x3a);
        if (pcVar17 == (char *)0x0) {
          bad_stab((char *)pbVar40);
          free(local_130);
          return (debug_type)0x0;
        }
        pbVar31 = (byte *)*pp;
        if (pcVar17[1] == ':') break;
        if (p_end <= pbVar31) {
          return (debug_type)0x0;
        }
        pcVar16 = savestring((char *)pbVar31,(int)pcVar17 - (int)pbVar31);
        *pp = pcVar17 + 1;
        if (pcVar17[1] == '/') {
          pcVar25 = pcVar17 + 2;
          *pp = pcVar25;
          cVar3 = pcVar17[2];
          if (cVar3 == '0') {
            local_120 = DEBUG_VISIBILITY_PRIVATE;
          }
          else {
            if (cVar3 < '1') {
              if (cVar3 == '\0') goto switchD_001311d2_caseD_24;
            }
            else {
              local_120 = DEBUG_VISIBILITY_PROTECTED;
              if ((cVar3 == '1') || (local_120 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))
              goto LAB_00131b6d;
            }
            pcVar17 = (char *)dcgettext(0,"unknown visibility character for field",5);
            warn_stab((char *)pbVar31,pcVar17);
            pcVar25 = *pp;
            local_120 = DEBUG_VISIBILITY_PUBLIC;
          }
LAB_00131b6d:
          *pp = pcVar25 + 1;
        }
        else {
          local_120 = DEBUG_VISIBILITY_PUBLIC;
        }
        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);
        if (pdVar18 == (debug_type)0x0) {
          free(pcVar16);
          return (debug_type)0x0;
        }
        pcVar17 = *pp;
        if (*pcVar17 == ':') {
          pcVar17 = pcVar17 + 1;
          *pp = pcVar17;
          pcVar25 = strchr(pcVar17,0x3b);
          if (pcVar25 == (char *)0x0) goto LAB_00132614;
          pcVar17 = savestring(pcVar17,(int)pcVar25 - (int)pcVar17);
          *pp = pcVar25 + 1;
          pdVar15 = debug_make_static_member(dhandle,pcVar16,pdVar18,pcVar17,local_120);
          bVar43 = true;
          local_130[uVar10] = pdVar15;
        }
        else {
          if (*pcVar17 != ',') {
LAB_00132614:
            bad_stab((char *)pbVar31);
            free(pcVar16);
            return (debug_type)0x0;
          }
          *pp = pcVar17 + 1;
          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);
          if (**pp != ',') goto LAB_00132614;
          *pp = *pp + 1;
          bVar14 = parse_number(pp,(bfd_boolean *)0x0,p_end);
          if (**pp != ';') goto LAB_00132614;
          *pp = *pp + 1;
          dVar36 = DEBUG_VISIBILITY_IGNORE;
          if (bVar13 != 0 || bVar14 != 0) {
            dVar36 = local_120;
          }
          pdVar15 = debug_make_field(dhandle,pcVar16,pdVar18,bVar13,bVar14,dVar36);
          local_130[uVar10] = pdVar15;
        }
      }
      pbVar31 = (byte *)*pp;
      uVar10 = (ulong)uVar39;
      bVar2 = *pbVar31;
    }
    local_130[uVar10] = (debug_field)0x0;
    if (p_end <= pbVar31) goto LAB_00131328;
    bVar2 = *pbVar31;
    if (bVar2 == 0x3b) {
      local_108 = (debug_method *)0x0;
LAB_001334bc:
      pbVar26 = pbVar31 + 1;
      *pp = (char *)pbVar26;
    }
    else {
      pbVar40 = (byte *)0x0;
      local_128 = (debug_method_variant *)0x0;
      local_108 = (debug_method *)0x0;
      local_c4 = 0;
      local_c8 = 0;
      local_138 = (char *)0x0;
      pbVar26 = pbVar31;
      do {
        pcVar17 = strchr((char *)pbVar26,0x3a);
        if ((pcVar17 == (char *)0x0) || (pcVar17[1] != ':')) break;
        pcVar16 = pcVar17 + 2;
        if ((bVar2 == 0x6f) && ((pbVar26[1] == 0x70 && (pbVar26[2] == 0x24)))) {
          *pp = pcVar16;
          cVar3 = pcVar17[2];
          pcVar17 = pcVar16;
          while ((cVar3 != '.' && (cVar3 != '\0'))) {
            pcVar17 = pcVar17 + 1;
            cVar3 = *pcVar17;
          }
          if (cVar3 != '.') {
            bad_stab((char *)pbVar31);
            if (local_138 != (char *)0x0) {
LAB_0013279c:
              free(local_138);
            }
            if (local_128 != (debug_method_variant *)0x0) {
LAB_00132d1b:
              free(local_128);
            }
            if (pbVar40 != (byte *)0x0) {
              free(pbVar40);
            }
            goto LAB_00131328;
          }
          local_138 = savestring(pcVar16,(int)pcVar17 - (int)pcVar16);
          *pp = pcVar17 + 1;
        }
        else {
          local_138 = savestring((char *)pbVar26,(int)pcVar17 - (int)pbVar26);
          *pp = pcVar16;
        }
        local_128 = (debug_method_variant *)xmalloc(0x50);
        local_ec = 0;
        local_e8 = 10;
        pdVar18 = (debug_type)0x0;
        do {
          if (pdVar18 == (debug_type)0x0) {
            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)
            ;
            if (pdVar18 != (debug_type)0x0) {
              pcVar17 = *pp;
              if (*pcVar17 == ':') goto LAB_00131d3f;
              goto LAB_00132781;
            }
LAB_00132793:
            if (local_138 == (char *)0x0) goto LAB_00132d1b;
            goto LAB_0013279c;
          }
          pcVar17 = *pp;
LAB_00131d3f:
          *pp = pcVar17 + 1;
          pcVar17 = strchr(pcVar17 + 1,0x3b);
          if (pcVar17 == (char *)0x0) {
LAB_00132781:
            bad_stab((char *)pbVar31);
            goto LAB_00132793;
          }
          dVar6 = debug_get_type_kind(dhandle,pdVar18);
          bVar41 = false;
          if (dVar6 == DEBUG_KIND_METHOD) {
            ppdVar9 = debug_get_parameter_types(dhandle,pdVar18,&varargs);
            bVar41 = ppdVar9 == (debug_type_conflict *)0x0;
          }
          pbVar40 = (byte *)savestring(*pp,(int)pcVar17 - (int)*pp);
          *pp = pcVar17 + 1;
          cVar3 = pcVar17[1];
          if (cVar3 == '0') {
            local_e4 = DEBUG_VISIBILITY_PRIVATE;
          }
          else if (cVar3 == '1') {
            local_e4 = DEBUG_VISIBILITY_PROTECTED;
          }
          else {
            if (cVar3 == '\0') goto LAB_00132781;
            local_e4 = DEBUG_VISIBILITY_PUBLIC;
          }
          pcVar16 = pcVar17 + 2;
          *pp = pcVar16;
          cVar3 = pcVar17[2];
          switch(cVar3) {
          case '*':
          case '.':
          case '?':
            local_118 = 0;
            local_f0 = 0;
            break;
          default:
            pcVar17 = (char *)dcgettext(0,"const/volatile indicator missing",5);
            warn_stab((char *)pbVar31,pcVar17);
            pcVar16 = *pp;
            local_118 = 0;
            local_f0 = 0;
            cVar3 = *pcVar16;
            break;
          case 'A':
            pcVar16 = pcVar17 + 3;
            local_118 = 0;
            *pp = pcVar16;
            cVar3 = pcVar17[3];
            local_f0 = 0;
            break;
          case 'B':
            pcVar16 = pcVar17 + 3;
            local_118 = 0;
            *pp = pcVar16;
            cVar3 = pcVar17[3];
            local_f0 = 1;
            break;
          case 'C':
            pcVar16 = pcVar17 + 3;
            local_118 = 1;
            *pp = pcVar16;
            cVar3 = pcVar17[3];
            local_f0 = 0;
            break;
          case 'D':
            pcVar16 = pcVar17 + 3;
            local_118 = 1;
            local_f0 = 1;
            *pp = pcVar16;
            cVar3 = pcVar17[3];
          }
          pbVar26 = pbVar40;
          if (cVar3 == '.') {
            bVar44 = false;
            pdVar19 = (debug_type)0x0;
            *pp = pcVar16 + 1;
            local_100 = (debug_type)0x0;
            local_e0 = 0;
LAB_001322ba:
            if (bVar41) goto LAB_0013282f;
          }
          else {
            if (cVar3 != '?') {
              if (cVar3 == '*') {
                *pp = pcVar16 + 1;
                bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);
                pcVar17 = *pp;
                if (*pcVar17 != ';') goto LAB_00132781;
                local_e0 = (ulong)((uint)bVar13 & 0x7fffffff);
                *pp = pcVar17 + 1;
                if ((pcVar17[1] == ';') || (pcVar17[1] == '\0')) {
                  local_100 = (debug_type)0x0;
                  pdVar19 = (debug_type)0x0;
                  bVar44 = false;
                }
                else {
                  pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,
                                            p_end);
                  cVar3 = **pp;
                  if (cVar3 == ':') {
                    local_100 = (debug_type)0x0;
                    bVar44 = false;
                    pdVar19 = pdVar23;
                  }
                  else {
                    if (cVar3 != ';') goto LAB_00132781;
                    *pp = *pp + 1;
                    bVar44 = false;
                    pdVar19 = (debug_type)0x0;
                    local_100 = pdVar23;
                  }
                }
              }
              else {
                warn_stab((char *)pbVar31,"member function type missing");
                bVar44 = false;
                local_100 = (debug_type)0x0;
                local_e0 = 0;
                pdVar19 = (debug_type)0x0;
              }
              goto LAB_001322ba;
            }
            *pp = pcVar16 + 1;
            sVar32 = strlen(local_138);
            iVar7 = strncmp((char *)pbVar40,local_138,sVar32);
            if (iVar7 == 0) {
              local_100 = (debug_type)0x0;
              pdVar19 = (debug_type)0x0;
              local_e0 = 0;
              bVar44 = true;
              goto LAB_001322ba;
            }
            local_100 = (debug_type)0x0;
            pdVar19 = (debug_type)0x0;
            local_e0 = 0;
            bVar44 = true;
LAB_0013282f:
            pdVar23 = stab_find_type(dhandle,info,typenums);
            if (pdVar23 == (debug_type)0x0) goto LAB_00132793;
            pdVar20 = debug_get_return_type(dhandle,pdVar18);
            if (pdVar20 == (debug_type_conflict)0x0) goto LAB_00132781;
            bVar41 = *pbVar40 < 0x5f;
            bVar45 = *pbVar40 == 0x5f;
            if (bVar45) {
              if (pbVar40[1] != 0x5f) {
                iVar7 = strncmp((char *)pbVar40,"__ct",4);
                if (iVar7 == 0) {
                  bVar45 = true;
                  bVar41 = true;
                }
                else {
                  if (type_name != (char *)0x0) goto LAB_001338f6;
                  bVar45 = false;
                  bVar41 = false;
                }
LAB_00133557:
                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&
                   (iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0)) goto LAB_0013358b;
LAB_001336a5:
                if (pbVar40[1] == 0x5a) goto LAB_001328ca;
                bVar41 = true;
LAB_001336b5:
                local_d8 = 0;
                goto LAB_0013302f;
              }
              bVar2 = pbVar40[2];
              if ((((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) && (bVar2 != 0x51 && bVar2 != 0x74))
                 && (iVar7 = strncmp((char *)pbVar40,"__ct",4), iVar7 != 0)) {
                if (type_name != (char *)0x0) {
LAB_001338f6:
                  iVar7 = strcmp(local_138,type_name);
                  bVar45 = iVar7 == 0;
                  bVar41 = false;
                  goto LAB_00133557;
                }
                iVar7 = strncmp((char *)pbVar40,"__dt",4);
                if (iVar7 == 0) goto LAB_001336a5;
                bVar45 = false;
                bVar41 = false;
              }
              else {
                iVar7 = strncmp((char *)pbVar40,"__dt",4);
                if (iVar7 == 0) goto LAB_001336a5;
                bVar41 = true;
                bVar45 = true;
              }
LAB_0013358b:
              if (pbVar40[1] != 0x5a) goto LAB_00132deb;
              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;
              local_58 = (stab_demangle_typestring *)0x0;
              local_50[0] = 0;
              local_3c = 10;
              p = (char *)pbVar40;
              xtypenums = (int  [2])dhandle;
              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);
LAB_0013360b:
              pcVar16 = p;
              local_40 = 0;
              pcVar17 = p;
              do {
                pcVar25 = strchr(pcVar17,0x5f);
                if (pcVar25 == (char *)0x0) goto LAB_00133635;
                pcVar17 = pcVar25 + 1;
              } while (pcVar25[1] != '_');
              if (pcVar17 != (char *)0x0) {
                sVar32 = strspn(pcVar25,"_");
                if (2 < (uint)sVar32) {
                  pcVar25 = pcVar25 + ((uint)sVar32 - 2);
                }
                goto LAB_001330d0;
              }
LAB_00133635:
              stab_bad_demangle(pcVar16);
LAB_0013323f:
              if (local_48 != (stab_demangle_typestring *)0x0) {
                free(local_48);
              }
              goto LAB_00132793;
            }
            lVar11 = 4;
            pbVar34 = pbVar40;
            pbVar35 = &DAT_00146a76;
            do {
              if (lVar11 == 0) break;
              lVar11 = lVar11 + -1;
              bVar41 = *pbVar34 < *pbVar35;
              bVar45 = *pbVar34 == *pbVar35;
              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;
              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;
            } while (bVar45);
            bVar46 = (!bVar41 && !bVar45) == bVar41;
            if (bVar46) {
              bVar45 = true;
              bVar41 = true;
            }
            else if (type_name == (char *)0x0) {
              bVar45 = false;
              bVar41 = false;
              bVar46 = true;
            }
            else {
              iVar7 = strcmp(local_138,type_name);
              bVar45 = iVar7 == 0;
              bVar41 = false;
              bVar46 = true;
            }
            bVar42 = false;
            lVar11 = 4;
            pbVar34 = pbVar40;
            pbVar35 = &DAT_00146a4b;
            do {
              if (lVar11 == 0) break;
              lVar11 = lVar11 + -1;
              bVar42 = *pbVar34 < *pbVar35;
              bVar46 = *pbVar34 == *pbVar35;
              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;
              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;
            } while (bVar46);
            if ((!bVar42 && !bVar46) == bVar42) {
LAB_001328ca:
              arg_types = (stab_demangle_typestring *)xmalloc(8);
              arg_types->typestring = (char *)0x0;
              bVar4 = 0;
            }
            else {
LAB_00132deb:
              if (bVar41) {
                bVar41 = false;
                goto LAB_001336b5;
              }
              local_d8 = 0;
              if (type_name != (char *)0x0) {
                sVar32 = strlen(type_name);
                local_d8 = sVar32 & 0xffffffff;
              }
              pcVar16 = "C";
              pcVar17 = "V";
              if (local_f0 == 0) {
                pcVar16 = "";
              }
              if (local_118 == 0) {
                pcVar17 = "";
              }
              local_c0 = type_name;
              if ((int)local_d8 == 0) {
                sprintf((char *)xtypenums,"__%s%s");
              }
              else if ((type_name == (char *)0x0) ||
                      (pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0)) {
                sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8);
              }
              else {
                sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);
                local_d8._0_4_ = 0;
                local_c0 = (char *)0x0;
              }
              puVar30 = (uint *)xtypenums;
              do {
                puVar29 = puVar30;
                uVar8 = *puVar29 + 0xfefefeff & ~*puVar29;
                uVar39 = uVar8 & 0x80808080;
                puVar30 = puVar29 + 1;
              } while (uVar39 == 0);
              bVar41 = (uVar8 & 0x8080) == 0;
              if (bVar41) {
                uVar39 = uVar39 >> 0x10;
              }
              cVar3 = *local_138;
              if (bVar41) {
                puVar30 = (uint *)((long)puVar29 + 6);
              }
              iVar7 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar39,(byte)uVar39)) -
                      (int)xtypenums;
              sVar32 = strlen((char *)pbVar40);
              if (bVar45) {
                iVar7 = iVar7 + (int)local_d8 + 1 + (int)sVar32;
                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&
                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;
                pbVar26 = (byte *)xmalloc(iVar7);
                *pbVar26 = 0;
              }
              else {
                lVar11 = -1;
                pcVar17 = local_138;
                do {
                  if (lVar11 == 0) break;
                  lVar11 = lVar11 + -1;
                  cVar1 = *pcVar17;
                  pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;
                } while (cVar1 != '\0');
                iVar7 = ((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32;
                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&
                   ((local_138[2] == '$' || (local_138[2] == '.')))) {
LAB_00132f86:
                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);
                  if (pcVar17 == (char *)0x0) {
                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);
                    fprintf(stderr,pcVar17,local_138);
                    goto LAB_0013279c;
                  }
                  lVar11 = -1;
                  pcVar16 = pcVar17;
                  do {
                    if (lVar11 == 0) break;
                    lVar11 = lVar11 + -1;
                    cVar3 = *pcVar16;
                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;
                  } while (cVar3 != '\0');
                  pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);
                  strncpy((char *)pbVar26,local_138,3);
                  strcpy((char *)(pbVar26 + 3),pcVar17);
                }
                else {
                  pbVar26 = (byte *)xmalloc(iVar7);
                  strcpy((char *)pbVar26,local_138);
                }
              }
              sVar32 = strlen((char *)pbVar26);
              local_d8 = sVar32 & 0xffffffff;
              pcVar17 = stpcpy((char *)(pbVar26 + sVar32),(char *)xtypenums);
              if (local_c0 != (char *)0x0) {
                strcpy(pcVar17,local_c0);
              }
              strcat((char *)pbVar26,(char *)pbVar40);
              bVar41 = false;
LAB_0013302f:
              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;
              if ((*pbVar26 == 0x5f) && (pbVar26[1] == 0x5a)) {
LAB_00133b71:
                p = (char *)pbVar26;
                pdVar27 = cplus_demangle_v3_components((char *)pbVar26,3,(void **)xtypenums);
                if (pdVar27 == (demangle_component *)0x0) {
                  stab_bad_demangle((char *)pbVar26);
                }
                else {
                  if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&
                     (pdVar27 = (pdVar27->u).s_extended_operator.name,
                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {
                    arg_types = (stab_demangle_typestring *)
                                stab_demangle_v3_arglist
                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,
                                           &varargs_1);
                    free((void *)xtypenums);
                    goto LAB_00133211;
                  }
                  pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);
                  fprintf(stderr,pcVar17);
                  free((void *)xtypenums);
                }
                goto LAB_00132793;
              }
              local_58 = (stab_demangle_typestring *)0x0;
              local_50[0] = 0;
              local_3c = 10;
              p = (char *)pbVar26;
              xtypenums = (int  [2])dhandle;
              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);
              local_40 = 0;
              if ((int)local_d8 == 0) goto LAB_0013360b;
              pcVar25 = p + local_d8;
              pcVar16 = p;
LAB_001330d0:
              bVar2 = pcVar25[2];
              if (pcVar16 == pcVar25) {
                if (((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) &&
                   (pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74)) {
                  for (; *pcVar17 == '_'; pcVar17 = pcVar17 + 1) {
                  }
                  pcVar17 = strstr(pcVar17,"__");
                  if ((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')) {
                    stab_bad_demangle(pcVar25);
                    goto LAB_0013323f;
                  }
                  iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17);
                  goto LAB_001330fd;
                }
                p = pcVar25 + 2;
              }
              else {
                if (bVar2 == 0) goto LAB_00133635;
                iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25);
LAB_001330fd:
                if (iVar7 == 0) goto LAB_0013323f;
              }
              pcVar17 = p;
              cVar3 = *p;
              if (cVar3 != '\0') {
                pcVar16 = (char *)0x0;
                bVar41 = false;
                pstart = (char **)0x0;
                do {
                  pcVar25 = p;
                  switch(cVar3) {
                  case '0':
                  case '1':
                  case '2':
                  case '3':
                  case '4':
                  case '5':
                  case '6':
                  case '7':
                  case '8':
                  case '9':
                    if (pcVar16 == (char *)0x0) {
                      pcVar16 = p;
                    }
                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);
                    goto joined_r0x0013334c;
                  default:
                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,
                                               (debug_type_conflict **)&local_58,
                                               (bfd_boolean *)local_50);
                    if (bVar4 == 0) goto LAB_0013323f;
                    pstart = (char **)0x1;
                    break;
                  case 'C':
                  case 'S':
                    if (pcVar16 == (char *)0x0) {
                      pcVar16 = p;
                    }
                    p = p + 1;
                    break;
                  case 'F':
                    p = p + 1;
                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,
                                               (debug_type_conflict **)&local_58,
                                               (bfd_boolean *)local_50);
                    if (bVar4 == 0) goto LAB_0013323f;
                    pcVar16 = (char *)0x0;
                    pstart = (char **)0x1;
                    break;
                  case 'Q':
                    bVar4 = stab_demangle_qualified
                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0
                                      );
                    if (bVar4 != 0) {
                      iVar7 = stab_demangle_remember_type
                                        ((stab_demangle_info *)xtypenums,pcVar25,
                                         (int)p - (int)pcVar25);
                      goto joined_r0x001332f4;
                    }
                    goto LAB_0013323f;
                  case '_':
                    stab_bad_demangle(pcVar17);
                    goto LAB_0013323f;
                  case 't':
                    if (pcVar16 == (char *)0x0) {
                      pcVar16 = p;
                    }
                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);
joined_r0x0013334c:
                    if (iVar7 != 0) {
                      iVar7 = stab_demangle_remember_type
                                        ((stab_demangle_info *)xtypenums,pcVar16,
                                         (int)p - (int)pcVar16);
joined_r0x001332f4:
                      if (iVar7 != 0) {
                        pcVar16 = (char *)0x0;
                        goto LAB_0013328f;
                      }
                    }
                    goto LAB_0013323f;
                  }
                  if (bVar41) {
LAB_0013328f:
                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,
                                               (debug_type_conflict **)&local_58,
                                               (bfd_boolean *)local_50);
                    if (bVar4 == 0) goto LAB_0013323f;
                    bVar41 = true;
                    pstart = (char **)0x1;
                  }
                  cVar3 = *p;
                } while (cVar3 != '\0');
                if (((int)pstart == 0) &&
                   (bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,
                                               (debug_type_conflict **)&local_58,
                                               (bfd_boolean *)local_50), bVar4 == 0))
                goto LAB_0013323f;
              }
              free(local_48);
              local_48 = (stab_demangle_typestring *)0x0;
              if (local_58 == (stab_demangle_typestring *)0x0) {
                pcVar17 = (char *)dcgettext(0,"no argument types in mangled string\n",5);
                fprintf(stderr,pcVar17);
              }
              varargs_1 = local_50[0];
              arg_types = local_58;
LAB_00133211:
              bVar4 = varargs_1;
              if (arg_types == (stab_demangle_typestring *)0x0) goto LAB_00132793;
            }
            pdVar18 = debug_make_method_type
                                (dhandle,pdVar20,pdVar23,(debug_type_conflict *)arg_types,bVar4);
            if (pdVar18 == (debug_type_conflict)0x0) goto LAB_00132793;
          }
          uVar39 = local_ec + 1;
          if (local_e8 <= uVar39) {
            local_e8 = local_e8 + 10;
            local_128 = (debug_method_variant *)xrealloc(local_128,(ulong)local_e8 << 3);
          }
          if (bVar44) {
            pdVar21 = debug_make_static_method_variant
                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118);
            local_128[local_ec] = pdVar21;
          }
          else {
            pdVar21 = debug_make_method_variant
                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118,
                                 local_e0,local_100);
            local_128[local_ec] = pdVar21;
          }
          if (pdVar21 == (debug_method_variant)0x0) goto LAB_00132793;
          pcVar17 = *pp;
        } while ((*pcVar17 != ';') && (pdVar18 = pdVar19, local_ec = uVar39, *pcVar17 != '\0'));
        local_128[uVar39] = (debug_method_variant)0x0;
        if (*pcVar17 != '\0') {
          *pp = pcVar17 + 1;
        }
        uVar39 = local_c8 + 1;
        if (local_c4 <= uVar39) {
          local_c4 = local_c4 + 10;
          local_108 = (debug_method *)xrealloc(local_108,(ulong)local_c4 << 3);
        }
        pdVar22 = debug_make_method(dhandle,local_138,local_128);
        local_108[local_c8] = pdVar22;
        pbVar26 = (byte *)*pp;
        bVar2 = *pbVar26;
        local_c8 = uVar39;
      } while (bVar2 != 0x3b);
      if (local_108 != (debug_method *)0x0) {
        local_108[local_c8] = (debug_method)0x0;
      }
      if (p_end <= pbVar26) goto LAB_00131328;
      pbVar31 = pbVar26;
      if (*pbVar26 == 0x3b) goto LAB_001334bc;
    }
    if (*pbVar26 == 0x7e) {
      pbVar40 = pbVar26 + 1;
      *pp = (char *)pbVar40;
      if (((pbVar26[1] & 0xef) == 0x2d) || (pbVar26[1] == 0x2b)) {
        pbVar40 = pbVar26 + 2;
        *pp = (char *)pbVar40;
      }
      if (*pbVar40 != 0x25) goto LAB_0013244a;
      *pp = (char *)(pbVar40 + 1);
      bVar4 = parse_stab_type_number(pp,xtypenums,p_end);
      if (bVar4 == 0) goto LAB_00131328;
      if (xtypenums[0] != typenums[0]) {
LAB_00132596:
        *pp = (char *)(pbVar40 + 1);
        pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);
        pcVar17 = *pp;
        cVar3 = *pcVar17;
        while ((cVar3 != ';' && (cVar3 != '\0'))) {
          pcVar17 = pcVar17 + 1;
          cVar3 = *pcVar17;
        }
        if (cVar3 != ';') {
LAB_00132740:
          bad_stab((char *)pbVar31);
LAB_00131328:
          free(local_130);
          return (debug_type)0x0;
        }
        *pp = pcVar17 + 1;
        goto LAB_0013244c;
      }
      if (xtypenums[1] != typenums[1]) goto LAB_00132596;
      bVar4 = 1;
      pdVar20 = (debug_type_conflict)0x0;
    }
    else {
LAB_0013244a:
      pdVar20 = (debug_type_conflict)0x0;
LAB_0013244c:
      if (((local_108 == (debug_method *)0x0 && local_f8 == (debug_baseclass *)0x0) &&
           pdVar20 == (debug_type_conflict)0x0) && (!bVar43)) {
        pdVar20 = debug_make_struct_type(dhandle,(uint)(bVar37 == 0x73),bVar12,local_130);
        break;
      }
      bVar4 = 0;
    }
    pdVar20 = debug_make_object_type
                        (dhandle,(uint)(bVar37 == 0x73),bVar12,local_130,local_f8,local_108,pdVar20,
                         bVar4);
    break;
  case 0x78:
    bVar47 = pbVar26[1];
    if (bVar47 == 0x65) {
      dVar6 = DEBUG_KIND_ENUM;
    }
    else {
      if ((char)bVar47 < 'f') {
        if (bVar47 == 0) goto switchD_001311d2_caseD_24;
      }
      else {
        dVar6 = DEBUG_KIND_STRUCT;
        if ((bVar47 == 0x73) || (dVar6 = DEBUG_KIND_UNION, bVar47 == 0x75)) goto LAB_00131e0e;
      }
      dVar6 = DEBUG_KIND_STRUCT;
      pcVar17 = (char *)dcgettext(0,"unrecognized cross reference type",5);
      warn_stab((char *)pbVar31,pcVar17);
      pbVar40 = (byte *)*pp;
    }
LAB_00131e0e:
    pbVar40 = pbVar40 + 1;
    *pp = (char *)pbVar40;
    pcVar16 = strchr((char *)pbVar40,0x3c);
    pcVar17 = strchr((char *)pbVar40,0x3a);
    if (pcVar17 != (char *)0x0) {
      if (((pcVar16 == (char *)0x0) || (pcVar17 <= pcVar16)) || (pcVar17[1] != ':')) {
LAB_00131e52:
        sVar32 = (long)pcVar17 - (long)pbVar40;
        if (((type_name != (char *)0x0) &&
            (iVar7 = strncmp(type_name,(char *)pbVar40,sVar32), iVar7 == 0)) &&
           (type_name[sVar32] == '\0')) {
          info->self_crossref = 1;
        }
        pdVar20 = stab_find_tagged_type
                            (dhandle,(stab_handle *)&info->tags,(char *)pbVar40,(int)sVar32,dVar6);
        *pp = pcVar17 + 1;
        break;
      }
      cVar3 = *pcVar16;
      if (cVar3 != '\0') {
        iVar7 = 0;
        pcVar17 = pcVar16;
        do {
          if (cVar3 == '<') {
            iVar7 = iVar7 + 1;
          }
          else if (cVar3 == '>') {
            iVar7 = iVar7 + -1;
          }
          else if ((iVar7 == 0) && (cVar3 == ':')) goto LAB_00131e52;
          pcVar17 = pcVar17 + 1;
          cVar3 = *pcVar17;
        } while (cVar3 != '\0');
      }
    }
switchD_001311d2_caseD_24:
    bad_stab((char *)pbVar31);
    return (debug_type)0x0;
  }
  if (pdVar20 != (debug_type_conflict)0x0) {
    if (typenums[0] != -1) {
      ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,
                               (stab_handle *)typenums);
      if (ppdVar9 == (debug_type_conflict *)0x0) {
        return (debug_type)0x0;
      }
      *ppdVar9 = pdVar20;
    }
    if (local_13c == 0xffffffff) {
      return pdVar20;
    }
    bVar4 = debug_record_type_size(dhandle,pdVar20,local_13c);
    if (bVar4 != 0) {
      return pdVar20;
    }
  }
  return (debug_type)0x0;
}



/* WARNING: Type propagation algorithm not settling */

long FUN_00131020(void *param_1,long param_2,char *param_3,ulong *param_4,undefined8 *param_5,
                 byte *param_6)

{
  char cVar1;
  undefined8 uVar2;
  byte bVar3;
  char cVar4;
  int iVar5;
  uint uVar6;
  uint uVar7;
  undefined8 uVar8;
  undefined8 uVar9;
  long *plVar10;
  void *__ptr;
  ulong uVar11;
  void *pvVar12;
  long lVar13;
  undefined8 uVar14;
  char *pcVar15;
  char *pcVar16;
  long lVar17;
  long lVar18;
  undefined8 *puVar19;
  size_t sVar20;
  char *pcVar21;
  byte *pbVar22;
  undefined *puVar23;
  int *piVar24;
  undefined8 uVar25;
  long lVar26;
  int iVar27;
  ulong uVar28;
  uint *puVar29;
  uint *puVar30;
  byte *pbVar31;
  undefined4 uVar32;
  byte *pbVar33;
  byte *pbVar34;
  ulong uVar35;
  undefined8 *puVar36;
  byte *pbVar37;
  byte bVar38;
  uint uVar39;
  byte *pbVar40;
  bool bVar41;
  bool bVar42;
  bool bVar43;
  bool bVar44;
  bool bVar45;
  bool bVar46;
  byte bVar47;
  void *local_148;
  int local_13c;
  char *local_138;
  void *local_130;
  void *local_128;
  undefined8 local_120;
  long local_108;
  long local_100;
  long local_f8;
  int local_f0;
  uint local_ec;
  uint local_e8;
  undefined4 local_e4;
  ulong local_d8;
  uint local_c8;
  uint local_c4;
  char *local_c0;
  undefined1 local_80 [4];
  int local_7c;
  byte *local_78;
  undefined8 local_70;
  undefined8 local_68;
  long local_60;
  undefined8 *local_58;
  int local_50 [2];
  void *local_48;
  undefined4 local_40;
  undefined4 local_3c;
  
  bVar47 = 0;
  if (param_5 != (undefined8 *)0x0) {
    *param_5 = 0;
  }
  pbVar34 = (byte *)*param_4;
  if (param_6 <= pbVar34) {
    return 0;
  }
  *(undefined4 *)(param_2 + 0x1a8) = 0;
  bVar38 = *pbVar34;
  if (((_sch_istable[(ulong)bVar38 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {
    iVar5 = FUN_0012e6c0(param_4,&local_70,param_6);
    if (iVar5 == 0) {
      return 0;
    }
    pcVar16 = (char *)*param_4;
    if (*pcVar16 != '=') {
      lVar17 = FUN_0012e9f0(param_1,param_2,&local_70);
      return lVar17;
    }
    if (((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)) && (-1 < local_70)) {
      uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);
      pcVar16 = (char *)*param_4;
      *param_5 = uVar8;
    }
    uVar8 = 0;
    *param_4 = (ulong)(pcVar16 + 1);
    local_13c = -1;
    pbVar22 = (byte *)(pcVar16 + 1);
    do {
      while( true ) {
        while( true ) {
          bVar38 = *pbVar22;
          pbVar40 = pbVar22 + 1;
          if (bVar38 != 0x40) goto LAB_001311b2;
          bVar38 = pbVar22[1];
          uVar35 = (ulong)bVar38;
          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {
            *param_4 = (ulong)pbVar40;
            goto switchD_001311d2_caseD_40;
          }
          while ((char)uVar35 != ';') {
            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;
            pbVar40 = pbVar40 + 1;
            uVar35 = (ulong)*pbVar40;
          }
          pbVar40 = pbVar40 + 1;
          *param_4 = (ulong)pbVar40;
          bVar38 = pbVar22[1];
          if (bVar38 != 0x53) break;
          uVar8 = 1;
          pbVar22 = pbVar40;
        }
        if (bVar38 != 0x73) break;
        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);
        if ((int)lVar17 < 8) {
          local_13c = -1;
          pbVar22 = (byte *)*param_4;
        }
        else {
          local_13c = (int)lVar17 >> 3;
          pbVar22 = (byte *)*param_4;
        }
      }
      pbVar22 = pbVar40;
    } while (bVar38 != 0);
    goto switchD_001311d2_caseD_24;
  }
  pbVar40 = pbVar34 + 1;
  uVar8 = 0;
  local_13c = -1;
  local_70 = -1;
  bVar38 = *pbVar34;
  pbVar22 = pbVar34;
LAB_001311b2:
  *param_4 = (ulong)pbVar40;
  switch(bVar38) {
  case 0x23:
    if (pbVar22[1] == 0x23) {
      *param_4 = (ulong)(pbVar22 + 2);
      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);
      if (lVar17 == 0) {
        return 0;
      }
      if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;
      *param_4 = (ulong)((char *)*param_4 + 1);
      lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);
    }
    else {
      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);
      if (lVar17 == 0) {
        return 0;
      }
      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;
      *param_4 = (ulong)((char *)*param_4 + 1);
      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);
      if (lVar18 == 0) {
        return 0;
      }
      uVar11 = 10;
      puVar19 = (undefined8 *)xmalloc(0x50);
      uVar35 = 0;
      while( true ) {
        pcVar16 = (char *)*param_4;
        iVar5 = (int)uVar35;
        if (*pcVar16 == ';') break;
        if (*pcVar16 != ',') {
          FUN_0012e570(pbVar34);
          return 0;
        }
        *param_4 = (ulong)(pcVar16 + 1);
        if ((uint)uVar11 <= iVar5 + 1U) {
          uVar11 = (ulong)((uint)uVar11 + 10);
          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);
        }
        plVar10 = puVar19 + uVar35;
        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);
        uVar35 = (ulong)(iVar5 + 1U);
        *plVar10 = lVar13;
        if (lVar13 == 0) {
          return 0;
        }
      }
      uVar8 = 1;
      *param_4 = (ulong)(pcVar16 + 1);
      puVar36 = puVar19;
      if (iVar5 != 0) {
        puVar36 = puVar19 + (iVar5 - 1);
        iVar5 = FUN_0012e080(param_1,*puVar36);
        if (iVar5 == 2) {
          uVar8 = 0;
        }
        else {
          puVar36 = puVar19 + uVar35;
        }
      }
      *puVar36 = 0;
      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);
    }
    break;
  default:
    goto switchD_001311d2_caseD_24;
  case 0x26:
    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);
    lVar17 = FUN_0012d760(param_1,uVar8);
    break;
  case 0x28:
  case 0x2d:
  case 0x30:
  case 0x31:
  case 0x32:
  case 0x33:
  case 0x34:
  case 0x35:
  case 0x36:
  case 0x37:
  case 0x38:
  case 0x39:
    *param_4 = (ulong)pbVar22;
    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);
    if (iVar5 == 0) {
      return 0;
    }
    if ((uint)local_70 == (uint)local_68) {
      if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;
      lVar17 = FUN_0012d550(param_1);
    }
    else {
LAB_00132079:
      *param_4 = (ulong)pbVar22;
      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);
      if (lVar17 == 0) {
        return 0;
      }
    }
    if ((uint)local_70 != -1) {
      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);
      if (plVar10 == (long *)0x0) {
        return 0;
      }
      *plVar10 = lVar17;
    }
    break;
  case 0x2a:
    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);
    lVar17 = FUN_0012d6b0(param_1,uVar8);
    break;
  case 0x40:
switchD_001311d2_caseD_40:
    lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);
    if (lVar17 == 0) {
      return 0;
    }
    if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;
    *param_4 = (ulong)((char *)*param_4 + 1);
    lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);
    if (lVar18 == 0) {
      return 0;
    }
    lVar17 = FUN_0012d8e0(param_1,lVar17,lVar18);
    break;
  case 0x42:
    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);
    lVar17 = FUN_0012d9e0(param_1,uVar8);
    break;
  case 0x52:
    if (param_6 <= pbVar40) {
      return 0;
    }
    lVar17 = FUN_0012e630(param_4,0,param_6);
    if ((*(char *)*param_4 != ';') ||
       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')) goto LAB_00132126;
    if (lVar17 - 3U < 3) {
      lVar17 = FUN_0012d5a0(param_1,uVar8);
    }
    else {
      lVar17 = FUN_0012d580();
    }
    break;
  case 0x53:
    uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);
    lVar17 = FUN_0012d880(param_1,uVar14,uVar8);
    break;
  case 0x61:
    if (pbVar22[1] == 0x72) {
      pbVar22 = pbVar22 + 2;
      *param_4 = (ulong)pbVar22;
      if (param_6 <= pbVar22) {
        return 0;
      }
      local_78 = pbVar22;
      iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);
      if (iVar5 == 0) {
        return 0;
      }
      if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {
        lVar17 = FUN_0012dec0(param_1,"int");
        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {
          return 0;
        }
        *param_4 = (ulong)local_78;
        pbVar34 = local_78;
      }
      else {
        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);
        pbVar34 = (byte *)*param_4;
      }
      if (*pbVar34 == 0x3b) {
        *param_4 = (ulong)(pbVar34 + 1);
        bVar47 = pbVar34[1];
        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {
          bVar43 = true;
          *param_4 = (ulong)(pbVar34 + 2);
        }
        else {
          bVar43 = false;
        }
        uVar14 = FUN_0012e630(param_4,0,param_6);
        pcVar16 = (char *)*param_4;
        if (*pcVar16 == ';') {
          *param_4 = (ulong)(pcVar16 + 1);
          bVar47 = pcVar16[1];
          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {
            bVar43 = true;
            *param_4 = (ulong)(pcVar16 + 2);
          }
          uVar9 = FUN_0012e630(param_4,0,param_6);
          if (*(char *)*param_4 == ';') {
            *param_4 = (ulong)((char *)*param_4 + 1);
            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);
            if (lVar18 == 0) {
              return 0;
            }
            uVar25 = 0;
            uVar2 = 0xffffffffffffffff;
            if (!bVar43) {
              uVar25 = uVar14;
              uVar2 = uVar9;
            }
            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);
            break;
          }
        }
      }
      FUN_0012e570(pbVar22);
      return 0;
    }
    goto switchD_001311d2_caseD_24;
  case 0x62:
    if (param_6 <= pbVar40) {
      return 0;
    }
    if (pbVar22[1] == 0x73) {
      uVar8 = 0;
    }
    else {
      if (pbVar22[1] != 0x75) goto LAB_00132126;
      uVar8 = 1;
    }
    *param_4 = (ulong)(pbVar22 + 2);
    if (((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76)) {
      *param_4 = (ulong)(pbVar22 + 3);
    }
    FUN_0012e630(param_4,0,param_6);
    if (*(char *)*param_4 != ';') goto LAB_00132126;
    *param_4 = (ulong)((char *)*param_4 + 1);
    FUN_0012e630(param_4,0,param_6);
    if (*(char *)*param_4 != ';') goto LAB_00132126;
    *param_4 = (ulong)((char *)*param_4 + 1);
    uVar35 = FUN_0012e630(param_4,0,param_6);
    if (*(char *)*param_4 == ';') {
      *param_4 = (ulong)((char *)*param_4 + 1);
    }
    if (uVar35 != 0) {
      lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);
      break;
    }
LAB_00133358:
    lVar17 = FUN_0012d550(param_1);
    break;
  case 0x65:
    if (param_6 <= pbVar40) {
      return 0;
    }
    pbVar34 = pbVar40;
    if (pbVar22[1] == 0x2d) {
      do {
        pbVar22 = pbVar34;
        *param_4 = (ulong)(pbVar22 + 1);
        bVar47 = pbVar22[1];
        if (bVar47 == 0x3a) break;
        pbVar34 = pbVar22 + 1;
      } while (bVar47 != 0);
      if (bVar47 == 0) goto LAB_00132126;
      *param_4 = (ulong)(pbVar22 + 2);
    }
    local_148 = (void *)xmalloc(0x50);
    pvVar12 = (void *)xmalloc(0x50);
    pbVar34 = (byte *)*param_4;
    uVar35 = (ulong)*pbVar34;
    if ((*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)) {
      uVar28 = 0;
    }
    else {
      uVar11 = 10;
      uVar39 = 0;
      do {
        bVar47 = (byte)uVar35;
        pbVar22 = pbVar34;
        while ((bVar47 != 0x3a && (bVar47 != 0))) {
          pbVar22 = pbVar22 + 1;
          bVar47 = *pbVar22;
        }
        if (bVar47 == 0) {
          FUN_0012e570(pbVar40);
LAB_00132cf2:
          free(local_148);
          free(pvVar12);
          return 0;
        }
        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);
        *param_4 = (ulong)(pbVar22 + 1);
        uVar8 = FUN_0012e630(param_4,0,param_6);
        if (*(char *)*param_4 != ',') {
          FUN_0012e570(pbVar40);
          free(__ptr);
          goto LAB_00132cf2;
        }
        uVar7 = uVar39 + 1;
        *param_4 = (ulong)((char *)*param_4 + 1);
        if ((uint)uVar11 <= uVar7) {
          uVar11 = (ulong)((uint)uVar11 + 10);
          local_148 = (void *)xrealloc(local_148,uVar11 << 3);
          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);
        }
        uVar28 = (ulong)uVar7;
        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;
        pbVar34 = (byte *)*param_4;
        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;
        uVar35 = (ulong)*pbVar34;
        uVar39 = uVar7;
      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));
    }
    *(undefined8 *)((long)local_148 + uVar28 * 8) = 0;
    pcVar16 = (char *)*param_4;
    *(undefined8 *)((long)pvVar12 + uVar28 * 8) = 0;
    if (*pcVar16 == ';') {
      *param_4 = (ulong)(pcVar16 + 1);
    }
    lVar17 = FUN_0012d670(param_1,local_148,pvVar12);
    break;
  case 0x66:
    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);
    lVar17 = FUN_0012d6f0(param_1,uVar8,0,0);
    break;
  case 0x6b:
    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);
    lVar17 = FUN_0012d9b0(param_1,uVar8);
    break;
  case 0x72:
    if (param_6 <= pbVar40) {
      return 0;
    }
    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);
    if (iVar5 == 0) {
      return 0;
    }
    bVar43 = false;
    if ((uint)local_68 == (uint)local_70) {
      bVar43 = local_68._4_4_ == local_70._4_4_;
    }
    pbVar34 = (byte *)*param_4;
    lVar17 = 0;
    bVar38 = *pbVar34;
    if (bVar38 == 0x3d) {
      *param_4 = (ulong)pbVar40;
      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);
      if (lVar17 == 0) {
        return 0;
      }
      pbVar34 = (byte *)*param_4;
      bVar38 = *pbVar34;
    }
    if (bVar38 == 0x3b) {
      pbVar34 = pbVar34 + 1;
      *param_4 = (ulong)pbVar34;
    }
    uVar35 = FUN_0012e630(param_4,&local_7c,param_6);
    if (*(char *)*param_4 != ';') goto LAB_00132126;
    pcVar16 = (char *)*param_4 + 1;
    *param_4 = (ulong)pcVar16;
    uVar11 = FUN_0012e630(param_4,&local_78,param_6);
    iVar5 = local_7c;
    if (*(char *)*param_4 != ';') goto LAB_00132126;
    *param_4 = (ulong)((char *)*param_4 + 1);
    if (local_7c != 0 || (int)local_78 != 0) {
      bVar41 = false;
      bVar44 = lVar17 == 0;
      if (!bVar44) {
LAB_00131960:
        uVar8 = dcgettext(0,"numeric overflow",5);
        FUN_0012e500(pbVar40,uVar8);
        goto LAB_0013197e;
      }
      lVar18 = 0x18;
      pbVar22 = (byte *)"01000000000000000000000;";
      do {
        if (lVar18 == 0) break;
        lVar18 = lVar18 + -1;
        bVar41 = *pbVar34 < *pbVar22;
        bVar44 = *pbVar34 == *pbVar22;
        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;
        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;
      } while (bVar44);
      if (((!bVar41 && !bVar44) != bVar41) ||
         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {
        if ((uVar35 != 0) ||
           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))
        goto LAB_00131960;
LAB_0013348a:
        lVar17 = FUN_0012d560(param_1,8,1);
        break;
      }
LAB_0013373f:
      lVar17 = FUN_0012d560(param_1,8,0);
      break;
    }
LAB_0013197e:
    if (lVar17 != 0) {
LAB_00131987:
      if (bVar43) {
LAB_00132126:
        FUN_0012e570(pbVar40);
        return 0;
      }
      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);
      if (lVar17 == 0) {
        uVar8 = dcgettext(0,"missing index type",5);
        FUN_0012e500(pbVar40,uVar8);
        lVar17 = FUN_0012d560(param_1,4,0);
      }
      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);
      break;
    }
    if ((bVar43) && (uVar35 == 0)) {
      if (uVar11 == 0) goto LAB_00133358;
      if (uVar11 == 0xffffffffffffffff) {
LAB_00133395:
        if (param_3 != (char *)0x0) {
          iVar5 = strcmp(param_3,"long long int");
          if (iVar5 == 0) goto LAB_0013373f;
          iVar5 = strcmp(param_3,"long long unsigned int");
          if (iVar5 == 0) goto LAB_0013348a;
        }
      }
      else {
        if (uVar11 == 0x7f) {
LAB_00133dee:
          lVar17 = FUN_0012d560(param_1,1,0);
          break;
        }
LAB_00133a66:
        iVar5 = (int)uVar11;
        if ((long)uVar11 < 0) goto LAB_00133b55;
        if (uVar11 == 0xff) {
          lVar17 = FUN_0012d560(param_1,1,1);
          break;
        }
        if (uVar11 == 0xffff) {
          lVar17 = FUN_0012d560(param_1,2,1);
          break;
        }
        if (uVar11 != 0xffffffff) goto LAB_00131987;
      }
      lVar17 = FUN_0012d560(param_1,4,1);
    }
    else {
      bVar41 = uVar11 != 0;
      if ((!bVar43) || (bVar41)) {
        if ((0 < (long)uVar35) && (!bVar41)) {
          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);
          break;
        }
        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;
        if (uVar35 == 0) goto LAB_00133a66;
        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))
        goto LAB_001336f0;
      }
      else {
        if (0 < (long)uVar35) {
          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);
          break;
        }
        if (-1 < (long)uVar35) {
LAB_001336f0:
          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {
            if (uVar11 == 0x7f) goto LAB_00133dee;
            if (uVar11 == 0x7fff) {
              lVar17 = FUN_0012d560(param_1,2,0);
              break;
            }
            if (uVar11 == 0x7fffffff) {
              lVar17 = FUN_0012d560(param_1,4,0);
              break;
            }
            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;
          }
          goto LAB_00131987;
        }
      }
      iVar5 = (int)uVar35;
LAB_00133b55:
      lVar17 = FUN_0012d560(param_1,-iVar5,1);
    }
    break;
  case 0x73:
  case 0x75:
    uVar8 = FUN_0012e630(param_4,0,param_6);
    pbVar40 = (byte *)*param_4;
    if (param_6 <= pbVar40) {
      return 0;
    }
    local_f8 = 0;
    if (*pbVar40 == 0x21) {
      *param_4 = (ulong)(pbVar40 + 1);
      uVar39 = FUN_0012e630(param_4,0,param_6);
      if (*(char *)*param_4 != ',') goto LAB_00132126;
      *param_4 = (ulong)((char *)*param_4 + 1);
      local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);
      if (uVar39 != 0) {
        uVar7 = uVar39 - 1;
        uVar35 = 0;
        cVar4 = *(char *)*param_4;
        if (cVar4 == '0') goto LAB_00132b2f;
LAB_00132a1e:
        uVar11 = uVar35;
        if (cVar4 == '1') {
          uVar14 = 1;
        }
        else {
          if (cVar4 == '\0') goto LAB_00132126;
          uVar14 = 0;
          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);
          FUN_0012e500(pbVar40,uVar9);
        }
        do {
          uVar35 = *param_4;
          *param_4 = uVar35 + 1;
          cVar4 = *(char *)(uVar35 + 1);
          if (cVar4 != '0') {
            if (cVar4 < '1') {
              if (cVar4 == '\0') goto LAB_00132126;
            }
            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;
            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);
            FUN_0012e500(pbVar40,uVar9);
          }
LAB_00132a81:
          *param_4 = *param_4 + 1;
          uVar9 = FUN_0012e630(param_4,0,param_6);
          if (*(char *)*param_4 != ',') goto LAB_00132126;
          *param_4 = (ulong)((char *)*param_4 + 1);
          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);
          if (lVar17 == 0) {
            return 0;
          }
          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);
          *(long *)(local_f8 + uVar11 * 8) = lVar17;
          if (lVar17 == 0) {
            return 0;
          }
          if (*(char *)*param_4 != ';') {
            return 0;
          }
          pcVar16 = (char *)*param_4 + 1;
          uVar39 = (int)uVar11 + 1;
          uVar35 = uVar11 + 1;
          *param_4 = (ulong)pcVar16;
          if (uVar11 == uVar7) break;
          cVar4 = *pcVar16;
          if (cVar4 != '0') goto LAB_00132a1e;
LAB_00132b2f:
          uVar14 = 0;
          uVar11 = uVar35;
        } while( true );
      }
      pbVar40 = (byte *)*param_4;
      *(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;
      if (param_6 <= pbVar40) {
        return 0;
      }
    }
    uVar35 = 0;
    local_130 = (void *)xmalloc(0x50);
    pbVar34 = (byte *)*param_4;
    bVar43 = false;
    bVar3 = *pbVar34;
    local_138._0_4_ = 10;
    while (bVar3 != 0x3b) {
      uVar39 = (int)uVar35 + 1;
      if ((uint)local_138 <= uVar39) {
        local_138._0_4_ = (uint)local_138 + 10;
        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);
        bVar3 = *pbVar34;
      }
      if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {
        uVar11 = *param_4;
        pbVar34 = (byte *)(uVar11 + 1);
        plVar10 = (long *)((long)local_130 + uVar35 * 8);
        *param_4 = (ulong)pbVar34;
        *plVar10 = 0;
        if (param_6 <= pbVar34) goto LAB_00131328;
        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;
        *param_4 = uVar11 + 2;
        cVar4 = *(char *)(uVar11 + 2);
        if (cVar4 == '\0') goto LAB_00132740;
        *param_4 = uVar11 + 3;
        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);
        if (lVar17 == 0) goto LAB_00131328;
        if (cVar4 == 'b') {
          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);
          if (puVar23 == (undefined *)0x0) {
            uVar14 = dcgettext(0,"unnamed $vb type",5);
            FUN_0012e500(pbVar34,uVar14);
            puVar23 = &DAT_00146979;
          }
          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);
        }
        else {
          pcVar16 = "_vptr$";
          if (cVar4 != 'f') {
            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);
            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";
            FUN_0012e500(pbVar34,uVar14);
          }
        }
        if (*(char *)*param_4 != ':') goto LAB_00132740;
        *param_4 = (ulong)((char *)*param_4 + 1);
        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);
        if (*(char *)*param_4 != ',') goto LAB_00132740;
        *param_4 = (ulong)((char *)*param_4 + 1);
        uVar9 = FUN_0012e630(param_4,0,param_6);
        if (*(char *)*param_4 != ';') goto LAB_00132740;
        *param_4 = (ulong)((char *)*param_4 + 1);
        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);
        *plVar10 = lVar17;
        if (lVar17 == 0) goto LAB_00131328;
      }
      else {
        pcVar16 = strchr((char *)pbVar34,0x3a);
        if (pcVar16 == (char *)0x0) {
          FUN_0012e570(pbVar40);
          free(local_130);
          return 0;
        }
        pbVar34 = (byte *)*param_4;
        if (pcVar16[1] == ':') break;
        if (param_6 <= pbVar34) {
          return 0;
        }
        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);
        *param_4 = (ulong)(pcVar16 + 1);
        if (pcVar16[1] == '/') {
          pcVar15 = pcVar16 + 2;
          *param_4 = (ulong)pcVar15;
          cVar4 = pcVar16[2];
          if (cVar4 == '0') {
            local_120 = 2;
          }
          else {
            if (cVar4 < '1') {
              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;
            }
            else {
              local_120 = 1;
              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;
            }
            uVar14 = dcgettext(0,"unknown visibility character for field",5);
            FUN_0012e500(pbVar34,uVar14);
            pcVar15 = (char *)*param_4;
            local_120 = 0;
          }
LAB_00131b6d:
          *param_4 = (ulong)(pcVar15 + 1);
        }
        else {
          local_120 = 0;
        }
        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);
        if (lVar17 == 0) {
          free(pvVar12);
          return 0;
        }
        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);
        pcVar16 = (char *)*param_4;
        if (*pcVar16 == ':') {
          pcVar16 = pcVar16 + 1;
          *param_4 = (ulong)pcVar16;
          pcVar15 = strchr(pcVar16,0x3b);
          if (pcVar15 == (char *)0x0) goto LAB_00132614;
          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);
          *param_4 = (ulong)(pcVar15 + 1);
          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);
          bVar43 = true;
          *puVar19 = uVar14;
        }
        else {
          if (*pcVar16 != ',') {
LAB_00132614:
            FUN_0012e570(pbVar34);
            free(pvVar12);
            return 0;
          }
          *param_4 = (ulong)(pcVar16 + 1);
          lVar18 = FUN_0012e630(param_4,0,param_6);
          if (*(char *)*param_4 != ',') goto LAB_00132614;
          *param_4 = (ulong)((char *)*param_4 + 1);
          lVar13 = FUN_0012e630(param_4,0,param_6);
          if (*(char *)*param_4 != ';') goto LAB_00132614;
          *param_4 = (ulong)((char *)*param_4 + 1);
          uVar14 = 3;
          if (lVar18 != 0 || lVar13 != 0) {
            uVar14 = local_120;
          }
          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);
          *puVar19 = uVar14;
        }
      }
      pbVar34 = (byte *)*param_4;
      uVar35 = (ulong)uVar39;
      bVar3 = *pbVar34;
    }
    *(undefined8 *)((long)local_130 + uVar35 * 8) = 0;
    if (param_6 <= pbVar34) goto LAB_00131328;
    bVar3 = *pbVar34;
    if (bVar3 == 0x3b) {
      local_108 = 0;
LAB_001334bc:
      pbVar22 = pbVar34 + 1;
      *param_4 = (ulong)pbVar22;
    }
    else {
      pbVar40 = (byte *)0x0;
      local_128 = (void *)0x0;
      local_108 = 0;
      local_c4 = 0;
      local_c8 = 0;
      local_138 = (char *)0x0;
      pbVar22 = pbVar34;
      do {
        pcVar16 = strchr((char *)pbVar22,0x3a);
        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;
        pcVar15 = pcVar16 + 2;
        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {
          *param_4 = (ulong)pcVar15;
          cVar4 = pcVar16[2];
          pcVar16 = pcVar15;
          while ((cVar4 != '.' && (cVar4 != '\0'))) {
            pcVar16 = pcVar16 + 1;
            cVar4 = *pcVar16;
          }
          if (cVar4 != '.') {
            FUN_0012e570(pbVar34);
            if (local_138 != (char *)0x0) {
LAB_0013279c:
              free(local_138);
            }
            if (local_128 != (void *)0x0) {
LAB_00132d1b:
              free(local_128);
            }
            if (pbVar40 != (byte *)0x0) {
              free(pbVar40);
            }
            goto LAB_00131328;
          }
          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);
          *param_4 = (ulong)(pcVar16 + 1);
        }
        else {
          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);
          *param_4 = (ulong)pcVar15;
        }
        local_128 = (void *)xmalloc(0x50);
        local_ec = 0;
        local_e8 = 10;
        lVar17 = 0;
        do {
          if (lVar17 == 0) {
            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);
            if (lVar17 != 0) {
              pcVar16 = (char *)*param_4;
              if (*pcVar16 == ':') goto LAB_00131d3f;
              goto LAB_00132781;
            }
LAB_00132793:
            if (local_138 == (char *)0x0) goto LAB_00132d1b;
            goto LAB_0013279c;
          }
          pcVar16 = (char *)*param_4;
LAB_00131d3f:
          *param_4 = (ulong)(pcVar16 + 1);
          pcVar16 = strchr(pcVar16 + 1,0x3b);
          if (pcVar16 == (char *)0x0) {
LAB_00132781:
            FUN_0012e570(pbVar34);
            goto LAB_00132793;
          }
          iVar5 = FUN_0012e080(param_1,lVar17);
          bVar41 = false;
          if (iVar5 == 0x13) {
            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);
            bVar41 = lVar18 == 0;
          }
          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);
          *param_4 = (ulong)(pcVar16 + 1);
          cVar4 = pcVar16[1];
          if (cVar4 == '0') {
            local_e4 = 2;
          }
          else if (cVar4 == '1') {
            local_e4 = 1;
          }
          else {
            if (cVar4 == '\0') goto LAB_00132781;
            local_e4 = 0;
          }
          pcVar15 = pcVar16 + 2;
          *param_4 = (ulong)pcVar15;
          cVar4 = pcVar16[2];
          switch(cVar4) {
          case '*':
          case '.':
          case '?':
            iVar5 = 0;
            local_f0 = 0;
            break;
          default:
            uVar14 = dcgettext(0,"const/volatile indicator missing",5);
            FUN_0012e500(pbVar34,uVar14);
            pcVar15 = (char *)*param_4;
            iVar5 = 0;
            local_f0 = 0;
            cVar4 = *pcVar15;
            break;
          case 'A':
            pcVar15 = pcVar16 + 3;
            iVar5 = 0;
            *param_4 = (ulong)pcVar15;
            cVar4 = pcVar16[3];
            local_f0 = 0;
            break;
          case 'B':
            pcVar15 = pcVar16 + 3;
            iVar5 = 0;
            *param_4 = (ulong)pcVar15;
            cVar4 = pcVar16[3];
            local_f0 = 1;
            break;
          case 'C':
            pcVar15 = pcVar16 + 3;
            iVar5 = 1;
            *param_4 = (ulong)pcVar15;
            cVar4 = pcVar16[3];
            local_f0 = 0;
            break;
          case 'D':
            pcVar15 = pcVar16 + 3;
            iVar5 = 1;
            local_f0 = 1;
            *param_4 = (ulong)pcVar15;
            cVar4 = pcVar16[3];
          }
          pbVar22 = pbVar40;
          if (cVar4 == '.') {
            bVar44 = false;
            lVar18 = 0;
            *param_4 = (ulong)(pcVar15 + 1);
            local_100 = 0;
            uVar39 = 0;
LAB_001322ba:
            if (bVar41) goto LAB_0013282f;
          }
          else {
            if (cVar4 != '?') {
              if (cVar4 == '*') {
                *param_4 = (ulong)(pcVar15 + 1);
                uVar39 = FUN_0012e630(param_4,0,param_6);
                pcVar16 = (char *)*param_4;
                if (*pcVar16 != ';') goto LAB_00132781;
                uVar39 = uVar39 & 0x7fffffff;
                *param_4 = (ulong)(pcVar16 + 1);
                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {
                  local_100 = 0;
                  lVar18 = 0;
                  bVar44 = false;
                }
                else {
                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);
                  cVar4 = *(char *)*param_4;
                  if (cVar4 == ':') {
                    local_100 = 0;
                    bVar44 = false;
                    lVar18 = lVar13;
                  }
                  else {
                    if (cVar4 != ';') goto LAB_00132781;
                    *param_4 = (ulong)((char *)*param_4 + 1);
                    bVar44 = false;
                    lVar18 = 0;
                    local_100 = lVar13;
                  }
                }
              }
              else {
                FUN_0012e500(pbVar34,"member function type missing");
                bVar44 = false;
                local_100 = 0;
                uVar39 = 0;
                lVar18 = 0;
              }
              goto LAB_001322ba;
            }
            *param_4 = (ulong)(pcVar15 + 1);
            sVar20 = strlen(local_138);
            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);
            if (iVar27 == 0) {
              local_100 = 0;
              lVar18 = 0;
              uVar39 = 0;
              bVar44 = true;
              goto LAB_001322ba;
            }
            local_100 = 0;
            lVar18 = 0;
            uVar39 = 0;
            bVar44 = true;
LAB_0013282f:
            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);
            if (lVar13 == 0) goto LAB_00132793;
            lVar17 = FUN_0012e160(param_1,lVar17);
            if (lVar17 == 0) goto LAB_00132781;
            bVar41 = *pbVar40 < 0x5f;
            bVar45 = *pbVar40 == 0x5f;
            if (bVar45) {
              if (pbVar40[1] != 0x5f) {
                iVar27 = strncmp((char *)pbVar40,"__ct",4);
                if (iVar27 == 0) {
                  bVar45 = true;
                  bVar41 = true;
                }
                else {
                  if (param_3 != (char *)0x0) goto LAB_001338f6;
                  bVar45 = false;
                  bVar41 = false;
                }
LAB_00133557:
                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&
                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;
LAB_001336a5:
                if (pbVar40[1] == 0x5a) goto LAB_001328ca;
                bVar41 = true;
LAB_001336b5:
                local_d8 = 0;
                goto LAB_0013302f;
              }
              bVar3 = pbVar40[2];
              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))
                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {
                if (param_3 != (char *)0x0) {
LAB_001338f6:
                  iVar27 = strcmp(local_138,param_3);
                  bVar45 = iVar27 == 0;
                  bVar41 = false;
                  goto LAB_00133557;
                }
                iVar27 = strncmp((char *)pbVar40,"__dt",4);
                if (iVar27 == 0) goto LAB_001336a5;
                bVar45 = false;
                bVar41 = false;
              }
              else {
                iVar27 = strncmp((char *)pbVar40,"__dt",4);
                if (iVar27 == 0) goto LAB_001336a5;
                bVar41 = true;
                bVar45 = true;
              }
LAB_0013358b:
              if (pbVar40[1] != 0x5a) goto LAB_00132deb;
              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;
              local_58 = (undefined8 *)0x0;
              local_50[0] = 0;
              local_3c = 10;
              local_78 = pbVar40;
              local_68 = param_1;
              local_60 = param_2;
              local_48 = (void *)xmalloc(0xa0);
LAB_0013360b:
              pbVar33 = local_78;
              local_40 = 0;
              pbVar37 = local_78;
              do {
                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);
                if (pbVar31 == (byte *)0x0) goto LAB_00133635;
                pbVar37 = pbVar31 + 1;
              } while (pbVar31[1] != 0x5f);
              if (pbVar37 != (byte *)0x0) {
                sVar20 = strspn((char *)pbVar31,"_");
                if (2 < (uint)sVar20) {
                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);
                }
                goto LAB_001330d0;
              }
LAB_00133635:
              FUN_0012e540(pbVar33);
LAB_0013323f:
              if (local_48 != (void *)0x0) {
                free(local_48);
              }
              goto LAB_00132793;
            }
            lVar26 = 4;
            pbVar37 = pbVar40;
            pbVar33 = &DAT_00146a76;
            do {
              if (lVar26 == 0) break;
              lVar26 = lVar26 + -1;
              bVar41 = *pbVar37 < *pbVar33;
              bVar45 = *pbVar37 == *pbVar33;
              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;
              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;
            } while (bVar45);
            bVar46 = (!bVar41 && !bVar45) == bVar41;
            if (bVar46) {
              bVar45 = true;
              bVar41 = true;
            }
            else if (param_3 == (char *)0x0) {
              bVar45 = false;
              bVar41 = false;
              bVar46 = true;
            }
            else {
              iVar27 = strcmp(local_138,param_3);
              bVar45 = iVar27 == 0;
              bVar41 = false;
              bVar46 = true;
            }
            bVar42 = false;
            lVar26 = 4;
            pbVar37 = pbVar40;
            pbVar33 = &DAT_00146a4b;
            do {
              if (lVar26 == 0) break;
              lVar26 = lVar26 + -1;
              bVar42 = *pbVar37 < *pbVar33;
              bVar46 = *pbVar37 == *pbVar33;
              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;
              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;
            } while (bVar46);
            if ((!bVar42 && !bVar46) == bVar42) {
LAB_001328ca:
              puVar19 = (undefined8 *)xmalloc(8);
              *puVar19 = 0;
              iVar27 = 0;
            }
            else {
LAB_00132deb:
              if (bVar41) {
                bVar41 = false;
                goto LAB_001336b5;
              }
              local_d8 = 0;
              if (param_3 != (char *)0x0) {
                sVar20 = strlen(param_3);
                local_d8 = sVar20 & 0xffffffff;
              }
              pcVar15 = "C";
              pcVar16 = "V";
              if (local_f0 == 0) {
                pcVar15 = "";
              }
              if (iVar5 == 0) {
                pcVar16 = "";
              }
              local_c0 = param_3;
              if ((int)local_d8 == 0) {
                sprintf((char *)&local_68,"__%s%s");
              }
              else if ((param_3 == (char *)0x0) ||
                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {
                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);
              }
              else {
                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);
                local_d8._0_4_ = 0;
                local_c0 = (char *)0x0;
              }
              puVar30 = (uint *)&local_68;
              do {
                puVar29 = puVar30;
                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;
                uVar7 = uVar6 & 0x80808080;
                puVar30 = puVar29 + 1;
              } while (uVar7 == 0);
              bVar41 = (uVar6 & 0x8080) == 0;
              if (bVar41) {
                uVar7 = uVar7 >> 0x10;
              }
              cVar4 = *local_138;
              if (bVar41) {
                puVar30 = (uint *)((long)puVar29 + 6);
              }
              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -
                       (int)&local_68;
              sVar20 = strlen((char *)pbVar40);
              if (bVar45) {
                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;
                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&
                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;
                pbVar22 = (byte *)xmalloc(iVar27);
                *pbVar22 = 0;
              }
              else {
                lVar26 = -1;
                pcVar16 = local_138;
                do {
                  if (lVar26 == 0) break;
                  lVar26 = lVar26 + -1;
                  cVar1 = *pcVar16;
                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;
                } while (cVar1 != '\0');
                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;
                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&
                   ((local_138[2] == '$' || (local_138[2] == '.')))) {
LAB_00132f86:
                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);
                  if (pcVar16 == (char *)0x0) {
                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);
                    fprintf(stderr,pcVar16,local_138);
                    goto LAB_0013279c;
                  }
                  lVar26 = -1;
                  pcVar15 = pcVar16;
                  do {
                    if (lVar26 == 0) break;
                    lVar26 = lVar26 + -1;
                    cVar4 = *pcVar15;
                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;
                  } while (cVar4 != '\0');
                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);
                  strncpy((char *)pbVar22,local_138,3);
                  strcpy((char *)(pbVar22 + 3),pcVar16);
                }
                else {
                  pbVar22 = (byte *)xmalloc(iVar27);
                  strcpy((char *)pbVar22,local_138);
                }
              }
              sVar20 = strlen((char *)pbVar22);
              local_d8 = sVar20 & 0xffffffff;
              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);
              if (local_c0 != (char *)0x0) {
                strcpy(pcVar16,local_c0);
              }
              strcat((char *)pbVar22,(char *)pbVar40);
              bVar41 = false;
LAB_0013302f:
              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;
              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {
LAB_00133b71:
                local_78 = pbVar22;
                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);
                if (piVar24 == (int *)0x0) {
                  FUN_0012e540(pbVar22);
                }
                else {
                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {
                    puVar19 = (undefined8 *)
                              FUN_0012f7f0(param_1,param_2,
                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);
                    free(local_68);
                    goto LAB_00133211;
                  }
                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);
                  fprintf(stderr,pcVar16);
                  free(local_68);
                }
                goto LAB_00132793;
              }
              local_58 = (undefined8 *)0x0;
              local_50[0] = 0;
              local_3c = 10;
              local_78 = pbVar22;
              local_68 = param_1;
              local_60 = param_2;
              local_48 = (void *)xmalloc(0xa0);
              local_40 = 0;
              if ((int)local_d8 == 0) goto LAB_0013360b;
              pbVar31 = local_78 + local_d8;
              pbVar33 = local_78;
LAB_001330d0:
              bVar3 = pbVar31[2];
              if (pbVar33 == pbVar31) {
                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&
                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {
                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {
                  }
                  pcVar16 = strstr((char *)pbVar37,"__");
                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {
                    FUN_0012e540(pbVar31);
                    goto LAB_0013323f;
                  }
                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);
                  goto LAB_001330fd;
                }
                local_78 = pbVar31 + 2;
              }
              else {
                if (bVar3 == 0) goto LAB_00133635;
                iVar27 = FUN_00130f70(&local_68,&local_78);
LAB_001330fd:
                if (iVar27 == 0) goto LAB_0013323f;
              }
              pbVar37 = local_78;
              bVar3 = *local_78;
              if (bVar3 != 0) {
                pbVar33 = (byte *)0x0;
                bVar45 = false;
                bVar41 = false;
                do {
                  pbVar31 = local_78;
                  switch(bVar3) {
                  case 0x30:
                  case 0x31:
                  case 0x32:
                  case 0x33:
                  case 0x34:
                  case 0x35:
                  case 0x36:
                  case 0x37:
                  case 0x38:
                  case 0x39:
                    if (pbVar33 == (byte *)0x0) {
                      pbVar33 = local_78;
                    }
                    iVar27 = FUN_0012eea0(&local_78,0);
                    goto joined_r0x0013334c;
                  default:
                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);
                    if (iVar27 == 0) goto LAB_0013323f;
                    bVar41 = true;
                    break;
                  case 0x43:
                  case 0x53:
                    if (pbVar33 == (byte *)0x0) {
                      pbVar33 = local_78;
                    }
                    local_78 = local_78 + 1;
                    break;
                  case 0x46:
                    local_78 = local_78 + 1;
                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);
                    if (iVar27 == 0) goto LAB_0013323f;
                    pbVar33 = (byte *)0x0;
                    bVar41 = true;
                    break;
                  case 0x51:
                    iVar27 = FUN_00130930(&local_68,&local_78,0);
                    if (iVar27 != 0) {
                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);
                      goto joined_r0x001332f4;
                    }
                    goto LAB_0013323f;
                  case 0x5f:
                    FUN_0012e540(pbVar37);
                    goto LAB_0013323f;
                  case 0x74:
                    if (pbVar33 == (byte *)0x0) {
                      pbVar33 = local_78;
                    }
                    iVar27 = FUN_00130390(&local_68,&local_78,0);
joined_r0x0013334c:
                    if (iVar27 != 0) {
                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);
joined_r0x001332f4:
                      if (iVar27 != 0) {
                        pbVar33 = (byte *)0x0;
                        goto LAB_0013328f;
                      }
                    }
                    goto LAB_0013323f;
                  }
                  if (bVar45) {
LAB_0013328f:
                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);
                    if (iVar27 == 0) goto LAB_0013323f;
                    bVar45 = true;
                    bVar41 = true;
                  }
                  bVar3 = *local_78;
                } while (bVar3 != 0);
                if ((!bVar41) &&
                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))
                goto LAB_0013323f;
              }
              free(local_48);
              local_48 = (void *)0x0;
              if (local_58 == (undefined8 *)0x0) {
                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);
                fprintf(stderr,pcVar16);
              }
              local_7c = local_50[0];
              puVar19 = local_58;
LAB_00133211:
              iVar27 = local_7c;
              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;
            }
            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);
            if (lVar17 == 0) goto LAB_00132793;
          }
          uVar7 = local_ec + 1;
          if (local_e8 <= uVar7) {
            local_e8 = local_e8 + 10;
            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);
          }
          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);
          if (bVar44) {
            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);
            *plVar10 = lVar17;
          }
          else {
            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);
            *plVar10 = lVar17;
          }
          if (lVar17 == 0) goto LAB_00132793;
          pcVar16 = (char *)*param_4;
        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));
        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;
        if (*pcVar16 != '\0') {
          *param_4 = (ulong)(pcVar16 + 1);
        }
        uVar39 = local_c8 + 1;
        if (local_c4 <= uVar39) {
          local_c4 = local_c4 + 10;
          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);
        }
        uVar14 = FUN_0012dae0(param_1,local_138,local_128);
        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;
        pbVar22 = (byte *)*param_4;
        bVar3 = *pbVar22;
        local_c8 = uVar39;
      } while (bVar3 != 0x3b);
      if (local_108 != 0) {
        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;
      }
      if (param_6 <= pbVar22) goto LAB_00131328;
      pbVar34 = pbVar22;
      if (*pbVar22 == 0x3b) goto LAB_001334bc;
    }
    if (*pbVar22 == 0x7e) {
      pbVar40 = pbVar22 + 1;
      *param_4 = (ulong)pbVar40;
      if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {
        pbVar40 = pbVar22 + 2;
        *param_4 = (ulong)pbVar40;
      }
      if (*pbVar40 != 0x25) goto LAB_0013244a;
      *param_4 = (ulong)(pbVar40 + 1);
      iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);
      if (iVar5 == 0) goto LAB_00131328;
      if ((uint)local_68 != (uint)local_70) {
LAB_00132596:
        *param_4 = (ulong)(pbVar40 + 1);
        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);
        pcVar16 = (char *)*param_4;
        cVar4 = *pcVar16;
        while ((cVar4 != ';' && (cVar4 != '\0'))) {
          pcVar16 = pcVar16 + 1;
          cVar4 = *pcVar16;
        }
        if (cVar4 != ';') {
LAB_00132740:
          FUN_0012e570(pbVar34);
LAB_00131328:
          free(local_130);
          return 0;
        }
        *param_4 = (ulong)(pcVar16 + 1);
        goto LAB_0013244c;
      }
      if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;
      uVar14 = 1;
      lVar17 = 0;
    }
    else {
LAB_0013244a:
      lVar17 = 0;
LAB_0013244c:
      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {
        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);
        break;
      }
      uVar14 = 0;
    }
    lVar17 = FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14);
    break;
  case 0x78:
    bVar47 = pbVar22[1];
    if (bVar47 == 0x65) {
      uVar32 = 0xb;
    }
    else {
      if ((char)bVar47 < 'f') {
        if (bVar47 == 0) goto switchD_001311d2_caseD_24;
      }
      else {
        uVar32 = 7;
        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;
      }
      uVar32 = 7;
      uVar8 = dcgettext(0,"unrecognized cross reference type",5);
      FUN_0012e500(pbVar34,uVar8);
      pbVar40 = (byte *)*param_4;
    }
LAB_00131e0e:
    pbVar40 = pbVar40 + 1;
    *param_4 = (ulong)pbVar40;
    pcVar15 = strchr((char *)pbVar40,0x3c);
    pcVar16 = strchr((char *)pbVar40,0x3a);
    if (pcVar16 != (char *)0x0) {
      if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {
LAB_00131e52:
        uVar35 = (long)pcVar16 - (long)pbVar40;
        if (((param_3 != (char *)0x0) &&
            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&
           (param_3[uVar35] == '\0')) {
          *(undefined4 *)(param_2 + 0x1a8) = 1;
        }
        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);
        *param_4 = (ulong)(pcVar16 + 1);
        break;
      }
      cVar4 = *pcVar15;
      if (cVar4 != '\0') {
        iVar5 = 0;
        pcVar16 = pcVar15;
        do {
          if (cVar4 == '<') {
            iVar5 = iVar5 + 1;
          }
          else if (cVar4 == '>') {
            iVar5 = iVar5 + -1;
          }
          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;
          pcVar16 = pcVar16 + 1;
          cVar4 = *pcVar16;
        } while (cVar4 != '\0');
      }
    }
switchD_001311d2_caseD_24:
    FUN_0012e570(pbVar34);
    return 0;
  }
  if (lVar17 != 0) {
    if ((uint)local_70 != -1) {
      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);
      if (plVar10 == (long *)0x0) {
        return 0;
      }
      *plVar10 = lVar17;
    }
    if (local_13c == -1) {
      return lVar17;
    }
    iVar5 = FUN_0012de60(param_1,lVar17,local_13c);
    if (iVar5 != 0) {
      return lVar17;
    }
  }
  return 0;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
PUSH RBP
PUSH RBX
SUB RSP,0x138
TEST R8,R8
JZ 0x0013103d
MOV qword ptr [R8],0x0
MOV RBP,qword ptr [RCX]
CMP RBP,R9
JNC 0x00131338
MOV qword ptr [RSP + 0x20],RDX
LEA R12,[0x154b60]
MOV R15,R8
MOV R14,RCX
MOV dword ptr [RSI + 0x1a8],0x0
MOVZX EDX,byte ptr [RBP]
MOV qword ptr [RSP + 0x8],R9
MOV qword ptr [RSP + 0x18],RSI
MOV RAX,RDX
MOV qword ptr [RSP + 0x10],RDI
TEST byte ptr [R12 + RDX*0x2],0x4
JNZ 0x00131095
CMP DL,0x2d
SETNZ DL
CMP AL,0x28
SETNZ AL
TEST DL,AL
JNZ 0x00131190
LEA R13,[RSP + 0xf8]
MOV RDX,qword ptr [RSP + 0x8]
MOV RDI,R14
MOV RSI,R13
CALL 0x0012e6c0
TEST EAX,EAX
JZ 0x00131338
MOV RBX,qword ptr [R14]
CMP byte ptr [RBX],0x3d
JNZ 0x001313a0
TEST R15,R15
JZ 0x00131100
MOV EAX,dword ptr [RSP + 0xf8]
TEST EAX,EAX
JS 0x00131100
MOV EAX,dword ptr [RSP + 0xfc]
TEST EAX,EAX
JS 0x00131100
MOV RAX,qword ptr [RSP + 0x18]
MOV RDX,R13
LEA RSI,[RAX + 0x88]
LEA RDI,[RAX + 0x80]
CALL 0x0012e890
MOV RBX,qword ptr [R14]
MOV qword ptr [R15],RAX
NOP dword ptr [RAX]
ADD RBX,0x1
MOV R8D,0xffffffff
XOR R13D,R13D
MOV qword ptr [R14],RBX
MOV dword ptr [RSP + 0x2c],R8D
MOVZX R10D,byte ptr [RBX]
LEA R15,[RBX + 0x1]
CMP R10B,0x40
JNZ 0x001311b2
MOVZX EDX,byte ptr [RBX + 0x1]
MOV RAX,RDX
TEST byte ptr [R12 + RDX*0x2],0x4
JNZ 0x00132136
CMP DL,0x2d
SETZ CL
CMP DL,0x28
SETZ DL
OR CL,DL
JZ 0x00131160
JMP 0x00132136
TEST AL,AL
JZ 0x00131350
ADD R15,0x1
MOVZX EAX,byte ptr [R15]
CMP AL,0x3b
JNZ 0x00131150
ADD R15,0x1
MOV qword ptr [R14],R15
MOVZX EAX,byte ptr [RBX + 0x1]
CMP AL,0x53
JZ 0x00131390
CMP AL,0x73
JZ 0x00131360
TEST AL,AL
JZ 0x00131350
MOV RBX,R15
JMP 0x00131115
MOV RAX,-0x1
LEA R15,[RBP + 0x1]
MOV RBX,RBP
XOR R13D,R13D
MOV dword ptr [RSP + 0x2c],EAX
MOV qword ptr [RSP + 0xf8],RAX
MOVZX R10D,byte ptr [RBP]
LEA EAX,[R10 + -0x23]
MOV qword ptr [R14],R15
CMP AL,0x55
JA 0x00131350
LEA RDX,[0x147214]
MOVZX EAX,AL
MOVSXD RAX,dword ptr [RDX + RAX*0x4]
ADD RAX,RDX
JMP RAX
CMP byte ptr [RBP + 0x1],0x5f
JZ 0x00131ade
MOV RAX,qword ptr [R14]
MOV RCX,qword ptr [RSP + 0x38]
LEA RBP,[RAX + 0x1]
LEA RBX,[RCX + RBX*0x8]
MOV qword ptr [R14],RBP
MOV qword ptr [RBX],0x0
CMP qword ptr [RSP + 0x8],RBP
JBE 0x00131328
CMP byte ptr [RAX + 0x1],0x76
JNZ 0x00132740
LEA RDX,[RAX + 0x2]
MOV qword ptr [R14],RDX
MOVZX R10D,byte ptr [RAX + 0x2]
TEST R10B,R10B
JZ 0x00132740
ADD RAX,0x3
MOV R9,qword ptr [RSP + 0x8]
MOV RSI,qword ptr [RSP + 0x18]
XOR EDX,EDX
MOV qword ptr [R14],RAX
MOV RDI,qword ptr [RSP + 0x10]
XOR R8D,R8D
MOV RCX,R14
MOV byte ptr [RSP + 0x40],R10B
CALL 0x00131020
TEST RAX,RAX
JZ 0x00131328
MOVZX R10D,byte ptr [RSP + 0x40]
CMP R10B,0x62
JZ 0x001337be
LEA R13,[0x146996]
CMP R10B,0x66
JZ 0x00131295
MOV EDX,0x5
LEA RSI,[0x146a10]
XOR EDI,EDI
CALL 0x00107230
MOV RDI,RBP
LEA R13,[0x14697d]
MOV RSI,RAX
CALL 0x0012e500
MOV RAX,qword ptr [R14]
CMP byte ptr [RAX],0x3a
JNZ 0x00132740
ADD RAX,0x1
MOV R9,qword ptr [RSP + 0x8]
MOV RSI,qword ptr [RSP + 0x18]
XOR EDX,EDX
MOV qword ptr [R14],RAX
MOV RDI,qword ptr [RSP + 0x10]
XOR R8D,R8D
MOV RCX,R14
CALL 0x00131020
MOV qword ptr [RSP + 0x40],RAX
MOV RAX,qword ptr [R14]
CMP byte ptr [RAX],0x2c
JNZ 0x00132740
ADD RAX,0x1
MOV RDX,qword ptr [RSP + 0x8]
XOR ESI,ESI
MOV RDI,R14
MOV qword ptr [R14],RAX
CALL 0x0012e630
MOV RDX,qword ptr [R14]
CMP byte ptr [RDX],0x3b
JNZ 0x00132740
ADD RDX,0x1
MOV RDI,qword ptr [RSP + 0x10]
XOR R8D,R8D
MOV RCX,RAX
MOV qword ptr [R14],RDX
MOV RDX,qword ptr [RSP + 0x40]
MOV R9D,0x2
MOV RSI,R13
CALL 0x0012da50
MOV qword ptr [RBX],RAX
TEST RAX,RAX
JNZ 0x00131c3f
MOV RDI,qword ptr [RSP + 0x38]
CALL 0x00107070
NOP word ptr [RAX + RAX*0x1]
XOR R13D,R13D
ADD RSP,0x138
MOV RAX,R13
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV RDI,RBP
XOR R13D,R13D
CALL 0x0012e570
JMP 0x0013133b
XOR ESI,ESI
LEA RDI,[RBX + 0x2]
MOV EDX,0xa
CALL 0x00107490
MOV R8D,0xffffffff
CMP EAX,0x7
JG 0x001313ba
MOV R15,qword ptr [R14]
MOV dword ptr [RSP + 0x2c],R8D
JMP 0x00131187
MOV R13D,0x1
JMP 0x00131187
MOV RSI,qword ptr [RSP + 0x18]
MOV RDI,qword ptr [RSP + 0x10]
MOV RDX,R13
CALL 0x0012e9f0
MOV R13,RAX
JMP 0x0013133b
SAR EAX,0x3
MOV R15,qword ptr [R14]
MOV dword ptr [RSP + 0x2c],EAX
JMP 0x00131187
MOV RAX,qword ptr [RSP + 0x8]
CMP RAX,R15
JBE 0x00131338
XOR ESI,ESI
MOV RDX,RAX
MOV RDI,R14
CALL 0x0012e630
MOV RBX,RAX
MOV RAX,qword ptr [R14]
CMP byte ptr [RAX],0x3b
JNZ 0x00132126
MOV RDX,qword ptr [RSP + 0x8]
XOR ESI,ESI
MOV RDI,R14
CALL 0x0012e630
MOV RSI,RAX
MOV RAX,qword ptr [R14]
CMP byte ptr [RAX],0x3b
JNZ 0x00132126
SUB RBX,0x3
MOV RDI,qword ptr [RSP + 0x10]
CMP RBX,0x2
JBE 0x00132d9c
CALL 0x0012d580
MOV R13,RAX
NOP dword ptr [RAX]
TEST R13,R13
JZ 0x00131338
CMP dword ptr [RSP + 0xf8],-0x1
JZ 0x0013146f
MOV RAX,qword ptr [RSP + 0x18]
LEA RDX,[RSP + 0xf8]
LEA RSI,[RAX + 0x88]
LEA RDI,[RAX + 0x80]
CALL 0x0012e890
TEST RAX,RAX
JZ 0x00131338
MOV qword ptr [RAX],R13
MOV EAX,dword ptr [RSP + 0x2c]
CMP EAX,-0x1
JZ 0x0013133b
MOV RDI,qword ptr [RSP + 0x10]
MOV EDX,EAX
MOV RSI,R13
CALL 0x0012de60
TEST EAX,EAX
JNZ 0x0013133b
JMP 0x00131338
MOV RBX,qword ptr [RSP + 0x10]
MOV R9,qword ptr [RSP + 0x8]
XOR R8D,R8D
MOV RCX,R14
MOV RSI,qword ptr [RSP + 0x18]
XOR EDX,EDX
MOV RDI,RBX
CALL 0x00131020
MOV EDX,R13D
MOV RDI,RBX
MOV RSI,RAX
CALL 0x0012d880
MOV R13,RAX
JMP 0x00131430
CMP byte ptr [RBX + 0x1],0x72
JNZ 0x00131350
ADD RBX,0x2
MOV qword ptr [R14],RBX
CMP RBX,qword ptr [RSP + 0x8]
JNC 0x00131338
MOV RDX,qword ptr [RSP + 0x8]
LEA RSI,[RSP + 0x100]
LEA RDI,[RSP + 0xf0]
MOV qword ptr [RSP + 0xf0],RBX
CALL 0x0012e6c0
TEST EAX,EAX
JZ 0x00131338
MOV EAX,dword ptr [RSP + 0x100]
OR EAX,dword ptr [RSP + 0x104]
JNZ 0x00132709
MOV RAX,qword ptr [R14]
CMP byte ptr [RAX],0x3d
JZ 0x00132709
MOV RDI,qword ptr [RSP + 0x10]
LEA RSI,[0x146922]
CALL 0x0012dec0
MOV RBP,RAX
TEST RAX,RAX
JZ 0x00133c9c
MOV RAX,qword ptr [RSP + 0xf0]
MOV qword ptr [R14],RAX
CMP byte ptr [RAX],0x3b
JNZ 0x00132b8a
LEA RDX,[RAX + 0x1]
MOV qword ptr [R14],RDX
MOVZX ECX,byte ptr [RAX + 0x1]
MOV RDX,RCX
TEST byte ptr [R12 + RCX*0x2],0x4
JNZ 0x0013158c
TEST CL,CL
SETNZ CL
CMP DL,0x2d
SETNZ DL
TEST CL,DL
JNZ 0x00133758
XOR R15D,R15D
MOV RDX,qword ptr [RSP + 0x8]
XOR ESI,ESI
MOV RDI,R14
CALL 0x0012e630
MOV qword ptr [RSP + 0x20],RAX
MOV RAX,qword ptr [R14]
CMP byte ptr [RAX],0x3b
JNZ 0x00132b8a
LEA RDX,[RAX + 0x1]
MOV qword ptr [R14],RDX
MOVZX ECX,byte ptr [RAX + 0x1]
MOV RDX,RCX
TEST byte ptr [R12 + RCX*0x2],0x4
JNZ 0x001315d7
CMP CL,0x2d
SETNZ CL
TEST DL,DL
SETNZ DL
TEST CL,DL
JNZ 0x001337ef
MOV RDX,qword ptr [RSP + 0x8]
XOR ESI,ESI
MOV RDI,R14
CALL 0x0012e630
MOV R12,RAX
MOV RAX,qword ptr [R14]
CMP byte ptr [RAX],0x3b
JNZ 0x00132b8a
ADD RAX,0x1
MOV RBX,qword ptr [RSP + 0x10]
MOV R9,qword ptr [RSP + 0x8]
XOR EDX,EDX
MOV qword ptr [R14],RAX
MOV RSI,qword ptr [RSP + 0x18]
XOR R8D,R8D
MOV RCX,R14
MOV RDI,RBX
CALL 0x00131020
TEST RAX,RAX
JZ 0x00131338
TEST R15D,R15D
MOV R8,-0x1
MOV R9D,R13D
MOV RDX,RBP
MOV ECX,0x0
CMOVZ R8,R12
MOV RSI,RAX
MOV RDI,RBX
CMOVZ RCX,qword ptr [RSP + 0x20]
CALL 0x0012d800
MOV R13,RAX
JMP 0x00131430
CMP qword ptr [RSP + 0x8],R15
JBE 0x00131338
MOVZX EAX,byte ptr [RBX + 0x1]
CMP AL,0x73
JZ 0x001327d2
CMP AL,0x75
JNZ 0x00132126
MOV EBP,0x1
LEA RAX,[RBX + 0x2]
MOV qword ptr [R14],RAX
MOVZX EAX,byte ptr [RBX + 0x2]
LEA EDX,[RAX + -0x62]
CMP DL,0x1
JBE 0x001327c6
CMP AL,0x76
JZ 0x001327c6
MOV RDX,qword ptr [RSP + 0x8]
XOR ESI,ESI
MOV RDI,R14
CALL 0x0012e630
MOV RAX,qword ptr [R14]
CMP byte ptr [RAX],0x3b
JNZ 0x00132126
ADD RAX,0x1
MOV RDX,qword ptr [RSP + 0x8]
XOR ESI,ESI
MOV RDI,R14
MOV qword ptr [R14],RAX
CALL 0x0012e630
MOV RAX,qword ptr [R14]
CMP byte ptr [RAX],0x3b
JNZ 0x00132126
ADD RAX,0x1
MOV RDX,qword ptr [RSP + 0x8]
XOR ESI,ESI
MOV RDI,R14
MOV qword ptr [R14],RAX
CALL 0x0012e630
MOV RDX,qword ptr [R14]
CMP byte ptr [RDX],0x3b
JNZ 0x001316fb
ADD RDX,0x1
MOV qword ptr [R14],RDX
TEST RAX,RAX
JZ 0x00133358
SHR RAX,0x3
MOV RDI,qword ptr [RSP + 0x10]
MOV EDX,EBP
MOV ESI,EAX
CALL 0x0012d560
MOV R13,RAX
JMP 0x00131430
CMP qword ptr [RSP + 0x8],R15
JBE 0x00131338
CMP byte ptr [RBX + 0x1],0x2d
MOV RAX,R15
JZ 0x00131847
MOV EDI,0x50
MOV EBX,0xa
XOR EBP,EBP
CALL 0x00107350
MOV EDI,0x50
MOV qword ptr [RSP + 0x20],RAX
CALL 0x00107350
MOV RDI,qword ptr [R14]
MOV R13,RAX
MOVZX EAX,byte ptr [RDI]
CMP AL,0x3b
JA 0x00131777
MOV RDX,0x800100000000001
BT RDX,RAX
JC 0x001334e4
MOV qword ptr [RSP + 0x40],R15
MOV R12D,EBX
MOV R15,R14
MOV R14D,EBP
NOP dword ptr [RAX]
CMP AL,0x3a
JZ 0x001321e5
MOV RBP,RDI
TEST AL,AL
JNZ 0x001317a4
JMP 0x001321e5
TEST AL,AL
JZ 0x001317b0
ADD RBP,0x1
MOVZX EAX,byte ptr [RBP]
CMP AL,0x3a
JNZ 0x001317a0
TEST AL,AL
JZ 0x00132d0c
MOV RSI,RBP
SUB RSI,RDI
CALL 0x0012e600
LEA RDX,[RBP + 0x1]
XOR ESI,ESI
MOV RDI,R15
MOV qword ptr [R15],RDX
MOV RDX,qword ptr [RSP + 0x8]
MOV RBX,RAX
CALL 0x0012e630
MOV RBP,RAX
MOV RAX,qword ptr [R15]
CMP byte ptr [RAX],0x2c
JNZ 0x00132cdd
ADD RAX,0x1
LEA EDX,[R14 + 0x1]
MOV qword ptr [R15],RAX
CMP EDX,R12D
JNC 0x001320e3
MOV RAX,qword ptr [RSP + 0x20]
MOV R8D,R14D
MOV qword ptr [RAX + R8*0x8],RBX
MOV RDI,qword ptr [R15]
MOV qword ptr [R13 + R8*0x8],RBP
MOVZX EAX,byte ptr [RDI]
CMP AL,0x3b
JA 0x0013182e
MOV RBX,0x800100000000001
BT RBX,RAX
JC 0x00132212
MOV R14D,EDX
JMP 0x00131788
TEST DL,DL
JZ 0x00131857
MOV RAX,RCX
LEA RCX,[RAX + 0x1]
MOV qword ptr [R14],RCX
MOVZX EDX,byte ptr [RAX + 0x1]
CMP DL,0x3a
JNZ 0x00131840
TEST DL,DL
JZ 0x00132126
ADD RAX,0x2
MOV qword ptr [R14],RAX
JMP 0x00131736
CMP qword ptr [RSP + 0x8],R15
JBE 0x00131338
LEA RAX,[RSP + 0x100]
MOV RDX,qword ptr [RSP + 0x8]
MOV RDI,R14
MOV RSI,RAX
MOV qword ptr [RSP + 0x40],RAX
CALL 0x0012e6c0
TEST EAX,EAX
JZ 0x00131338
MOV dword ptr [RSP + 0x30],0x0
MOV EAX,dword ptr [RSP + 0xf8]
CMP dword ptr [RSP + 0x100],EAX
JNZ 0x001318cb
MOV EAX,dword ptr [RSP + 0xfc]
CMP dword ptr [RSP + 0x104],EAX
SETZ AL
MOVZX EAX,AL
MOV dword ptr [RSP + 0x30],EAX
MOV RBP,qword ptr [R14]
XOR R12D,R12D
MOVZX EAX,byte ptr [RBP]
CMP AL,0x3d
JZ 0x001333eb
CMP AL,0x3b
JNZ 0x001318e8
ADD RBP,0x1
MOV qword ptr [R14],RBP
MOV RDX,qword ptr [RSP + 0x8]
LEA RSI,[RSP + 0xec]
MOV RDI,R14
CALL 0x0012e630
MOV RBX,qword ptr [R14]
MOV R13,RAX
CMP byte ptr [RBX],0x3b
JNZ 0x00132126
LEA RAX,[RBX + 0x1]
MOV RDX,qword ptr [RSP + 0x8]
LEA RSI,[RSP + 0xf0]
MOV RDI,R14
MOV qword ptr [R14],RAX
MOV qword ptr [RSP + 0x38],RAX
CALL 0x0012e630
MOV RBX,RAX
MOV RAX,qword ptr [R14]
CMP byte ptr [RAX],0x3b
JNZ 0x00132126
ADD RAX,0x1
MOV qword ptr [R14],RAX
MOV R14D,dword ptr [RSP + 0xec]
MOV EAX,R14D
OR EAX,dword ptr [RSP + 0xf0]
JZ 0x0013197e
TEST R12,R12
JZ 0x00133422
LEA RSI,[0x1467c4]
XOR EDI,EDI
MOV EDX,0x5
CALL 0x00107230
MOV RDI,R15
MOV RSI,RAX
CALL 0x0012e500
TEST R12,R12
JZ 0x0013336a
MOV EAX,dword ptr [RSP + 0x30]
TEST EAX,EAX
JNZ 0x00132126
MOV RDX,qword ptr [RSP + 0x40]
MOV RSI,qword ptr [RSP + 0x18]
MOV RDI,qword ptr [RSP + 0x10]
CALL 0x0012e9f0
TEST RAX,RAX
JZ 0x001339da
MOV RDI,qword ptr [RSP + 0x10]
MOV RDX,R13
MOV RCX,RBX
MOV RSI,RAX
CALL 0x0012d790
MOV R13,RAX
JMP 0x00131430
MOV RBX,qword ptr [RSP + 0x10]
MOV R9,qword ptr [RSP + 0x8]
XOR R8D,R8D
MOV RCX,R14
MOV RSI,qword ptr [RSP + 0x18]
XOR EDX,EDX
MOV RDI,RBX
CALL 0x00131020
XOR ECX,ECX
XOR EDX,EDX
MOV RDI,RBX
MOV RSI,RAX
CALL 0x0012d6f0
MOV R13,RAX
JMP 0x00131430
MOV RBX,qword ptr [RSP + 0x10]
MOV R9,qword ptr [RSP + 0x8]
XOR R8D,R8D
MOV RCX,R14
MOV RSI,qword ptr [RSP + 0x18]
XOR EDX,EDX
MOV RDI,RBX
CALL 0x00131020
MOV RDI,RBX
MOV RSI,RAX
CALL 0x0012d9b0
MOV R13,RAX
JMP 0x00131430
MOV RBX,qword ptr [RSP + 0x8]
XOR ESI,ESI
MOV RDI,R14
MOV byte ptr [RSP + 0x30],R10B
MOV RDX,RBX
CALL 0x0012e630
MOV R15,qword ptr [R14]
MOV qword ptr [RSP + 0x98],RAX
CMP RBX,R15
JBE 0x00131338
CMP byte ptr [R15],0x21
MOVZX R10D,byte ptr [RSP + 0x30]
MOV qword ptr [RSP + 0x70],0x0
JZ 0x001329a5
MOV EDI,0x50
MOV byte ptr [RSP + 0x40],R10B
XOR EBX,EBX
CALL 0x00107350
MOV RBP,qword ptr [R14]
MOVZX R10D,byte ptr [RSP + 0x40]
MOV dword ptr [RSP + 0xc8],0x0
MOV qword ptr [RSP + 0x38],RAX
MOVZX EAX,byte ptr [RBP]
MOV dword ptr [RSP + 0x30],0xa
MOV byte ptr [RSP + 0x78],R10B
MOV qword ptr [RSP + 0x50],R15
CMP AL,0x3b
JZ 0x00131c51
LEA R15D,[RBX + 0x1]
CMP R15D,dword ptr [RSP + 0x30]
JNC 0x001321ed
CMP AL,0x24
JZ 0x001311d4
CMP AL,0x2e
JZ 0x001311d4
MOV ESI,0x3a
MOV RDI,RBP
CALL 0x00107280
MOV R13,RAX
TEST RAX,RAX
JZ 0x00133a9a
CMP byte ptr [RAX + 0x1],0x3a
MOV RBP,qword ptr [R14]
JZ 0x00131c51
CMP qword ptr [RSP + 0x8],RBP
JBE 0x00131338
MOV RSI,RAX
MOV RDI,RBP
SUB RSI,RBP
CALL 0x0012e600
MOV qword ptr [RSP + 0x40],RAX
LEA RAX,[R13 + 0x1]
MOV qword ptr [R14],RAX
CMP byte ptr [R13 + 0x1],0x2f
JNZ 0x0013262e
LEA RAX,[R13 + 0x2]
MOV qword ptr [R14],RAX
MOVZX EDX,byte ptr [R13 + 0x2]
CMP DL,0x30
JZ 0x001334a6
JLE 0x0013263b
MOV dword ptr [RSP + 0x48],0x1
CMP DL,0x31
JZ 0x00131b6d
MOV dword ptr [RSP + 0x48],0x0
CMP DL,0x32
JNZ 0x00132643
ADD RAX,0x1
MOV qword ptr [R14],RAX
MOV R9,qword ptr [RSP + 0x8]
MOV RSI,qword ptr [RSP + 0x18]
XOR R8D,R8D
MOV RCX,R14
MOV RDI,qword ptr [RSP + 0x10]
XOR EDX,EDX
CALL 0x00131020
MOV R13,RAX
TEST RAX,RAX
JZ 0x001334eb
MOV RAX,qword ptr [RSP + 0x38]
LEA RBX,[RAX + RBX*0x8]
MOV RAX,qword ptr [R14]
MOVZX EDX,byte ptr [RAX]
CMP DL,0x3a
JZ 0x00132928
CMP DL,0x2c
JNZ 0x00132614
ADD RAX,0x1
MOV RDX,qword ptr [RSP + 0x8]
XOR ESI,ESI
MOV RDI,R14
MOV qword ptr [R14],RAX
CALL 0x0012e630
MOV RCX,RAX
MOV RAX,qword ptr [R14]
CMP byte ptr [RAX],0x2c
JNZ 0x00132614
ADD RAX,0x1
MOV RDX,qword ptr [RSP + 0x8]
XOR ESI,ESI
MOV RDI,R14
MOV qword ptr [R14],RAX
MOV qword ptr [RSP + 0x58],RCX
CALL 0x0012e630
MOV RDX,qword ptr [R14]
MOV RCX,qword ptr [RSP + 0x58]
MOV R8,RAX
CMP byte ptr [RDX],0x3b
JNZ 0x00132614
ADD RDX,0x1
MOV RAX,RCX
MOV R9D,0x3
MOV RSI,qword ptr [RSP + 0x40]
MOV qword ptr [R14],RDX
OR RAX,R8
MOV RDI,qword ptr [RSP + 0x10]
MOV RDX,R13
CMOVNZ R9D,dword ptr [RSP + 0x48]
CALL 0x0012da50
MOV qword ptr [RBX],RAX
MOV RBP,qword ptr [R14]
MOV EBX,R15D
MOVZX EAX,byte ptr [RBP]
CMP AL,0x3b
JNZ 0x00131abf
MOV EAX,EBX
MOV RBX,qword ptr [RSP + 0x38]
MOVZX R10D,byte ptr [RSP + 0x78]
MOV qword ptr [RSP + 0x48],RBP
MOV qword ptr [RBX + RAX*0x8],0x0
CMP qword ptr [RSP + 0x8],RBP
JBE 0x00131328
MOVZX EDX,byte ptr [RBP]
CMP DL,0x3b
JZ 0x001334b3
XOR R15D,R15D
MOV qword ptr [RSP + 0x40],0x0
MOV qword ptr [RSP + 0x60],0x0
MOV dword ptr [RSP + 0xa4],0x0
MOV dword ptr [RSP + 0xa0],0x0
MOV byte ptr [RSP + 0xcf],R10B
MOV qword ptr [RSP + 0x30],R15
MOV ESI,0x3a
MOV RDI,RBP
MOV byte ptr [RSP + 0x78],DL
CALL 0x00107280
TEST RAX,RAX
JZ 0x001323d7
CMP byte ptr [RAX + 0x1],0x3a
JNZ 0x001323d7
MOVZX EDX,byte ptr [RSP + 0x78]
LEA R13,[RAX + 0x2]
CMP DL,0x6f
JNZ 0x00131cf7
CMP byte ptr [RBP + 0x1],0x70
JZ 0x0013376a
SUB RAX,RBP
MOV RDI,RBP
MOV ESI,EAX
CALL 0x0012e600
MOV qword ptr [R14],R13
MOV qword ptr [RSP + 0x30],RAX
MOV EDI,0x50
XOR EBP,EBP
CALL 0x00107350
MOV dword ptr [RSP + 0x7c],0x0
MOV qword ptr [RSP + 0x40],RAX
MOV dword ptr [RSP + 0x80],0xa
TEST RBP,RBP
JZ 0x0013274d
MOV RDI,qword ptr [R14]
MOV RBX,RBP
ADD RDI,0x1
MOV ESI,0x3b
MOV qword ptr [R14],RDI
CALL 0x00107280
MOV RBP,RAX
TEST RAX,RAX
JZ 0x00132781
MOV RDI,qword ptr [RSP + 0x10]
MOV RSI,RBX
CALL 0x0012e080
MOV dword ptr [RSP + 0x90],0x0
CMP EAX,0x13
JZ 0x00132b60
MOV RDI,qword ptr [R14]
MOV RSI,RBP
SUB RSI,RDI
CALL 0x0012e600
MOV R15,RAX
LEA RAX,[RBP + 0x1]
MOV qword ptr [R14],RAX
MOVZX EAX,byte ptr [RBP + 0x1]
CMP AL,0x30
JZ 0x00132918
CMP AL,0x31
JZ 0x00132730
TEST AL,AL
JZ 0x00132781
MOV dword ptr [RSP + 0x84],0x0
LEA RAX,[RBP + 0x2]
MOV qword ptr [R14],RAX
MOVZX EDX,byte ptr [RBP + 0x2]
LEA ECX,[RDX + -0x2a]
CMP CL,0x1a
JA 0x00132513
LEA RDI,[0x14736c]
MOVZX ECX,CL
MOVSXD RCX,dword ptr [RDI + RCX*0x4]
ADD RCX,RDI
JMP RCX
MOVZX EAX,byte ptr [RBX + 0x1]
CMP AL,0x65
JZ 0x0013299b
JLE 0x001321b2
MOV EBX,0x7
CMP AL,0x73
JZ 0x00131e0e
MOV EBX,0x8
CMP AL,0x75
JNZ 0x001321ba
ADD R15,0x1
MOV ESI,0x3c
MOV qword ptr [R14],R15
MOV RDI,R15
CALL 0x00107280
MOV ESI,0x3a
MOV RDI,R15
MOV R13,RAX
CALL 0x00107280
MOV R12,RAX
TEST RAX,RAX
JZ 0x00131350
TEST R13,R13
JZ 0x00131e52
CMP R13,RAX
JNC 0x00131e52
CMP byte ptr [RAX + 0x1],0x3a
JZ 0x00132d2a
MOV R13,qword ptr [RSP + 0x20]
MOV RBP,R12
SUB RBP,R15
TEST R13,R13
JZ 0x00131e8b
MOV RDX,RBP
MOV RSI,R15
MOV RDI,R13
CALL 0x001070e0
TEST EAX,EAX
JNZ 0x00131e8b
CMP byte ptr [R13 + RBP*0x1],0x0
JNZ 0x00131e8b
MOV RAX,qword ptr [RSP + 0x18]
MOV dword ptr [RAX + 0x1a8],0x1
MOV RAX,qword ptr [RSP + 0x18]
MOV RDI,qword ptr [RSP + 0x10]
MOV R8D,EBX
MOV ECX,EBP
MOV RDX,R15
ADD R12,0x1
LEA RSI,[RAX + 0x1a0]
CALL 0x0012ef40
MOV qword ptr [R14],R12
MOV R13,RAX
JMP 0x00131430
CMP byte ptr [RBX + 0x1],0x23
JZ 0x001326ae
MOV R9,qword ptr [RSP + 0x8]
MOV RSI,qword ptr [RSP + 0x18]
XOR R8D,R8D
MOV RCX,R14
MOV RDI,qword ptr [RSP + 0x10]
XOR EDX,EDX
CALL 0x00131020
MOV qword ptr [RSP + 0x20],RAX
TEST RAX,RAX
JZ 0x00131338
MOV RAX,qword ptr [R14]
CMP byte ptr [RAX],0x2c
JNZ 0x00131350
ADD RAX,0x1
MOV R15,qword ptr [RSP + 0x8]
MOV RSI,qword ptr [RSP + 0x18]
XOR EDX,EDX
MOV qword ptr [R14],RAX
MOV RDI,qword ptr [RSP + 0x10]
XOR R8D,R8D
MOV RCX,R14
MOV R9,R15
CALL 0x00131020
MOV qword ptr [RSP + 0x8],RAX
TEST RAX,RAX
JZ 0x00131338
MOV EDI,0x50
MOV R12D,0xa
CALL 0x00107350
MOV qword ptr [RSP + 0x30],RBP
XOR EDX,EDX
MOV RBX,RAX
MOV RAX,qword ptr [R14]
MOVZX ECX,byte ptr [RAX]
CMP CL,0x3b
JZ 0x00132da9
CMP CL,0x2c
JNZ 0x00132d87
ADD RAX,0x1
LEA EBP,[RDX + 0x1]
MOV qword ptr [R14],RAX
CMP EBP,R12D
JNC 0x001325f0
MOV RSI,qword ptr [RSP + 0x18]
MOV RDI,qword ptr [RSP + 0x10]
MOV R9,R15
XOR R8D,R8D
LEA R13,[RBX + RDX*0x8]
MOV RCX,R14
XOR EDX,EDX
CALL 0x00131020
MOV EDX,EBP
MOV qword ptr [R13],RAX
TEST RAX,RAX
JNZ 0x00131f46
JMP 0x00131338
MOV RBX,qword ptr [RSP + 0x10]
MOV R9,qword ptr [RSP + 0x8]
XOR R8D,R8D
MOV RCX,R14
MOV RSI,qword ptr [RSP + 0x18]
XOR EDX,EDX
MOV RDI,RBX
CALL 0x00131020
MOV RDI,RBX
MOV RSI,RAX
CALL 0x0012d760
MOV R13,RAX
JMP 0x00131430
MOV RBX,qword ptr [RSP + 0x10]
MOV R9,qword ptr [RSP + 0x8]
XOR R8D,R8D
MOV RCX,R14
MOV RSI,qword ptr [RSP + 0x18]
XOR EDX,EDX
MOV RDI,RBX
CALL 0x00131020
MOV RDI,RBX
MOV RSI,RAX
CALL 0x0012d6b0
MOV R13,RAX
JMP 0x00131430
MOV RBX,qword ptr [RSP + 0x10]
MOV R9,qword ptr [RSP + 0x8]
XOR R8D,R8D
MOV RCX,R14
MOV RSI,qword ptr [RSP + 0x18]
XOR EDX,EDX
MOV RDI,RBX
CALL 0x00131020
MOV RDI,RBX
MOV RSI,RAX
CALL 0x0012d9e0
MOV R13,RAX
JMP 0x00131430
MOV qword ptr [R14],RBX
MOV RDX,qword ptr [RSP + 0x8]
LEA RSI,[RSP + 0x100]
MOV RDI,R14
CALL 0x0012e6c0
TEST EAX,EAX
JZ 0x00131338
MOV EAX,dword ptr [RSP + 0x100]
CMP dword ptr [RSP + 0xf8],EAX
JNZ 0x00132079
MOV EAX,dword ptr [RSP + 0x104]
CMP dword ptr [RSP + 0xfc],EAX
JZ 0x001334d2
MOV qword ptr [R14],RBX
MOV R9,qword ptr [RSP + 0x8]
XOR R8D,R8D
MOV RCX,R14
MOV RSI,qword ptr [RSP + 0x18]
MOV RDI,qword ptr [RSP + 0x10]
XOR EDX,EDX
CALL 0x00131020
MOV R13,RAX
TEST RAX,RAX
JZ 0x00131338
CMP dword ptr [RSP + 0xf8],-0x1
JZ 0x00131430
MOV RAX,qword ptr [RSP + 0x18]
LEA RDX,[RSP + 0xf8]
LEA RSI,[RAX + 0x88]
LEA RDI,[RAX + 0x80]
CALL 0x0012e890
TEST RAX,RAX
JZ 0x00131338
MOV qword ptr [RAX],R13
JMP 0x00131430
LEA R10D,[R12 + 0xa]
MOV RDI,qword ptr [RSP + 0x20]
MOV dword ptr [RSP + 0x38],EDX
MOV R12,R10
SHL R10,0x3
MOV RSI,R10
MOV qword ptr [RSP + 0x30],R10
CALL 0x001072b0
MOV R10,qword ptr [RSP + 0x30]
MOV RDI,R13
MOV qword ptr [RSP + 0x20],RAX
MOV RSI,R10
CALL 0x001072b0
MOV EDX,dword ptr [RSP + 0x38]
MOV R13,RAX
JMP 0x001317ff
MOV RDI,R15
XOR R13D,R13D
CALL 0x0012e570
JMP 0x0013133b
MOV qword ptr [R14],R15
MOV R9,qword ptr [RSP + 0x8]
MOV RSI,qword ptr [RSP + 0x18]
XOR R8D,R8D
MOV RCX,R14
MOV RDI,qword ptr [RSP + 0x10]
XOR EDX,EDX
CALL 0x00131020
MOV RBX,RAX
TEST RAX,RAX
JZ 0x00131338
MOV RAX,qword ptr [R14]
CMP byte ptr [RAX],0x2c
JNZ 0x00131350
ADD RAX,0x1
MOV RCX,R14
MOV R9,qword ptr [RSP + 0x8]
XOR R8D,R8D
MOV qword ptr [R14],RAX
MOV R14,qword ptr [RSP + 0x10]
XOR EDX,EDX
MOV RSI,qword ptr [RSP + 0x18]
MOV RDI,R14
CALL 0x00131020
TEST RAX,RAX
JZ 0x00131338
MOV RDX,RAX
MOV RSI,RBX
MOV RDI,R14
CALL 0x0012d8e0
MOV R13,RAX
JMP 0x00131430
TEST AL,AL
JZ 0x00131350
MOV EDX,0x5
LEA RSI,[0x146c20]
XOR EDI,EDI
MOV EBX,0x7
CALL 0x00107230
MOV RDI,RBP
MOV RSI,RAX
CALL 0x0012e500
MOV R15,qword ptr [R14]
JMP 0x00131e0e
MOV RBP,RDI
JMP 0x001317b0
ADD dword ptr [RSP + 0x30],0xa
MOV ESI,dword ptr [RSP + 0x30]
MOV RDI,qword ptr [RSP + 0x38]
SHL RSI,0x3
CALL 0x001072b0
MOV qword ptr [RSP + 0x38],RAX
MOVZX EAX,byte ptr [RBP]
JMP 0x00131ace
MOV R14,R15
MOV RAX,qword ptr [RSP + 0x20]
MOV qword ptr [RAX + RDX*0x8],0x0
MOV RAX,qword ptr [R14]
MOV qword ptr [R13 + RDX*0x8],0x0
CMP byte ptr [RAX],0x3b
JNZ 0x0013223a
ADD RAX,0x1
MOV qword ptr [R14],RAX
MOV RSI,qword ptr [RSP + 0x20]
MOV RDI,qword ptr [RSP + 0x10]
MOV RDX,R13
CALL 0x0012d670
MOV R13,RAX
JMP 0x00131430
LEA RAX,[RBP + 0x3]
MOV dword ptr [RSP + 0x50],0x1
MOV dword ptr [RSP + 0x78],0x1
MOV qword ptr [R14],RAX
MOVZX EDX,byte ptr [RBP + 0x3]
CMP DL,0x2e
JZ 0x00132cb2
CMP DL,0x3f
JZ 0x00132c64
CMP DL,0x2a
JZ 0x00132bc8
MOV RDI,qword ptr [RSP + 0x48]
LEA RSI,[0x146a2e]
XOR EBP,EBP
CALL 0x0012e500
MOV dword ptr [RSP + 0x58],0x0
MOV qword ptr [RSP + 0x68],0x0
MOV qword ptr [RSP + 0x88],0x0
MOV EAX,dword ptr [RSP + 0x90]
MOV R13,R15
TEST EAX,EAX
JNZ 0x0013282f
MOV EAX,dword ptr [RSP + 0x7c]
LEA R10D,[RAX + 0x1]
CMP R10D,dword ptr [RSP + 0x80]
JNC 0x001327d9
MOV EAX,dword ptr [RSP + 0x7c]
MOV RCX,qword ptr [RSP + 0x40]
MOV R8D,dword ptr [RSP + 0x58]
LEA R11,[RCX + RAX*0x8]
TEST R8D,R8D
JNZ 0x00132671
MOV dword ptr [RSP + 0x7c],R10D
MOV RSI,R13
MOV RDX,RBX
MOV qword ptr [RSP + 0x58],R11
PUSH qword ptr [RSP + 0x68]
PUSH qword ptr [RSP + 0x90]
MOV R9D,dword ptr [RSP + 0x60]
MOV R8D,dword ptr [RSP + 0x88]
MOV ECX,dword ptr [RSP + 0x94]
MOV RDI,qword ptr [RSP + 0x20]
CALL 0x0012db10
MOV R11,qword ptr [RSP + 0x68]
MOV qword ptr [R11],RAX
POP RSI
POP RDI
MOV R10D,dword ptr [RSP + 0x7c]
TEST RAX,RAX
JZ 0x00132907
MOV RDX,qword ptr [R14]
MOV dword ptr [RSP + 0x7c],R10D
MOVZX EAX,byte ptr [RDX]
CMP AL,0x3b
JZ 0x00132365
TEST AL,AL
JNZ 0x00131d30
MOV RBX,qword ptr [RSP + 0x40]
MOV EAX,R10D
MOV qword ptr [RBX + RAX*0x8],0x0
CMP byte ptr [RDX],0x0
JZ 0x00132381
ADD RDX,0x1
MOV qword ptr [R14],RDX
MOV EAX,dword ptr [RSP + 0xa0]
LEA EBX,[RAX + 0x1]
CMP EBX,dword ptr [RSP + 0xa4]
JNC 0x00133c75
MOV EAX,dword ptr [RSP + 0xa0]
MOV RCX,qword ptr [RSP + 0x60]
MOV RDX,qword ptr [RSP + 0x40]
MOV RSI,qword ptr [RSP + 0x30]
MOV RDI,qword ptr [RSP + 0x10]
LEA RBP,[RCX + RAX*0x8]
CALL 0x0012dae0
MOV dword ptr [RSP + 0xa0],EBX
MOV qword ptr [RBP],RAX
MOV RBP,qword ptr [R14]
MOVZX EDX,byte ptr [RBP]
CMP DL,0x3b
JNZ 0x00131cbb
MOVZX R10D,byte ptr [RSP + 0xcf]
MOV RBX,qword ptr [RSP + 0x60]
TEST RBX,RBX
JZ 0x001323f9
MOV EAX,dword ptr [RSP + 0xa0]
MOV qword ptr [RBX + RAX*0x8],0x0
CMP qword ptr [RSP + 0x8],RBP
JBE 0x00131328
CMP byte ptr [RBP],0x3b
MOV RDX,RBP
JZ 0x001334bc
XOR EBX,EBX
CMP R10B,0x73
SETZ BL
CMP byte ptr [RDX],0x7e
JNZ 0x0013244a
LEA RAX,[RDX + 0x1]
MOV qword ptr [R14],RAX
MOVZX ECX,byte ptr [RDX + 0x1]
MOV ESI,ECX
AND ESI,0xffffffef
CMP SIL,0x2d
JZ 0x0013243a
CMP CL,0x2b
JNZ 0x00132441
LEA RAX,[RDX + 0x2]
MOV qword ptr [R14],RAX
CMP byte ptr [RAX],0x25
JZ 0x0013254e
XOR EAX,EAX
MOV RDX,qword ptr [RSP + 0x60]
OR RDX,qword ptr [RSP + 0x70]
OR RDX,RAX
JNZ 0x0013246a
MOV ECX,dword ptr [RSP + 0xc8]
TEST ECX,ECX
JZ 0x00133c54
XOR EDX,EDX
PUSH RDX
MOV ESI,EBX
PUSH RAX
MOV R9,qword ptr [RSP + 0x70]
MOV R8,qword ptr [RSP + 0x80]
MOV RCX,qword ptr [RSP + 0x48]
MOV RDX,qword ptr [RSP + 0xa8]
MOV RDI,qword ptr [RSP + 0x20]
CALL 0x0012d600
MOV R13,RAX
POP RAX
POP RDX
JMP 0x00131430
LEA RAX,[RBP + 0x3]
MOV dword ptr [RSP + 0x50],0x1
MOV qword ptr [R14],RAX
MOVZX EDX,byte ptr [RBP + 0x3]
MOV dword ptr [RSP + 0x78],0x0
JMP 0x0013226f
MOV dword ptr [RSP + 0x50],0x0
MOV dword ptr [RSP + 0x78],0x0
JMP 0x0013226f
LEA RAX,[RBP + 0x3]
MOV dword ptr [RSP + 0x50],0x0
MOV qword ptr [R14],RAX
MOVZX EDX,byte ptr [RBP + 0x3]
MOV dword ptr [RSP + 0x78],0x1
JMP 0x0013226f
LEA RAX,[RBP + 0x3]
MOV dword ptr [RSP + 0x50],0x0
MOV qword ptr [R14],RAX
MOVZX EDX,byte ptr [RBP + 0x3]
MOV dword ptr [RSP + 0x78],0x0
JMP 0x0013226f
MOV EDX,0x5
LEA RSI,[0x146cc8]
XOR EDI,EDI
CALL 0x00107230
MOV RDI,qword ptr [RSP + 0x48]
MOV RSI,RAX
CALL 0x0012e500
MOV RAX,qword ptr [R14]
MOV dword ptr [RSP + 0x50],0x0
MOV dword ptr [RSP + 0x78],0x0
MOVZX EDX,byte ptr [RAX]
JMP 0x0013226f
LEA R12,[RAX + 0x1]
MOV RDX,qword ptr [RSP + 0x8]
LEA RSI,[RSP + 0x100]
MOV RDI,R14
MOV qword ptr [R14],R12
CALL 0x0012e6c0
TEST EAX,EAX
JZ 0x00131328
MOV EAX,dword ptr [RSP + 0xf8]
CMP dword ptr [RSP + 0x100],EAX
JNZ 0x00132596
MOV EAX,dword ptr [RSP + 0xfc]
CMP dword ptr [RSP + 0x104],EAX
JZ 0x00133d38
MOV qword ptr [R14],R12
MOV R9,qword ptr [RSP + 0x8]
MOV RCX,R14
XOR EDX,EDX
MOV RSI,qword ptr [RSP + 0x18]
MOV RDI,qword ptr [RSP + 0x10]
XOR R8D,R8D
CALL 0x00131020
MOV RDX,qword ptr [R14]
MOVZX ECX,byte ptr [RDX]
CMP CL,0x3b
JNZ 0x001325d4
JMP 0x001325d8
ADD RDX,0x1
MOVZX ECX,byte ptr [RDX]
CMP CL,0x3b
JZ 0x001325d8
TEST CL,CL
JNZ 0x001325c8
CMP CL,0x3b
JNZ 0x00132740
ADD RDX,0x1
MOV qword ptr [R14],RDX
JMP 0x0013244c
LEA ESI,[R12 + 0xa]
MOV RDI,RBX
MOV dword ptr [RSP + 0x38],EDX
MOV R12,RSI
SHL RSI,0x3
CALL 0x001072b0
MOV EDX,dword ptr [RSP + 0x38]
MOV RBX,RAX
JMP 0x00131f71
MOV RDI,RBP
XOR R13D,R13D
CALL 0x0012e570
MOV RDI,qword ptr [RSP + 0x40]
CALL 0x00107070
JMP 0x0013133b
MOV dword ptr [RSP + 0x48],0x0
JMP 0x00131b74
TEST DL,DL
JZ 0x00131350
MOV EDX,0x5
LEA RSI,[0x146ca0]
XOR EDI,EDI
CALL 0x00107230
MOV RDI,RBP
MOV RSI,RAX
CALL 0x0012e500
MOV RAX,qword ptr [R14]
MOV dword ptr [RSP + 0x48],0x0
JMP 0x00131b6d
MOV R9D,dword ptr [RSP + 0x50]
MOV R8D,dword ptr [RSP + 0x78]
MOV RDX,RBX
MOV RSI,R13
MOV ECX,dword ptr [RSP + 0x84]
MOV RDI,qword ptr [RSP + 0x10]
MOV dword ptr [RSP + 0x68],R10D
MOV qword ptr [RSP + 0x58],R11
CALL 0x0012db70
MOV R11,qword ptr [RSP + 0x58]
MOV R10D,dword ptr [RSP + 0x68]
MOV qword ptr [R11],RAX
JMP 0x00132345
ADD RBX,0x2
MOV R9,qword ptr [RSP + 0x8]
MOV RSI,qword ptr [RSP + 0x18]
XOR EDX,EDX
MOV qword ptr [R14],RBX
MOV RDI,qword ptr [RSP + 0x10]
XOR R8D,R8D
MOV RCX,R14
CALL 0x00131020
TEST RAX,RAX
JZ 0x00131338
MOV RDX,qword ptr [R14]
CMP byte ptr [RDX],0x3b
JNZ 0x00131350
ADD RDX,0x1
MOV RDI,qword ptr [RSP + 0x10]
XOR R8D,R8D
XOR ECX,ECX
MOV qword ptr [R14],RDX
MOV RSI,RAX
XOR EDX,EDX
CALL 0x0012d940
MOV R13,RAX
JMP 0x00131430
MOV R9,qword ptr [RSP + 0x8]
MOV RSI,qword ptr [RSP + 0x18]
XOR R8D,R8D
MOV RCX,R14
MOV RDI,qword ptr [RSP + 0x10]
XOR EDX,EDX
CALL 0x00131020
MOV RBP,RAX
MOV RAX,qword ptr [R14]
JMP 0x0013155b
MOV dword ptr [RSP + 0x84],0x1
JMP 0x00131dbc
MOV RDI,RBP
CALL 0x0012e570
JMP 0x00131328
MOV R9,qword ptr [RSP + 0x8]
MOV RSI,qword ptr [RSP + 0x18]
XOR R8D,R8D
MOV RCX,R14
MOV RDI,qword ptr [RSP + 0x10]
XOR EDX,EDX
CALL 0x00131020
MOV RBX,RAX
TEST RAX,RAX
JZ 0x00132907
MOV RDI,qword ptr [R14]
CMP byte ptr [RDI],0x3a
JZ 0x00131d3f
MOV RDI,qword ptr [RSP + 0x48]
MOV R13,R15
MOV R15,qword ptr [RSP + 0x30]
CALL 0x0012e570
TEST R15,R15
JZ 0x00132d1b
MOV RDI,R15
CALL 0x00107070
CMP qword ptr [RSP + 0x40],0x0
JNZ 0x00132d1b
TEST R13,R13
JZ 0x00131328
MOV RDI,R13
CALL 0x00107070
JMP 0x00131328
ADD RBX,0x3
MOV qword ptr [R14],RBX
JMP 0x00131699
XOR EBP,EBP
JMP 0x0013167a
ADD dword ptr [RSP + 0x80],0xa
MOV ESI,dword ptr [RSP + 0x80]
MOV RDI,qword ptr [RSP + 0x40]
MOV dword ptr [RSP + 0x90],R10D
SHL RSI,0x3
CALL 0x001072b0
MOV R10D,dword ptr [RSP + 0x90]
MOV qword ptr [RSP + 0x40],RAX
JMP 0x001322e2
MOV qword ptr [RSP + 0x68],0x0
XOR EBP,EBP
MOV qword ptr [RSP + 0x88],0x0
MOV dword ptr [RSP + 0x58],0x1
MOV R13,qword ptr [RSP + 0x10]
MOV RSI,qword ptr [RSP + 0x18]
LEA RDX,[RSP + 0xf8]
MOV RDI,R13
CALL 0x0012e9f0
MOV qword ptr [RSP + 0xb0],RAX
TEST RAX,RAX
JZ 0x00132907
MOV RSI,RBX
MOV RDI,R13
CALL 0x0012e160
MOV qword ptr [RSP + 0xb8],RAX
TEST RAX,RAX
JZ 0x00132781
CMP byte ptr [R15],0x5f
JZ 0x00133525
MOV ECX,0x4
MOV RSI,R15
LEA RDI,[0x146a76]
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x001334fa
MOV R13D,0x1
MOV EBX,0x1
MOV ECX,0x4
LEA RDI,[0x146a4b]
MOV RSI,R15
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x00132deb
MOV R13,R15
MOV EDI,0x8
CALL 0x00107350
XOR R8D,R8D
MOV qword ptr [RAX],0x0
MOV RCX,RAX
MOV RDX,qword ptr [RSP + 0xb0]
MOV RSI,qword ptr [RSP + 0xb8]
MOV RDI,qword ptr [RSP + 0x10]
CALL 0x0012d940
MOV RBX,RAX
TEST RAX,RAX
JNZ 0x001322cc
MOV R13,R15
MOV R15,qword ptr [RSP + 0x30]
JMP 0x00132793
MOV dword ptr [RSP + 0x84],0x2
JMP 0x00131dbc
LEA RDX,[RAX + 0x1]
MOV ESI,0x3b
MOV qword ptr [R14],RDX
MOV RDI,RDX
MOV qword ptr [RSP + 0x58],RDX
CALL 0x00107280
MOV RDX,qword ptr [RSP + 0x58]
TEST RAX,RAX
JZ 0x00132614
MOV RSI,RAX
MOV RDI,RDX
MOV qword ptr [RSP + 0x58],RAX
SUB RSI,RDX
CALL 0x0012e600
MOV R8,qword ptr [RSP + 0x58]
MOV RSI,qword ptr [RSP + 0x40]
MOV RDX,R13
MOV RDI,qword ptr [RSP + 0x10]
MOV RCX,RAX
ADD R8,0x1
MOV qword ptr [R14],R8
MOV R8D,dword ptr [RSP + 0x48]
CALL 0x0012daa0
MOV dword ptr [RSP + 0xc8],0x1
MOV qword ptr [RBX],RAX
JMP 0x00131c3f
MOV EBX,0xb
JMP 0x00131e0e
LEA RAX,[R15 + 0x1]
MOV RDX,qword ptr [RSP + 0x8]
XOR ESI,ESI
MOV RDI,R14
MOV qword ptr [R14],RAX
CALL 0x0012e630
MOVZX R10D,byte ptr [RSP + 0x30]
MOV RBP,RAX
MOV RAX,qword ptr [R14]
CMP byte ptr [RAX],0x2c
JNZ 0x00132126
ADD RAX,0x1
LEA EDI,[RBP + 0x1]
MOV byte ptr [RSP + 0x30],R10B
MOV EBX,EBP
MOV qword ptr [R14],RAX
SHL RDI,0x3
CALL 0x00107350
TEST EBP,EBP
MOVZX R10D,byte ptr [RSP + 0x30]
MOV qword ptr [RSP + 0x70],RAX
JZ 0x00132b3f
MOV RAX,qword ptr [R14]
LEA EBX,[RBP + -0x1]
XOR R13D,R13D
MOV byte ptr [RSP + 0x40],R10B
MOV qword ptr [RSP + 0x38],RBX
MOV RBP,R14
MOVZX EAX,byte ptr [RAX]
CMP AL,0x30
JZ 0x00132b2f
CMP AL,0x31
JZ 0x001334c8
TEST AL,AL
JZ 0x00132126
MOV EDX,0x5
LEA RSI,[0x146c48]
XOR EDI,EDI
XOR EBX,EBX
CALL 0x00107230
MOV RDI,R15
MOV RSI,RAX
CALL 0x0012e500
MOV RAX,qword ptr [RBP]
LEA RDX,[RAX + 0x1]
MOV qword ptr [RBP],RDX
MOVZX EAX,byte ptr [RAX + 0x1]
CMP AL,0x30
JZ 0x00133a51
JLE 0x00132b9a
MOV R14D,0x1
CMP AL,0x31
JZ 0x00132a81
XOR R14D,R14D
CMP AL,0x32
JNZ 0x00132ba2
ADD qword ptr [RBP],0x1
MOV RDX,qword ptr [RSP + 0x8]
XOR ESI,ESI
MOV RDI,RBP
CALL 0x0012e630
MOV qword ptr [RSP + 0x30],RAX
MOV RAX,qword ptr [RBP]
CMP byte ptr [RAX],0x2c
JNZ 0x00132126
ADD RAX,0x1
MOV R9,qword ptr [RSP + 0x8]
MOV RSI,qword ptr [RSP + 0x18]
XOR EDX,EDX
MOV qword ptr [RBP],RAX
MOV RDI,qword ptr [RSP + 0x10]
XOR R8D,R8D
MOV RCX,RBP
CALL 0x00131020
TEST RAX,RAX
JZ 0x00131338
MOV RDX,qword ptr [RSP + 0x30]
MOV RDI,qword ptr [RSP + 0x10]
MOV ECX,EBX
MOV R8D,R14D
MOV RSI,RAX
CALL 0x0012da10
MOV RBX,qword ptr [RSP + 0x70]
MOV qword ptr [RBX + R13*0x8],RAX
TEST RAX,RAX
JZ 0x00131338
MOV RAX,qword ptr [RBP]
CMP byte ptr [RAX],0x3b
JNZ 0x00131338
ADD RAX,0x1
LEA EBX,[R13 + 0x1]
LEA RDX,[R13 + 0x1]
MOV qword ptr [RBP],RAX
CMP R13,qword ptr [RSP + 0x38]
JZ 0x00132b36
MOVZX EAX,byte ptr [RAX]
MOV R13,RDX
CMP AL,0x30
JNZ 0x00132a1e
XOR EBX,EBX
JMP 0x00132a4e
MOVZX R10D,byte ptr [RSP + 0x40]
MOV R14,RBP
MOV RAX,qword ptr [RSP + 0x70]
MOV R15,qword ptr [R14]
MOV qword ptr [RAX + RBX*0x8],0x0
CMP qword ptr [RSP + 0x8],R15
JBE 0x00131338
JMP 0x00131a77
MOV RDI,qword ptr [RSP + 0x10]
LEA RDX,[RSP + 0xe8]
MOV RSI,RBX
CALL 0x0012e1b0
TEST RAX,RAX
SETZ AL
MOVZX EAX,AL
MOV dword ptr [RSP + 0x90],EAX
JMP 0x00131d7d
MOV RDI,RBX
XOR R13D,R13D
CALL 0x0012e570
JMP 0x0013133b
TEST AL,AL
JZ 0x00132126
MOV EDX,0x5
LEA RSI,[0x146c70]
XOR EDI,EDI
XOR R14D,R14D
CALL 0x00107230
MOV RDI,R15
MOV RSI,RAX
CALL 0x0012e500
JMP 0x00132a81
ADD RAX,0x1
MOV RDX,qword ptr [RSP + 0x8]
XOR ESI,ESI
MOV RDI,R14
MOV qword ptr [R14],RAX
CALL 0x0012e630
MOV RDX,qword ptr [R14]
CMP byte ptr [RDX],0x3b
JNZ 0x00132781
AND EAX,0x7fffffff
LEA RCX,[RDX + 0x1]
MOV qword ptr [R14],RCX
MOV qword ptr [RSP + 0x88],RAX
MOVZX EAX,byte ptr [RDX + 0x1]
CMP AL,0x3b
JZ 0x00132d6f
TEST AL,AL
JZ 0x00132d6f
MOV R9,qword ptr [RSP + 0x8]
MOV RSI,qword ptr [RSP + 0x18]
XOR EDX,EDX
XOR R8D,R8D
MOV RDI,qword ptr [RSP + 0x10]
MOV RCX,R14
CALL 0x00131020
MOV RBP,RAX
MOV RAX,qword ptr [R14]
MOVZX EDX,byte ptr [RAX]
CMP DL,0x3a
JZ 0x00133a3b
CMP DL,0x3b
JNZ 0x00132781
ADD RAX,0x1
MOV qword ptr [RSP + 0x68],RBP
XOR EBP,EBP
MOV qword ptr [R14],RAX
MOV dword ptr [RSP + 0x58],0x0
JMP 0x001322ba
ADD RAX,0x1
MOV RBP,qword ptr [RSP + 0x30]
MOV qword ptr [R14],RAX
MOV RDI,RBP
CALL 0x00107250
MOV RSI,RBP
MOV RDI,R15
MOV RDX,RAX
CALL 0x001070e0
TEST EAX,EAX
JNZ 0x00132810
MOV qword ptr [RSP + 0x68],0x0
XOR EBP,EBP
MOV qword ptr [RSP + 0x88],0x0
MOV dword ptr [RSP + 0x58],0x1
JMP 0x001322ba
ADD RAX,0x1
MOV dword ptr [RSP + 0x58],0x0
XOR EBP,EBP
MOV qword ptr [R14],RAX
MOV qword ptr [RSP + 0x68],0x0
MOV qword ptr [RSP + 0x88],0x0
JMP 0x001322ba
MOV R15,qword ptr [RSP + 0x40]
MOV RDI,R15
CALL 0x0012e570
MOV RDI,RBX
CALL 0x00107070
MOV RDI,qword ptr [RSP + 0x20]
CALL 0x00107070
MOV RDI,R13
XOR R13D,R13D
CALL 0x00107070
JMP 0x0013133b
MOV R15,qword ptr [RSP + 0x40]
MOV RDI,R15
CALL 0x0012e570
JMP 0x00132cf2
MOV RDI,qword ptr [RSP + 0x40]
CALL 0x00107070
JMP 0x001327b0
MOVZX EAX,byte ptr [R13]
TEST AL,AL
JZ 0x00131350
XOR EDX,EDX
JMP 0x00132d61
CMP AL,0x3e
JZ 0x00132d6a
TEST EDX,EDX
JNZ 0x00132d50
CMP AL,0x3a
JZ 0x00133a33
ADD R13,0x1
MOVZX EAX,byte ptr [R13]
TEST AL,AL
JZ 0x00131350
CMP AL,0x3c
JNZ 0x00132d40
ADD EDX,0x1
JMP 0x00132d50
SUB EDX,0x1
JMP 0x00132d50
MOV qword ptr [RSP + 0x68],0x0
XOR EBP,EBP
MOV dword ptr [RSP + 0x58],0x0
JMP 0x001322ba
MOV RBP,qword ptr [RSP + 0x30]
XOR R13D,R13D
MOV RDI,RBP
CALL 0x0012e570
JMP 0x0013133b
CALL 0x0012d5a0
MOV R13,RAX
JMP 0x00131430
ADD RAX,0x1
MOV RBP,RBX
MOV R12D,0x1
MOV qword ptr [R14],RAX
TEST EDX,EDX
JNZ 0x00133801
MOV RDX,qword ptr [RSP + 0x20]
MOV RSI,qword ptr [RSP + 0x8]
MOV R8D,R12D
MOV RCX,RBX
MOV qword ptr [RBP],0x0
MOV RDI,qword ptr [RSP + 0x10]
CALL 0x0012d940
MOV R13,RAX
JMP 0x00131430
TEST EBX,EBX
JNZ 0x00133cbe
MOV dword ptr [RSP + 0x90],0x0
MOV RAX,qword ptr [RSP + 0x20]
TEST RAX,RAX
JZ 0x00132e17
MOV RDI,RAX
CALL 0x00107250
MOV dword ptr [RSP + 0x90],EAX
MOV R10D,dword ptr [RSP + 0x78]
MOV R11D,dword ptr [RSP + 0x50]
LEA RAX,[0x13da2a]
LEA RDX,[0x13d80e]
MOV EBX,dword ptr [RSP + 0x90]
LEA RCX,[0x146994]
TEST R10D,R10D
CMOVZ RDX,RAX
TEST R11D,R11D
CMOVZ RCX,RAX
TEST EBX,EBX
JZ 0x0013382c
MOV RDI,qword ptr [RSP + 0x20]
LEA RBX,[RSP + 0x100]
TEST RDI,RDI
JZ 0x0013367a
MOV ESI,0x3c
MOV qword ptr [RSP + 0xc0],RCX
MOV qword ptr [RSP + 0xa8],RDX
CALL 0x00107280
MOV RDX,qword ptr [RSP + 0xa8]
MOV RCX,qword ptr [RSP + 0xc0]
TEST RAX,RAX
JZ 0x0013367a
LEA RSI,[0x146a50]
MOV RDI,RBX
XOR EAX,EAX
CALL 0x00107760
MOV dword ptr [RSP + 0x90],0x0
MOV qword ptr [RSP + 0xa8],0x0
MOV RDX,RBX
MOV ECX,dword ptr [RDX]
ADD RDX,0x4
LEA EAX,[RCX + -0x1010101]
NOT ECX
AND EAX,ECX
AND EAX,0x80808080
JZ 0x00132ec7
MOV ECX,EAX
MOV RDI,qword ptr [RSP + 0x30]
SHR ECX,0x10
TEST EAX,0x8080
CMOVZ EAX,ECX
LEA RCX,[RDX + 0x2]
MOVZX R8D,byte ptr [RDI]
MOV RDI,R15
CMOVZ RDX,RCX
MOV ECX,EAX
MOV byte ptr [RSP + 0xc0],R8B
ADD CL,AL
SBB RDX,0x3
SUB RDX,RBX
MOV qword ptr [RSP + 0xd0],RDX
CALL 0x00107250
MOV ESI,dword ptr [RSP + 0x90]
MOVZX R8D,byte ptr [RSP + 0xc0]
MOV R9,RAX
MOV RDX,qword ptr [RSP + 0xd0]
ADD ESI,0x1
TEST R13D,R13D
JNZ 0x0013364a
MOV RDI,qword ptr [RSP + 0x30]
OR RCX,-0x1
XOR EAX,EAX
ADD EDX,ESI
SCASB.REPNE RDI
SUB EDX,ECX
LEA R13D,[RDX + R9*0x1 + -0x2]
CMP R8B,0x6f
JNZ 0x00133a16
MOV RAX,qword ptr [RSP + 0x30]
CMP byte ptr [RAX + 0x1],0x70
JNZ 0x00133a16
MOV RAX,qword ptr [RSP + 0x30]
MOVZX EAX,byte ptr [RAX + 0x2]
CMP AL,0x24
JNZ 0x00133a0e
MOV RAX,qword ptr [RSP + 0x30]
XOR ESI,ESI
LEA RDI,[RAX + 0x3]
CALL 0x00107540
MOV R8,RAX
TEST RAX,RAX
JZ 0x00133d6c
MOV qword ptr [RSP + 0x90],R8
MOV RDI,R8
XOR EAX,EAX
OR RCX,-0x1
SCASB.REPNE RDI
MOV RAX,RCX
NOT RAX
LEA EDI,[R13 + RAX*0x1 + -0x1]
CALL 0x00107350
MOV RSI,qword ptr [RSP + 0x30]
MOV EDX,0x3
MOV RDI,RAX
MOV R13,RAX
CALL 0x001070d0
MOV R8,qword ptr [RSP + 0x90]
LEA RDI,[R13 + 0x3]
MOV RSI,R8
CALL 0x001070f0
MOV RDI,R13
CALL 0x00107250
MOV RSI,RBX
LEA RDI,[R13 + RAX*0x1]
MOV dword ptr [RSP + 0x90],EAX
CALL 0x00107220
MOV RBX,qword ptr [RSP + 0xa8]
TEST RBX,RBX
JZ 0x00133022
MOV RSI,RBX
MOV RDI,RAX
CALL 0x001070f0
MOV RSI,R15
MOV RDI,R13
CALL 0x00107740
XOR EAX,EAX
CMP byte ptr [R15],0x0
JZ 0x001328ca
TEST AL,AL
JNZ 0x001328ca
MOV qword ptr [RSP + 0xf0],R13
CMP byte ptr [R13],0x5f
JNZ 0x0013305b
CMP byte ptr [R13 + 0x1],0x5a
JZ 0x00133b71
MOV RAX,qword ptr [RSP + 0x10]
MOV EDI,0xa0
MOV qword ptr [RSP + 0x110],0x0
MOV dword ptr [RSP + 0x118],0x0
MOV qword ptr [RSP + 0x100],RAX
MOV RAX,qword ptr [RSP + 0x18]
MOV dword ptr [RSP + 0x12c],0xa
MOV qword ptr [RSP + 0x108],RAX
CALL 0x00107350
MOV dword ptr [RSP + 0x128],0x0
MOV qword ptr [RSP + 0x120],RAX
MOV EAX,dword ptr [RSP + 0x90]
TEST EAX,EAX
JZ 0x0013360b
MOV RBX,qword ptr [RSP + 0xf0]
MOV EDX,EAX
ADD RDX,RBX
MOVZX EAX,byte ptr [RDX + 0x2]
CMP RBX,RDX
JZ 0x00133963
TEST AL,AL
JZ 0x00133635
LEA RBX,[RSP + 0x100]
LEA RSI,[RSP + 0xf0]
MOV RDI,RBX
CALL 0x00130f70
TEST EAX,EAX
JZ 0x001332f6
MOV RAX,qword ptr [RSP + 0xf0]
MOV qword ptr [RSP + 0x90],RAX
MOVZX EAX,byte ptr [RAX]
TEST AL,AL
JZ 0x001331d3
LEA RBX,[RSP + 0x100]
XOR R8D,R8D
MOV dword ptr [RSP + 0xa8],0x0
LEA RDI,[RSP + 0xf0]
LEA RSI,[RBX + 0x18]
MOV RCX,qword ptr [RSP + 0x90]
XOR EDX,EDX
MOV qword ptr [RSP + 0xd0],RBP
MOV qword ptr [RSP + 0xc0],RSI
MOV RBP,R8
MOV qword ptr [RSP + 0xd8],R13
MOV R13,RDI
SUB EAX,0x30
CMP AL,0x44
JA 0x001338c1
LEA RDI,[0x1473d8]
MOVZX EAX,AL
MOVSXD RAX,dword ptr [RDI + RAX*0x4]
ADD RAX,RDI
JMP RAX
TEST RBP,RBP
CMOVZ RBP,RCX
ADD RCX,0x1
MOV qword ptr [RSP + 0xf0],RCX
MOV R9D,dword ptr [RSP + 0xa8]
TEST R9D,R9D
JNZ 0x0013328f
MOV RCX,qword ptr [RSP + 0xf0]
MOVZX EAX,byte ptr [RCX]
TEST AL,AL
JNZ 0x0013316a
MOV RBP,qword ptr [RSP + 0xd0]
MOV R13,qword ptr [RSP + 0xd8]
TEST EDX,EDX
JZ 0x00133e1c
MOV RDI,qword ptr [RSP + 0x120]
CALL 0x00107070
CMP qword ptr [RSP + 0x110],0x0
MOV qword ptr [RSP + 0x120],0x0
JZ 0x00133ce5
MOV EAX,dword ptr [RSP + 0x118]
MOV RBX,qword ptr [RSP + 0x110]
MOV dword ptr [RSP + 0xec],EAX
TEST RBX,RBX
JZ 0x00132907
MOV R8D,dword ptr [RSP + 0xec]
MOV RCX,RBX
JMP 0x001328e1
MOV RDI,qword ptr [RSP + 0x90]
MOV R13,R15
MOV R15,qword ptr [RSP + 0x30]
CALL 0x0012e540
MOV RDI,qword ptr [RSP + 0x120]
TEST RDI,RDI
JZ 0x00132793
CALL 0x00107070
JMP 0x00132793
TEST RBP,RBP
MOV RDI,R13
CMOVZ RBP,RCX
XOR ESI,ESI
CALL 0x0012eea0
TEST EAX,EAX
JZ 0x001332f6
MOV RDX,qword ptr [RSP + 0xf0]
MOV RSI,RBP
MOV RDI,RBX
SUB RDX,RBP
CALL 0x0012e5a0
TEST EAX,EAX
JZ 0x001332f6
XOR EBP,EBP
LEA RCX,[RBX + 0x18]
LEA RDX,[RBX + 0x10]
MOV RSI,R13
MOV RDI,RBX
CALL 0x00130da0
TEST EAX,EAX
JZ 0x001332f6
MOV dword ptr [RSP + 0xa8],0x1
MOV EDX,0x1
JMP 0x001331ac
XOR EDX,EDX
MOV RSI,R13
MOV RDI,RBX
MOV qword ptr [RSP + 0xa8],RCX
CALL 0x00130930
TEST EAX,EAX
JZ 0x001332f6
MOV RCX,qword ptr [RSP + 0xa8]
MOV RDX,qword ptr [RSP + 0xf0]
MOV RDI,RBX
SUB RDX,RCX
MOV RSI,RCX
CALL 0x0012e5a0
TEST EAX,EAX
JNZ 0x0013328d
MOV R13,R15
MOV R15,qword ptr [RSP + 0x30]
JMP 0x0013323f
ADD RCX,0x1
LEA RDX,[RBX + 0x10]
MOV RSI,R13
MOV RDI,RBX
MOV qword ptr [RSP + 0xf0],RCX
MOV RCX,qword ptr [RSP + 0xc0]
CALL 0x00130da0
TEST EAX,EAX
JZ 0x001332f6
XOR EBP,EBP
MOV EDX,0x1
JMP 0x0013319b
TEST RBP,RBP
MOV RSI,R13
MOV RDI,RBX
CMOVZ RBP,RCX
XOR EDX,EDX
CALL 0x00130390
TEST EAX,EAX
JNZ 0x00133273
JMP 0x001332f6
MOV RDI,qword ptr [RSP + 0x10]
CALL 0x0012d550
MOV R13,RAX
JMP 0x00131430
MOVZX EDX,byte ptr [RSP + 0x30]
TEST R13,R13
SETZ CL
AND EDX,0x1
JZ 0x001336cb
TEST CL,CL
JZ 0x001336cb
TEST RBX,RBX
JZ 0x00133358
CMP RBX,-0x1
JNZ 0x00133a5c
MOV RAX,qword ptr [RSP + 0x20]
TEST RAX,RAX
JZ 0x001333cf
LEA RSI,[0x146926]
MOV RDI,RAX
CALL 0x00107450
TEST EAX,EAX
JZ 0x0013373f
MOV RDI,qword ptr [RSP + 0x20]
LEA RSI,[0x14690f]
CALL 0x00107450
TEST EAX,EAX
JZ 0x0013348a
MOV RDI,qword ptr [RSP + 0x10]
MOV EDX,0x1
MOV ESI,0x4
CALL 0x0012d560
MOV R13,RAX
JMP 0x00131430
MOV qword ptr [R14],R15
MOV R9,qword ptr [RSP + 0x8]
XOR R8D,R8D
MOV RCX,R14
MOV RSI,qword ptr [RSP + 0x18]
MOV RDI,qword ptr [RSP + 0x10]
XOR EDX,EDX
CALL 0x00131020
MOV R12,RAX
TEST RAX,RAX
JZ 0x00131338
MOV RBP,qword ptr [R14]
MOVZX EAX,byte ptr [RBP]
JMP 0x001318dd
MOV ECX,0x18
LEA RDI,[0x14699d]
MOV RSI,RBP
CMPSB.REPE RDI,RSI
SETA AL
SBB AL,0x0
TEST AL,AL
JNZ 0x0013345a
MOV RDI,qword ptr [RSP + 0x38]
MOV EDX,0x17
LEA RSI,[0x1469b6]
CALL 0x001070e0
TEST EAX,EAX
JZ 0x0013373f
TEST R13,R13
JNZ 0x00131960
TEST R14D,R14D
JNZ 0x00131960
MOV RDI,qword ptr [RSP + 0x38]
MOV EDX,0x18
LEA RSI,[0x1469ce]
CALL 0x001070e0
TEST EAX,EAX
JNZ 0x00131960
MOV RDI,qword ptr [RSP + 0x10]
MOV EDX,0x1
MOV ESI,0x8
CALL 0x0012d560
MOV R13,RAX
JMP 0x00131430
MOV dword ptr [RSP + 0x48],0x2
JMP 0x00131b6d
MOV qword ptr [RSP + 0x60],0x0
LEA RDX,[RBP + 0x1]
MOV qword ptr [R14],RDX
JMP 0x00132411
MOV EBX,0x1
JMP 0x00132a4e
MOV RDI,qword ptr [RSP + 0x10]
CALL 0x0012d550
MOV R13,RAX
JMP 0x001320a4
XOR EDX,EDX
JMP 0x00132215
MOV RDI,qword ptr [RSP + 0x40]
CALL 0x00107070
JMP 0x0013133b
MOV RAX,qword ptr [RSP + 0x20]
TEST RAX,RAX
JZ 0x001339d0
MOV RDI,qword ptr [RSP + 0x30]
MOV RSI,RAX
XOR R13D,R13D
CALL 0x00107450
TEST EAX,EAX
SETZ R13B
XOR EBX,EBX
JMP 0x001328a9
CMP byte ptr [R15 + 0x1],0x5f
JZ 0x00133915
MOV EDX,0x4
LEA RSI,[0x146a76]
MOV RDI,R15
CALL 0x001070e0
TEST EAX,EAX
JNZ 0x001338ea
MOV R13D,0x1
MOV EBX,0x1
MOVZX EAX,byte ptr [R15 + 0x1]
CMP AL,0x24
JZ 0x00133564
CMP AL,0x2e
JNZ 0x0013356f
CMP byte ptr [R15 + 0x2],0x5f
JZ 0x001336a5
MOV EDX,0x4
LEA RSI,[0x146a4b]
MOV RDI,R15
CALL 0x001070e0
TEST EAX,EAX
JZ 0x001336a5
CMP byte ptr [R15 + 0x1],0x5a
JNZ 0x00132deb
MOV qword ptr [RSP + 0xf0],R15
CMP byte ptr [R15],0x5f
JNZ 0x001335af
CMP byte ptr [R15 + 0x1],0x5a
JZ 0x00133b6e
MOV RAX,qword ptr [RSP + 0x10]
MOV EDI,0xa0
MOV qword ptr [RSP + 0x110],0x0
MOV R13,R15
MOV dword ptr [RSP + 0x118],0x0
MOV qword ptr [RSP + 0x100],RAX
MOV RAX,qword ptr [RSP + 0x18]
MOV dword ptr [RSP + 0x12c],0xa
MOV qword ptr [RSP + 0x108],RAX
CALL 0x00107350
MOV dword ptr [RSP + 0x128],0x0
MOV qword ptr [RSP + 0x120],RAX
MOV RBX,qword ptr [RSP + 0xf0]
MOV RDI,RBX
JMP 0x00133626
CMP byte ptr [RAX + 0x1],0x5f
LEA RDI,[RAX + 0x1]
JZ 0x00133885
MOV ESI,0x5f
CALL 0x00107280
TEST RAX,RAX
JNZ 0x00133618
MOV RDI,RBX
MOV R13,R15
MOV R15,qword ptr [RSP + 0x30]
CALL 0x0012e540
JMP 0x0013323f
ADD EDX,ESI
LEA R13D,[RDX + RAX*0x1]
CMP R8B,0x6f
JNZ 0x00133665
MOV RAX,qword ptr [RSP + 0x30]
CMP byte ptr [RAX + 0x1],0x70
JZ 0x00133d44
MOV EDI,R13D
CALL 0x00107350
MOV R13,RAX
MOV byte ptr [R13],0x0
JMP 0x00132fee
MOV R8D,dword ptr [RSP + 0x90]
LEA RSI,[0x146a57]
MOV RDI,RBX
XOR EAX,EAX
CALL 0x00107760
MOV RAX,qword ptr [RSP + 0x20]
MOV qword ptr [RSP + 0xa8],RAX
JMP 0x00132ec4
CMP byte ptr [R15 + 0x1],0x5a
JZ 0x001328c7
MOV EAX,0x1
AND EAX,0x1
MOV R13,R15
MOV dword ptr [RSP + 0x90],0x0
JMP 0x0013302f
TEST RBX,RBX
SETZ AL
TEST DL,DL
JZ 0x0013385f
TEST AL,AL
JZ 0x0013385f
TEST R13,R13
JG 0x00133e07
JS 0x00133b52
MOV RAX,RBX
NOT RAX
CMP R13,RAX
JZ 0x00133708
LEA RAX,[RBX + 0x1]
CMP R13,RAX
JNZ 0x00131987
CMP RBX,0x7f
JZ 0x00133dee
CMP RBX,0x7fff
JZ 0x00133c3b
CMP RBX,0x7fffffff
JZ 0x00133c22
MOV RAX,0x7fffffffffffffff
CMP RBX,RAX
JNZ 0x00131987
MOV RDI,qword ptr [RSP + 0x10]
XOR EDX,EDX
MOV ESI,0x8
CALL 0x0012d560
MOV R13,RAX
JMP 0x00131430
ADD RAX,0x2
MOV R15D,0x1
MOV qword ptr [R14],RAX
JMP 0x0013158f
CMP byte ptr [RBP + 0x2],0x24
JNZ 0x00131cf7
MOV qword ptr [R14],R13
MOVZX EAX,byte ptr [RAX + 0x2]
MOV RBX,R13
CMP AL,0x2e
JNZ 0x00133793
JMP 0x00133797
ADD RBX,0x1
MOVZX EAX,byte ptr [RBX]
CMP AL,0x2e
JZ 0x00133797
TEST AL,AL
JNZ 0x00133788
CMP AL,0x2e
JNZ 0x00133cc5
MOV RSI,RBX
MOV RDI,R13
ADD RBX,0x1
SUB RSI,R13
CALL 0x0012e600
MOV qword ptr [R14],RBX
MOV qword ptr [RSP + 0x30],RAX
JMP 0x00131d0c
MOV RDI,qword ptr [RSP + 0x10]
MOV RSI,RAX
CALL 0x0012e0c0
TEST RAX,RAX
JZ 0x00133d0e
MOV RSI,RAX
XOR EDX,EDX
LEA RDI,[0x146a0b]
XOR EAX,EAX
CALL 0x001072f0
MOV R13,RAX
JMP 0x00131295
ADD RAX,0x2
MOV R15D,0x1
MOV qword ptr [R14],RAX
JMP 0x001315d7
LEA EAX,[RDX + -0x1]
MOV RDI,qword ptr [RSP + 0x10]
MOV dword ptr [RSP + 0x30],EDX
LEA RBP,[RBX + RAX*0x8]
MOV RSI,qword ptr [RBP]
CALL 0x0012e080
CMP EAX,0x2
JZ 0x00133857
MOV EDX,dword ptr [RSP + 0x30]
LEA RBP,[RBX + RDX*0x8]
JMP 0x00132dc1
LEA RBX,[RSP + 0x100]
LEA RSI,[0x146a50]
XOR EAX,EAX
MOV RDI,RBX
CALL 0x00107760
MOV RAX,qword ptr [RSP + 0x20]
MOV qword ptr [RSP + 0xa8],RAX
JMP 0x00132ec4
XOR R12D,R12D
JMP 0x00132dc1
TEST R13,R13
JLE 0x00133b1f
TEST AL,AL
JZ 0x00133b1f
MOV RDI,qword ptr [RSP + 0x10]
MOV ESI,R13D
CALL 0x0012d580
MOV R13,RAX
JMP 0x00131430
TEST RDI,RDI
JZ 0x00133635
LEA RSI,[0x146968]
MOV RDI,RAX
MOV qword ptr [RSP + 0x90],RAX
CALL 0x001073a0
MOV RDX,qword ptr [RSP + 0x90]
CMP EAX,0x2
JBE 0x001330d0
SUB EAX,0x2
ADD RDX,RAX
JMP 0x001330d0
MOV RCX,qword ptr [RSP + 0xc0]
LEA RDX,[RBX + 0x10]
MOV RSI,R13
MOV RDI,RBX
CALL 0x00130da0
TEST EAX,EAX
JZ 0x001332f6
MOV EDX,0x1
JMP 0x0013319b
CMP qword ptr [RSP + 0x20],0x0
JZ 0x00133d62
MOV RSI,qword ptr [RSP + 0x20]
MOV RDI,qword ptr [RSP + 0x30]
XOR R13D,R13D
CALL 0x00107450
TEST EAX,EAX
SETZ R13B
XOR EBX,EBX
JMP 0x00133557
MOVZX EDX,byte ptr [R15 + 0x2]
MOV RAX,RDX
TEST byte ptr [R12 + RDX*0x2],0x4
JNZ 0x00133937
CMP DL,0x51
SETZ DL
CMP AL,0x74
SETZ AL
OR DL,AL
JZ 0x00133da0
MOV EDX,0x4
LEA RSI,[0x146a4b]
MOV RDI,R15
CALL 0x001070e0
TEST EAX,EAX
JZ 0x001336a5
MOV EBX,0x1
MOV R13D,0x1
JMP 0x0013358b
MOVZX ECX,AL
TEST byte ptr [R12 + RCX*0x2],0x4
JNZ 0x00133ab6
CMP AL,0x51
MOV RDI,RDX
SETZ CL
CMP AL,0x74
SETZ AL
OR CL,AL
JZ 0x0013398b
JMP 0x00133ab6
ADD RDI,0x1
CMP byte ptr [RDI],0x5f
JZ 0x00133987
LEA RSI,[0x146967]
MOV qword ptr [RSP + 0x90],RDX
CALL 0x00107840
MOV RDX,qword ptr [RSP + 0x90]
TEST RAX,RAX
JZ 0x001339bb
CMP byte ptr [RAX + 0x2],0x0
JNZ 0x00133ae3
MOV RDI,RDX
MOV R13,R15
MOV R15,qword ptr [RSP + 0x30]
CALL 0x0012e540
JMP 0x0013323f
XOR R13D,R13D
XOR EBX,EBX
JMP 0x001328a9
MOV EDX,0x5
XOR EDI,EDI
LEA RSI,[0x1469e7]
CALL 0x00107230
MOV RDI,R15
MOV RSI,RAX
CALL 0x0012e500
MOV RDI,qword ptr [RSP + 0x10]
XOR EDX,EDX
MOV ESI,0x4
CALL 0x0012d560
JMP 0x001319b0
CMP AL,0x2e
JZ 0x00132f86
MOV EDI,R13D
CALL 0x00107350
MOV RSI,qword ptr [RSP + 0x30]
MOV R13,RAX
MOV RDI,R13
CALL 0x001070f0
JMP 0x00132fee
MOV R12,R13
JMP 0x00131e52
MOV qword ptr [RSP + 0x68],0x0
MOV dword ptr [RSP + 0x58],0x0
JMP 0x001322ba
MOV R14D,0x2
JMP 0x00132a81
CMP RBX,0x7f
JZ 0x00133dee
MOV ESI,EBX
TEST RBX,RBX
JS 0x00133b55
CMP RBX,0xff
JZ 0x00133b03
CMP RBX,0xffff
JZ 0x00133ac7
MOV EAX,0xffffffff
CMP RBX,RAX
JNZ 0x00131987
JMP 0x001333cf
MOV R15,qword ptr [RSP + 0x50]
MOV RDI,R15
CALL 0x0012e570
MOV RDI,qword ptr [RSP + 0x38]
CALL 0x00107070
JMP 0x0013133b
ADD RDX,0x2
MOV qword ptr [RSP + 0xf0],RDX
JMP 0x00133105
MOV RDI,qword ptr [RSP + 0x10]
MOV EDX,0x1
MOV ESI,0x2
CALL 0x0012d560
MOV R13,RAX
JMP 0x00131430
LEA RBX,[RSP + 0x100]
LEA RSI,[RSP + 0xf0]
MOV RDX,RAX
MOV RDI,RBX
CALL 0x00130f70
JMP 0x001330fd
MOV RDI,qword ptr [RSP + 0x10]
MOV EDX,0x1
MOV ESI,0x1
CALL 0x0012d560
MOV R13,RAX
JMP 0x00131430
CMP RBX,-0x1
JNZ 0x00133b2d
TEST CL,CL
JNZ 0x00133395
TEST R13,R13
JZ 0x00133a66
JNS 0x001336f0
TEST AL,AL
JZ 0x001336f0
CMP R13,-0x8
JZ 0x00133b52
TEST DL,DL
JZ 0x001336f0
MOV ESI,R13D
MOV RDI,qword ptr [RSP + 0x10]
NEG ESI
MOV EDX,0x1
CALL 0x0012d560
MOV R13,RAX
JMP 0x00131430
MOV R13,R15
LEA RBX,[RSP + 0x100]
MOV ESI,0x3
MOV RDI,R13
MOV RDX,RBX
CALL 0x001390d0
TEST RAX,RAX
JZ 0x00133c0a
CMP dword ptr [RAX],0x3
JNZ 0x00133bcc
MOV RAX,qword ptr [RAX + 0x10]
CMP dword ptr [RAX],0x29
JNZ 0x00133bcc
MOV RDI,qword ptr [RSP + 0x10]
MOV RDX,qword ptr [RAX + 0x10]
LEA RCX,[RSP + 0xec]
MOV RSI,qword ptr [RSP + 0x18]
CALL 0x0012f7f0
MOV RDI,qword ptr [RSP + 0x100]
MOV RBX,RAX
CALL 0x00107070
JMP 0x00133211
MOV EDX,0x5
XOR EDI,EDI
LEA RSI,[0x146cf0]
MOV R13,R15
MOV R15,qword ptr [RSP + 0x30]
CALL 0x00107230
MOV RDI,qword ptr [0x00157220]
MOV RSI,RAX
XOR EAX,EAX
CALL 0x00107850
MOV RDI,qword ptr [RSP + 0x100]
CALL 0x00107070
JMP 0x00132793
MOV RBP,R13
MOV R13,R15
MOV R15,qword ptr [RSP + 0x30]
MOV RDI,RBP
CALL 0x0012e540
JMP 0x00132793
MOV RDI,qword ptr [RSP + 0x10]
XOR EDX,EDX
MOV ESI,0x4
CALL 0x0012d560
MOV R13,RAX
JMP 0x00131430
MOV RDI,qword ptr [RSP + 0x10]
XOR EDX,EDX
MOV ESI,0x2
CALL 0x0012d560
MOV R13,RAX
JMP 0x00131430
MOV RCX,qword ptr [RSP + 0x38]
MOV RDX,qword ptr [RSP + 0x98]
MOV ESI,EBX
MOV RDI,qword ptr [RSP + 0x10]
CALL 0x0012d5b0
MOV R13,RAX
JMP 0x00131430
ADD dword ptr [RSP + 0xa4],0xa
MOV ESI,dword ptr [RSP + 0xa4]
MOV RDI,qword ptr [RSP + 0x60]
SHL RSI,0x3
CALL 0x001072b0
MOV qword ptr [RSP + 0x60],RAX
JMP 0x00132398
MOV RDI,qword ptr [RSP + 0x10]
XOR EDX,EDX
MOV ESI,0x4
CALL 0x0012d560
MOV RBP,RAX
TEST RAX,RAX
JNZ 0x00131550
JMP 0x00131338
XOR EAX,EAX
JMP 0x001336b5
MOV R13,R15
MOV RDI,qword ptr [RSP + 0x48]
MOV R15,qword ptr [RSP + 0x30]
CALL 0x0012e570
TEST R15,R15
JNZ 0x0013279c
JMP 0x001327a4
XOR EDI,EDI
MOV EDX,0x5
LEA RSI,[0x146d18]
CALL 0x00107230
MOV RDI,qword ptr [0x00157220]
MOV RSI,RAX
XOR EAX,EAX
CALL 0x00107850
JMP 0x001331fb
MOV EDX,0x5
LEA RSI,[0x1469fa]
XOR EDI,EDI
CALL 0x00107230
MOV RDI,RBP
MOV RSI,RAX
CALL 0x0012e500
LEA RAX,[0x146979]
JMP 0x001337d4
MOV EDX,0x1
XOR EAX,EAX
JMP 0x0013246c
MOV RAX,qword ptr [RSP + 0x30]
MOVZX EAX,byte ptr [RAX + 0x2]
CMP AL,0x24
JZ 0x00132f86
CMP AL,0x2e
JNZ 0x00133665
JMP 0x00132f86
XOR R13D,R13D
XOR EBX,EBX
JMP 0x00133557
XOR EDI,EDI
MOV R13,R15
MOV EDX,0x5
MOV R15,qword ptr [RSP + 0x30]
LEA RSI,[0x146a60]
CALL 0x00107230
MOV RDI,qword ptr [0x00157220]
MOV RDX,R15
MOV RSI,RAX
XOR EAX,EAX
CALL 0x00107850
JMP 0x0013279c
MOV EDX,0x4
LEA RSI,[0x146a76]
MOV RDI,R15
CALL 0x001070e0
TEST EAX,EAX
JZ 0x00133937
CMP qword ptr [RSP + 0x20],0x0
JNZ 0x001338f6
MOV EDX,0x4
LEA RSI,[0x146a4b]
MOV RDI,R15
CALL 0x001070e0
TEST EAX,EAX
JZ 0x001336a5
XOR R13D,R13D
XOR EBX,EBX
JMP 0x0013358b
MOV RDI,qword ptr [RSP + 0x10]
XOR EDX,EDX
MOV ESI,0x1
CALL 0x0012d560
MOV R13,RAX
JMP 0x00131430
MOV RDI,qword ptr [RSP + 0x10]
MOV ESI,R13D
CALL 0x0012d5a0
MOV R13,RAX
JMP 0x00131430
LEA RBX,[RSP + 0x100]
LEA RCX,[RSP + 0x118]
LEA RDX,[RSP + 0x110]
LEA RSI,[RSP + 0xf0]
MOV RDI,RBX
CALL 0x00130da0
TEST EAX,EAX
JNZ 0x001331d3
JMP 0x001332f6
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nlong FUN_00131020(void *param_1,long param_2,char *param_3,ulong *param_4,undefined8 *param_5,\n                 byte *param_6)\n\n{\n  char cVar1;\n  undefined8 uVar2;\n  byte bVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  long *plVar10;\n  void *__ptr;\n  ulong uVar11;\n  void *pvVar12;\n  long lVar13;\n  undefined8 uVar14;\n  char *pcVar15;\n  char *pcVar16;\n  long lVar17;\n  long lVar18;\n  undefined8 *puVar19;\n  size_t sVar20;\n  char *pcVar21;\n  byte *pbVar22;\n  undefined *puVar23;\n  int *piVar24;\n  undefined8 uVar25;\n  long lVar26;\n  int iVar27;\n  ulong uVar28;\n  uint *puVar29;\n  uint *puVar30;\n  byte *pbVar31;\n  undefined4 uVar32;\n  byte *pbVar33;\n  byte *pbVar34;\n  ulong uVar35;\n  undefined8 *puVar36;\n  byte *pbVar37;\n  byte bVar38;\n  uint uVar39;\n  byte *pbVar40;\n  bool bVar41;\n  bool bVar42;\n  bool bVar43;\n  bool bVar44;\n  bool bVar45;\n  bool bVar46;\n  byte bVar47;\n  void *local_148;\n  int local_13c;\n  char *local_138;\n  void *local_130;\n  void *local_128;\n  undefined8 local_120;\n  long local_108;\n  long local_100;\n  long local_f8;\n  int local_f0;\n  uint local_ec;\n  uint local_e8;\n  undefined4 local_e4;\n  ulong local_d8;\n  uint local_c8;\n  uint local_c4;\n  char *local_c0;\n  undefined1 local_80 [4];\n  int local_7c;\n  byte *local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  long local_60;\n  undefined8 *local_58;\n  int local_50 [2];\n  void *local_48;\n  undefined4 local_40;\n  undefined4 local_3c;\n  \n  bVar47 = 0;\n  if (param_5 != (undefined8 *)0x0) {\n    *param_5 = 0;\n  }\n  pbVar34 = (byte *)*param_4;\n  if (param_6 <= pbVar34) {\n    return 0;\n  }\n  *(undefined4 *)(param_2 + 0x1a8) = 0;\n  bVar38 = *pbVar34;\n  if (((_sch_istable[(ulong)bVar38 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n    iVar5 = FUN_0012e6c0(param_4,&local_70,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    pcVar16 = (char *)*param_4;\n    if (*pcVar16 != '=') {\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_70);\n      return lVar17;\n    }\n    if (((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)) && (-1 < local_70)) {\n      uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      pcVar16 = (char *)*param_4;\n      *param_5 = uVar8;\n    }\n    uVar8 = 0;\n    *param_4 = (ulong)(pcVar16 + 1);\n    local_13c = -1;\n    pbVar22 = (byte *)(pcVar16 + 1);\n    do {\n      while( true ) {\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }\n      pbVar22 = pbVar40;\n    } while (bVar38 != 0);\n    goto switchD_001311d2_caseD_24;\n  }\n  pbVar40 = pbVar34 + 1;\n  uVar8 = 0;\n  local_13c = -1;\n  local_70 = -1;\n  bVar38 = *pbVar34;\n  pbVar22 = pbVar34;\nLAB_001311b2:\n  *param_4 = (ulong)pbVar40;\n  switch(bVar38) {\n  case 0x23:\n    if (pbVar22[1] == 0x23) {\n      *param_4 = (ulong)(pbVar22 + 2);\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);\n    }\n    else {\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }\n    break;\n  default:\n    goto switchD_001311d2_caseD_24;\n  case 0x26:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d760(param_1,uVar8);\n    break;\n  case 0x28:\n  case 0x2d:\n  case 0x30:\n  case 0x31:\n  case 0x32:\n  case 0x33:\n  case 0x34:\n  case 0x35:\n  case 0x36:\n  case 0x37:\n  case 0x38:\n  case 0x39:\n    *param_4 = (ulong)pbVar22;\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    if ((uint)local_70 == (uint)local_68) {\n      if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;\n      lVar17 = FUN_0012d550(param_1);\n    }\n    else {\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    break;\n  case 0x2a:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6b0(param_1,uVar8);\n    break;\n  case 0x40:\nswitchD_001311d2_caseD_40:\n    lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar17 == 0) {\n      return 0;\n    }\n    if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar18 == 0) {\n      return 0;\n    }\n    lVar17 = FUN_0012d8e0(param_1,lVar17,lVar18);\n    break;\n  case 0x42:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9e0(param_1,uVar8);\n    break;\n  case 0x52:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    lVar17 = FUN_0012e630(param_4,0,param_6);\n    if ((*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')) goto LAB_00132126;\n    if (lVar17 - 3U < 3) {\n      lVar17 = FUN_0012d5a0(param_1,uVar8);\n    }\n    else {\n      lVar17 = FUN_0012d580();\n    }\n    break;\n  case 0x53:\n    uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d880(param_1,uVar14,uVar8);\n    break;\n  case 0x61:\n    if (pbVar22[1] == 0x72) {\n      pbVar22 = pbVar22 + 2;\n      *param_4 = (ulong)pbVar22;\n      if (param_6 <= pbVar22) {\n        return 0;\n      }\n      local_78 = pbVar22;\n      iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }\n      if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }\n      FUN_0012e570(pbVar22);\n      return 0;\n    }\n    goto switchD_001311d2_caseD_24;\n  case 0x62:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    if (pbVar22[1] == 0x73) {\n      uVar8 = 0;\n    }\n    else {\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }\n    *param_4 = (ulong)(pbVar22 + 2);\n    if (((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76)) {\n      *param_4 = (ulong)(pbVar22 + 3);\n    }\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    uVar35 = FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 == ';') {\n      *param_4 = (ulong)((char *)*param_4 + 1);\n    }\n    if (uVar35 != 0) {\n      lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);\n      break;\n    }\nLAB_00133358:\n    lVar17 = FUN_0012d550(param_1);\n    break;\n  case 0x65:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    pbVar34 = pbVar40;\n    if (pbVar22[1] == 0x2d) {\n      do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *param_4 = (ulong)(pbVar22 + 2);\n    }\n    local_148 = (void *)xmalloc(0x50);\n    pvVar12 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    uVar35 = (ulong)*pbVar34;\n    if ((*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }\n    *(undefined8 *)((long)local_148 + uVar28 * 8) = 0;\n    pcVar16 = (char *)*param_4;\n    *(undefined8 *)((long)pvVar12 + uVar28 * 8) = 0;\n    if (*pcVar16 == ';') {\n      *param_4 = (ulong)(pcVar16 + 1);\n    }\n    lVar17 = FUN_0012d670(param_1,local_148,pvVar12);\n    break;\n  case 0x66:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6f0(param_1,uVar8,0,0);\n    break;\n  case 0x6b:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9b0(param_1,uVar8);\n    break;\n  case 0x72:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    bVar43 = false;\n    if ((uint)local_68 == (uint)local_70) {\n      bVar43 = local_68._4_4_ == local_70._4_4_;\n    }\n    pbVar34 = (byte *)*param_4;\n    lVar17 = 0;\n    bVar38 = *pbVar34;\n    if (bVar38 == 0x3d) {\n      *param_4 = (ulong)pbVar40;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      pbVar34 = (byte *)*param_4;\n      bVar38 = *pbVar34;\n    }\n    if (bVar38 == 0x3b) {\n      pbVar34 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar34;\n    }\n    uVar35 = FUN_0012e630(param_4,&local_7c,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    pcVar16 = (char *)*param_4 + 1;\n    *param_4 = (ulong)pcVar16;\n    uVar11 = FUN_0012e630(param_4,&local_78,param_6);\n    iVar5 = local_7c;\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    if (local_7c != 0 || (int)local_78 != 0) {\n      bVar41 = false;\n      bVar44 = lVar17 == 0;\n      if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }\n      lVar18 = 0x18;\n      pbVar22 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }\nLAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);\n      break;\n    }\nLAB_0013197e:\n    if (lVar17 != 0) {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }\n    if ((bVar43) && (uVar35 == 0)) {\n      if (uVar11 == 0) goto LAB_00133358;\n      if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }\n      lVar17 = FUN_0012d560(param_1,4,1);\n    }\n    else {\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }\n    break;\n  case 0x73:\n  case 0x75:\n    uVar8 = FUN_0012e630(param_4,0,param_6);\n    pbVar40 = (byte *)*param_4;\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    local_f8 = 0;\n    if (*pbVar40 == 0x21) {\n      *param_4 = (ulong)(pbVar40 + 1);\n      uVar39 = FUN_0012e630(param_4,0,param_6);\n      if (*(char *)*param_4 != ',') goto LAB_00132126;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);\n      if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }\n      pbVar40 = (byte *)*param_4;\n      *(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;\n      if (param_6 <= pbVar40) {\n        return 0;\n      }\n    }\n    uVar35 = 0;\n    local_130 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    bVar43 = false;\n    bVar3 = *pbVar34;\n    local_138._0_4_ = 10;\n    while (bVar3 != 0x3b) {\n      uVar39 = (int)uVar35 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }\n      if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }\n      pbVar34 = (byte *)*param_4;\n      uVar35 = (ulong)uVar39;\n      bVar3 = *pbVar34;\n    }\n    *(undefined8 *)((long)local_130 + uVar35 * 8) = 0;\n    if (param_6 <= pbVar34) goto LAB_00131328;\n    bVar3 = *pbVar34;\n    if (bVar3 == 0x3b) {\n      local_108 = 0;\nLAB_001334bc:\n      pbVar22 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar22;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }\n    if (*pbVar22 == 0x7e) {\n      pbVar40 = pbVar22 + 1;\n      *param_4 = (ulong)pbVar40;\n      if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *param_4 = (ulong)(pbVar40 + 1);\n      iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n      if (iVar5 == 0) goto LAB_00131328;\n      if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }\n      if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;\n      uVar14 = 1;\n      lVar17 = 0;\n    }\n    else {\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }\n    lVar17 = FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14);\n    break;\n  case 0x78:\n    bVar47 = pbVar22[1];\n    if (bVar47 == 0x65) {\n      uVar32 = 0xb;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }\nLAB_00131e0e:\n    pbVar40 = pbVar40 + 1;\n    *param_4 = (ulong)pbVar40;\n    pcVar15 = strchr((char *)pbVar40,0x3c);\n    pcVar16 = strchr((char *)pbVar40,0x3a);\n    if (pcVar16 != (char *)0x0) {\n      if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }\n      cVar4 = *pcVar15;\n      if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }\n    }\nswitchD_001311d2_caseD_24:\n    FUN_0012e570(pbVar34);\n    return 0;\n  }\n  if (lVar17 != 0) {\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    if (local_13c == -1) {\n      return lVar17;\n    }\n    iVar5 = FUN_0012de60(param_1,lVar17,local_13c);\n    if (iVar5 != 0) {\n      return lVar17;\n    }\n  }\n  return 0;\n}\n\n" comment (function_definition "long FUN_00131020(void *param_1,long param_2,char *param_3,ulong *param_4,undefined8 *param_5,\n                 byte *param_6)\n\n{\n  char cVar1;\n  undefined8 uVar2;\n  byte bVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  long *plVar10;\n  void *__ptr;\n  ulong uVar11;\n  void *pvVar12;\n  long lVar13;\n  undefined8 uVar14;\n  char *pcVar15;\n  char *pcVar16;\n  long lVar17;\n  long lVar18;\n  undefined8 *puVar19;\n  size_t sVar20;\n  char *pcVar21;\n  byte *pbVar22;\n  undefined *puVar23;\n  int *piVar24;\n  undefined8 uVar25;\n  long lVar26;\n  int iVar27;\n  ulong uVar28;\n  uint *puVar29;\n  uint *puVar30;\n  byte *pbVar31;\n  undefined4 uVar32;\n  byte *pbVar33;\n  byte *pbVar34;\n  ulong uVar35;\n  undefined8 *puVar36;\n  byte *pbVar37;\n  byte bVar38;\n  uint uVar39;\n  byte *pbVar40;\n  bool bVar41;\n  bool bVar42;\n  bool bVar43;\n  bool bVar44;\n  bool bVar45;\n  bool bVar46;\n  byte bVar47;\n  void *local_148;\n  int local_13c;\n  char *local_138;\n  void *local_130;\n  void *local_128;\n  undefined8 local_120;\n  long local_108;\n  long local_100;\n  long local_f8;\n  int local_f0;\n  uint local_ec;\n  uint local_e8;\n  undefined4 local_e4;\n  ulong local_d8;\n  uint local_c8;\n  uint local_c4;\n  char *local_c0;\n  undefined1 local_80 [4];\n  int local_7c;\n  byte *local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  long local_60;\n  undefined8 *local_58;\n  int local_50 [2];\n  void *local_48;\n  undefined4 local_40;\n  undefined4 local_3c;\n  \n  bVar47 = 0;\n  if (param_5 != (undefined8 *)0x0) {\n    *param_5 = 0;\n  }\n  pbVar34 = (byte *)*param_4;\n  if (param_6 <= pbVar34) {\n    return 0;\n  }\n  *(undefined4 *)(param_2 + 0x1a8) = 0;\n  bVar38 = *pbVar34;\n  if (((_sch_istable[(ulong)bVar38 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n    iVar5 = FUN_0012e6c0(param_4,&local_70,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    pcVar16 = (char *)*param_4;\n    if (*pcVar16 != '=') {\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_70);\n      return lVar17;\n    }\n    if (((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)) && (-1 < local_70)) {\n      uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      pcVar16 = (char *)*param_4;\n      *param_5 = uVar8;\n    }\n    uVar8 = 0;\n    *param_4 = (ulong)(pcVar16 + 1);\n    local_13c = -1;\n    pbVar22 = (byte *)(pcVar16 + 1);\n    do {\n      while( true ) {\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }\n      pbVar22 = pbVar40;\n    } while (bVar38 != 0);\n    goto switchD_001311d2_caseD_24;\n  }\n  pbVar40 = pbVar34 + 1;\n  uVar8 = 0;\n  local_13c = -1;\n  local_70 = -1;\n  bVar38 = *pbVar34;\n  pbVar22 = pbVar34;\nLAB_001311b2:\n  *param_4 = (ulong)pbVar40;\n  switch(bVar38) {\n  case 0x23:\n    if (pbVar22[1] == 0x23) {\n      *param_4 = (ulong)(pbVar22 + 2);\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);\n    }\n    else {\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }\n    break;\n  default:\n    goto switchD_001311d2_caseD_24;\n  case 0x26:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d760(param_1,uVar8);\n    break;\n  case 0x28:\n  case 0x2d:\n  case 0x30:\n  case 0x31:\n  case 0x32:\n  case 0x33:\n  case 0x34:\n  case 0x35:\n  case 0x36:\n  case 0x37:\n  case 0x38:\n  case 0x39:\n    *param_4 = (ulong)pbVar22;\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    if ((uint)local_70 == (uint)local_68) {\n      if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;\n      lVar17 = FUN_0012d550(param_1);\n    }\n    else {\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    break;\n  case 0x2a:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6b0(param_1,uVar8);\n    break;\n  case 0x40:\nswitchD_001311d2_caseD_40:\n    lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar17 == 0) {\n      return 0;\n    }\n    if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar18 == 0) {\n      return 0;\n    }\n    lVar17 = FUN_0012d8e0(param_1,lVar17,lVar18);\n    break;\n  case 0x42:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9e0(param_1,uVar8);\n    break;\n  case 0x52:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    lVar17 = FUN_0012e630(param_4,0,param_6);\n    if ((*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')) goto LAB_00132126;\n    if (lVar17 - 3U < 3) {\n      lVar17 = FUN_0012d5a0(param_1,uVar8);\n    }\n    else {\n      lVar17 = FUN_0012d580();\n    }\n    break;\n  case 0x53:\n    uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d880(param_1,uVar14,uVar8);\n    break;\n  case 0x61:\n    if (pbVar22[1] == 0x72) {\n      pbVar22 = pbVar22 + 2;\n      *param_4 = (ulong)pbVar22;\n      if (param_6 <= pbVar22) {\n        return 0;\n      }\n      local_78 = pbVar22;\n      iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }\n      if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }\n      FUN_0012e570(pbVar22);\n      return 0;\n    }\n    goto switchD_001311d2_caseD_24;\n  case 0x62:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    if (pbVar22[1] == 0x73) {\n      uVar8 = 0;\n    }\n    else {\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }\n    *param_4 = (ulong)(pbVar22 + 2);\n    if (((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76)) {\n      *param_4 = (ulong)(pbVar22 + 3);\n    }\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    uVar35 = FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 == ';') {\n      *param_4 = (ulong)((char *)*param_4 + 1);\n    }\n    if (uVar35 != 0) {\n      lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);\n      break;\n    }\nLAB_00133358:\n    lVar17 = FUN_0012d550(param_1);\n    break;\n  case 0x65:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    pbVar34 = pbVar40;\n    if (pbVar22[1] == 0x2d) {\n      do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *param_4 = (ulong)(pbVar22 + 2);\n    }\n    local_148 = (void *)xmalloc(0x50);\n    pvVar12 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    uVar35 = (ulong)*pbVar34;\n    if ((*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }\n    *(undefined8 *)((long)local_148 + uVar28 * 8) = 0;\n    pcVar16 = (char *)*param_4;\n    *(undefined8 *)((long)pvVar12 + uVar28 * 8) = 0;\n    if (*pcVar16 == ';') {\n      *param_4 = (ulong)(pcVar16 + 1);\n    }\n    lVar17 = FUN_0012d670(param_1,local_148,pvVar12);\n    break;\n  case 0x66:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6f0(param_1,uVar8,0,0);\n    break;\n  case 0x6b:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9b0(param_1,uVar8);\n    break;\n  case 0x72:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    bVar43 = false;\n    if ((uint)local_68 == (uint)local_70) {\n      bVar43 = local_68._4_4_ == local_70._4_4_;\n    }\n    pbVar34 = (byte *)*param_4;\n    lVar17 = 0;\n    bVar38 = *pbVar34;\n    if (bVar38 == 0x3d) {\n      *param_4 = (ulong)pbVar40;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      pbVar34 = (byte *)*param_4;\n      bVar38 = *pbVar34;\n    }\n    if (bVar38 == 0x3b) {\n      pbVar34 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar34;\n    }\n    uVar35 = FUN_0012e630(param_4,&local_7c,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    pcVar16 = (char *)*param_4 + 1;\n    *param_4 = (ulong)pcVar16;\n    uVar11 = FUN_0012e630(param_4,&local_78,param_6);\n    iVar5 = local_7c;\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    if (local_7c != 0 || (int)local_78 != 0) {\n      bVar41 = false;\n      bVar44 = lVar17 == 0;\n      if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }\n      lVar18 = 0x18;\n      pbVar22 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }\nLAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);\n      break;\n    }\nLAB_0013197e:\n    if (lVar17 != 0) {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }\n    if ((bVar43) && (uVar35 == 0)) {\n      if (uVar11 == 0) goto LAB_00133358;\n      if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }\n      lVar17 = FUN_0012d560(param_1,4,1);\n    }\n    else {\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }\n    break;\n  case 0x73:\n  case 0x75:\n    uVar8 = FUN_0012e630(param_4,0,param_6);\n    pbVar40 = (byte *)*param_4;\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    local_f8 = 0;\n    if (*pbVar40 == 0x21) {\n      *param_4 = (ulong)(pbVar40 + 1);\n      uVar39 = FUN_0012e630(param_4,0,param_6);\n      if (*(char *)*param_4 != ',') goto LAB_00132126;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);\n      if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }\n      pbVar40 = (byte *)*param_4;\n      *(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;\n      if (param_6 <= pbVar40) {\n        return 0;\n      }\n    }\n    uVar35 = 0;\n    local_130 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    bVar43 = false;\n    bVar3 = *pbVar34;\n    local_138._0_4_ = 10;\n    while (bVar3 != 0x3b) {\n      uVar39 = (int)uVar35 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }\n      if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }\n      pbVar34 = (byte *)*param_4;\n      uVar35 = (ulong)uVar39;\n      bVar3 = *pbVar34;\n    }\n    *(undefined8 *)((long)local_130 + uVar35 * 8) = 0;\n    if (param_6 <= pbVar34) goto LAB_00131328;\n    bVar3 = *pbVar34;\n    if (bVar3 == 0x3b) {\n      local_108 = 0;\nLAB_001334bc:\n      pbVar22 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar22;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }\n    if (*pbVar22 == 0x7e) {\n      pbVar40 = pbVar22 + 1;\n      *param_4 = (ulong)pbVar40;\n      if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *param_4 = (ulong)(pbVar40 + 1);\n      iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n      if (iVar5 == 0) goto LAB_00131328;\n      if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }\n      if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;\n      uVar14 = 1;\n      lVar17 = 0;\n    }\n    else {\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }\n    lVar17 = FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14);\n    break;\n  case 0x78:\n    bVar47 = pbVar22[1];\n    if (bVar47 == 0x65) {\n      uVar32 = 0xb;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }\nLAB_00131e0e:\n    pbVar40 = pbVar40 + 1;\n    *param_4 = (ulong)pbVar40;\n    pcVar15 = strchr((char *)pbVar40,0x3c);\n    pcVar16 = strchr((char *)pbVar40,0x3a);\n    if (pcVar16 != (char *)0x0) {\n      if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }\n      cVar4 = *pcVar15;\n      if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }\n    }\nswitchD_001311d2_caseD_24:\n    FUN_0012e570(pbVar34);\n    return 0;\n  }\n  if (lVar17 != 0) {\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    if (local_13c == -1) {\n      return lVar17;\n    }\n    iVar5 = FUN_0012de60(param_1,lVar17,local_13c);\n    if (iVar5 != 0) {\n      return lVar17;\n    }\n  }\n  return 0;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_00131020(void *param_1,long param_2,char *param_3,ulong *param_4,undefined8 *param_5,\n                 byte *param_6)" identifier (parameter_list "(void *param_1,long param_2,char *param_3,ulong *param_4,undefined8 *param_5,\n                 byte *param_6)" ( (parameter_declaration "void *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "ulong *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "undefined8 *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "byte *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  undefined8 uVar2;\n  byte bVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  long *plVar10;\n  void *__ptr;\n  ulong uVar11;\n  void *pvVar12;\n  long lVar13;\n  undefined8 uVar14;\n  char *pcVar15;\n  char *pcVar16;\n  long lVar17;\n  long lVar18;\n  undefined8 *puVar19;\n  size_t sVar20;\n  char *pcVar21;\n  byte *pbVar22;\n  undefined *puVar23;\n  int *piVar24;\n  undefined8 uVar25;\n  long lVar26;\n  int iVar27;\n  ulong uVar28;\n  uint *puVar29;\n  uint *puVar30;\n  byte *pbVar31;\n  undefined4 uVar32;\n  byte *pbVar33;\n  byte *pbVar34;\n  ulong uVar35;\n  undefined8 *puVar36;\n  byte *pbVar37;\n  byte bVar38;\n  uint uVar39;\n  byte *pbVar40;\n  bool bVar41;\n  bool bVar42;\n  bool bVar43;\n  bool bVar44;\n  bool bVar45;\n  bool bVar46;\n  byte bVar47;\n  void *local_148;\n  int local_13c;\n  char *local_138;\n  void *local_130;\n  void *local_128;\n  undefined8 local_120;\n  long local_108;\n  long local_100;\n  long local_f8;\n  int local_f0;\n  uint local_ec;\n  uint local_e8;\n  undefined4 local_e4;\n  ulong local_d8;\n  uint local_c8;\n  uint local_c4;\n  char *local_c0;\n  undefined1 local_80 [4];\n  int local_7c;\n  byte *local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  long local_60;\n  undefined8 *local_58;\n  int local_50 [2];\n  void *local_48;\n  undefined4 local_40;\n  undefined4 local_3c;\n  \n  bVar47 = 0;\n  if (param_5 != (undefined8 *)0x0) {\n    *param_5 = 0;\n  }\n  pbVar34 = (byte *)*param_4;\n  if (param_6 <= pbVar34) {\n    return 0;\n  }\n  *(undefined4 *)(param_2 + 0x1a8) = 0;\n  bVar38 = *pbVar34;\n  if (((_sch_istable[(ulong)bVar38 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n    iVar5 = FUN_0012e6c0(param_4,&local_70,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    pcVar16 = (char *)*param_4;\n    if (*pcVar16 != '=') {\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_70);\n      return lVar17;\n    }\n    if (((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)) && (-1 < local_70)) {\n      uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      pcVar16 = (char *)*param_4;\n      *param_5 = uVar8;\n    }\n    uVar8 = 0;\n    *param_4 = (ulong)(pcVar16 + 1);\n    local_13c = -1;\n    pbVar22 = (byte *)(pcVar16 + 1);\n    do {\n      while( true ) {\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }\n      pbVar22 = pbVar40;\n    } while (bVar38 != 0);\n    goto switchD_001311d2_caseD_24;\n  }\n  pbVar40 = pbVar34 + 1;\n  uVar8 = 0;\n  local_13c = -1;\n  local_70 = -1;\n  bVar38 = *pbVar34;\n  pbVar22 = pbVar34;\nLAB_001311b2:\n  *param_4 = (ulong)pbVar40;\n  switch(bVar38) {\n  case 0x23:\n    if (pbVar22[1] == 0x23) {\n      *param_4 = (ulong)(pbVar22 + 2);\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);\n    }\n    else {\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }\n    break;\n  default:\n    goto switchD_001311d2_caseD_24;\n  case 0x26:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d760(param_1,uVar8);\n    break;\n  case 0x28:\n  case 0x2d:\n  case 0x30:\n  case 0x31:\n  case 0x32:\n  case 0x33:\n  case 0x34:\n  case 0x35:\n  case 0x36:\n  case 0x37:\n  case 0x38:\n  case 0x39:\n    *param_4 = (ulong)pbVar22;\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    if ((uint)local_70 == (uint)local_68) {\n      if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;\n      lVar17 = FUN_0012d550(param_1);\n    }\n    else {\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    break;\n  case 0x2a:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6b0(param_1,uVar8);\n    break;\n  case 0x40:\nswitchD_001311d2_caseD_40:\n    lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar17 == 0) {\n      return 0;\n    }\n    if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar18 == 0) {\n      return 0;\n    }\n    lVar17 = FUN_0012d8e0(param_1,lVar17,lVar18);\n    break;\n  case 0x42:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9e0(param_1,uVar8);\n    break;\n  case 0x52:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    lVar17 = FUN_0012e630(param_4,0,param_6);\n    if ((*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')) goto LAB_00132126;\n    if (lVar17 - 3U < 3) {\n      lVar17 = FUN_0012d5a0(param_1,uVar8);\n    }\n    else {\n      lVar17 = FUN_0012d580();\n    }\n    break;\n  case 0x53:\n    uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d880(param_1,uVar14,uVar8);\n    break;\n  case 0x61:\n    if (pbVar22[1] == 0x72) {\n      pbVar22 = pbVar22 + 2;\n      *param_4 = (ulong)pbVar22;\n      if (param_6 <= pbVar22) {\n        return 0;\n      }\n      local_78 = pbVar22;\n      iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }\n      if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }\n      FUN_0012e570(pbVar22);\n      return 0;\n    }\n    goto switchD_001311d2_caseD_24;\n  case 0x62:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    if (pbVar22[1] == 0x73) {\n      uVar8 = 0;\n    }\n    else {\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }\n    *param_4 = (ulong)(pbVar22 + 2);\n    if (((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76)) {\n      *param_4 = (ulong)(pbVar22 + 3);\n    }\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    uVar35 = FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 == ';') {\n      *param_4 = (ulong)((char *)*param_4 + 1);\n    }\n    if (uVar35 != 0) {\n      lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);\n      break;\n    }\nLAB_00133358:\n    lVar17 = FUN_0012d550(param_1);\n    break;\n  case 0x65:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    pbVar34 = pbVar40;\n    if (pbVar22[1] == 0x2d) {\n      do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *param_4 = (ulong)(pbVar22 + 2);\n    }\n    local_148 = (void *)xmalloc(0x50);\n    pvVar12 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    uVar35 = (ulong)*pbVar34;\n    if ((*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }\n    *(undefined8 *)((long)local_148 + uVar28 * 8) = 0;\n    pcVar16 = (char *)*param_4;\n    *(undefined8 *)((long)pvVar12 + uVar28 * 8) = 0;\n    if (*pcVar16 == ';') {\n      *param_4 = (ulong)(pcVar16 + 1);\n    }\n    lVar17 = FUN_0012d670(param_1,local_148,pvVar12);\n    break;\n  case 0x66:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6f0(param_1,uVar8,0,0);\n    break;\n  case 0x6b:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9b0(param_1,uVar8);\n    break;\n  case 0x72:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    bVar43 = false;\n    if ((uint)local_68 == (uint)local_70) {\n      bVar43 = local_68._4_4_ == local_70._4_4_;\n    }\n    pbVar34 = (byte *)*param_4;\n    lVar17 = 0;\n    bVar38 = *pbVar34;\n    if (bVar38 == 0x3d) {\n      *param_4 = (ulong)pbVar40;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      pbVar34 = (byte *)*param_4;\n      bVar38 = *pbVar34;\n    }\n    if (bVar38 == 0x3b) {\n      pbVar34 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar34;\n    }\n    uVar35 = FUN_0012e630(param_4,&local_7c,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    pcVar16 = (char *)*param_4 + 1;\n    *param_4 = (ulong)pcVar16;\n    uVar11 = FUN_0012e630(param_4,&local_78,param_6);\n    iVar5 = local_7c;\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    if (local_7c != 0 || (int)local_78 != 0) {\n      bVar41 = false;\n      bVar44 = lVar17 == 0;\n      if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }\n      lVar18 = 0x18;\n      pbVar22 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }\nLAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);\n      break;\n    }\nLAB_0013197e:\n    if (lVar17 != 0) {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }\n    if ((bVar43) && (uVar35 == 0)) {\n      if (uVar11 == 0) goto LAB_00133358;\n      if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }\n      lVar17 = FUN_0012d560(param_1,4,1);\n    }\n    else {\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }\n    break;\n  case 0x73:\n  case 0x75:\n    uVar8 = FUN_0012e630(param_4,0,param_6);\n    pbVar40 = (byte *)*param_4;\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    local_f8 = 0;\n    if (*pbVar40 == 0x21) {\n      *param_4 = (ulong)(pbVar40 + 1);\n      uVar39 = FUN_0012e630(param_4,0,param_6);\n      if (*(char *)*param_4 != ',') goto LAB_00132126;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);\n      if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }\n      pbVar40 = (byte *)*param_4;\n      *(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;\n      if (param_6 <= pbVar40) {\n        return 0;\n      }\n    }\n    uVar35 = 0;\n    local_130 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    bVar43 = false;\n    bVar3 = *pbVar34;\n    local_138._0_4_ = 10;\n    while (bVar3 != 0x3b) {\n      uVar39 = (int)uVar35 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }\n      if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }\n      pbVar34 = (byte *)*param_4;\n      uVar35 = (ulong)uVar39;\n      bVar3 = *pbVar34;\n    }\n    *(undefined8 *)((long)local_130 + uVar35 * 8) = 0;\n    if (param_6 <= pbVar34) goto LAB_00131328;\n    bVar3 = *pbVar34;\n    if (bVar3 == 0x3b) {\n      local_108 = 0;\nLAB_001334bc:\n      pbVar22 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar22;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }\n    if (*pbVar22 == 0x7e) {\n      pbVar40 = pbVar22 + 1;\n      *param_4 = (ulong)pbVar40;\n      if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *param_4 = (ulong)(pbVar40 + 1);\n      iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n      if (iVar5 == 0) goto LAB_00131328;\n      if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }\n      if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;\n      uVar14 = 1;\n      lVar17 = 0;\n    }\n    else {\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }\n    lVar17 = FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14);\n    break;\n  case 0x78:\n    bVar47 = pbVar22[1];\n    if (bVar47 == 0x65) {\n      uVar32 = 0xb;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }\nLAB_00131e0e:\n    pbVar40 = pbVar40 + 1;\n    *param_4 = (ulong)pbVar40;\n    pcVar15 = strchr((char *)pbVar40,0x3c);\n    pcVar16 = strchr((char *)pbVar40,0x3a);\n    if (pcVar16 != (char *)0x0) {\n      if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }\n      cVar4 = *pcVar15;\n      if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }\n    }\nswitchD_001311d2_caseD_24:\n    FUN_0012e570(pbVar34);\n    return 0;\n  }\n  if (lVar17 != 0) {\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    if (local_13c == -1) {\n      return lVar17;\n    }\n    iVar5 = FUN_0012de60(param_1,lVar17,local_13c);\n    if (iVar5 != 0) {\n      return lVar17;\n    }\n  }\n  return 0;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "long *plVar10;" (sized_type_specifier "long" long) (pointer_declarator "*plVar10" * identifier) ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "void *pvVar12;" primitive_type (pointer_declarator "*pvVar12" * identifier) ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar14;" type_identifier identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "long lVar17;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar18;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "size_t sVar20;" primitive_type identifier ;) (declaration "char *pcVar21;" primitive_type (pointer_declarator "*pcVar21" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "int *piVar24;" primitive_type (pointer_declarator "*piVar24" * identifier) ;) (declaration "undefined8 uVar25;" type_identifier identifier ;) (declaration "long lVar26;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "ulong uVar28;" type_identifier identifier ;) (declaration "uint *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "uint *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "byte *pbVar31;" type_identifier (pointer_declarator "*pbVar31" * identifier) ;) (declaration "undefined4 uVar32;" type_identifier identifier ;) (declaration "byte *pbVar33;" type_identifier (pointer_declarator "*pbVar33" * identifier) ;) (declaration "byte *pbVar34;" type_identifier (pointer_declarator "*pbVar34" * identifier) ;) (declaration "ulong uVar35;" type_identifier identifier ;) (declaration "undefined8 *puVar36;" type_identifier (pointer_declarator "*puVar36" * identifier) ;) (declaration "byte *pbVar37;" type_identifier (pointer_declarator "*pbVar37" * identifier) ;) (declaration "byte bVar38;" type_identifier identifier ;) (declaration "uint uVar39;" type_identifier identifier ;) (declaration "byte *pbVar40;" type_identifier (pointer_declarator "*pbVar40" * identifier) ;) (declaration "bool bVar41;" primitive_type identifier ;) (declaration "bool bVar42;" primitive_type identifier ;) (declaration "bool bVar43;" primitive_type identifier ;) (declaration "bool bVar44;" primitive_type identifier ;) (declaration "bool bVar45;" primitive_type identifier ;) (declaration "bool bVar46;" primitive_type identifier ;) (declaration "byte bVar47;" type_identifier identifier ;) (declaration "void *local_148;" primitive_type (pointer_declarator "*local_148" * identifier) ;) (declaration "int local_13c;" primitive_type identifier ;) (declaration "char *local_138;" primitive_type (pointer_declarator "*local_138" * identifier) ;) (declaration "void *local_130;" primitive_type (pointer_declarator "*local_130" * identifier) ;) (declaration "void *local_128;" primitive_type (pointer_declarator "*local_128" * identifier) ;) (declaration "undefined8 local_120;" type_identifier identifier ;) (declaration "long local_108;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_100;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_f8;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_f0;" primitive_type identifier ;) (declaration "uint local_ec;" type_identifier identifier ;) (declaration "uint local_e8;" type_identifier identifier ;) (declaration "undefined4 local_e4;" type_identifier identifier ;) (declaration "ulong local_d8;" type_identifier identifier ;) (declaration "uint local_c8;" type_identifier identifier ;) (declaration "uint local_c4;" type_identifier identifier ;) (declaration "char *local_c0;" primitive_type (pointer_declarator "*local_c0" * identifier) ;) (declaration "undefined1 local_80 [4];" type_identifier (array_declarator "local_80 [4]" identifier [ number_literal ]) ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "byte *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "undefined8 local_70;" type_identifier identifier ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "long local_60;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "int local_50 [2];" primitive_type (array_declarator "local_50 [2]" identifier [ number_literal ]) ;) (declaration "void *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (expression_statement "bVar47 = 0;" (assignment_expression "bVar47 = 0" identifier = number_literal) ;) (if_statement "if (param_5 != (undefined8 *)0x0) {\n    *param_5 = 0;\n  }" if (parenthesized_expression "(param_5 != (undefined8 *)0x0)" ( (binary_expression "param_5 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_5 = 0;\n  }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (if_statement "if (param_6 <= pbVar34) {\n    return 0;\n  }" if (parenthesized_expression "(param_6 <= pbVar34)" ( (binary_expression "param_6 <= pbVar34" identifier <= identifier) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "*(undefined4 *)(param_2 + 0x1a8) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 0x1a8) = 0" (pointer_expression "*(undefined4 *)(param_2 + 0x1a8)" * (cast_expression "(undefined4 *)(param_2 + 0x1a8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1a8)" ( (binary_expression "param_2 + 0x1a8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "bVar38 = *pbVar34;" (assignment_expression "bVar38 = *pbVar34" identifier = (pointer_expression "*pbVar34" * identifier)) ;) (if_statement "if (((_sch_istable[(ulong)bVar38 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n    iVar5 = FUN_0012e6c0(param_4,&local_70,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    pcVar16 = (char *)*param_4;\n    if (*pcVar16 != '=') {\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_70);\n      return lVar17;\n    }\n    if (((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)) && (-1 < local_70)) {\n      uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      pcVar16 = (char *)*param_4;\n      *param_5 = uVar8;\n    }\n    uVar8 = 0;\n    *param_4 = (ulong)(pcVar16 + 1);\n    local_13c = -1;\n    pbVar22 = (byte *)(pcVar16 + 1);\n    do {\n      while( true ) {\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }\n      pbVar22 = pbVar40;\n    } while (bVar38 != 0);\n    goto switchD_001311d2_caseD_24;\n  }" if (parenthesized_expression "(((_sch_istable[(ulong)bVar38 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28))" ( (binary_expression "((_sch_istable[(ulong)bVar38 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)" (parenthesized_expression "((_sch_istable[(ulong)bVar38 * 2] & 4) != 0)" ( (binary_expression "(_sch_istable[(ulong)bVar38 * 2] & 4) != 0" (parenthesized_expression "(_sch_istable[(ulong)bVar38 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)bVar38 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar38 * 2]" identifier [ (binary_expression "(ulong)bVar38 * 2" (cast_expression "(ulong)bVar38" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) != number_literal) )) || (parenthesized_expression "(bVar38 == 0x2d || bVar38 == 0x28)" ( (binary_expression "bVar38 == 0x2d || bVar38 == 0x28" (binary_expression "bVar38 == 0x2d" identifier == number_literal) || (binary_expression "bVar38 == 0x28" identifier == number_literal)) ))) )) (compound_statement "{\n    iVar5 = FUN_0012e6c0(param_4,&local_70,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    pcVar16 = (char *)*param_4;\n    if (*pcVar16 != '=') {\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_70);\n      return lVar17;\n    }\n    if (((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)) && (-1 < local_70)) {\n      uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      pcVar16 = (char *)*param_4;\n      *param_5 = uVar8;\n    }\n    uVar8 = 0;\n    *param_4 = (ulong)(pcVar16 + 1);\n    local_13c = -1;\n    pbVar22 = (byte *)(pcVar16 + 1);\n    do {\n      while( true ) {\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }\n      pbVar22 = pbVar40;\n    } while (bVar38 != 0);\n    goto switchD_001311d2_caseD_24;\n  }" { (expression_statement "iVar5 = FUN_0012e6c0(param_4,&local_70,param_6);" (assignment_expression "iVar5 = FUN_0012e6c0(param_4,&local_70,param_6)" identifier = (call_expression "FUN_0012e6c0(param_4,&local_70,param_6)" identifier (argument_list "(param_4,&local_70,param_6)" ( identifier , (pointer_expression "&local_70" & identifier) , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (if_statement "if (*pcVar16 != '=') {\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_70);\n      return lVar17;\n    }" if (parenthesized_expression "(*pcVar16 != '=')" ( (binary_expression "*pcVar16 != '='" (pointer_expression "*pcVar16" * identifier) != (char_literal "'='" ' character ')) )) (compound_statement "{\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_70);\n      return lVar17;\n    }" { (expression_statement "lVar17 = FUN_0012e9f0(param_1,param_2,&local_70);" (assignment_expression "lVar17 = FUN_0012e9f0(param_1,param_2,&local_70)" identifier = (call_expression "FUN_0012e9f0(param_1,param_2,&local_70)" identifier (argument_list "(param_1,param_2,&local_70)" ( identifier , identifier , (pointer_expression "&local_70" & identifier) )))) ;) (return_statement "return lVar17;" return identifier ;) })) (if_statement "if (((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)) && (-1 < local_70)) {\n      uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      pcVar16 = (char *)*param_4;\n      *param_5 = uVar8;\n    }" if (parenthesized_expression "(((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)) && (-1 < local_70))" ( (binary_expression "((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)) && (-1 < local_70)" (parenthesized_expression "((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70))" ( (binary_expression "(param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)" (parenthesized_expression "(param_5 != (undefined8 *)0x0)" ( (binary_expression "param_5 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(-1 < (int)(uint)local_70)" ( (binary_expression "-1 < (int)(uint)local_70" number_literal < (cast_expression "(int)(uint)local_70" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_70" ( (type_descriptor "uint" type_identifier) ) identifier))) ))) )) && (parenthesized_expression "(-1 < local_70)" ( (binary_expression "-1 < local_70" number_literal < identifier) ))) )) (compound_statement "{\n      uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      pcVar16 = (char *)*param_4;\n      *param_5 = uVar8;\n    }" { (expression_statement "uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);" (assignment_expression "uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70)" identifier = (call_expression "FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70)" identifier (argument_list "(param_2 + 0x80,param_2 + 0x88,&local_70)" ( (binary_expression "param_2 + 0x80" identifier + number_literal) , (binary_expression "param_2 + 0x88" identifier + number_literal) , (pointer_expression "&local_70" & identifier) )))) ;) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "*param_5 = uVar8;" (assignment_expression "*param_5 = uVar8" (pointer_expression "*param_5" * identifier) = identifier) ;) })) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (expression_statement "local_13c = -1;" (assignment_expression "local_13c = -1" identifier = number_literal) ;) (expression_statement "pbVar22 = (byte *)(pcVar16 + 1);" (assignment_expression "pbVar22 = (byte *)(pcVar16 + 1)" identifier = (cast_expression "(byte *)(pcVar16 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (do_statement "do {\n      while( true ) {\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }\n      pbVar22 = pbVar40;\n    } while (bVar38 != 0);" do (compound_statement "{\n      while( true ) {\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }\n      pbVar22 = pbVar40;\n    }" { (while_statement "while( true ) {\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }" { (while_statement "while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }" { (expression_statement "bVar38 = *pbVar22;" (assignment_expression "bVar38 = *pbVar22" identifier = (pointer_expression "*pbVar22" * identifier)) ;) (expression_statement "pbVar40 = pbVar22 + 1;" (assignment_expression "pbVar40 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (if_statement "if (bVar38 != 0x40) goto LAB_001311b2;" if (parenthesized_expression "(bVar38 != 0x40)" ( (binary_expression "bVar38 != 0x40" identifier != number_literal) )) (goto_statement "goto LAB_001311b2;" goto statement_identifier ;)) (expression_statement "bVar38 = pbVar22[1];" (assignment_expression "bVar38 = pbVar22[1]" identifier = (subscript_expression "pbVar22[1]" identifier [ number_literal ])) ;) (expression_statement "uVar35 = (ulong)bVar38;" (assignment_expression "uVar35 = (ulong)bVar38" identifier = (cast_expression "(ulong)bVar38" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }" if (parenthesized_expression "(((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28))" ( (binary_expression "((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)" (parenthesized_expression "((_sch_istable[uVar35 * 2] & 4) != 0)" ( (binary_expression "(_sch_istable[uVar35 * 2] & 4) != 0" (parenthesized_expression "(_sch_istable[uVar35 * 2] & 4)" ( (binary_expression "_sch_istable[uVar35 * 2] & 4" (subscript_expression "_sch_istable[uVar35 * 2]" identifier [ (binary_expression "uVar35 * 2" identifier * number_literal) ]) & number_literal) )) != number_literal) )) || (parenthesized_expression "(bVar38 == 0x2d || bVar38 == 0x28)" ( (binary_expression "bVar38 == 0x2d || bVar38 == 0x28" (binary_expression "bVar38 == 0x2d" identifier == number_literal) || (binary_expression "bVar38 == 0x28" identifier == number_literal)) ))) )) (compound_statement "{\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }" { (expression_statement "*param_4 = (ulong)pbVar40;" (assignment_expression "*param_4 = (ulong)pbVar40" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar40" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (goto_statement "goto switchD_001311d2_caseD_40;" goto statement_identifier ;) })) (while_statement "while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }" while (parenthesized_expression "((char)uVar35 != ';')" ( (binary_expression "(char)uVar35 != ';'" (cast_expression "(char)uVar35" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "';'" ' character ')) )) (compound_statement "{\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }" { (if_statement "if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;" if (parenthesized_expression "((char)uVar35 == '\0')" ( (binary_expression "(char)uVar35 == '\0'" (cast_expression "(char)uVar35" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;)) (expression_statement "pbVar40 = pbVar40 + 1;" (assignment_expression "pbVar40 = pbVar40 + 1" identifier = (binary_expression "pbVar40 + 1" identifier + number_literal)) ;) (expression_statement "uVar35 = (ulong)*pbVar40;" (assignment_expression "uVar35 = (ulong)*pbVar40" identifier = (binary_expression "(ulong)*pbVar40" (parenthesized_expression "(ulong)" ( identifier )) * identifier)) ;) })) (expression_statement "pbVar40 = pbVar40 + 1;" (assignment_expression "pbVar40 = pbVar40 + 1" identifier = (binary_expression "pbVar40 + 1" identifier + number_literal)) ;) (expression_statement "*param_4 = (ulong)pbVar40;" (assignment_expression "*param_4 = (ulong)pbVar40" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar40" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "bVar38 = pbVar22[1];" (assignment_expression "bVar38 = pbVar22[1]" identifier = (subscript_expression "pbVar22[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar38 != 0x53) break;" if (parenthesized_expression "(bVar38 != 0x53)" ( (binary_expression "bVar38 != 0x53" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (expression_statement "pbVar22 = pbVar40;" (assignment_expression "pbVar22 = pbVar40" identifier = identifier) ;) })) (if_statement "if (bVar38 != 0x73) break;" if (parenthesized_expression "(bVar38 != 0x73)" ( (binary_expression "bVar38 != 0x73" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);" (assignment_expression "lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10)" identifier = (call_expression "strtol((char *)(pbVar22 + 2),(char **)0x0,10)" identifier (argument_list "((char *)(pbVar22 + 2),(char **)0x0,10)" ( (cast_expression "(char *)(pbVar22 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar22 + 2)" ( (binary_expression "pbVar22 + 2" identifier + number_literal) ))) , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;) (if_statement "if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }" if (parenthesized_expression "((int)lVar17 < 8)" ( (binary_expression "(int)lVar17 < 8" (cast_expression "(int)lVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }" { (expression_statement "local_13c = -1;" (assignment_expression "local_13c = -1" identifier = number_literal) ;) (expression_statement "pbVar22 = (byte *)*param_4;" (assignment_expression "pbVar22 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) }) (else_clause "else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }" else (compound_statement "{\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }" { (expression_statement "local_13c = (int)lVar17 >> 3;" (assignment_expression "local_13c = (int)lVar17 >> 3" identifier = (binary_expression "(int)lVar17 >> 3" (cast_expression "(int)lVar17" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "pbVar22 = (byte *)*param_4;" (assignment_expression "pbVar22 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) }))) })) (expression_statement "pbVar22 = pbVar40;" (assignment_expression "pbVar22 = pbVar40" identifier = identifier) ;) }) while (parenthesized_expression "(bVar38 != 0)" ( (binary_expression "bVar38 != 0" identifier != number_literal) )) ;) (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;) })) (expression_statement "pbVar40 = pbVar34 + 1;" (assignment_expression "pbVar40 = pbVar34 + 1" identifier = (binary_expression "pbVar34 + 1" identifier + number_literal)) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "local_13c = -1;" (assignment_expression "local_13c = -1" identifier = number_literal) ;) (expression_statement "local_70 = -1;" (assignment_expression "local_70 = -1" identifier = number_literal) ;) (expression_statement "bVar38 = *pbVar34;" (assignment_expression "bVar38 = *pbVar34" identifier = (pointer_expression "*pbVar34" * identifier)) ;) (expression_statement "pbVar22 = pbVar34;" (assignment_expression "pbVar22 = pbVar34" identifier = identifier) ;) (labeled_statement "LAB_001311b2:\n  *param_4 = (ulong)pbVar40;" statement_identifier : (expression_statement "*param_4 = (ulong)pbVar40;" (assignment_expression "*param_4 = (ulong)pbVar40" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar40" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;)) (switch_statement "switch(bVar38) {\n  case 0x23:\n    if (pbVar22[1] == 0x23) {\n      *param_4 = (ulong)(pbVar22 + 2);\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);\n    }\n    else {\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }\n    break;\n  default:\n    goto switchD_001311d2_caseD_24;\n  case 0x26:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d760(param_1,uVar8);\n    break;\n  case 0x28:\n  case 0x2d:\n  case 0x30:\n  case 0x31:\n  case 0x32:\n  case 0x33:\n  case 0x34:\n  case 0x35:\n  case 0x36:\n  case 0x37:\n  case 0x38:\n  case 0x39:\n    *param_4 = (ulong)pbVar22;\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    if ((uint)local_70 == (uint)local_68) {\n      if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;\n      lVar17 = FUN_0012d550(param_1);\n    }\n    else {\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    break;\n  case 0x2a:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6b0(param_1,uVar8);\n    break;\n  case 0x40:\nswitchD_001311d2_caseD_40:\n    lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar17 == 0) {\n      return 0;\n    }\n    if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar18 == 0) {\n      return 0;\n    }\n    lVar17 = FUN_0012d8e0(param_1,lVar17,lVar18);\n    break;\n  case 0x42:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9e0(param_1,uVar8);\n    break;\n  case 0x52:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    lVar17 = FUN_0012e630(param_4,0,param_6);\n    if ((*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')) goto LAB_00132126;\n    if (lVar17 - 3U < 3) {\n      lVar17 = FUN_0012d5a0(param_1,uVar8);\n    }\n    else {\n      lVar17 = FUN_0012d580();\n    }\n    break;\n  case 0x53:\n    uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d880(param_1,uVar14,uVar8);\n    break;\n  case 0x61:\n    if (pbVar22[1] == 0x72) {\n      pbVar22 = pbVar22 + 2;\n      *param_4 = (ulong)pbVar22;\n      if (param_6 <= pbVar22) {\n        return 0;\n      }\n      local_78 = pbVar22;\n      iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }\n      if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }\n      FUN_0012e570(pbVar22);\n      return 0;\n    }\n    goto switchD_001311d2_caseD_24;\n  case 0x62:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    if (pbVar22[1] == 0x73) {\n      uVar8 = 0;\n    }\n    else {\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }\n    *param_4 = (ulong)(pbVar22 + 2);\n    if (((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76)) {\n      *param_4 = (ulong)(pbVar22 + 3);\n    }\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    uVar35 = FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 == ';') {\n      *param_4 = (ulong)((char *)*param_4 + 1);\n    }\n    if (uVar35 != 0) {\n      lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);\n      break;\n    }\nLAB_00133358:\n    lVar17 = FUN_0012d550(param_1);\n    break;\n  case 0x65:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    pbVar34 = pbVar40;\n    if (pbVar22[1] == 0x2d) {\n      do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *param_4 = (ulong)(pbVar22 + 2);\n    }\n    local_148 = (void *)xmalloc(0x50);\n    pvVar12 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    uVar35 = (ulong)*pbVar34;\n    if ((*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }\n    *(undefined8 *)((long)local_148 + uVar28 * 8) = 0;\n    pcVar16 = (char *)*param_4;\n    *(undefined8 *)((long)pvVar12 + uVar28 * 8) = 0;\n    if (*pcVar16 == ';') {\n      *param_4 = (ulong)(pcVar16 + 1);\n    }\n    lVar17 = FUN_0012d670(param_1,local_148,pvVar12);\n    break;\n  case 0x66:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6f0(param_1,uVar8,0,0);\n    break;\n  case 0x6b:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9b0(param_1,uVar8);\n    break;\n  case 0x72:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    bVar43 = false;\n    if ((uint)local_68 == (uint)local_70) {\n      bVar43 = local_68._4_4_ == local_70._4_4_;\n    }\n    pbVar34 = (byte *)*param_4;\n    lVar17 = 0;\n    bVar38 = *pbVar34;\n    if (bVar38 == 0x3d) {\n      *param_4 = (ulong)pbVar40;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      pbVar34 = (byte *)*param_4;\n      bVar38 = *pbVar34;\n    }\n    if (bVar38 == 0x3b) {\n      pbVar34 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar34;\n    }\n    uVar35 = FUN_0012e630(param_4,&local_7c,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    pcVar16 = (char *)*param_4 + 1;\n    *param_4 = (ulong)pcVar16;\n    uVar11 = FUN_0012e630(param_4,&local_78,param_6);\n    iVar5 = local_7c;\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    if (local_7c != 0 || (int)local_78 != 0) {\n      bVar41 = false;\n      bVar44 = lVar17 == 0;\n      if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }\n      lVar18 = 0x18;\n      pbVar22 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }\nLAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);\n      break;\n    }\nLAB_0013197e:\n    if (lVar17 != 0) {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }\n    if ((bVar43) && (uVar35 == 0)) {\n      if (uVar11 == 0) goto LAB_00133358;\n      if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }\n      lVar17 = FUN_0012d560(param_1,4,1);\n    }\n    else {\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }\n    break;\n  case 0x73:\n  case 0x75:\n    uVar8 = FUN_0012e630(param_4,0,param_6);\n    pbVar40 = (byte *)*param_4;\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    local_f8 = 0;\n    if (*pbVar40 == 0x21) {\n      *param_4 = (ulong)(pbVar40 + 1);\n      uVar39 = FUN_0012e630(param_4,0,param_6);\n      if (*(char *)*param_4 != ',') goto LAB_00132126;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);\n      if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }\n      pbVar40 = (byte *)*param_4;\n      *(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;\n      if (param_6 <= pbVar40) {\n        return 0;\n      }\n    }\n    uVar35 = 0;\n    local_130 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    bVar43 = false;\n    bVar3 = *pbVar34;\n    local_138._0_4_ = 10;\n    while (bVar3 != 0x3b) {\n      uVar39 = (int)uVar35 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }\n      if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }\n      pbVar34 = (byte *)*param_4;\n      uVar35 = (ulong)uVar39;\n      bVar3 = *pbVar34;\n    }\n    *(undefined8 *)((long)local_130 + uVar35 * 8) = 0;\n    if (param_6 <= pbVar34) goto LAB_00131328;\n    bVar3 = *pbVar34;\n    if (bVar3 == 0x3b) {\n      local_108 = 0;\nLAB_001334bc:\n      pbVar22 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar22;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }\n    if (*pbVar22 == 0x7e) {\n      pbVar40 = pbVar22 + 1;\n      *param_4 = (ulong)pbVar40;\n      if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *param_4 = (ulong)(pbVar40 + 1);\n      iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n      if (iVar5 == 0) goto LAB_00131328;\n      if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }\n      if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;\n      uVar14 = 1;\n      lVar17 = 0;\n    }\n    else {\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }\n    lVar17 = FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14);\n    break;\n  case 0x78:\n    bVar47 = pbVar22[1];\n    if (bVar47 == 0x65) {\n      uVar32 = 0xb;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }\nLAB_00131e0e:\n    pbVar40 = pbVar40 + 1;\n    *param_4 = (ulong)pbVar40;\n    pcVar15 = strchr((char *)pbVar40,0x3c);\n    pcVar16 = strchr((char *)pbVar40,0x3a);\n    if (pcVar16 != (char *)0x0) {\n      if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }\n      cVar4 = *pcVar15;\n      if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }\n    }\nswitchD_001311d2_caseD_24:\n    FUN_0012e570(pbVar34);\n    return 0;\n  }" switch (parenthesized_expression "(bVar38)" ( identifier )) (compound_statement "{\n  case 0x23:\n    if (pbVar22[1] == 0x23) {\n      *param_4 = (ulong)(pbVar22 + 2);\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);\n    }\n    else {\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }\n    break;\n  default:\n    goto switchD_001311d2_caseD_24;\n  case 0x26:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d760(param_1,uVar8);\n    break;\n  case 0x28:\n  case 0x2d:\n  case 0x30:\n  case 0x31:\n  case 0x32:\n  case 0x33:\n  case 0x34:\n  case 0x35:\n  case 0x36:\n  case 0x37:\n  case 0x38:\n  case 0x39:\n    *param_4 = (ulong)pbVar22;\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    if ((uint)local_70 == (uint)local_68) {\n      if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;\n      lVar17 = FUN_0012d550(param_1);\n    }\n    else {\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    break;\n  case 0x2a:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6b0(param_1,uVar8);\n    break;\n  case 0x40:\nswitchD_001311d2_caseD_40:\n    lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar17 == 0) {\n      return 0;\n    }\n    if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar18 == 0) {\n      return 0;\n    }\n    lVar17 = FUN_0012d8e0(param_1,lVar17,lVar18);\n    break;\n  case 0x42:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9e0(param_1,uVar8);\n    break;\n  case 0x52:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    lVar17 = FUN_0012e630(param_4,0,param_6);\n    if ((*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')) goto LAB_00132126;\n    if (lVar17 - 3U < 3) {\n      lVar17 = FUN_0012d5a0(param_1,uVar8);\n    }\n    else {\n      lVar17 = FUN_0012d580();\n    }\n    break;\n  case 0x53:\n    uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d880(param_1,uVar14,uVar8);\n    break;\n  case 0x61:\n    if (pbVar22[1] == 0x72) {\n      pbVar22 = pbVar22 + 2;\n      *param_4 = (ulong)pbVar22;\n      if (param_6 <= pbVar22) {\n        return 0;\n      }\n      local_78 = pbVar22;\n      iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }\n      if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }\n      FUN_0012e570(pbVar22);\n      return 0;\n    }\n    goto switchD_001311d2_caseD_24;\n  case 0x62:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    if (pbVar22[1] == 0x73) {\n      uVar8 = 0;\n    }\n    else {\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }\n    *param_4 = (ulong)(pbVar22 + 2);\n    if (((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76)) {\n      *param_4 = (ulong)(pbVar22 + 3);\n    }\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    uVar35 = FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 == ';') {\n      *param_4 = (ulong)((char *)*param_4 + 1);\n    }\n    if (uVar35 != 0) {\n      lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);\n      break;\n    }\nLAB_00133358:\n    lVar17 = FUN_0012d550(param_1);\n    break;\n  case 0x65:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    pbVar34 = pbVar40;\n    if (pbVar22[1] == 0x2d) {\n      do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *param_4 = (ulong)(pbVar22 + 2);\n    }\n    local_148 = (void *)xmalloc(0x50);\n    pvVar12 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    uVar35 = (ulong)*pbVar34;\n    if ((*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }\n    *(undefined8 *)((long)local_148 + uVar28 * 8) = 0;\n    pcVar16 = (char *)*param_4;\n    *(undefined8 *)((long)pvVar12 + uVar28 * 8) = 0;\n    if (*pcVar16 == ';') {\n      *param_4 = (ulong)(pcVar16 + 1);\n    }\n    lVar17 = FUN_0012d670(param_1,local_148,pvVar12);\n    break;\n  case 0x66:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6f0(param_1,uVar8,0,0);\n    break;\n  case 0x6b:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9b0(param_1,uVar8);\n    break;\n  case 0x72:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    bVar43 = false;\n    if ((uint)local_68 == (uint)local_70) {\n      bVar43 = local_68._4_4_ == local_70._4_4_;\n    }\n    pbVar34 = (byte *)*param_4;\n    lVar17 = 0;\n    bVar38 = *pbVar34;\n    if (bVar38 == 0x3d) {\n      *param_4 = (ulong)pbVar40;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      pbVar34 = (byte *)*param_4;\n      bVar38 = *pbVar34;\n    }\n    if (bVar38 == 0x3b) {\n      pbVar34 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar34;\n    }\n    uVar35 = FUN_0012e630(param_4,&local_7c,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    pcVar16 = (char *)*param_4 + 1;\n    *param_4 = (ulong)pcVar16;\n    uVar11 = FUN_0012e630(param_4,&local_78,param_6);\n    iVar5 = local_7c;\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    if (local_7c != 0 || (int)local_78 != 0) {\n      bVar41 = false;\n      bVar44 = lVar17 == 0;\n      if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }\n      lVar18 = 0x18;\n      pbVar22 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }\nLAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);\n      break;\n    }\nLAB_0013197e:\n    if (lVar17 != 0) {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }\n    if ((bVar43) && (uVar35 == 0)) {\n      if (uVar11 == 0) goto LAB_00133358;\n      if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }\n      lVar17 = FUN_0012d560(param_1,4,1);\n    }\n    else {\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }\n    break;\n  case 0x73:\n  case 0x75:\n    uVar8 = FUN_0012e630(param_4,0,param_6);\n    pbVar40 = (byte *)*param_4;\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    local_f8 = 0;\n    if (*pbVar40 == 0x21) {\n      *param_4 = (ulong)(pbVar40 + 1);\n      uVar39 = FUN_0012e630(param_4,0,param_6);\n      if (*(char *)*param_4 != ',') goto LAB_00132126;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);\n      if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }\n      pbVar40 = (byte *)*param_4;\n      *(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;\n      if (param_6 <= pbVar40) {\n        return 0;\n      }\n    }\n    uVar35 = 0;\n    local_130 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    bVar43 = false;\n    bVar3 = *pbVar34;\n    local_138._0_4_ = 10;\n    while (bVar3 != 0x3b) {\n      uVar39 = (int)uVar35 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }\n      if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }\n      pbVar34 = (byte *)*param_4;\n      uVar35 = (ulong)uVar39;\n      bVar3 = *pbVar34;\n    }\n    *(undefined8 *)((long)local_130 + uVar35 * 8) = 0;\n    if (param_6 <= pbVar34) goto LAB_00131328;\n    bVar3 = *pbVar34;\n    if (bVar3 == 0x3b) {\n      local_108 = 0;\nLAB_001334bc:\n      pbVar22 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar22;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }\n    if (*pbVar22 == 0x7e) {\n      pbVar40 = pbVar22 + 1;\n      *param_4 = (ulong)pbVar40;\n      if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *param_4 = (ulong)(pbVar40 + 1);\n      iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n      if (iVar5 == 0) goto LAB_00131328;\n      if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }\n      if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;\n      uVar14 = 1;\n      lVar17 = 0;\n    }\n    else {\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }\n    lVar17 = FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14);\n    break;\n  case 0x78:\n    bVar47 = pbVar22[1];\n    if (bVar47 == 0x65) {\n      uVar32 = 0xb;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }\nLAB_00131e0e:\n    pbVar40 = pbVar40 + 1;\n    *param_4 = (ulong)pbVar40;\n    pcVar15 = strchr((char *)pbVar40,0x3c);\n    pcVar16 = strchr((char *)pbVar40,0x3a);\n    if (pcVar16 != (char *)0x0) {\n      if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }\n      cVar4 = *pcVar15;\n      if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }\n    }\nswitchD_001311d2_caseD_24:\n    FUN_0012e570(pbVar34);\n    return 0;\n  }" { (case_statement "case 0x23:\n    if (pbVar22[1] == 0x23) {\n      *param_4 = (ulong)(pbVar22 + 2);\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);\n    }\n    else {\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }\n    break;" case number_literal : (if_statement "if (pbVar22[1] == 0x23) {\n      *param_4 = (ulong)(pbVar22 + 2);\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);\n    }\n    else {\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }" if (parenthesized_expression "(pbVar22[1] == 0x23)" ( (binary_expression "pbVar22[1] == 0x23" (subscript_expression "pbVar22[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      *param_4 = (ulong)(pbVar22 + 2);\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);\n    }" { (expression_statement "*param_4 = (ulong)(pbVar22 + 2);" (assignment_expression "*param_4 = (ulong)(pbVar22 + 2)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pbVar22 + 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pbVar22 + 2)" ( (binary_expression "pbVar22 + 2" identifier + number_literal) )))) ;) (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (if_statement "if (lVar17 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;" if (parenthesized_expression "(*(char *)*param_4 != ';')" ( (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "';'" ' character ')) )) (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);" (assignment_expression "lVar17 = FUN_0012d940(param_1,lVar17,0,0,0)" identifier = (call_expression "FUN_0012d940(param_1,lVar17,0,0,0)" identifier (argument_list "(param_1,lVar17,0,0,0)" ( identifier , identifier , number_literal , number_literal , number_literal )))) ;) }) (else_clause "else {\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }" else (compound_statement "{\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }" { (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (if_statement "if (lVar17 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;" if (parenthesized_expression "(*(char *)*param_4 != ',')" ( (binary_expression "*(char *)*param_4 != ','" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "','" ' character ')) )) (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (if_statement "if (lVar18 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar11 = 10;" (assignment_expression "uVar11 = 10" identifier = number_literal) ;) (expression_statement "puVar19 = (undefined8 *)xmalloc(0x50);" (assignment_expression "puVar19 = (undefined8 *)xmalloc(0x50)" identifier = (cast_expression "(undefined8 *)xmalloc(0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }" { (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "iVar5 = (int)uVar35;" (assignment_expression "iVar5 = (int)uVar35" identifier = (cast_expression "(int)uVar35" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (*pcVar16 == ';') break;" if (parenthesized_expression "(*pcVar16 == ';')" ( (binary_expression "*pcVar16 == ';'" (pointer_expression "*pcVar16" * identifier) == (char_literal "';'" ' character ')) )) (break_statement "break;" break ;)) (if_statement "if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }" if (parenthesized_expression "(*pcVar16 != ',')" ( (binary_expression "*pcVar16 != ','" (pointer_expression "*pcVar16" * identifier) != (char_literal "','" ' character ')) )) (compound_statement "{\n          FUN_0012e570(pbVar34);\n          return 0;\n        }" { (expression_statement "FUN_0012e570(pbVar34);" (call_expression "FUN_0012e570(pbVar34)" identifier (argument_list "(pbVar34)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (if_statement "if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }" if (parenthesized_expression "((uint)uVar11 <= iVar5 + 1U)" ( (binary_expression "(uint)uVar11 <= iVar5 + 1U" (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier) <= (binary_expression "iVar5 + 1U" identifier + number_literal)) )) (compound_statement "{\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }" { (expression_statement "uVar11 = (ulong)((uint)uVar11 + 10);" (assignment_expression "uVar11 = (ulong)((uint)uVar11 + 10)" identifier = (call_expression "(ulong)((uint)uVar11 + 10)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((uint)uVar11 + 10)" ( (binary_expression "(uint)uVar11 + 10" (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier) + number_literal) )))) ;) (expression_statement "puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);" (assignment_expression "puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3)" identifier = (cast_expression "(undefined8 *)xrealloc(puVar19,uVar11 << 3)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(puVar19,uVar11 << 3)" identifier (argument_list "(puVar19,uVar11 << 3)" ( identifier , (binary_expression "uVar11 << 3" identifier << number_literal) ))))) ;) })) (expression_statement "plVar10 = puVar19 + uVar35;" (assignment_expression "plVar10 = puVar19 + uVar35" identifier = (binary_expression "puVar19 + uVar35" identifier + identifier)) ;) (expression_statement "lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "uVar35 = (ulong)(iVar5 + 1U);" (assignment_expression "uVar35 = (ulong)(iVar5 + 1U)" identifier = (call_expression "(ulong)(iVar5 + 1U)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar5 + 1U)" ( (binary_expression "iVar5 + 1U" identifier + number_literal) )))) ;) (expression_statement "*plVar10 = lVar13;" (assignment_expression "*plVar10 = lVar13" (pointer_expression "*plVar10" * identifier) = identifier) ;) (if_statement "if (lVar13 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (expression_statement "puVar36 = puVar19;" (assignment_expression "puVar36 = puVar19" identifier = identifier) ;) (if_statement "if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }" { (expression_statement "puVar36 = puVar19 + (iVar5 - 1);" (assignment_expression "puVar36 = puVar19 + (iVar5 - 1)" identifier = (binary_expression "puVar19 + (iVar5 - 1)" identifier + (parenthesized_expression "(iVar5 - 1)" ( (binary_expression "iVar5 - 1" identifier - number_literal) )))) ;) (expression_statement "iVar5 = FUN_0012e080(param_1,*puVar36);" (assignment_expression "iVar5 = FUN_0012e080(param_1,*puVar36)" identifier = (call_expression "FUN_0012e080(param_1,*puVar36)" identifier (argument_list "(param_1,*puVar36)" ( identifier , (pointer_expression "*puVar36" * identifier) )))) ;) (if_statement "if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }" if (parenthesized_expression "(iVar5 == 2)" ( (binary_expression "iVar5 == 2" identifier == number_literal) )) (compound_statement "{\n          uVar8 = 0;\n        }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          puVar36 = puVar19 + uVar35;\n        }" else (compound_statement "{\n          puVar36 = puVar19 + uVar35;\n        }" { (expression_statement "puVar36 = puVar19 + uVar35;" (assignment_expression "puVar36 = puVar19 + uVar35" identifier = (binary_expression "puVar19 + uVar35" identifier + identifier)) ;) }))) })) (expression_statement "*puVar36 = 0;" (assignment_expression "*puVar36 = 0" (pointer_expression "*puVar36" * identifier) = number_literal) ;) (expression_statement "lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);" (assignment_expression "lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8)" identifier = (call_expression "FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8)" identifier (argument_list "(param_1,lVar18,lVar17,puVar19,uVar8)" ( identifier , identifier , identifier , identifier , identifier )))) ;) }))) (break_statement "break;" break ;)) (case_statement "default:\n    goto switchD_001311d2_caseD_24;" default : (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;)) (case_statement "case 0x26:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d760(param_1,uVar8);\n    break;" case number_literal : (expression_statement "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "lVar17 = FUN_0012d760(param_1,uVar8);" (assignment_expression "lVar17 = FUN_0012d760(param_1,uVar8)" identifier = (call_expression "FUN_0012d760(param_1,uVar8)" identifier (argument_list "(param_1,uVar8)" ( identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x28:" case number_literal :) (case_statement "case 0x2d:" case number_literal :) (case_statement "case 0x30:" case number_literal :) (case_statement "case 0x31:" case number_literal :) (case_statement "case 0x32:" case number_literal :) (case_statement "case 0x33:" case number_literal :) (case_statement "case 0x34:" case number_literal :) (case_statement "case 0x35:" case number_literal :) (case_statement "case 0x36:" case number_literal :) (case_statement "case 0x37:" case number_literal :) (case_statement "case 0x38:" case number_literal :) (case_statement "case 0x39:\n    *param_4 = (ulong)pbVar22;\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    if ((uint)local_70 == (uint)local_68) {\n      if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;\n      lVar17 = FUN_0012d550(param_1);\n    }\n    else {\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    break;" case number_literal : (expression_statement "*param_4 = (ulong)pbVar22;" (assignment_expression "*param_4 = (ulong)pbVar22" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar22" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);" (assignment_expression "iVar5 = FUN_0012e6c0(param_4,&local_68,param_6)" identifier = (call_expression "FUN_0012e6c0(param_4,&local_68,param_6)" identifier (argument_list "(param_4,&local_68,param_6)" ( identifier , (pointer_expression "&local_68" & identifier) , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((uint)local_70 == (uint)local_68) {\n      if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;\n      lVar17 = FUN_0012d550(param_1);\n    }\n    else {\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }" if (parenthesized_expression "((uint)local_70 == (uint)local_68)" ( (binary_expression "(uint)local_70 == (uint)local_68" (cast_expression "(uint)local_70" ( (type_descriptor "uint" type_identifier) ) identifier) == (cast_expression "(uint)local_68" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n      if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;\n      lVar17 = FUN_0012d550(param_1);\n    }" { (if_statement "if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;" if (parenthesized_expression "(local_70._4_4_ != local_68._4_4_)" ( (binary_expression "local_70._4_4_ != local_68._4_4_" (field_expression "local_70._4_4_" identifier . field_identifier) != (field_expression "local_68._4_4_" identifier . field_identifier)) )) (goto_statement "goto LAB_00132079;" goto statement_identifier ;)) (expression_statement "lVar17 = FUN_0012d550(param_1);" (assignment_expression "lVar17 = FUN_0012d550(param_1)" identifier = (call_expression "FUN_0012d550(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) }) (else_clause "else {\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }" else (compound_statement "{\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }" { (labeled_statement "LAB_00132079:\n      *param_4 = (ulong)pbVar22;" statement_identifier : (expression_statement "*param_4 = (ulong)pbVar22;" (assignment_expression "*param_4 = (ulong)pbVar22" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar22" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;)) (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (if_statement "if (lVar17 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) }))) (if_statement "if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }" if (parenthesized_expression "((uint)local_70 != -1)" ( (binary_expression "(uint)local_70 != -1" (cast_expression "(uint)local_70" ( (type_descriptor "uint" type_identifier) ) identifier) != number_literal) )) (compound_statement "{\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }" { (expression_statement "plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);" (assignment_expression "plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70)" identifier = (cast_expression "(long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70)" identifier (argument_list "(param_2 + 0x80,param_2 + 0x88,&local_70)" ( (binary_expression "param_2 + 0x80" identifier + number_literal) , (binary_expression "param_2 + 0x88" identifier + number_literal) , (pointer_expression "&local_70" & identifier) ))))) ;) (if_statement "if (plVar10 == (long *)0x0) {\n        return 0;\n      }" if (parenthesized_expression "(plVar10 == (long *)0x0)" ( (binary_expression "plVar10 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "*plVar10 = lVar17;" (assignment_expression "*plVar10 = lVar17" (pointer_expression "*plVar10" * identifier) = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x2a:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6b0(param_1,uVar8);\n    break;" case number_literal : (expression_statement "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "lVar17 = FUN_0012d6b0(param_1,uVar8);" (assignment_expression "lVar17 = FUN_0012d6b0(param_1,uVar8)" identifier = (call_expression "FUN_0012d6b0(param_1,uVar8)" identifier (argument_list "(param_1,uVar8)" ( identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x40:\nswitchD_001311d2_caseD_40:\n    lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar17 == 0) {\n      return 0;\n    }\n    if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar18 == 0) {\n      return 0;\n    }\n    lVar17 = FUN_0012d8e0(param_1,lVar17,lVar18);\n    break;" case number_literal : (labeled_statement "switchD_001311d2_caseD_40:\n    lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" statement_identifier : (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;)) (if_statement "if (lVar17 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;" if (parenthesized_expression "(*(char *)*param_4 != ',')" ( (binary_expression "*(char *)*param_4 != ','" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "','" ' character ')) )) (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (if_statement "if (lVar18 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar17 = FUN_0012d8e0(param_1,lVar17,lVar18);" (assignment_expression "lVar17 = FUN_0012d8e0(param_1,lVar17,lVar18)" identifier = (call_expression "FUN_0012d8e0(param_1,lVar17,lVar18)" identifier (argument_list "(param_1,lVar17,lVar18)" ( identifier , identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x42:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9e0(param_1,uVar8);\n    break;" case number_literal : (expression_statement "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "lVar17 = FUN_0012d9e0(param_1,uVar8);" (assignment_expression "lVar17 = FUN_0012d9e0(param_1,uVar8)" identifier = (call_expression "FUN_0012d9e0(param_1,uVar8)" identifier (argument_list "(param_1,uVar8)" ( identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x52:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    lVar17 = FUN_0012e630(param_4,0,param_6);\n    if ((*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')) goto LAB_00132126;\n    if (lVar17 - 3U < 3) {\n      lVar17 = FUN_0012d5a0(param_1,uVar8);\n    }\n    else {\n      lVar17 = FUN_0012d580();\n    }\n    break;" case number_literal : (if_statement "if (param_6 <= pbVar40) {\n      return 0;\n    }" if (parenthesized_expression "(param_6 <= pbVar40)" ( (binary_expression "param_6 <= pbVar40" identifier <= identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar17 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "lVar17 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) ;) (if_statement "if ((*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')) goto LAB_00132126;" if (parenthesized_expression "((*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';'))" ( (binary_expression "(*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')" (parenthesized_expression "(*(char *)*param_4 != ';')" ( (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "';'" ' character ')) )) || (parenthesized_expression "(uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')" ( (comma_expression "uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';'" (assignment_expression "uVar8 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) , (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "';'" ' character '))) ))) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (if_statement "if (lVar17 - 3U < 3) {\n      lVar17 = FUN_0012d5a0(param_1,uVar8);\n    }\n    else {\n      lVar17 = FUN_0012d580();\n    }" if (parenthesized_expression "(lVar17 - 3U < 3)" ( (binary_expression "lVar17 - 3U < 3" (binary_expression "lVar17 - 3U" identifier - number_literal) < number_literal) )) (compound_statement "{\n      lVar17 = FUN_0012d5a0(param_1,uVar8);\n    }" { (expression_statement "lVar17 = FUN_0012d5a0(param_1,uVar8);" (assignment_expression "lVar17 = FUN_0012d5a0(param_1,uVar8)" identifier = (call_expression "FUN_0012d5a0(param_1,uVar8)" identifier (argument_list "(param_1,uVar8)" ( identifier , identifier )))) ;) }) (else_clause "else {\n      lVar17 = FUN_0012d580();\n    }" else (compound_statement "{\n      lVar17 = FUN_0012d580();\n    }" { (expression_statement "lVar17 = FUN_0012d580();" (assignment_expression "lVar17 = FUN_0012d580()" identifier = (call_expression "FUN_0012d580()" identifier (argument_list "()" ( )))) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x53:\n    uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d880(param_1,uVar14,uVar8);\n    break;" case number_literal : (expression_statement "uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "lVar17 = FUN_0012d880(param_1,uVar14,uVar8);" (assignment_expression "lVar17 = FUN_0012d880(param_1,uVar14,uVar8)" identifier = (call_expression "FUN_0012d880(param_1,uVar14,uVar8)" identifier (argument_list "(param_1,uVar14,uVar8)" ( identifier , identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x61:\n    if (pbVar22[1] == 0x72) {\n      pbVar22 = pbVar22 + 2;\n      *param_4 = (ulong)pbVar22;\n      if (param_6 <= pbVar22) {\n        return 0;\n      }\n      local_78 = pbVar22;\n      iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }\n      if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }\n      FUN_0012e570(pbVar22);\n      return 0;\n    }\n    goto switchD_001311d2_caseD_24;" case number_literal : (if_statement "if (pbVar22[1] == 0x72) {\n      pbVar22 = pbVar22 + 2;\n      *param_4 = (ulong)pbVar22;\n      if (param_6 <= pbVar22) {\n        return 0;\n      }\n      local_78 = pbVar22;\n      iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }\n      if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }\n      FUN_0012e570(pbVar22);\n      return 0;\n    }" if (parenthesized_expression "(pbVar22[1] == 0x72)" ( (binary_expression "pbVar22[1] == 0x72" (subscript_expression "pbVar22[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      pbVar22 = pbVar22 + 2;\n      *param_4 = (ulong)pbVar22;\n      if (param_6 <= pbVar22) {\n        return 0;\n      }\n      local_78 = pbVar22;\n      iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }\n      if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }\n      FUN_0012e570(pbVar22);\n      return 0;\n    }" { (expression_statement "pbVar22 = pbVar22 + 2;" (assignment_expression "pbVar22 = pbVar22 + 2" identifier = (binary_expression "pbVar22 + 2" identifier + number_literal)) ;) (expression_statement "*param_4 = (ulong)pbVar22;" (assignment_expression "*param_4 = (ulong)pbVar22" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar22" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (param_6 <= pbVar22) {\n        return 0;\n      }" if (parenthesized_expression "(param_6 <= pbVar22)" ( (binary_expression "param_6 <= pbVar22" identifier <= identifier) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_78 = pbVar22;" (assignment_expression "local_78 = pbVar22" identifier = identifier) ;) (expression_statement "iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);" (assignment_expression "iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6)" identifier = (call_expression "FUN_0012e6c0(&local_78,&local_68,param_6)" identifier (argument_list "(&local_78,&local_68,param_6)" ( (pointer_expression "&local_78" & identifier) , (pointer_expression "&local_68" & identifier) , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }" if (parenthesized_expression "(((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '='))" ( (binary_expression "((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')" (parenthesized_expression "((uint)local_68 == 0 && local_68._4_4_ == 0)" ( (binary_expression "(uint)local_68 == 0 && local_68._4_4_ == 0" (binary_expression "(uint)local_68 == 0" (cast_expression "(uint)local_68" ( (type_descriptor "uint" type_identifier) ) identifier) == number_literal) && (binary_expression "local_68._4_4_ == 0" (field_expression "local_68._4_4_" identifier . field_identifier) == number_literal)) )) && (parenthesized_expression "(*(char *)*param_4 != '=')" ( (binary_expression "*(char *)*param_4 != '='" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "'='" ' character ')) ))) )) (compound_statement "{\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }" { (expression_statement "lVar17 = FUN_0012dec0(param_1,"int");" (assignment_expression "lVar17 = FUN_0012dec0(param_1,"int")" identifier = (call_expression "FUN_0012dec0(param_1,"int")" identifier (argument_list "(param_1,"int")" ( identifier , (string_literal ""int"" " string_content ") )))) ;) (if_statement "if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }" if (parenthesized_expression "((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0))" ( (binary_expression "(lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)" (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) && (parenthesized_expression "(lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)" ( (comma_expression "lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0" (assignment_expression "lVar17 = FUN_0012d560(param_1,4,0)" identifier = (call_expression "FUN_0012d560(param_1,4,0)" identifier (argument_list "(param_1,4,0)" ( identifier , number_literal , number_literal )))) , (binary_expression "lVar17 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "*param_4 = (ulong)local_78;" (assignment_expression "*param_4 = (ulong)local_78" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)local_78" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "pbVar34 = local_78;" (assignment_expression "pbVar34 = local_78" identifier = identifier) ;) }) (else_clause "else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }" else (compound_statement "{\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }" { (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) }))) (if_statement "if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }" if (parenthesized_expression "(*pbVar34 == 0x3b)" ( (binary_expression "*pbVar34 == 0x3b" (pointer_expression "*pbVar34" * identifier) == number_literal) )) (compound_statement "{\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }" { (expression_statement "*param_4 = (ulong)(pbVar34 + 1);" (assignment_expression "*param_4 = (ulong)(pbVar34 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pbVar34 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pbVar34 + 1)" ( (binary_expression "pbVar34 + 1" identifier + number_literal) )))) ;) (expression_statement "bVar47 = pbVar34[1];" (assignment_expression "bVar47 = pbVar34[1]" identifier = (subscript_expression "pbVar34[1]" identifier [ number_literal ])) ;) (if_statement "if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }" if (parenthesized_expression "(((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d))" ( (binary_expression "((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)" (parenthesized_expression "((_sch_istable[(ulong)bVar47 * 2] & 4) == 0)" ( (binary_expression "(_sch_istable[(ulong)bVar47 * 2] & 4) == 0" (parenthesized_expression "(_sch_istable[(ulong)bVar47 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)bVar47 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar47 * 2]" identifier [ (binary_expression "(ulong)bVar47 * 2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "(bVar47 != 0 && bVar47 != 0x2d)" ( (binary_expression "bVar47 != 0 && bVar47 != 0x2d" (binary_expression "bVar47 != 0" identifier != number_literal) && (binary_expression "bVar47 != 0x2d" identifier != number_literal)) ))) )) (compound_statement "{\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }" { (expression_statement "bVar43 = true;" (assignment_expression "bVar43 = true" identifier = true) ;) (expression_statement "*param_4 = (ulong)(pbVar34 + 2);" (assignment_expression "*param_4 = (ulong)(pbVar34 + 2)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pbVar34 + 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pbVar34 + 2)" ( (binary_expression "pbVar34 + 2" identifier + number_literal) )))) ;) }) (else_clause "else {\n          bVar43 = false;\n        }" else (compound_statement "{\n          bVar43 = false;\n        }" { (expression_statement "bVar43 = false;" (assignment_expression "bVar43 = false" identifier = false) ;) }))) (expression_statement "uVar14 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar14 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) ;) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (if_statement "if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }" if (parenthesized_expression "(*pcVar16 == ';')" ( (binary_expression "*pcVar16 == ';'" (pointer_expression "*pcVar16" * identifier) == (char_literal "';'" ' character ')) )) (compound_statement "{\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }" { (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (expression_statement "bVar47 = pcVar16[1];" (assignment_expression "bVar47 = pcVar16[1]" identifier = (subscript_expression "pcVar16[1]" identifier [ number_literal ])) ;) (if_statement "if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }" if (parenthesized_expression "(((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0))" ( (binary_expression "((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)" (parenthesized_expression "((_sch_istable[(ulong)bVar47 * 2] & 4) == 0)" ( (binary_expression "(_sch_istable[(ulong)bVar47 * 2] & 4) == 0" (parenthesized_expression "(_sch_istable[(ulong)bVar47 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)bVar47 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar47 * 2]" identifier [ (binary_expression "(ulong)bVar47 * 2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "(bVar47 != 0x2d && bVar47 != 0)" ( (binary_expression "bVar47 != 0x2d && bVar47 != 0" (binary_expression "bVar47 != 0x2d" identifier != number_literal) && (binary_expression "bVar47 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }" { (expression_statement "bVar43 = true;" (assignment_expression "bVar43 = true" identifier = true) ;) (expression_statement "*param_4 = (ulong)(pcVar16 + 2);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 2)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 2)" ( (binary_expression "pcVar16 + 2" identifier + number_literal) )))) ;) })) (expression_statement "uVar9 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar9 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }" if (parenthesized_expression "(*(char *)*param_4 == ';')" ( (binary_expression "*(char *)*param_4 == ';'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) == (char_literal "';'" ' character ')) )) (compound_statement "{\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }" { (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (if_statement "if (lVar18 == 0) {\n              return 0;\n            }" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) (expression_statement "uVar2 = 0xffffffffffffffff;" (assignment_expression "uVar2 = 0xffffffffffffffff" identifier = number_literal) ;) (if_statement "if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }" if (parenthesized_expression "(!bVar43)" ( (unary_expression "!bVar43" ! identifier) )) (compound_statement "{\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }" { (expression_statement "uVar25 = uVar14;" (assignment_expression "uVar25 = uVar14" identifier = identifier) ;) (expression_statement "uVar2 = uVar9;" (assignment_expression "uVar2 = uVar9" identifier = identifier) ;) })) (expression_statement "lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);" (assignment_expression "lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8)" identifier = (call_expression "FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8)" identifier (argument_list "(param_1,lVar18,lVar17,uVar25,uVar2,uVar8)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (break_statement "break;" break ;) })) })) })) (expression_statement "FUN_0012e570(pbVar22);" (call_expression "FUN_0012e570(pbVar22)" identifier (argument_list "(pbVar22)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;)) (case_statement "case 0x62:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    if (pbVar22[1] == 0x73) {\n      uVar8 = 0;\n    }\n    else {\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }\n    *param_4 = (ulong)(pbVar22 + 2);\n    if (((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76)) {\n      *param_4 = (ulong)(pbVar22 + 3);\n    }\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    uVar35 = FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 == ';') {\n      *param_4 = (ulong)((char *)*param_4 + 1);\n    }\n    if (uVar35 != 0) {\n      lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);\n      break;\n    }\nLAB_00133358:\n    lVar17 = FUN_0012d550(param_1);\n    break;" case number_literal : (if_statement "if (param_6 <= pbVar40) {\n      return 0;\n    }" if (parenthesized_expression "(param_6 <= pbVar40)" ( (binary_expression "param_6 <= pbVar40" identifier <= identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (pbVar22[1] == 0x73) {\n      uVar8 = 0;\n    }\n    else {\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }" if (parenthesized_expression "(pbVar22[1] == 0x73)" ( (binary_expression "pbVar22[1] == 0x73" (subscript_expression "pbVar22[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      uVar8 = 0;\n    }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }" else (compound_statement "{\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }" { (if_statement "if (pbVar22[1] != 0x75) goto LAB_00132126;" if (parenthesized_expression "(pbVar22[1] != 0x75)" ( (binary_expression "pbVar22[1] != 0x75" (subscript_expression "pbVar22[1]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) }))) (expression_statement "*param_4 = (ulong)(pbVar22 + 2);" (assignment_expression "*param_4 = (ulong)(pbVar22 + 2)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pbVar22 + 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pbVar22 + 2)" ( (binary_expression "pbVar22 + 2" identifier + number_literal) )))) ;) (if_statement "if (((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76)) {\n      *param_4 = (ulong)(pbVar22 + 3);\n    }" if (parenthesized_expression "(((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76))" ( (binary_expression "((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76)" (parenthesized_expression "((byte)(pbVar22[2] + 0x9e) < 2)" ( (binary_expression "(byte)(pbVar22[2] + 0x9e) < 2" (call_expression "(byte)(pbVar22[2] + 0x9e)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pbVar22[2] + 0x9e)" ( (binary_expression "pbVar22[2] + 0x9e" (subscript_expression "pbVar22[2]" identifier [ number_literal ]) + number_literal) ))) < number_literal) )) || (parenthesized_expression "(pbVar22[2] == 0x76)" ( (binary_expression "pbVar22[2] == 0x76" (subscript_expression "pbVar22[2]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      *param_4 = (ulong)(pbVar22 + 3);\n    }" { (expression_statement "*param_4 = (ulong)(pbVar22 + 3);" (assignment_expression "*param_4 = (ulong)(pbVar22 + 3)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pbVar22 + 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pbVar22 + 3)" ( (binary_expression "pbVar22 + 3" identifier + number_literal) )))) ;) })) (expression_statement "FUN_0012e630(param_4,0,param_6);" (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (*(char *)*param_4 != ';') goto LAB_00132126;" if (parenthesized_expression "(*(char *)*param_4 != ';')" ( (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "FUN_0012e630(param_4,0,param_6);" (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (*(char *)*param_4 != ';') goto LAB_00132126;" if (parenthesized_expression "(*(char *)*param_4 != ';')" ( (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "uVar35 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar35 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (*(char *)*param_4 == ';') {\n      *param_4 = (ulong)((char *)*param_4 + 1);\n    }" if (parenthesized_expression "(*(char *)*param_4 == ';')" ( (binary_expression "*(char *)*param_4 == ';'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) == (char_literal "';'" ' character ')) )) (compound_statement "{\n      *param_4 = (ulong)((char *)*param_4 + 1);\n    }" { (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) })) (if_statement "if (uVar35 != 0) {\n      lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);\n      break;\n    }" if (parenthesized_expression "(uVar35 != 0)" ( (binary_expression "uVar35 != 0" identifier != number_literal) )) (compound_statement "{\n      lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);\n      break;\n    }" { (expression_statement "lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);" (assignment_expression "lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8)" identifier = (call_expression "FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8)" identifier (argument_list "(param_1,uVar35 >> 3 & 0xffffffff,uVar8)" ( identifier , (binary_expression "uVar35 >> 3 & 0xffffffff" (binary_expression "uVar35 >> 3" identifier >> number_literal) & number_literal) , identifier )))) ;) (break_statement "break;" break ;) })) (labeled_statement "LAB_00133358:\n    lVar17 = FUN_0012d550(param_1);" statement_identifier : (expression_statement "lVar17 = FUN_0012d550(param_1);" (assignment_expression "lVar17 = FUN_0012d550(param_1)" identifier = (call_expression "FUN_0012d550(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;)) (break_statement "break;" break ;)) (case_statement "case 0x65:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    pbVar34 = pbVar40;\n    if (pbVar22[1] == 0x2d) {\n      do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *param_4 = (ulong)(pbVar22 + 2);\n    }\n    local_148 = (void *)xmalloc(0x50);\n    pvVar12 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    uVar35 = (ulong)*pbVar34;\n    if ((*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }\n    *(undefined8 *)((long)local_148 + uVar28 * 8) = 0;\n    pcVar16 = (char *)*param_4;\n    *(undefined8 *)((long)pvVar12 + uVar28 * 8) = 0;\n    if (*pcVar16 == ';') {\n      *param_4 = (ulong)(pcVar16 + 1);\n    }\n    lVar17 = FUN_0012d670(param_1,local_148,pvVar12);\n    break;" case number_literal : (if_statement "if (param_6 <= pbVar40) {\n      return 0;\n    }" if (parenthesized_expression "(param_6 <= pbVar40)" ( (binary_expression "param_6 <= pbVar40" identifier <= identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pbVar34 = pbVar40;" (assignment_expression "pbVar34 = pbVar40" identifier = identifier) ;) (if_statement "if (pbVar22[1] == 0x2d) {\n      do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *param_4 = (ulong)(pbVar22 + 2);\n    }" if (parenthesized_expression "(pbVar22[1] == 0x2d)" ( (binary_expression "pbVar22[1] == 0x2d" (subscript_expression "pbVar22[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *param_4 = (ulong)(pbVar22 + 2);\n    }" { (do_statement "do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);" do (compound_statement "{\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      }" { (expression_statement "pbVar22 = pbVar34;" (assignment_expression "pbVar22 = pbVar34" identifier = identifier) ;) (expression_statement "*param_4 = (ulong)(pbVar22 + 1);" (assignment_expression "*param_4 = (ulong)(pbVar22 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pbVar22 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pbVar22 + 1)" ( (binary_expression "pbVar22 + 1" identifier + number_literal) )))) ;) (expression_statement "bVar47 = pbVar22[1];" (assignment_expression "bVar47 = pbVar22[1]" identifier = (subscript_expression "pbVar22[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar47 == 0x3a) break;" if (parenthesized_expression "(bVar47 == 0x3a)" ( (binary_expression "bVar47 == 0x3a" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar34 = pbVar22 + 1;" (assignment_expression "pbVar34 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar47 != 0)" ( (binary_expression "bVar47 != 0" identifier != number_literal) )) ;) (if_statement "if (bVar47 == 0) goto LAB_00132126;" if (parenthesized_expression "(bVar47 == 0)" ( (binary_expression "bVar47 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)(pbVar22 + 2);" (assignment_expression "*param_4 = (ulong)(pbVar22 + 2)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pbVar22 + 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pbVar22 + 2)" ( (binary_expression "pbVar22 + 2" identifier + number_literal) )))) ;) })) (expression_statement "local_148 = (void *)xmalloc(0x50);" (assignment_expression "local_148 = (void *)xmalloc(0x50)" identifier = (cast_expression "(void *)xmalloc(0x50)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "pvVar12 = (void *)xmalloc(0x50);" (assignment_expression "pvVar12 = (void *)xmalloc(0x50)" identifier = (cast_expression "(void *)xmalloc(0x50)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "uVar35 = (ulong)*pbVar34;" (assignment_expression "uVar35 = (ulong)*pbVar34" identifier = (binary_expression "(ulong)*pbVar34" (parenthesized_expression "(ulong)" ( identifier )) * identifier)) ;) (if_statement "if ((*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }" if (parenthesized_expression "((*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0))" ( (binary_expression "(*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)" (parenthesized_expression "(*pbVar34 < 0x3c)" ( (binary_expression "*pbVar34 < 0x3c" (pointer_expression "*pbVar34" * identifier) < number_literal) )) && (parenthesized_expression "((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)" ( (binary_expression "(0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0" (parenthesized_expression "(0x800100000000001U >> (uVar35 & 0x3f) & 1)" ( (binary_expression "0x800100000000001U >> (uVar35 & 0x3f) & 1" (binary_expression "0x800100000000001U >> (uVar35 & 0x3f)" number_literal >> (parenthesized_expression "(uVar35 & 0x3f)" ( (binary_expression "uVar35 & 0x3f" identifier & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      uVar28 = 0;\n    }" { (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }" else (compound_statement "{\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }" { (expression_statement "uVar11 = 10;" (assignment_expression "uVar11 = 10" identifier = number_literal) ;) (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" identifier = number_literal) ;) (do_statement "do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));" do (compound_statement "{\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      }" { (expression_statement "bVar47 = (byte)uVar35;" (assignment_expression "bVar47 = (byte)uVar35" identifier = (cast_expression "(byte)uVar35" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar22 = pbVar34;" (assignment_expression "pbVar22 = pbVar34" identifier = identifier) ;) (while_statement "while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }" while (parenthesized_expression "((bVar47 != 0x3a && (bVar47 != 0)))" ( (parenthesized_expression "(bVar47 != 0x3a && (bVar47 != 0))" ( (binary_expression "bVar47 != 0x3a && (bVar47 != 0)" (binary_expression "bVar47 != 0x3a" identifier != number_literal) && (parenthesized_expression "(bVar47 != 0)" ( (binary_expression "bVar47 != 0" identifier != number_literal) ))) )) )) (compound_statement "{\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }" { (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "bVar47 = *pbVar22;" (assignment_expression "bVar47 = *pbVar22" identifier = (pointer_expression "*pbVar22" * identifier)) ;) })) (if_statement "if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }" if (parenthesized_expression "(bVar47 == 0)" ( (binary_expression "bVar47 == 0" identifier == number_literal) )) (compound_statement "{\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }" { (expression_statement "FUN_0012e570(pbVar40);" (call_expression "FUN_0012e570(pbVar40)" identifier (argument_list "(pbVar40)" ( identifier ))) ;) (labeled_statement "LAB_00132cf2:\n          free(local_148);" statement_identifier : (expression_statement "free(local_148);" (call_expression "free(local_148)" identifier (argument_list "(local_148)" ( identifier ))) ;)) (expression_statement "free(pvVar12);" (call_expression "free(pvVar12)" identifier (argument_list "(pvVar12)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "__ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);" (assignment_expression "__ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34)" identifier = (cast_expression "(void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34)" identifier (argument_list "(pbVar34,(long)pbVar22 - (long)pbVar34)" ( identifier , (binary_expression "(long)pbVar22 - (long)pbVar34" (cast_expression "(long)pbVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar34" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))))) ;) (expression_statement "*param_4 = (ulong)(pbVar22 + 1);" (assignment_expression "*param_4 = (ulong)(pbVar22 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pbVar22 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pbVar22 + 1)" ( (binary_expression "pbVar22 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar8 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar8 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }" if (parenthesized_expression "(*(char *)*param_4 != ',')" ( (binary_expression "*(char *)*param_4 != ','" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "','" ' character ')) )) (compound_statement "{\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }" { (expression_statement "FUN_0012e570(pbVar40);" (call_expression "FUN_0012e570(pbVar40)" identifier (argument_list "(pbVar40)" ( identifier ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (goto_statement "goto LAB_00132cf2;" goto statement_identifier ;) })) (expression_statement "uVar7 = uVar39 + 1;" (assignment_expression "uVar7 = uVar39 + 1" identifier = (binary_expression "uVar39 + 1" identifier + number_literal)) ;) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (if_statement "if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }" if (parenthesized_expression "((uint)uVar11 <= uVar7)" ( (binary_expression "(uint)uVar11 <= uVar7" (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier) <= identifier) )) (compound_statement "{\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }" { (expression_statement "uVar11 = (ulong)((uint)uVar11 + 10);" (assignment_expression "uVar11 = (ulong)((uint)uVar11 + 10)" identifier = (call_expression "(ulong)((uint)uVar11 + 10)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((uint)uVar11 + 10)" ( (binary_expression "(uint)uVar11 + 10" (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier) + number_literal) )))) ;) (expression_statement "local_148 = (void *)xrealloc(local_148,uVar11 << 3);" (assignment_expression "local_148 = (void *)xrealloc(local_148,uVar11 << 3)" identifier = (cast_expression "(void *)xrealloc(local_148,uVar11 << 3)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(local_148,uVar11 << 3)" identifier (argument_list "(local_148,uVar11 << 3)" ( identifier , (binary_expression "uVar11 << 3" identifier << number_literal) ))))) ;) (expression_statement "pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);" (assignment_expression "pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3)" identifier = (cast_expression "(void *)xrealloc(pvVar12,uVar11 << 3)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(pvVar12,uVar11 << 3)" identifier (argument_list "(pvVar12,uVar11 << 3)" ( identifier , (binary_expression "uVar11 << 3" identifier << number_literal) ))))) ;) })) (expression_statement "uVar28 = (ulong)uVar7;" (assignment_expression "uVar28 = (ulong)uVar7" identifier = (cast_expression "(ulong)uVar7" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "*(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;" (assignment_expression "*(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr" (pointer_expression "*(void **)((long)local_148 + (ulong)uVar39 * 8)" * (cast_expression "(void **)((long)local_148 + (ulong)uVar39 * 8)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)local_148 + (ulong)uVar39 * 8)" ( (binary_expression "(long)local_148 + (ulong)uVar39 * 8" (cast_expression "(long)local_148" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)uVar39 * 8" (cast_expression "(ulong)uVar39" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) )))) = identifier) ;) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "*(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;" (assignment_expression "*(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8" (pointer_expression "*(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8)" * (cast_expression "(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar12 + (ulong)uVar39 * 8)" ( (binary_expression "(long)pvVar12 + (ulong)uVar39 * 8" (cast_expression "(long)pvVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)uVar39 * 8" (cast_expression "(ulong)uVar39" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) )))) = identifier) ;) (expression_statement "uVar35 = (ulong)*pbVar34;" (assignment_expression "uVar35 = (ulong)*pbVar34" identifier = (binary_expression "(ulong)*pbVar34" (parenthesized_expression "(ulong)" ( identifier )) * identifier)) ;) (expression_statement "uVar39 = uVar7;" (assignment_expression "uVar39 = uVar7" identifier = identifier) ;) }) while (parenthesized_expression "((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0))" ( (binary_expression "(0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0)" (parenthesized_expression "(0x3b < *pbVar34)" ( (binary_expression "0x3b < *pbVar34" number_literal < (pointer_expression "*pbVar34" * identifier)) )) || (parenthesized_expression "((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0)" ( (binary_expression "(0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0" (parenthesized_expression "(0x800100000000001U >> (uVar35 & 0x3f) & 1)" ( (binary_expression "0x800100000000001U >> (uVar35 & 0x3f) & 1" (binary_expression "0x800100000000001U >> (uVar35 & 0x3f)" number_literal >> (parenthesized_expression "(uVar35 & 0x3f)" ( (binary_expression "uVar35 & 0x3f" identifier & number_literal) ))) & number_literal) )) == number_literal) ))) )) ;) }))) (expression_statement "*(undefined8 *)((long)local_148 + uVar28 * 8) = 0;" (assignment_expression "*(undefined8 *)((long)local_148 + uVar28 * 8) = 0" (pointer_expression "*(undefined8 *)((long)local_148 + uVar28 * 8)" * (cast_expression "(undefined8 *)((long)local_148 + uVar28 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_148 + uVar28 * 8)" ( (binary_expression "(long)local_148 + uVar28 * 8" (cast_expression "(long)local_148" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "uVar28 * 8" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "*(undefined8 *)((long)pvVar12 + uVar28 * 8) = 0;" (assignment_expression "*(undefined8 *)((long)pvVar12 + uVar28 * 8) = 0" (pointer_expression "*(undefined8 *)((long)pvVar12 + uVar28 * 8)" * (cast_expression "(undefined8 *)((long)pvVar12 + uVar28 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar12 + uVar28 * 8)" ( (binary_expression "(long)pvVar12 + uVar28 * 8" (cast_expression "(long)pvVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "uVar28 * 8" identifier * number_literal)) )))) = number_literal) ;) (if_statement "if (*pcVar16 == ';') {\n      *param_4 = (ulong)(pcVar16 + 1);\n    }" if (parenthesized_expression "(*pcVar16 == ';')" ( (binary_expression "*pcVar16 == ';'" (pointer_expression "*pcVar16" * identifier) == (char_literal "';'" ' character ')) )) (compound_statement "{\n      *param_4 = (ulong)(pcVar16 + 1);\n    }" { (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) })) (expression_statement "lVar17 = FUN_0012d670(param_1,local_148,pvVar12);" (assignment_expression "lVar17 = FUN_0012d670(param_1,local_148,pvVar12)" identifier = (call_expression "FUN_0012d670(param_1,local_148,pvVar12)" identifier (argument_list "(param_1,local_148,pvVar12)" ( identifier , identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x66:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6f0(param_1,uVar8,0,0);\n    break;" case number_literal : (expression_statement "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "lVar17 = FUN_0012d6f0(param_1,uVar8,0,0);" (assignment_expression "lVar17 = FUN_0012d6f0(param_1,uVar8,0,0)" identifier = (call_expression "FUN_0012d6f0(param_1,uVar8,0,0)" identifier (argument_list "(param_1,uVar8,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x6b:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9b0(param_1,uVar8);\n    break;" case number_literal : (expression_statement "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "lVar17 = FUN_0012d9b0(param_1,uVar8);" (assignment_expression "lVar17 = FUN_0012d9b0(param_1,uVar8)" identifier = (call_expression "FUN_0012d9b0(param_1,uVar8)" identifier (argument_list "(param_1,uVar8)" ( identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x72:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    bVar43 = false;\n    if ((uint)local_68 == (uint)local_70) {\n      bVar43 = local_68._4_4_ == local_70._4_4_;\n    }\n    pbVar34 = (byte *)*param_4;\n    lVar17 = 0;\n    bVar38 = *pbVar34;\n    if (bVar38 == 0x3d) {\n      *param_4 = (ulong)pbVar40;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      pbVar34 = (byte *)*param_4;\n      bVar38 = *pbVar34;\n    }\n    if (bVar38 == 0x3b) {\n      pbVar34 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar34;\n    }\n    uVar35 = FUN_0012e630(param_4,&local_7c,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    pcVar16 = (char *)*param_4 + 1;\n    *param_4 = (ulong)pcVar16;\n    uVar11 = FUN_0012e630(param_4,&local_78,param_6);\n    iVar5 = local_7c;\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    if (local_7c != 0 || (int)local_78 != 0) {\n      bVar41 = false;\n      bVar44 = lVar17 == 0;\n      if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }\n      lVar18 = 0x18;\n      pbVar22 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }\nLAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);\n      break;\n    }\nLAB_0013197e:\n    if (lVar17 != 0) {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }\n    if ((bVar43) && (uVar35 == 0)) {\n      if (uVar11 == 0) goto LAB_00133358;\n      if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }\n      lVar17 = FUN_0012d560(param_1,4,1);\n    }\n    else {\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }\n    break;" case number_literal : (if_statement "if (param_6 <= pbVar40) {\n      return 0;\n    }" if (parenthesized_expression "(param_6 <= pbVar40)" ( (binary_expression "param_6 <= pbVar40" identifier <= identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);" (assignment_expression "iVar5 = FUN_0012e6c0(param_4,&local_68,param_6)" identifier = (call_expression "FUN_0012e6c0(param_4,&local_68,param_6)" identifier (argument_list "(param_4,&local_68,param_6)" ( identifier , (pointer_expression "&local_68" & identifier) , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar43 = false;" (assignment_expression "bVar43 = false" identifier = false) ;) (if_statement "if ((uint)local_68 == (uint)local_70) {\n      bVar43 = local_68._4_4_ == local_70._4_4_;\n    }" if (parenthesized_expression "((uint)local_68 == (uint)local_70)" ( (binary_expression "(uint)local_68 == (uint)local_70" (cast_expression "(uint)local_68" ( (type_descriptor "uint" type_identifier) ) identifier) == (cast_expression "(uint)local_70" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n      bVar43 = local_68._4_4_ == local_70._4_4_;\n    }" { (expression_statement "bVar43 = local_68._4_4_ == local_70._4_4_;" (assignment_expression "bVar43 = local_68._4_4_ == local_70._4_4_" identifier = (binary_expression "local_68._4_4_ == local_70._4_4_" (field_expression "local_68._4_4_" identifier . field_identifier) == (field_expression "local_70._4_4_" identifier . field_identifier))) ;) })) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "lVar17 = 0;" (assignment_expression "lVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar38 = *pbVar34;" (assignment_expression "bVar38 = *pbVar34" identifier = (pointer_expression "*pbVar34" * identifier)) ;) (if_statement "if (bVar38 == 0x3d) {\n      *param_4 = (ulong)pbVar40;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      pbVar34 = (byte *)*param_4;\n      bVar38 = *pbVar34;\n    }" if (parenthesized_expression "(bVar38 == 0x3d)" ( (binary_expression "bVar38 == 0x3d" identifier == number_literal) )) (compound_statement "{\n      *param_4 = (ulong)pbVar40;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      pbVar34 = (byte *)*param_4;\n      bVar38 = *pbVar34;\n    }" { (expression_statement "*param_4 = (ulong)pbVar40;" (assignment_expression "*param_4 = (ulong)pbVar40" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar40" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (if_statement "if (lVar17 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "bVar38 = *pbVar34;" (assignment_expression "bVar38 = *pbVar34" identifier = (pointer_expression "*pbVar34" * identifier)) ;) })) (if_statement "if (bVar38 == 0x3b) {\n      pbVar34 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar34;\n    }" if (parenthesized_expression "(bVar38 == 0x3b)" ( (binary_expression "bVar38 == 0x3b" identifier == number_literal) )) (compound_statement "{\n      pbVar34 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar34;\n    }" { (expression_statement "pbVar34 = pbVar34 + 1;" (assignment_expression "pbVar34 = pbVar34 + 1" identifier = (binary_expression "pbVar34 + 1" identifier + number_literal)) ;) (expression_statement "*param_4 = (ulong)pbVar34;" (assignment_expression "*param_4 = (ulong)pbVar34" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar34" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) })) (expression_statement "uVar35 = FUN_0012e630(param_4,&local_7c,param_6);" (assignment_expression "uVar35 = FUN_0012e630(param_4,&local_7c,param_6)" identifier = (call_expression "FUN_0012e630(param_4,&local_7c,param_6)" identifier (argument_list "(param_4,&local_7c,param_6)" ( identifier , (pointer_expression "&local_7c" & identifier) , identifier )))) ;) (if_statement "if (*(char *)*param_4 != ';') goto LAB_00132126;" if (parenthesized_expression "(*(char *)*param_4 != ';')" ( (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "pcVar16 = (char *)*param_4 + 1;" (assignment_expression "pcVar16 = (char *)*param_4 + 1" identifier = (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal)) ;) (expression_statement "*param_4 = (ulong)pcVar16;" (assignment_expression "*param_4 = (ulong)pcVar16" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pcVar16" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar11 = FUN_0012e630(param_4,&local_78,param_6);" (assignment_expression "uVar11 = FUN_0012e630(param_4,&local_78,param_6)" identifier = (call_expression "FUN_0012e630(param_4,&local_78,param_6)" identifier (argument_list "(param_4,&local_78,param_6)" ( identifier , (pointer_expression "&local_78" & identifier) , identifier )))) ;) (expression_statement "iVar5 = local_7c;" (assignment_expression "iVar5 = local_7c" identifier = identifier) ;) (if_statement "if (*(char *)*param_4 != ';') goto LAB_00132126;" if (parenthesized_expression "(*(char *)*param_4 != ';')" ( (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (if_statement "if (local_7c != 0 || (int)local_78 != 0) {\n      bVar41 = false;\n      bVar44 = lVar17 == 0;\n      if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }\n      lVar18 = 0x18;\n      pbVar22 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }\nLAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);\n      break;\n    }" if (parenthesized_expression "(local_7c != 0 || (int)local_78 != 0)" ( (binary_expression "local_7c != 0 || (int)local_78 != 0" (binary_expression "local_7c != 0" identifier != number_literal) || (binary_expression "(int)local_78 != 0" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal)) )) (compound_statement "{\n      bVar41 = false;\n      bVar44 = lVar17 == 0;\n      if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }\n      lVar18 = 0x18;\n      pbVar22 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }\nLAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);\n      break;\n    }" { (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (expression_statement "bVar44 = lVar17 == 0;" (assignment_expression "bVar44 = lVar17 == 0" identifier = (binary_expression "lVar17 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }" if (parenthesized_expression "(!bVar44)" ( (unary_expression "!bVar44" ! identifier) )) (compound_statement "{\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }" { (labeled_statement "LAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);" statement_identifier : (expression_statement "uVar8 = dcgettext(0,"numeric overflow",5);" (assignment_expression "uVar8 = dcgettext(0,"numeric overflow",5)" identifier = (call_expression "dcgettext(0,"numeric overflow",5)" identifier (argument_list "(0,"numeric overflow",5)" ( number_literal , (string_literal ""numeric overflow"" " string_content ") , number_literal )))) ;)) (expression_statement "FUN_0012e500(pbVar40,uVar8);" (call_expression "FUN_0012e500(pbVar40,uVar8)" identifier (argument_list "(pbVar40,uVar8)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0013197e;" goto statement_identifier ;) })) (expression_statement "lVar18 = 0x18;" (assignment_expression "lVar18 = 0x18" identifier = number_literal) ;) (expression_statement "pbVar22 = (byte *)"01000000000000000000000;";" (assignment_expression "pbVar22 = (byte *)"01000000000000000000000;"" identifier = (cast_expression "(byte *)"01000000000000000000000;"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""01000000000000000000000;"" " string_content "))) ;) (do_statement "do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);" do (compound_statement "{\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "bVar41 = *pbVar34 < *pbVar22;" (assignment_expression "bVar41 = *pbVar34 < *pbVar22" identifier = (binary_expression "*pbVar34 < *pbVar22" (pointer_expression "*pbVar34" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar44 = *pbVar34 == *pbVar22;" (assignment_expression "bVar44 = *pbVar34 == *pbVar22" identifier = (binary_expression "*pbVar34 == *pbVar22" (pointer_expression "*pbVar34" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1" identifier = (binary_expression "pbVar34 + (ulong)bVar47 * -2 + 1" (binary_expression "pbVar34 + (ulong)bVar47 * -2" identifier + (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1" identifier = (binary_expression "pbVar22 + (ulong)bVar47 * -2 + 1" (binary_expression "pbVar22 + (ulong)bVar47 * -2" identifier + (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar44)" ( identifier )) ;) (if_statement "if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }" if (parenthesized_expression "(((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0))" ( (binary_expression "((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)" (parenthesized_expression "((!bVar41 && !bVar44) != bVar41)" ( (binary_expression "(!bVar41 && !bVar44) != bVar41" (parenthesized_expression "(!bVar41 && !bVar44)" ( (binary_expression "!bVar41 && !bVar44" (unary_expression "!bVar41" ! identifier) && (unary_expression "!bVar44" ! identifier)) )) != identifier) )) || (parenthesized_expression "(iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)" ( (comma_expression "iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0" (assignment_expression "iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17)" identifier = (call_expression "strncmp(pcVar16,"0777777777777777777777;",0x17)" identifier (argument_list "(pcVar16,"0777777777777777777777;",0x17)" ( identifier , (string_literal ""0777777777777777777777;"" " string_content ") , number_literal )))) , (binary_expression "iVar27 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }" { (if_statement "if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;" if (parenthesized_expression "((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))" ( (binary_expression "(uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0)))" (parenthesized_expression "(uVar35 != 0)" ( (binary_expression "uVar35 != 0" identifier != number_literal) )) || (parenthesized_expression "((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0)))" ( (parenthesized_expression "(iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))" ( (binary_expression "iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0)" (binary_expression "iVar5 != 0" identifier != number_literal) || (parenthesized_expression "(iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0)" ( (comma_expression "iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0" (assignment_expression "iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18)" identifier = (call_expression "strncmp(pcVar16,"01777777777777777777777;",0x18)" identifier (argument_list "(pcVar16,"01777777777777777777777;",0x18)" ( identifier , (string_literal ""01777777777777777777777;"" " string_content ") , number_literal )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) ))) )) (goto_statement "goto LAB_00131960;" goto statement_identifier ;)) (labeled_statement "LAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);" statement_identifier : (expression_statement "lVar17 = FUN_0012d560(param_1,8,1);" (assignment_expression "lVar17 = FUN_0012d560(param_1,8,1)" identifier = (call_expression "FUN_0012d560(param_1,8,1)" identifier (argument_list "(param_1,8,1)" ( identifier , number_literal , number_literal )))) ;)) (break_statement "break;" break ;) })) (labeled_statement "LAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);" statement_identifier : (expression_statement "lVar17 = FUN_0012d560(param_1,8,0);" (assignment_expression "lVar17 = FUN_0012d560(param_1,8,0)" identifier = (call_expression "FUN_0012d560(param_1,8,0)" identifier (argument_list "(param_1,8,0)" ( identifier , number_literal , number_literal )))) ;)) (break_statement "break;" break ;) })) (labeled_statement "LAB_0013197e:\n    if (lVar17 != 0) {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }" statement_identifier : (if_statement "if (lVar17 != 0) {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }" if (parenthesized_expression "(lVar17 != 0)" ( (binary_expression "lVar17 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }" { (labeled_statement "LAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }" statement_identifier : (if_statement "if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }" if (parenthesized_expression "(bVar43)" ( identifier )) (compound_statement "{\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }" { (labeled_statement "LAB_00132126:\n        FUN_0012e570(pbVar40);" statement_identifier : (expression_statement "FUN_0012e570(pbVar40);" (call_expression "FUN_0012e570(pbVar40)" identifier (argument_list "(pbVar40)" ( identifier ))) ;)) (return_statement "return 0;" return number_literal ;) }))) (expression_statement "lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);" (assignment_expression "lVar17 = FUN_0012e9f0(param_1,param_2,&local_68)" identifier = (call_expression "FUN_0012e9f0(param_1,param_2,&local_68)" identifier (argument_list "(param_1,param_2,&local_68)" ( identifier , identifier , (pointer_expression "&local_68" & identifier) )))) ;) (if_statement "if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }" { (expression_statement "uVar8 = dcgettext(0,"missing index type",5);" (assignment_expression "uVar8 = dcgettext(0,"missing index type",5)" identifier = (call_expression "dcgettext(0,"missing index type",5)" identifier (argument_list "(0,"missing index type",5)" ( number_literal , (string_literal ""missing index type"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0012e500(pbVar40,uVar8);" (call_expression "FUN_0012e500(pbVar40,uVar8)" identifier (argument_list "(pbVar40,uVar8)" ( identifier , identifier ))) ;) (expression_statement "lVar17 = FUN_0012d560(param_1,4,0);" (assignment_expression "lVar17 = FUN_0012d560(param_1,4,0)" identifier = (call_expression "FUN_0012d560(param_1,4,0)" identifier (argument_list "(param_1,4,0)" ( identifier , number_literal , number_literal )))) ;) })) (expression_statement "lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);" (assignment_expression "lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11)" identifier = (call_expression "FUN_0012d790(param_1,lVar17,uVar35,uVar11)" identifier (argument_list "(param_1,lVar17,uVar35,uVar11)" ( identifier , identifier , identifier , identifier )))) ;) (break_statement "break;" break ;) }))) (if_statement "if ((bVar43) && (uVar35 == 0)) {\n      if (uVar11 == 0) goto LAB_00133358;\n      if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }\n      lVar17 = FUN_0012d560(param_1,4,1);\n    }\n    else {\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }" if (parenthesized_expression "((bVar43) && (uVar35 == 0))" ( (binary_expression "(bVar43) && (uVar35 == 0)" (parenthesized_expression "(bVar43)" ( identifier )) && (parenthesized_expression "(uVar35 == 0)" ( (binary_expression "uVar35 == 0" identifier == number_literal) ))) )) (compound_statement "{\n      if (uVar11 == 0) goto LAB_00133358;\n      if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }\n      lVar17 = FUN_0012d560(param_1,4,1);\n    }" { (if_statement "if (uVar11 == 0) goto LAB_00133358;" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00133358;" goto statement_identifier ;)) (if_statement "if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }" if (parenthesized_expression "(uVar11 == 0xffffffffffffffff)" ( (binary_expression "uVar11 == 0xffffffffffffffff" identifier == number_literal) )) (compound_statement "{\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }" { (labeled_statement "LAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }" statement_identifier : (if_statement "if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }" if (parenthesized_expression "(param_3 != (char *)0x0)" ( (binary_expression "param_3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }" { (expression_statement "iVar5 = strcmp(param_3,"long long int");" (assignment_expression "iVar5 = strcmp(param_3,"long long int")" identifier = (call_expression "strcmp(param_3,"long long int")" identifier (argument_list "(param_3,"long long int")" ( identifier , (string_literal ""long long int"" " string_content ") )))) ;) (if_statement "if (iVar5 == 0) goto LAB_0013373f;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013373f;" goto statement_identifier ;)) (expression_statement "iVar5 = strcmp(param_3,"long long unsigned int");" (assignment_expression "iVar5 = strcmp(param_3,"long long unsigned int")" identifier = (call_expression "strcmp(param_3,"long long unsigned int")" identifier (argument_list "(param_3,"long long unsigned int")" ( identifier , (string_literal ""long long unsigned int"" " string_content ") )))) ;) (if_statement "if (iVar5 == 0) goto LAB_0013348a;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013348a;" goto statement_identifier ;)) }))) }) (else_clause "else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }" else (compound_statement "{\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }" { (if_statement "if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }" if (parenthesized_expression "(uVar11 == 0x7f)" ( (binary_expression "uVar11 == 0x7f" identifier == number_literal) )) (compound_statement "{\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }" { (labeled_statement "LAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);" statement_identifier : (expression_statement "lVar17 = FUN_0012d560(param_1,1,0);" (assignment_expression "lVar17 = FUN_0012d560(param_1,1,0)" identifier = (call_expression "FUN_0012d560(param_1,1,0)" identifier (argument_list "(param_1,1,0)" ( identifier , number_literal , number_literal )))) ;)) (break_statement "break;" break ;) })) (labeled_statement "LAB_00133a66:\n        iVar5 = (int)uVar11;" statement_identifier : (expression_statement "iVar5 = (int)uVar11;" (assignment_expression "iVar5 = (int)uVar11" identifier = (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (if_statement "if ((long)uVar11 < 0) goto LAB_00133b55;" if (parenthesized_expression "((long)uVar11 < 0)" ( (binary_expression "(long)uVar11 < 0" (cast_expression "(long)uVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (goto_statement "goto LAB_00133b55;" goto statement_identifier ;)) (if_statement "if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }" if (parenthesized_expression "(uVar11 == 0xff)" ( (binary_expression "uVar11 == 0xff" identifier == number_literal) )) (compound_statement "{\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }" { (expression_statement "lVar17 = FUN_0012d560(param_1,1,1);" (assignment_expression "lVar17 = FUN_0012d560(param_1,1,1)" identifier = (call_expression "FUN_0012d560(param_1,1,1)" identifier (argument_list "(param_1,1,1)" ( identifier , number_literal , number_literal )))) ;) (break_statement "break;" break ;) })) (if_statement "if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }" if (parenthesized_expression "(uVar11 == 0xffff)" ( (binary_expression "uVar11 == 0xffff" identifier == number_literal) )) (compound_statement "{\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }" { (expression_statement "lVar17 = FUN_0012d560(param_1,2,1);" (assignment_expression "lVar17 = FUN_0012d560(param_1,2,1)" identifier = (call_expression "FUN_0012d560(param_1,2,1)" identifier (argument_list "(param_1,2,1)" ( identifier , number_literal , number_literal )))) ;) (break_statement "break;" break ;) })) (if_statement "if (uVar11 != 0xffffffff) goto LAB_00131987;" if (parenthesized_expression "(uVar11 != 0xffffffff)" ( (binary_expression "uVar11 != 0xffffffff" identifier != number_literal) )) (goto_statement "goto LAB_00131987;" goto statement_identifier ;)) }))) (expression_statement "lVar17 = FUN_0012d560(param_1,4,1);" (assignment_expression "lVar17 = FUN_0012d560(param_1,4,1)" identifier = (call_expression "FUN_0012d560(param_1,4,1)" identifier (argument_list "(param_1,4,1)" ( identifier , number_literal , number_literal )))) ;) }) (else_clause "else {\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }" else (compound_statement "{\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }" { (expression_statement "bVar41 = uVar11 != 0;" (assignment_expression "bVar41 = uVar11 != 0" identifier = (binary_expression "uVar11 != 0" identifier != number_literal)) ;) (if_statement "if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }" if (parenthesized_expression "((!bVar43) || (bVar41))" ( (binary_expression "(!bVar43) || (bVar41)" (parenthesized_expression "(!bVar43)" ( (unary_expression "!bVar43" ! identifier) )) || (parenthesized_expression "(bVar41)" ( identifier ))) )) (compound_statement "{\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }" { (if_statement "if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }" if (parenthesized_expression "((0 < (long)uVar35) && (!bVar41))" ( (binary_expression "(0 < (long)uVar35) && (!bVar41)" (parenthesized_expression "(0 < (long)uVar35)" ( (binary_expression "0 < (long)uVar35" number_literal < (cast_expression "(long)uVar35" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) && (parenthesized_expression "(!bVar41)" ( (unary_expression "!bVar41" ! identifier) ))) )) (compound_statement "{\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }" { (expression_statement "lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);" (assignment_expression "lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff)" identifier = (call_expression "FUN_0012d580(param_1,uVar35 & 0xffffffff)" identifier (argument_list "(param_1,uVar35 & 0xffffffff)" ( identifier , (binary_expression "uVar35 & 0xffffffff" identifier & number_literal) )))) ;) (break_statement "break;" break ;) })) (if_statement "if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;" if (parenthesized_expression "((uVar11 == 0xffffffffffffffff) && (uVar35 == 0))" ( (binary_expression "(uVar11 == 0xffffffffffffffff) && (uVar35 == 0)" (parenthesized_expression "(uVar11 == 0xffffffffffffffff)" ( (binary_expression "uVar11 == 0xffffffffffffffff" identifier == number_literal) )) && (parenthesized_expression "(uVar35 == 0)" ( (binary_expression "uVar35 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00133395;" goto statement_identifier ;)) (if_statement "if (uVar35 == 0) goto LAB_00133a66;" if (parenthesized_expression "(uVar35 == 0)" ( (binary_expression "uVar35 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00133a66;" goto statement_identifier ;)) (if_statement "if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;" if (parenthesized_expression "(((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))" ( (binary_expression "((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43)))" (parenthesized_expression "((-1 < (long)uVar35) || (bVar41))" ( (binary_expression "(-1 < (long)uVar35) || (bVar41)" (parenthesized_expression "(-1 < (long)uVar35)" ( (binary_expression "-1 < (long)uVar35" number_literal < (cast_expression "(long)uVar35" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) || (parenthesized_expression "(bVar41)" ( identifier ))) )) || (parenthesized_expression "((uVar35 != 0xfffffffffffffff8 && (!bVar43)))" ( (parenthesized_expression "(uVar35 != 0xfffffffffffffff8 && (!bVar43))" ( (binary_expression "uVar35 != 0xfffffffffffffff8 && (!bVar43)" (binary_expression "uVar35 != 0xfffffffffffffff8" identifier != number_literal) && (parenthesized_expression "(!bVar43)" ( (unary_expression "!bVar43" ! identifier) ))) )) ))) )) (goto_statement "goto LAB_001336f0;" goto statement_identifier ;)) }) (else_clause "else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }" else (compound_statement "{\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }" { (if_statement "if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }" if (parenthesized_expression "(0 < (long)uVar35)" ( (binary_expression "0 < (long)uVar35" number_literal < (cast_expression "(long)uVar35" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }" { (expression_statement "lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);" (assignment_expression "lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff)" identifier = (call_expression "FUN_0012d5a0(param_1,uVar35 & 0xffffffff)" identifier (argument_list "(param_1,uVar35 & 0xffffffff)" ( identifier , (binary_expression "uVar35 & 0xffffffff" identifier & number_literal) )))) ;) (break_statement "break;" break ;) })) (if_statement "if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }" if (parenthesized_expression "(-1 < (long)uVar35)" ( (binary_expression "-1 < (long)uVar35" number_literal < (cast_expression "(long)uVar35" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }" { (labeled_statement "LAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }" statement_identifier : (if_statement "if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }" if (parenthesized_expression "((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1))" ( (binary_expression "(uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)" (parenthesized_expression "(uVar35 == ~uVar11)" ( (binary_expression "uVar35 == ~uVar11" identifier == (unary_expression "~uVar11" ~ identifier)) )) || (parenthesized_expression "(uVar35 == uVar11 + 1)" ( (binary_expression "uVar35 == uVar11 + 1" identifier == (binary_expression "uVar11 + 1" identifier + number_literal)) ))) )) (compound_statement "{\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }" { (if_statement "if (uVar11 == 0x7f) goto LAB_00133dee;" if (parenthesized_expression "(uVar11 == 0x7f)" ( (binary_expression "uVar11 == 0x7f" identifier == number_literal) )) (goto_statement "goto LAB_00133dee;" goto statement_identifier ;)) (if_statement "if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }" if (parenthesized_expression "(uVar11 == 0x7fff)" ( (binary_expression "uVar11 == 0x7fff" identifier == number_literal) )) (compound_statement "{\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }" { (expression_statement "lVar17 = FUN_0012d560(param_1,2,0);" (assignment_expression "lVar17 = FUN_0012d560(param_1,2,0)" identifier = (call_expression "FUN_0012d560(param_1,2,0)" identifier (argument_list "(param_1,2,0)" ( identifier , number_literal , number_literal )))) ;) (break_statement "break;" break ;) })) (if_statement "if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }" if (parenthesized_expression "(uVar11 == 0x7fffffff)" ( (binary_expression "uVar11 == 0x7fffffff" identifier == number_literal) )) (compound_statement "{\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }" { (expression_statement "lVar17 = FUN_0012d560(param_1,4,0);" (assignment_expression "lVar17 = FUN_0012d560(param_1,4,0)" identifier = (call_expression "FUN_0012d560(param_1,4,0)" identifier (argument_list "(param_1,4,0)" ( identifier , number_literal , number_literal )))) ;) (break_statement "break;" break ;) })) (if_statement "if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;" if (parenthesized_expression "(uVar11 == 0x7fffffffffffffff)" ( (binary_expression "uVar11 == 0x7fffffffffffffff" identifier == number_literal) )) (goto_statement "goto LAB_0013373f;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_00131987;" goto statement_identifier ;) })) }))) (expression_statement "iVar5 = (int)uVar35;" (assignment_expression "iVar5 = (int)uVar35" identifier = (cast_expression "(int)uVar35" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (labeled_statement "LAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);" statement_identifier : (expression_statement "lVar17 = FUN_0012d560(param_1,-iVar5,1);" (assignment_expression "lVar17 = FUN_0012d560(param_1,-iVar5,1)" identifier = (call_expression "FUN_0012d560(param_1,-iVar5,1)" identifier (argument_list "(param_1,-iVar5,1)" ( identifier , (unary_expression "-iVar5" - identifier) , number_literal )))) ;)) }))) (break_statement "break;" break ;)) (case_statement "case 0x73:" case number_literal :) (case_statement "case 0x75:\n    uVar8 = FUN_0012e630(param_4,0,param_6);\n    pbVar40 = (byte *)*param_4;\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    local_f8 = 0;\n    if (*pbVar40 == 0x21) {\n      *param_4 = (ulong)(pbVar40 + 1);\n      uVar39 = FUN_0012e630(param_4,0,param_6);\n      if (*(char *)*param_4 != ',') goto LAB_00132126;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);\n      if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }\n      pbVar40 = (byte *)*param_4;\n      *(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;\n      if (param_6 <= pbVar40) {\n        return 0;\n      }\n    }\n    uVar35 = 0;\n    local_130 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    bVar43 = false;\n    bVar3 = *pbVar34;\n    local_138._0_4_ = 10;\n    while (bVar3 != 0x3b) {\n      uVar39 = (int)uVar35 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }\n      if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }\n      pbVar34 = (byte *)*param_4;\n      uVar35 = (ulong)uVar39;\n      bVar3 = *pbVar34;\n    }\n    *(undefined8 *)((long)local_130 + uVar35 * 8) = 0;\n    if (param_6 <= pbVar34) goto LAB_00131328;\n    bVar3 = *pbVar34;\n    if (bVar3 == 0x3b) {\n      local_108 = 0;\nLAB_001334bc:\n      pbVar22 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar22;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }\n    if (*pbVar22 == 0x7e) {\n      pbVar40 = pbVar22 + 1;\n      *param_4 = (ulong)pbVar40;\n      if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *param_4 = (ulong)(pbVar40 + 1);\n      iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n      if (iVar5 == 0) goto LAB_00131328;\n      if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }\n      if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;\n      uVar14 = 1;\n      lVar17 = 0;\n    }\n    else {\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }\n    lVar17 = FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14);\n    break;" case number_literal : (expression_statement "uVar8 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar8 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) ;) (expression_statement "pbVar40 = (byte *)*param_4;" (assignment_expression "pbVar40 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (if_statement "if (param_6 <= pbVar40) {\n      return 0;\n    }" if (parenthesized_expression "(param_6 <= pbVar40)" ( (binary_expression "param_6 <= pbVar40" identifier <= identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_f8 = 0;" (assignment_expression "local_f8 = 0" identifier = number_literal) ;) (if_statement "if (*pbVar40 == 0x21) {\n      *param_4 = (ulong)(pbVar40 + 1);\n      uVar39 = FUN_0012e630(param_4,0,param_6);\n      if (*(char *)*param_4 != ',') goto LAB_00132126;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);\n      if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }\n      pbVar40 = (byte *)*param_4;\n      *(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;\n      if (param_6 <= pbVar40) {\n        return 0;\n      }\n    }" if (parenthesized_expression "(*pbVar40 == 0x21)" ( (binary_expression "*pbVar40 == 0x21" (pointer_expression "*pbVar40" * identifier) == number_literal) )) (compound_statement "{\n      *param_4 = (ulong)(pbVar40 + 1);\n      uVar39 = FUN_0012e630(param_4,0,param_6);\n      if (*(char *)*param_4 != ',') goto LAB_00132126;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);\n      if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }\n      pbVar40 = (byte *)*param_4;\n      *(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;\n      if (param_6 <= pbVar40) {\n        return 0;\n      }\n    }" { (expression_statement "*param_4 = (ulong)(pbVar40 + 1);" (assignment_expression "*param_4 = (ulong)(pbVar40 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pbVar40 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pbVar40 + 1)" ( (binary_expression "pbVar40 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar39 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar39 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (*(char *)*param_4 != ',') goto LAB_00132126;" if (parenthesized_expression "(*(char *)*param_4 != ',')" ( (binary_expression "*(char *)*param_4 != ','" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "','" ' character ')) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);" (assignment_expression "local_f8 = xmalloc((ulong)(uVar39 + 1) << 3)" identifier = (call_expression "xmalloc((ulong)(uVar39 + 1) << 3)" identifier (argument_list "((ulong)(uVar39 + 1) << 3)" ( (binary_expression "(ulong)(uVar39 + 1) << 3" (call_expression "(ulong)(uVar39 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar39 + 1)" ( (binary_expression "uVar39 + 1" identifier + number_literal) ))) << number_literal) )))) ;) (if_statement "if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }" if (parenthesized_expression "(uVar39 != 0)" ( (binary_expression "uVar39 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }" { (expression_statement "uVar7 = uVar39 - 1;" (assignment_expression "uVar7 = uVar39 - 1" identifier = (binary_expression "uVar39 - 1" identifier - number_literal)) ;) (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (expression_statement "cVar4 = *(char *)*param_4;" (assignment_expression "cVar4 = *(char *)*param_4" identifier = (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)))) ;) (if_statement "if (cVar4 == '0') goto LAB_00132b2f;" if (parenthesized_expression "(cVar4 == '0')" ( (binary_expression "cVar4 == '0'" identifier == (char_literal "'0'" ' character ')) )) (goto_statement "goto LAB_00132b2f;" goto statement_identifier ;)) (labeled_statement "LAB_00132a1e:\n        uVar11 = uVar35;" statement_identifier : (expression_statement "uVar11 = uVar35;" (assignment_expression "uVar11 = uVar35" identifier = identifier) ;)) (if_statement "if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }" if (parenthesized_expression "(cVar4 == '1')" ( (binary_expression "cVar4 == '1'" identifier == (char_literal "'1'" ' character ')) )) (compound_statement "{\n          uVar14 = 1;\n        }" { (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }" else (compound_statement "{\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }" { (if_statement "if (cVar4 == '\0') goto LAB_00132126;" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);" (assignment_expression "uVar9 = dcgettext(0,"unknown virtual character for baseclass",5)" identifier = (call_expression "dcgettext(0,"unknown virtual character for baseclass",5)" identifier (argument_list "(0,"unknown virtual character for baseclass",5)" ( number_literal , (string_literal ""unknown virtual character for baseclass"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0012e500(pbVar40,uVar9);" (call_expression "FUN_0012e500(pbVar40,uVar9)" identifier (argument_list "(pbVar40,uVar9)" ( identifier , identifier ))) ;) }))) (do_statement "do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );" do (compound_statement "{\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        }" { (expression_statement "uVar35 = *param_4;" (assignment_expression "uVar35 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "*param_4 = uVar35 + 1;" (assignment_expression "*param_4 = uVar35 + 1" (pointer_expression "*param_4" * identifier) = (binary_expression "uVar35 + 1" identifier + number_literal)) ;) (expression_statement "cVar4 = *(char *)(uVar35 + 1);" (assignment_expression "cVar4 = *(char *)(uVar35 + 1)" identifier = (pointer_expression "*(char *)(uVar35 + 1)" * (cast_expression "(char *)(uVar35 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar35 + 1)" ( (binary_expression "uVar35 + 1" identifier + number_literal) ))))) ;) (if_statement "if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }" if (parenthesized_expression "(cVar4 != '0')" ( (binary_expression "cVar4 != '0'" identifier != (char_literal "'0'" ' character ')) )) (compound_statement "{\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }" { (if_statement "if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;" if (parenthesized_expression "(cVar4 < '1')" ( (binary_expression "cVar4 < '1'" identifier < (char_literal "'1'" ' character ')) )) (compound_statement "{\n              if (cVar4 == '\0') goto LAB_00132126;\n            }" { (if_statement "if (cVar4 == '\0') goto LAB_00132126;" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) }) (else_clause "else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;" else (if_statement "if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;" if (parenthesized_expression "((cVar4 == '1') || (cVar4 == '2'))" ( (binary_expression "(cVar4 == '1') || (cVar4 == '2')" (parenthesized_expression "(cVar4 == '1')" ( (binary_expression "cVar4 == '1'" identifier == (char_literal "'1'" ' character ')) )) || (parenthesized_expression "(cVar4 == '2')" ( (binary_expression "cVar4 == '2'" identifier == (char_literal "'2'" ' character ')) ))) )) (goto_statement "goto LAB_00132a81;" goto statement_identifier ;)))) (expression_statement "uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);" (assignment_expression "uVar9 = dcgettext(0,"unknown visibility character for baseclass",5)" identifier = (call_expression "dcgettext(0,"unknown visibility character for baseclass",5)" identifier (argument_list "(0,"unknown visibility character for baseclass",5)" ( number_literal , (string_literal ""unknown visibility character for baseclass"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0012e500(pbVar40,uVar9);" (call_expression "FUN_0012e500(pbVar40,uVar9)" identifier (argument_list "(pbVar40,uVar9)" ( identifier , identifier ))) ;) })) (labeled_statement "LAB_00132a81:\n          *param_4 = *param_4 + 1;" statement_identifier : (expression_statement "*param_4 = *param_4 + 1;" (assignment_expression "*param_4 = *param_4 + 1" (pointer_expression "*param_4" * identifier) = (binary_expression "*param_4 + 1" (pointer_expression "*param_4" * identifier) + number_literal)) ;)) (expression_statement "uVar9 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar9 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (*(char *)*param_4 != ',') goto LAB_00132126;" if (parenthesized_expression "(*(char *)*param_4 != ',')" ( (binary_expression "*(char *)*param_4 != ','" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "','" ' character ')) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (if_statement "if (lVar17 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);" (assignment_expression "lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14)" identifier = (call_expression "FUN_0012da10(param_1,lVar17,uVar9,uVar14)" identifier (argument_list "(param_1,lVar17,uVar9,uVar14)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "*(long *)(local_f8 + uVar11 * 8) = lVar17;" (assignment_expression "*(long *)(local_f8 + uVar11 * 8) = lVar17" (pointer_expression "*(long *)(local_f8 + uVar11 * 8)" * (cast_expression "(long *)(local_f8 + uVar11 * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_f8 + uVar11 * 8)" ( (binary_expression "local_f8 + uVar11 * 8" identifier + (binary_expression "uVar11 * 8" identifier * number_literal)) )))) = identifier) ;) (if_statement "if (lVar17 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(char *)*param_4 != ';') {\n            return 0;\n          }" if (parenthesized_expression "(*(char *)*param_4 != ';')" ( (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "';'" ' character ')) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar16 = (char *)*param_4 + 1;" (assignment_expression "pcVar16 = (char *)*param_4 + 1" identifier = (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal)) ;) (expression_statement "uVar39 = (int)uVar11 + 1;" (assignment_expression "uVar39 = (int)uVar11 + 1" identifier = (binary_expression "(int)uVar11 + 1" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "uVar35 = uVar11 + 1;" (assignment_expression "uVar35 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "*param_4 = (ulong)pcVar16;" (assignment_expression "*param_4 = (ulong)pcVar16" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pcVar16" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar11 == uVar7) break;" if (parenthesized_expression "(uVar11 == uVar7)" ( (binary_expression "uVar11 == uVar7" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "cVar4 = *pcVar16;" (assignment_expression "cVar4 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (if_statement "if (cVar4 != '0') goto LAB_00132a1e;" if (parenthesized_expression "(cVar4 != '0')" ( (binary_expression "cVar4 != '0'" identifier != (char_literal "'0'" ' character ')) )) (goto_statement "goto LAB_00132a1e;" goto statement_identifier ;)) (labeled_statement "LAB_00132b2f:\n          uVar14 = 0;" statement_identifier : (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;)) (expression_statement "uVar11 = uVar35;" (assignment_expression "uVar11 = uVar35" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "pbVar40 = (byte *)*param_4;" (assignment_expression "pbVar40 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "*(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;" (assignment_expression "*(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0" (pointer_expression "*(undefined8 *)(local_f8 + (ulong)uVar39 * 8)" * (cast_expression "(undefined8 *)(local_f8 + (ulong)uVar39 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_f8 + (ulong)uVar39 * 8)" ( (binary_expression "local_f8 + (ulong)uVar39 * 8" identifier + (binary_expression "(ulong)uVar39 * 8" (cast_expression "(ulong)uVar39" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) )))) = number_literal) ;) (if_statement "if (param_6 <= pbVar40) {\n        return 0;\n      }" if (parenthesized_expression "(param_6 <= pbVar40)" ( (binary_expression "param_6 <= pbVar40" identifier <= identifier) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (expression_statement "local_130 = (void *)xmalloc(0x50);" (assignment_expression "local_130 = (void *)xmalloc(0x50)" identifier = (cast_expression "(void *)xmalloc(0x50)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "bVar43 = false;" (assignment_expression "bVar43 = false" identifier = false) ;) (expression_statement "bVar3 = *pbVar34;" (assignment_expression "bVar3 = *pbVar34" identifier = (pointer_expression "*pbVar34" * identifier)) ;) (expression_statement "local_138._0_4_ = 10;" (assignment_expression "local_138._0_4_ = 10" (field_expression "local_138._0_4_" identifier . field_identifier) = number_literal) ;) (while_statement "while (bVar3 != 0x3b) {\n      uVar39 = (int)uVar35 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }\n      if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }\n      pbVar34 = (byte *)*param_4;\n      uVar35 = (ulong)uVar39;\n      bVar3 = *pbVar34;\n    }" while (parenthesized_expression "(bVar3 != 0x3b)" ( (binary_expression "bVar3 != 0x3b" identifier != number_literal) )) (compound_statement "{\n      uVar39 = (int)uVar35 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }\n      if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }\n      pbVar34 = (byte *)*param_4;\n      uVar35 = (ulong)uVar39;\n      bVar3 = *pbVar34;\n    }" { (expression_statement "uVar39 = (int)uVar35 + 1;" (assignment_expression "uVar39 = (int)uVar35 + 1" identifier = (binary_expression "(int)uVar35 + 1" (cast_expression "(int)uVar35" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }" if (parenthesized_expression "((uint)local_138 <= uVar39)" ( (binary_expression "(uint)local_138 <= uVar39" (cast_expression "(uint)local_138" ( (type_descriptor "uint" type_identifier) ) identifier) <= identifier) )) (compound_statement "{\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }" { (expression_statement "local_138._0_4_ = (uint)local_138 + 10;" (assignment_expression "local_138._0_4_ = (uint)local_138 + 10" (field_expression "local_138._0_4_" identifier . field_identifier) = (binary_expression "(uint)local_138 + 10" (cast_expression "(uint)local_138" ( (type_descriptor "uint" type_identifier) ) identifier) + number_literal)) ;) (expression_statement "local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);" (assignment_expression "local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3)" identifier = (cast_expression "(void *)xrealloc(local_130,(ulong)(uint)local_138 << 3)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(local_130,(ulong)(uint)local_138 << 3)" identifier (argument_list "(local_130,(ulong)(uint)local_138 << 3)" ( identifier , (binary_expression "(ulong)(uint)local_138 << 3" (cast_expression "(ulong)(uint)local_138" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)local_138" ( (type_descriptor "uint" type_identifier) ) identifier)) << number_literal) ))))) ;) (expression_statement "bVar3 = *pbVar34;" (assignment_expression "bVar3 = *pbVar34" identifier = (pointer_expression "*pbVar34" * identifier)) ;) })) (if_statement "if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }" if (parenthesized_expression "(((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f))" ( (binary_expression "((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)" (parenthesized_expression "((bVar3 == 0x24) || (bVar3 == 0x2e))" ( (binary_expression "(bVar3 == 0x24) || (bVar3 == 0x2e)" (parenthesized_expression "(bVar3 == 0x24)" ( (binary_expression "bVar3 == 0x24" identifier == number_literal) )) || (parenthesized_expression "(bVar3 == 0x2e)" ( (binary_expression "bVar3 == 0x2e" identifier == number_literal) ))) )) && (parenthesized_expression "(pbVar34[1] != 0x5f)" ( (binary_expression "pbVar34[1] != 0x5f" (subscript_expression "pbVar34[1]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }" { (expression_statement "uVar11 = *param_4;" (assignment_expression "uVar11 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "pbVar34 = (byte *)(uVar11 + 1);" (assignment_expression "pbVar34 = (byte *)(uVar11 + 1)" identifier = (cast_expression "(byte *)(uVar11 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar11 + 1)" ( (binary_expression "uVar11 + 1" identifier + number_literal) )))) ;) (expression_statement "plVar10 = (long *)((long)local_130 + uVar35 * 8);" (assignment_expression "plVar10 = (long *)((long)local_130 + uVar35 * 8)" identifier = (cast_expression "(long *)((long)local_130 + uVar35 * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_130 + uVar35 * 8)" ( (binary_expression "(long)local_130 + uVar35 * 8" (cast_expression "(long)local_130" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "uVar35 * 8" identifier * number_literal)) )))) ;) (expression_statement "*param_4 = (ulong)pbVar34;" (assignment_expression "*param_4 = (ulong)pbVar34" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar34" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "*plVar10 = 0;" (assignment_expression "*plVar10 = 0" (pointer_expression "*plVar10" * identifier) = number_literal) ;) (if_statement "if (param_6 <= pbVar34) goto LAB_00131328;" if (parenthesized_expression "(param_6 <= pbVar34)" ( (binary_expression "param_6 <= pbVar34" identifier <= identifier) )) (goto_statement "goto LAB_00131328;" goto statement_identifier ;)) (if_statement "if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;" if (parenthesized_expression "(*(char *)(uVar11 + 1) != 'v')" ( (binary_expression "*(char *)(uVar11 + 1) != 'v'" (pointer_expression "*(char *)(uVar11 + 1)" * (cast_expression "(char *)(uVar11 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar11 + 1)" ( (binary_expression "uVar11 + 1" identifier + number_literal) )))) != (char_literal "'v'" ' character ')) )) (goto_statement "goto LAB_00132740;" goto statement_identifier ;)) (expression_statement "*param_4 = uVar11 + 2;" (assignment_expression "*param_4 = uVar11 + 2" (pointer_expression "*param_4" * identifier) = (binary_expression "uVar11 + 2" identifier + number_literal)) ;) (expression_statement "cVar4 = *(char *)(uVar11 + 2);" (assignment_expression "cVar4 = *(char *)(uVar11 + 2)" identifier = (pointer_expression "*(char *)(uVar11 + 2)" * (cast_expression "(char *)(uVar11 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar11 + 2)" ( (binary_expression "uVar11 + 2" identifier + number_literal) ))))) ;) (if_statement "if (cVar4 == '\0') goto LAB_00132740;" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00132740;" goto statement_identifier ;)) (expression_statement "*param_4 = uVar11 + 3;" (assignment_expression "*param_4 = uVar11 + 3" (pointer_expression "*param_4" * identifier) = (binary_expression "uVar11 + 3" identifier + number_literal)) ;) (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (if_statement "if (lVar17 == 0) goto LAB_00131328;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00131328;" goto statement_identifier ;)) (if_statement "if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }" if (parenthesized_expression "(cVar4 == 'b')" ( (binary_expression "cVar4 == 'b'" identifier == (char_literal "'b'" ' character ')) )) (compound_statement "{\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }" { (expression_statement "puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);" (assignment_expression "puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17)" identifier = (cast_expression "(undefined *)FUN_0012e0c0(param_1,lVar17)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012e0c0(param_1,lVar17)" identifier (argument_list "(param_1,lVar17)" ( identifier , identifier ))))) ;) (if_statement "if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }" if (parenthesized_expression "(puVar23 == (undefined *)0x0)" ( (binary_expression "puVar23 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }" { (expression_statement "uVar14 = dcgettext(0,"unnamed $vb type",5);" (assignment_expression "uVar14 = dcgettext(0,"unnamed $vb type",5)" identifier = (call_expression "dcgettext(0,"unnamed $vb type",5)" identifier (argument_list "(0,"unnamed $vb type",5)" ( number_literal , (string_literal ""unnamed $vb type"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0012e500(pbVar34,uVar14);" (call_expression "FUN_0012e500(pbVar34,uVar14)" identifier (argument_list "(pbVar34,uVar14)" ( identifier , identifier ))) ;) (expression_statement "puVar23 = &DAT_00146979;" (assignment_expression "puVar23 = &DAT_00146979" identifier = (pointer_expression "&DAT_00146979" & identifier)) ;) })) (expression_statement "pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);" (assignment_expression "pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0)" identifier = (cast_expression "(char *)concat(&DAT_00146a0b,puVar23,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "concat(&DAT_00146a0b,puVar23,0)" identifier (argument_list "(&DAT_00146a0b,puVar23,0)" ( (pointer_expression "&DAT_00146a0b" & identifier) , identifier , number_literal ))))) ;) }) (else_clause "else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }" else (compound_statement "{\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }" { (expression_statement "pcVar16 = "_vptr$";" (assignment_expression "pcVar16 = "_vptr$"" identifier = (string_literal ""_vptr$"" " string_content ")) ;) (if_statement "if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }" if (parenthesized_expression "(cVar4 != 'f')" ( (binary_expression "cVar4 != 'f'" identifier != (char_literal "'f'" ' character ')) )) (compound_statement "{\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }" { (expression_statement "uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);" (assignment_expression "uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5)" identifier = (call_expression "dcgettext(0,"unrecognized C++ abbreviation",5)" identifier (argument_list "(0,"unrecognized C++ abbreviation",5)" ( number_literal , (string_literal ""unrecognized C++ abbreviation"" " string_content ") , number_literal )))) ;) (expression_statement "pcVar16 = "INVALID_CPLUSPLUS_ABBREV";" (assignment_expression "pcVar16 = "INVALID_CPLUSPLUS_ABBREV"" identifier = (string_literal ""INVALID_CPLUSPLUS_ABBREV"" " string_content ")) ;) (expression_statement "FUN_0012e500(pbVar34,uVar14);" (call_expression "FUN_0012e500(pbVar34,uVar14)" identifier (argument_list "(pbVar34,uVar14)" ( identifier , identifier ))) ;) })) }))) (if_statement "if (*(char *)*param_4 != ':') goto LAB_00132740;" if (parenthesized_expression "(*(char *)*param_4 != ':')" ( (binary_expression "*(char *)*param_4 != ':'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "':'" ' character ')) )) (goto_statement "goto LAB_00132740;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (if_statement "if (*(char *)*param_4 != ',') goto LAB_00132740;" if (parenthesized_expression "(*(char *)*param_4 != ',')" ( (binary_expression "*(char *)*param_4 != ','" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "','" ' character ')) )) (goto_statement "goto LAB_00132740;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "uVar9 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar9 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (*(char *)*param_4 != ';') goto LAB_00132740;" if (parenthesized_expression "(*(char *)*param_4 != ';')" ( (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_00132740;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);" (assignment_expression "lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2)" identifier = (call_expression "FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2)" identifier (argument_list "(param_1,pcVar16,uVar14,uVar9,0,2)" ( identifier , identifier , identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "*plVar10 = lVar17;" (assignment_expression "*plVar10 = lVar17" (pointer_expression "*plVar10" * identifier) = identifier) ;) (if_statement "if (lVar17 == 0) goto LAB_00131328;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00131328;" goto statement_identifier ;)) }) (else_clause "else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }" else (compound_statement "{\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }" { (expression_statement "pcVar16 = strchr((char *)pbVar34,0x3a);" (assignment_expression "pcVar16 = strchr((char *)pbVar34,0x3a)" identifier = (call_expression "strchr((char *)pbVar34,0x3a)" identifier (argument_list "((char *)pbVar34,0x3a)" ( (cast_expression "(char *)pbVar34" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }" if (parenthesized_expression "(pcVar16 == (char *)0x0)" ( (binary_expression "pcVar16 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }" { (expression_statement "FUN_0012e570(pbVar40);" (call_expression "FUN_0012e570(pbVar40)" identifier (argument_list "(pbVar40)" ( identifier ))) ;) (expression_statement "free(local_130);" (call_expression "free(local_130)" identifier (argument_list "(local_130)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (if_statement "if (pcVar16[1] == ':') break;" if (parenthesized_expression "(pcVar16[1] == ':')" ( (binary_expression "pcVar16[1] == ':'" (subscript_expression "pcVar16[1]" identifier [ number_literal ]) == (char_literal "':'" ' character ')) )) (break_statement "break;" break ;)) (if_statement "if (param_6 <= pbVar34) {\n          return 0;\n        }" if (parenthesized_expression "(param_6 <= pbVar34)" ( (binary_expression "param_6 <= pbVar34" identifier <= identifier) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);" (assignment_expression "pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34)" identifier = (cast_expression "(void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34)" identifier (argument_list "(pbVar34,(long)pcVar16 - (long)pbVar34)" ( identifier , (binary_expression "(long)pcVar16 - (long)pbVar34" (cast_expression "(long)pcVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar34" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))))) ;) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (if_statement "if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }" if (parenthesized_expression "(pcVar16[1] == '/')" ( (binary_expression "pcVar16[1] == '/'" (subscript_expression "pcVar16[1]" identifier [ number_literal ]) == (char_literal "'/'" ' character ')) )) (compound_statement "{\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }" { (expression_statement "pcVar15 = pcVar16 + 2;" (assignment_expression "pcVar15 = pcVar16 + 2" identifier = (binary_expression "pcVar16 + 2" identifier + number_literal)) ;) (expression_statement "*param_4 = (ulong)pcVar15;" (assignment_expression "*param_4 = (ulong)pcVar15" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pcVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "cVar4 = pcVar16[2];" (assignment_expression "cVar4 = pcVar16[2]" identifier = (subscript_expression "pcVar16[2]" identifier [ number_literal ])) ;) (if_statement "if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }" if (parenthesized_expression "(cVar4 == '0')" ( (binary_expression "cVar4 == '0'" identifier == (char_literal "'0'" ' character ')) )) (compound_statement "{\n            local_120 = 2;\n          }" { (expression_statement "local_120 = 2;" (assignment_expression "local_120 = 2" identifier = number_literal) ;) }) (else_clause "else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }" else (compound_statement "{\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }" { (if_statement "if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }" if (parenthesized_expression "(cVar4 < '1')" ( (binary_expression "cVar4 < '1'" identifier < (char_literal "'1'" ' character ')) )) (compound_statement "{\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }" { (if_statement "if (cVar4 == '\0') goto switchD_001311d2_caseD_24;" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;)) }) (else_clause "else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }" else (compound_statement "{\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }" { (expression_statement "local_120 = 1;" (assignment_expression "local_120 = 1" identifier = number_literal) ;) (if_statement "if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;" if (parenthesized_expression "((cVar4 == '1') || (local_120 = 0, cVar4 == '2'))" ( (binary_expression "(cVar4 == '1') || (local_120 = 0, cVar4 == '2')" (parenthesized_expression "(cVar4 == '1')" ( (binary_expression "cVar4 == '1'" identifier == (char_literal "'1'" ' character ')) )) || (parenthesized_expression "(local_120 = 0, cVar4 == '2')" ( (comma_expression "local_120 = 0, cVar4 == '2'" (assignment_expression "local_120 = 0" identifier = number_literal) , (binary_expression "cVar4 == '2'" identifier == (char_literal "'2'" ' character '))) ))) )) (goto_statement "goto LAB_00131b6d;" goto statement_identifier ;)) }))) (expression_statement "uVar14 = dcgettext(0,"unknown visibility character for field",5);" (assignment_expression "uVar14 = dcgettext(0,"unknown visibility character for field",5)" identifier = (call_expression "dcgettext(0,"unknown visibility character for field",5)" identifier (argument_list "(0,"unknown visibility character for field",5)" ( number_literal , (string_literal ""unknown visibility character for field"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0012e500(pbVar34,uVar14);" (call_expression "FUN_0012e500(pbVar34,uVar14)" identifier (argument_list "(pbVar34,uVar14)" ( identifier , identifier ))) ;) (expression_statement "pcVar15 = (char *)*param_4;" (assignment_expression "pcVar15 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "local_120 = 0;" (assignment_expression "local_120 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);" statement_identifier : (expression_statement "*param_4 = (ulong)(pcVar15 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar15 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar15 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar15 + 1)" ( (binary_expression "pcVar15 + 1" identifier + number_literal) )))) ;)) }) (else_clause "else {\n          local_120 = 0;\n        }" else (compound_statement "{\n          local_120 = 0;\n        }" { (expression_statement "local_120 = 0;" (assignment_expression "local_120 = 0" identifier = number_literal) ;) }))) (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (if_statement "if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (compound_statement "{\n          free(pvVar12);\n          return 0;\n        }" { (expression_statement "free(pvVar12);" (call_expression "free(pvVar12)" identifier (argument_list "(pvVar12)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);" (assignment_expression "puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8)" identifier = (cast_expression "(undefined8 *)((long)local_130 + uVar35 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_130 + uVar35 * 8)" ( (binary_expression "(long)local_130 + uVar35 * 8" (cast_expression "(long)local_130" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "uVar35 * 8" identifier * number_literal)) )))) ;) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (if_statement "if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }" if (parenthesized_expression "(*pcVar16 == ':')" ( (binary_expression "*pcVar16 == ':'" (pointer_expression "*pcVar16" * identifier) == (char_literal "':'" ' character ')) )) (compound_statement "{\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }" { (expression_statement "pcVar16 = pcVar16 + 1;" (assignment_expression "pcVar16 = pcVar16 + 1" identifier = (binary_expression "pcVar16 + 1" identifier + number_literal)) ;) (expression_statement "*param_4 = (ulong)pcVar16;" (assignment_expression "*param_4 = (ulong)pcVar16" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pcVar16" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "pcVar15 = strchr(pcVar16,0x3b);" (assignment_expression "pcVar15 = strchr(pcVar16,0x3b)" identifier = (call_expression "strchr(pcVar16,0x3b)" identifier (argument_list "(pcVar16,0x3b)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar15 == (char *)0x0) goto LAB_00132614;" if (parenthesized_expression "(pcVar15 == (char *)0x0)" ( (binary_expression "pcVar15 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00132614;" goto statement_identifier ;)) (expression_statement "uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);" (assignment_expression "uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16)" identifier = (call_expression "FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16)" identifier (argument_list "(pcVar16,(long)pcVar15 - (long)pcVar16)" ( identifier , (binary_expression "(long)pcVar15 - (long)pcVar16" (cast_expression "(long)pcVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (expression_statement "*param_4 = (ulong)(pcVar15 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar15 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar15 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar15 + 1)" ( (binary_expression "pcVar15 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);" (assignment_expression "uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14)" identifier = (call_expression "FUN_0012daa0(param_1,pvVar12,lVar17,uVar14)" identifier (argument_list "(param_1,pvVar12,lVar17,uVar14)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "bVar43 = true;" (assignment_expression "bVar43 = true" identifier = true) ;) (expression_statement "*puVar19 = uVar14;" (assignment_expression "*puVar19 = uVar14" (pointer_expression "*puVar19" * identifier) = identifier) ;) }) (else_clause "else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }" else (compound_statement "{\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }" { (if_statement "if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }" if (parenthesized_expression "(*pcVar16 != ',')" ( (binary_expression "*pcVar16 != ','" (pointer_expression "*pcVar16" * identifier) != (char_literal "','" ' character ')) )) (compound_statement "{\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }" { (labeled_statement "LAB_00132614:\n            FUN_0012e570(pbVar34);" statement_identifier : (expression_statement "FUN_0012e570(pbVar34);" (call_expression "FUN_0012e570(pbVar34)" identifier (argument_list "(pbVar34)" ( identifier ))) ;)) (expression_statement "free(pvVar12);" (call_expression "free(pvVar12)" identifier (argument_list "(pvVar12)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (expression_statement "lVar18 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "lVar18 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (*(char *)*param_4 != ',') goto LAB_00132614;" if (parenthesized_expression "(*(char *)*param_4 != ',')" ( (binary_expression "*(char *)*param_4 != ','" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "','" ' character ')) )) (goto_statement "goto LAB_00132614;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "lVar13 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "lVar13 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (*(char *)*param_4 != ';') goto LAB_00132614;" if (parenthesized_expression "(*(char *)*param_4 != ';')" ( (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_00132614;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "uVar14 = 3;" (assignment_expression "uVar14 = 3" identifier = number_literal) ;) (if_statement "if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }" if (parenthesized_expression "(lVar18 != 0 || lVar13 != 0)" ( (binary_expression "lVar18 != 0 || lVar13 != 0" (binary_expression "lVar18 != 0" identifier != number_literal) || (binary_expression "lVar13 != 0" identifier != number_literal)) )) (compound_statement "{\n            uVar14 = local_120;\n          }" { (expression_statement "uVar14 = local_120;" (assignment_expression "uVar14 = local_120" identifier = identifier) ;) })) (expression_statement "uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);" (assignment_expression "uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14)" identifier = (call_expression "FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14)" identifier (argument_list "(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "*puVar19 = uVar14;" (assignment_expression "*puVar19 = uVar14" (pointer_expression "*puVar19" * identifier) = identifier) ;) }))) }))) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "uVar35 = (ulong)uVar39;" (assignment_expression "uVar35 = (ulong)uVar39" identifier = (cast_expression "(ulong)uVar39" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "bVar3 = *pbVar34;" (assignment_expression "bVar3 = *pbVar34" identifier = (pointer_expression "*pbVar34" * identifier)) ;) })) (expression_statement "*(undefined8 *)((long)local_130 + uVar35 * 8) = 0;" (assignment_expression "*(undefined8 *)((long)local_130 + uVar35 * 8) = 0" (pointer_expression "*(undefined8 *)((long)local_130 + uVar35 * 8)" * (cast_expression "(undefined8 *)((long)local_130 + uVar35 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_130 + uVar35 * 8)" ( (binary_expression "(long)local_130 + uVar35 * 8" (cast_expression "(long)local_130" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "uVar35 * 8" identifier * number_literal)) )))) = number_literal) ;) (if_statement "if (param_6 <= pbVar34) goto LAB_00131328;" if (parenthesized_expression "(param_6 <= pbVar34)" ( (binary_expression "param_6 <= pbVar34" identifier <= identifier) )) (goto_statement "goto LAB_00131328;" goto statement_identifier ;)) (expression_statement "bVar3 = *pbVar34;" (assignment_expression "bVar3 = *pbVar34" identifier = (pointer_expression "*pbVar34" * identifier)) ;) (if_statement "if (bVar3 == 0x3b) {\n      local_108 = 0;\nLAB_001334bc:\n      pbVar22 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar22;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }" if (parenthesized_expression "(bVar3 == 0x3b)" ( (binary_expression "bVar3 == 0x3b" identifier == number_literal) )) (compound_statement "{\n      local_108 = 0;\nLAB_001334bc:\n      pbVar22 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar22;\n    }" { (expression_statement "local_108 = 0;" (assignment_expression "local_108 = 0" identifier = number_literal) ;) (labeled_statement "LAB_001334bc:\n      pbVar22 = pbVar34 + 1;" statement_identifier : (expression_statement "pbVar22 = pbVar34 + 1;" (assignment_expression "pbVar22 = pbVar34 + 1" identifier = (binary_expression "pbVar34 + 1" identifier + number_literal)) ;)) (expression_statement "*param_4 = (ulong)pbVar22;" (assignment_expression "*param_4 = (ulong)pbVar22" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar22" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }) (else_clause "else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }" else (compound_statement "{\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }" { (expression_statement "pbVar40 = (byte *)0x0;" (assignment_expression "pbVar40 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_128 = (void *)0x0;" (assignment_expression "local_128 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_108 = 0;" (assignment_expression "local_108 = 0" identifier = number_literal) ;) (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" identifier = number_literal) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) (expression_statement "local_138 = (char *)0x0;" (assignment_expression "local_138 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar22 = pbVar34;" (assignment_expression "pbVar22 = pbVar34" identifier = identifier) ;) (do_statement "do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);" do (compound_statement "{\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      }" { (expression_statement "pcVar16 = strchr((char *)pbVar22,0x3a);" (assignment_expression "pcVar16 = strchr((char *)pbVar22,0x3a)" identifier = (call_expression "strchr((char *)pbVar22,0x3a)" identifier (argument_list "((char *)pbVar22,0x3a)" ( (cast_expression "(char *)pbVar22" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;" if (parenthesized_expression "((pcVar16 == (char *)0x0) || (pcVar16[1] != ':'))" ( (binary_expression "(pcVar16 == (char *)0x0) || (pcVar16[1] != ':')" (parenthesized_expression "(pcVar16 == (char *)0x0)" ( (binary_expression "pcVar16 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar16[1] != ':')" ( (binary_expression "pcVar16[1] != ':'" (subscript_expression "pcVar16[1]" identifier [ number_literal ]) != (char_literal "':'" ' character ')) ))) )) (break_statement "break;" break ;)) (expression_statement "pcVar15 = pcVar16 + 2;" (assignment_expression "pcVar15 = pcVar16 + 2" identifier = (binary_expression "pcVar16 + 2" identifier + number_literal)) ;) (if_statement "if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }" if (parenthesized_expression "((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24))))" ( (binary_expression "(bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))" (parenthesized_expression "(bVar3 == 0x6f)" ( (binary_expression "bVar3 == 0x6f" identifier == number_literal) )) && (parenthesized_expression "((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))" ( (parenthesized_expression "(pbVar22[1] == 0x70 && (pbVar22[2] == 0x24))" ( (binary_expression "pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)" (binary_expression "pbVar22[1] == 0x70" (subscript_expression "pbVar22[1]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(pbVar22[2] == 0x24)" ( (binary_expression "pbVar22[2] == 0x24" (subscript_expression "pbVar22[2]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }" { (expression_statement "*param_4 = (ulong)pcVar15;" (assignment_expression "*param_4 = (ulong)pcVar15" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pcVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "cVar4 = pcVar16[2];" (assignment_expression "cVar4 = pcVar16[2]" identifier = (subscript_expression "pcVar16[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar16 = pcVar15;" (assignment_expression "pcVar16 = pcVar15" identifier = identifier) ;) (while_statement "while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }" while (parenthesized_expression "((cVar4 != '.' && (cVar4 != '\0')))" ( (parenthesized_expression "(cVar4 != '.' && (cVar4 != '\0'))" ( (binary_expression "cVar4 != '.' && (cVar4 != '\0')" (binary_expression "cVar4 != '.'" identifier != (char_literal "'.'" ' character ')) && (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) )) (compound_statement "{\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }" { (expression_statement "pcVar16 = pcVar16 + 1;" (assignment_expression "pcVar16 = pcVar16 + 1" identifier = (binary_expression "pcVar16 + 1" identifier + number_literal)) ;) (expression_statement "cVar4 = *pcVar16;" (assignment_expression "cVar4 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) })) (if_statement "if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }" if (parenthesized_expression "(cVar4 != '.')" ( (binary_expression "cVar4 != '.'" identifier != (char_literal "'.'" ' character ')) )) (compound_statement "{\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }" { (expression_statement "FUN_0012e570(pbVar34);" (call_expression "FUN_0012e570(pbVar34)" identifier (argument_list "(pbVar34)" ( identifier ))) ;) (if_statement "if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }" if (parenthesized_expression "(local_138 != (char *)0x0)" ( (binary_expression "local_138 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0013279c:\n              free(local_138);\n            }" { (labeled_statement "LAB_0013279c:\n              free(local_138);" statement_identifier : (expression_statement "free(local_138);" (call_expression "free(local_138)" identifier (argument_list "(local_138)" ( identifier ))) ;)) })) (if_statement "if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }" if (parenthesized_expression "(local_128 != (void *)0x0)" ( (binary_expression "local_128 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00132d1b:\n              free(local_128);\n            }" { (labeled_statement "LAB_00132d1b:\n              free(local_128);" statement_identifier : (expression_statement "free(local_128);" (call_expression "free(local_128)" identifier (argument_list "(local_128)" ( identifier ))) ;)) })) (if_statement "if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }" if (parenthesized_expression "(pbVar40 != (byte *)0x0)" ( (binary_expression "pbVar40 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              free(pbVar40);\n            }" { (expression_statement "free(pbVar40);" (call_expression "free(pbVar40)" identifier (argument_list "(pbVar40)" ( identifier ))) ;) })) (goto_statement "goto LAB_00131328;" goto statement_identifier ;) })) (expression_statement "local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);" (assignment_expression "local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15)" identifier = (cast_expression "(char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15)" identifier (argument_list "(pcVar15,(long)pcVar16 - (long)pcVar15)" ( identifier , (binary_expression "(long)pcVar16 - (long)pcVar15" (cast_expression "(long)pcVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))))) ;) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) }) (else_clause "else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }" else (compound_statement "{\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }" { (expression_statement "local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);" (assignment_expression "local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22)" identifier = (cast_expression "(char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22)" identifier (argument_list "(pbVar22,(int)pcVar16 - (int)pbVar22)" ( identifier , (binary_expression "(int)pcVar16 - (int)pbVar22" (cast_expression "(int)pcVar16" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar22" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "*param_4 = (ulong)pcVar15;" (assignment_expression "*param_4 = (ulong)pcVar15" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pcVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }))) (expression_statement "local_128 = (void *)xmalloc(0x50);" (assignment_expression "local_128 = (void *)xmalloc(0x50)" identifier = (cast_expression "(void *)xmalloc(0x50)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;) (expression_statement "local_e8 = 10;" (assignment_expression "local_e8 = 10" identifier = number_literal) ;) (expression_statement "lVar17 = 0;" (assignment_expression "lVar17 = 0" identifier = number_literal) ;) (do_statement "do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));" do (compound_statement "{\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        }" { (if_statement "if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (compound_statement "{\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }" { (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (if_statement "if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }" if (parenthesized_expression "(lVar17 != 0)" ( (binary_expression "lVar17 != 0" identifier != number_literal) )) (compound_statement "{\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }" { (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (if_statement "if (*pcVar16 == ':') goto LAB_00131d3f;" if (parenthesized_expression "(*pcVar16 == ':')" ( (binary_expression "*pcVar16 == ':'" (pointer_expression "*pcVar16" * identifier) == (char_literal "':'" ' character ')) )) (goto_statement "goto LAB_00131d3f;" goto statement_identifier ;)) (goto_statement "goto LAB_00132781;" goto statement_identifier ;) })) (labeled_statement "LAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;" statement_identifier : (if_statement "if (local_138 == (char *)0x0) goto LAB_00132d1b;" if (parenthesized_expression "(local_138 == (char *)0x0)" ( (binary_expression "local_138 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00132d1b;" goto statement_identifier ;))) (goto_statement "goto LAB_0013279c;" goto statement_identifier ;) })) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (labeled_statement "LAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);" statement_identifier : (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;)) (expression_statement "pcVar16 = strchr(pcVar16 + 1,0x3b);" (assignment_expression "pcVar16 = strchr(pcVar16 + 1,0x3b)" identifier = (call_expression "strchr(pcVar16 + 1,0x3b)" identifier (argument_list "(pcVar16 + 1,0x3b)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) , number_literal )))) ;) (if_statement "if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }" if (parenthesized_expression "(pcVar16 == (char *)0x0)" ( (binary_expression "pcVar16 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }" { (labeled_statement "LAB_00132781:\n            FUN_0012e570(pbVar34);" statement_identifier : (expression_statement "FUN_0012e570(pbVar34);" (call_expression "FUN_0012e570(pbVar34)" identifier (argument_list "(pbVar34)" ( identifier ))) ;)) (goto_statement "goto LAB_00132793;" goto statement_identifier ;) })) (expression_statement "iVar5 = FUN_0012e080(param_1,lVar17);" (assignment_expression "iVar5 = FUN_0012e080(param_1,lVar17)" identifier = (call_expression "FUN_0012e080(param_1,lVar17)" identifier (argument_list "(param_1,lVar17)" ( identifier , identifier )))) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (if_statement "if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }" if (parenthesized_expression "(iVar5 == 0x13)" ( (binary_expression "iVar5 == 0x13" identifier == number_literal) )) (compound_statement "{\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }" { (expression_statement "lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);" (assignment_expression "lVar18 = FUN_0012e1b0(param_1,lVar17,local_80)" identifier = (call_expression "FUN_0012e1b0(param_1,lVar17,local_80)" identifier (argument_list "(param_1,lVar17,local_80)" ( identifier , identifier , identifier )))) ;) (expression_statement "bVar41 = lVar18 == 0;" (assignment_expression "bVar41 = lVar18 == 0" identifier = (binary_expression "lVar18 == 0" identifier == number_literal)) ;) })) (expression_statement "pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);" (assignment_expression "pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4)" identifier = (cast_expression "(byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012e600(*param_4,(long)pcVar16 - *param_4)" identifier (argument_list "(*param_4,(long)pcVar16 - *param_4)" ( (pointer_expression "*param_4" * identifier) , (binary_expression "(long)pcVar16 - *param_4" (cast_expression "(long)pcVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (pointer_expression "*param_4" * identifier)) ))))) ;) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (expression_statement "cVar4 = pcVar16[1];" (assignment_expression "cVar4 = pcVar16[1]" identifier = (subscript_expression "pcVar16[1]" identifier [ number_literal ])) ;) (if_statement "if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }" if (parenthesized_expression "(cVar4 == '0')" ( (binary_expression "cVar4 == '0'" identifier == (char_literal "'0'" ' character ')) )) (compound_statement "{\n            local_e4 = 2;\n          }" { (expression_statement "local_e4 = 2;" (assignment_expression "local_e4 = 2" identifier = number_literal) ;) }) (else_clause "else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }" else (if_statement "if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }" if (parenthesized_expression "(cVar4 == '1')" ( (binary_expression "cVar4 == '1'" identifier == (char_literal "'1'" ' character ')) )) (compound_statement "{\n            local_e4 = 1;\n          }" { (expression_statement "local_e4 = 1;" (assignment_expression "local_e4 = 1" identifier = number_literal) ;) }) (else_clause "else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }" else (compound_statement "{\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }" { (if_statement "if (cVar4 == '\0') goto LAB_00132781;" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00132781;" goto statement_identifier ;)) (expression_statement "local_e4 = 0;" (assignment_expression "local_e4 = 0" identifier = number_literal) ;) }))))) (expression_statement "pcVar15 = pcVar16 + 2;" (assignment_expression "pcVar15 = pcVar16 + 2" identifier = (binary_expression "pcVar16 + 2" identifier + number_literal)) ;) (expression_statement "*param_4 = (ulong)pcVar15;" (assignment_expression "*param_4 = (ulong)pcVar15" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pcVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "cVar4 = pcVar16[2];" (assignment_expression "cVar4 = pcVar16[2]" identifier = (subscript_expression "pcVar16[2]" identifier [ number_literal ])) ;) (switch_statement "switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }" switch (parenthesized_expression "(cVar4)" ( identifier )) (compound_statement "{\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }" { (case_statement "case '*':" case (char_literal "'*'" ' character ') :) (case_statement "case '.':" case (char_literal "'.'" ' character ') :) (case_statement "case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;" case (char_literal "'?'" ' character ') : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;" default : (expression_statement "uVar14 = dcgettext(0,"const/volatile indicator missing",5);" (assignment_expression "uVar14 = dcgettext(0,"const/volatile indicator missing",5)" identifier = (call_expression "dcgettext(0,"const/volatile indicator missing",5)" identifier (argument_list "(0,"const/volatile indicator missing",5)" ( number_literal , (string_literal ""const/volatile indicator missing"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0012e500(pbVar34,uVar14);" (call_expression "FUN_0012e500(pbVar34,uVar14)" identifier (argument_list "(pbVar34,uVar14)" ( identifier , identifier ))) ;) (expression_statement "pcVar15 = (char *)*param_4;" (assignment_expression "pcVar15 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (expression_statement "cVar4 = *pcVar15;" (assignment_expression "cVar4 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;" case (char_literal "'A'" ' character ') : (expression_statement "pcVar15 = pcVar16 + 3;" (assignment_expression "pcVar15 = pcVar16 + 3" identifier = (binary_expression "pcVar16 + 3" identifier + number_literal)) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "*param_4 = (ulong)pcVar15;" (assignment_expression "*param_4 = (ulong)pcVar15" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pcVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "cVar4 = pcVar16[3];" (assignment_expression "cVar4 = pcVar16[3]" identifier = (subscript_expression "pcVar16[3]" identifier [ number_literal ])) ;) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;" case (char_literal "'B'" ' character ') : (expression_statement "pcVar15 = pcVar16 + 3;" (assignment_expression "pcVar15 = pcVar16 + 3" identifier = (binary_expression "pcVar16 + 3" identifier + number_literal)) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "*param_4 = (ulong)pcVar15;" (assignment_expression "*param_4 = (ulong)pcVar15" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pcVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "cVar4 = pcVar16[3];" (assignment_expression "cVar4 = pcVar16[3]" identifier = (subscript_expression "pcVar16[3]" identifier [ number_literal ])) ;) (expression_statement "local_f0 = 1;" (assignment_expression "local_f0 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;" case (char_literal "'C'" ' character ') : (expression_statement "pcVar15 = pcVar16 + 3;" (assignment_expression "pcVar15 = pcVar16 + 3" identifier = (binary_expression "pcVar16 + 3" identifier + number_literal)) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (expression_statement "*param_4 = (ulong)pcVar15;" (assignment_expression "*param_4 = (ulong)pcVar15" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pcVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "cVar4 = pcVar16[3];" (assignment_expression "cVar4 = pcVar16[3]" identifier = (subscript_expression "pcVar16[3]" identifier [ number_literal ])) ;) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];" case (char_literal "'D'" ' character ') : (expression_statement "pcVar15 = pcVar16 + 3;" (assignment_expression "pcVar15 = pcVar16 + 3" identifier = (binary_expression "pcVar16 + 3" identifier + number_literal)) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (expression_statement "local_f0 = 1;" (assignment_expression "local_f0 = 1" identifier = number_literal) ;) (expression_statement "*param_4 = (ulong)pcVar15;" (assignment_expression "*param_4 = (ulong)pcVar15" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pcVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "cVar4 = pcVar16[3];" (assignment_expression "cVar4 = pcVar16[3]" identifier = (subscript_expression "pcVar16[3]" identifier [ number_literal ])) ;)) })) (expression_statement "pbVar22 = pbVar40;" (assignment_expression "pbVar22 = pbVar40" identifier = identifier) ;) (if_statement "if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }" if (parenthesized_expression "(cVar4 == '.')" ( (binary_expression "cVar4 == '.'" identifier == (char_literal "'.'" ' character ')) )) (compound_statement "{\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }" { (expression_statement "bVar44 = false;" (assignment_expression "bVar44 = false" identifier = false) ;) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) (expression_statement "*param_4 = (ulong)(pcVar15 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar15 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar15 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar15 + 1)" ( (binary_expression "pcVar15 + 1" identifier + number_literal) )))) ;) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" identifier = number_literal) ;) (labeled_statement "LAB_001322ba:\n            if (bVar41) goto LAB_0013282f;" statement_identifier : (if_statement "if (bVar41) goto LAB_0013282f;" if (parenthesized_expression "(bVar41)" ( identifier )) (goto_statement "goto LAB_0013282f;" goto statement_identifier ;))) }) (else_clause "else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }" else (compound_statement "{\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }" { (if_statement "if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }" if (parenthesized_expression "(cVar4 != '?')" ( (binary_expression "cVar4 != '?'" identifier != (char_literal "'?'" ' character ')) )) (compound_statement "{\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }" { (if_statement "if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }" if (parenthesized_expression "(cVar4 == '*')" ( (binary_expression "cVar4 == '*'" identifier == (char_literal "'*'" ' character ')) )) (compound_statement "{\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }" { (expression_statement "*param_4 = (ulong)(pcVar15 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar15 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar15 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar15 + 1)" ( (binary_expression "pcVar15 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar39 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar39 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) ;) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (if_statement "if (*pcVar16 != ';') goto LAB_00132781;" if (parenthesized_expression "(*pcVar16 != ';')" ( (binary_expression "*pcVar16 != ';'" (pointer_expression "*pcVar16" * identifier) != (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_00132781;" goto statement_identifier ;)) (expression_statement "uVar39 = uVar39 & 0x7fffffff;" (assignment_expression "uVar39 = uVar39 & 0x7fffffff" identifier = (binary_expression "uVar39 & 0x7fffffff" identifier & number_literal)) ;) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (if_statement "if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }" if (parenthesized_expression "((pcVar16[1] == ';') || (pcVar16[1] == '\0'))" ( (binary_expression "(pcVar16[1] == ';') || (pcVar16[1] == '\0')" (parenthesized_expression "(pcVar16[1] == ';')" ( (binary_expression "pcVar16[1] == ';'" (subscript_expression "pcVar16[1]" identifier [ number_literal ]) == (char_literal "';'" ' character ')) )) || (parenthesized_expression "(pcVar16[1] == '\0')" ( (binary_expression "pcVar16[1] == '\0'" (subscript_expression "pcVar16[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }" { (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) (expression_statement "bVar44 = false;" (assignment_expression "bVar44 = false" identifier = false) ;) }) (else_clause "else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }" else (compound_statement "{\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }" { (expression_statement "lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "cVar4 = *(char *)*param_4;" (assignment_expression "cVar4 = *(char *)*param_4" identifier = (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)))) ;) (if_statement "if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }" if (parenthesized_expression "(cVar4 == ':')" ( (binary_expression "cVar4 == ':'" identifier == (char_literal "':'" ' character ')) )) (compound_statement "{\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }" { (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (expression_statement "bVar44 = false;" (assignment_expression "bVar44 = false" identifier = false) ;) (expression_statement "lVar18 = lVar13;" (assignment_expression "lVar18 = lVar13" identifier = identifier) ;) }) (else_clause "else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }" else (compound_statement "{\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }" { (if_statement "if (cVar4 != ';') goto LAB_00132781;" if (parenthesized_expression "(cVar4 != ';')" ( (binary_expression "cVar4 != ';'" identifier != (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_00132781;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "bVar44 = false;" (assignment_expression "bVar44 = false" identifier = false) ;) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) (expression_statement "local_100 = lVar13;" (assignment_expression "local_100 = lVar13" identifier = identifier) ;) }))) }))) }) (else_clause "else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }" else (compound_statement "{\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }" { (expression_statement "FUN_0012e500(pbVar34,"member function type missing");" (call_expression "FUN_0012e500(pbVar34,"member function type missing")" identifier (argument_list "(pbVar34,"member function type missing")" ( identifier , (string_literal ""member function type missing"" " string_content ") ))) ;) (expression_statement "bVar44 = false;" (assignment_expression "bVar44 = false" identifier = false) ;) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" identifier = number_literal) ;) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) }))) (goto_statement "goto LAB_001322ba;" goto statement_identifier ;) })) (expression_statement "*param_4 = (ulong)(pcVar15 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar15 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar15 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar15 + 1)" ( (binary_expression "pcVar15 + 1" identifier + number_literal) )))) ;) (expression_statement "sVar20 = strlen(local_138);" (assignment_expression "sVar20 = strlen(local_138)" identifier = (call_expression "strlen(local_138)" identifier (argument_list "(local_138)" ( identifier )))) ;) (expression_statement "iVar27 = strncmp((char *)pbVar40,local_138,sVar20);" (assignment_expression "iVar27 = strncmp((char *)pbVar40,local_138,sVar20)" identifier = (call_expression "strncmp((char *)pbVar40,local_138,sVar20)" identifier (argument_list "((char *)pbVar40,local_138,sVar20)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier )))) ;) (if_statement "if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (compound_statement "{\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }" { (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" identifier = number_literal) ;) (expression_statement "bVar44 = true;" (assignment_expression "bVar44 = true" identifier = true) ;) (goto_statement "goto LAB_001322ba;" goto statement_identifier ;) })) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" identifier = number_literal) ;) (expression_statement "bVar44 = true;" (assignment_expression "bVar44 = true" identifier = true) ;) (labeled_statement "LAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);" statement_identifier : (expression_statement "lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);" (assignment_expression "lVar13 = FUN_0012e9f0(param_1,param_2,&local_70)" identifier = (call_expression "FUN_0012e9f0(param_1,param_2,&local_70)" identifier (argument_list "(param_1,param_2,&local_70)" ( identifier , identifier , (pointer_expression "&local_70" & identifier) )))) ;)) (if_statement "if (lVar13 == 0) goto LAB_00132793;" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00132793;" goto statement_identifier ;)) (expression_statement "lVar17 = FUN_0012e160(param_1,lVar17);" (assignment_expression "lVar17 = FUN_0012e160(param_1,lVar17)" identifier = (call_expression "FUN_0012e160(param_1,lVar17)" identifier (argument_list "(param_1,lVar17)" ( identifier , identifier )))) ;) (if_statement "if (lVar17 == 0) goto LAB_00132781;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00132781;" goto statement_identifier ;)) (expression_statement "bVar41 = *pbVar40 < 0x5f;" (assignment_expression "bVar41 = *pbVar40 < 0x5f" identifier = (binary_expression "*pbVar40 < 0x5f" (pointer_expression "*pbVar40" * identifier) < number_literal)) ;) (expression_statement "bVar45 = *pbVar40 == 0x5f;" (assignment_expression "bVar45 = *pbVar40 == 0x5f" identifier = (binary_expression "*pbVar40 == 0x5f" (pointer_expression "*pbVar40" * identifier) == number_literal)) ;) (if_statement "if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }" if (parenthesized_expression "(bVar45)" ( identifier )) (compound_statement "{\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }" { (if_statement "if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }" if (parenthesized_expression "(pbVar40[1] != 0x5f)" ( (binary_expression "pbVar40[1] != 0x5f" (subscript_expression "pbVar40[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }" { (expression_statement "iVar27 = strncmp((char *)pbVar40,"__ct",4);" (assignment_expression "iVar27 = strncmp((char *)pbVar40,"__ct",4)" identifier = (call_expression "strncmp((char *)pbVar40,"__ct",4)" identifier (argument_list "((char *)pbVar40,"__ct",4)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""__ct"" " string_content ") , number_literal )))) ;) (if_statement "if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (compound_statement "{\n                  bVar45 = true;\n                  bVar41 = true;\n                }" { (expression_statement "bVar45 = true;" (assignment_expression "bVar45 = true" identifier = true) ;) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" identifier = true) ;) }) (else_clause "else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }" else (compound_statement "{\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }" { (if_statement "if (param_3 != (char *)0x0) goto LAB_001338f6;" if (parenthesized_expression "(param_3 != (char *)0x0)" ( (binary_expression "param_3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001338f6;" goto statement_identifier ;)) (expression_statement "bVar45 = false;" (assignment_expression "bVar45 = false" identifier = false) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) }))) (labeled_statement "LAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;" statement_identifier : (if_statement "if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;" if (parenthesized_expression "((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0))" ( (binary_expression "(((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)" (parenthesized_expression "(((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f))" ( (binary_expression "((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)" (parenthesized_expression "((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e))" ( (binary_expression "(pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)" (parenthesized_expression "(pbVar40[1] != 0x24)" ( (binary_expression "pbVar40[1] != 0x24" (subscript_expression "pbVar40[1]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(pbVar40[1] != 0x2e)" ( (binary_expression "pbVar40[1] != 0x2e" (subscript_expression "pbVar40[1]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "(pbVar40[2] != 0x5f)" ( (binary_expression "pbVar40[2] != 0x5f" (subscript_expression "pbVar40[2]" identifier [ number_literal ]) != number_literal) ))) )) && (parenthesized_expression "(iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)" ( (comma_expression "iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0" (assignment_expression "iVar27 = strncmp((char *)pbVar40,"__dt",4)" identifier = (call_expression "strncmp((char *)pbVar40,"__dt",4)" identifier (argument_list "((char *)pbVar40,"__dt",4)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""__dt"" " string_content ") , number_literal )))) , (binary_expression "iVar27 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0013358b;" goto statement_identifier ;))) (labeled_statement "LAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;" statement_identifier : (if_statement "if (pbVar40[1] == 0x5a) goto LAB_001328ca;" if (parenthesized_expression "(pbVar40[1] == 0x5a)" ( (binary_expression "pbVar40[1] == 0x5a" (subscript_expression "pbVar40[1]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_001328ca;" goto statement_identifier ;))) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" identifier = true) ;) (labeled_statement "LAB_001336b5:\n                local_d8 = 0;" statement_identifier : (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_0013302f;" goto statement_identifier ;) })) (expression_statement "bVar3 = pbVar40[2];" (assignment_expression "bVar3 = pbVar40[2]" identifier = (subscript_expression "pbVar40[2]" identifier [ number_literal ])) ;) (if_statement "if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }" if (parenthesized_expression "((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0))" ( (binary_expression "(((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)" (parenthesized_expression "(((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))" ( (binary_expression "((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74)" (parenthesized_expression "((_sch_istable[(ulong)bVar3 * 2] & 4) == 0)" ( (binary_expression "(_sch_istable[(ulong)bVar3 * 2] & 4) == 0" (parenthesized_expression "(_sch_istable[(ulong)bVar3 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)bVar3 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar3 * 2]" identifier [ (binary_expression "(ulong)bVar3 * 2" (cast_expression "(ulong)bVar3" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "(bVar3 != 0x51 && bVar3 != 0x74)" ( (binary_expression "bVar3 != 0x51 && bVar3 != 0x74" (binary_expression "bVar3 != 0x51" identifier != number_literal) && (binary_expression "bVar3 != 0x74" identifier != number_literal)) ))) )) && (parenthesized_expression "(iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)" ( (comma_expression "iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0" (assignment_expression "iVar27 = strncmp((char *)pbVar40,"__ct",4)" identifier = (call_expression "strncmp((char *)pbVar40,"__ct",4)" identifier (argument_list "((char *)pbVar40,"__ct",4)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""__ct"" " string_content ") , number_literal )))) , (binary_expression "iVar27 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }" { (if_statement "if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }" if (parenthesized_expression "(param_3 != (char *)0x0)" ( (binary_expression "param_3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }" { (labeled_statement "LAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);" statement_identifier : (expression_statement "iVar27 = strcmp(local_138,param_3);" (assignment_expression "iVar27 = strcmp(local_138,param_3)" identifier = (call_expression "strcmp(local_138,param_3)" identifier (argument_list "(local_138,param_3)" ( identifier , identifier )))) ;)) (expression_statement "bVar45 = iVar27 == 0;" (assignment_expression "bVar45 = iVar27 == 0" identifier = (binary_expression "iVar27 == 0" identifier == number_literal)) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (goto_statement "goto LAB_00133557;" goto statement_identifier ;) })) (expression_statement "iVar27 = strncmp((char *)pbVar40,"__dt",4);" (assignment_expression "iVar27 = strncmp((char *)pbVar40,"__dt",4)" identifier = (call_expression "strncmp((char *)pbVar40,"__dt",4)" identifier (argument_list "((char *)pbVar40,"__dt",4)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""__dt"" " string_content ") , number_literal )))) ;) (if_statement "if (iVar27 == 0) goto LAB_001336a5;" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001336a5;" goto statement_identifier ;)) (expression_statement "bVar45 = false;" (assignment_expression "bVar45 = false" identifier = false) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) }) (else_clause "else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }" else (compound_statement "{\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }" { (expression_statement "iVar27 = strncmp((char *)pbVar40,"__dt",4);" (assignment_expression "iVar27 = strncmp((char *)pbVar40,"__dt",4)" identifier = (call_expression "strncmp((char *)pbVar40,"__dt",4)" identifier (argument_list "((char *)pbVar40,"__dt",4)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""__dt"" " string_content ") , number_literal )))) ;) (if_statement "if (iVar27 == 0) goto LAB_001336a5;" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001336a5;" goto statement_identifier ;)) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" identifier = true) ;) (expression_statement "bVar45 = true;" (assignment_expression "bVar45 = true" identifier = true) ;) }))) (labeled_statement "LAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;" statement_identifier : (if_statement "if (pbVar40[1] != 0x5a) goto LAB_00132deb;" if (parenthesized_expression "(pbVar40[1] != 0x5a)" ( (binary_expression "pbVar40[1] != 0x5a" (subscript_expression "pbVar40[1]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00132deb;" goto statement_identifier ;))) (if_statement "if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;" if (parenthesized_expression "((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a))" ( (binary_expression "(*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)" (parenthesized_expression "(*pbVar40 == 0x5f)" ( (binary_expression "*pbVar40 == 0x5f" (pointer_expression "*pbVar40" * identifier) == number_literal) )) && (parenthesized_expression "(pbVar40[1] == 0x5a)" ( (binary_expression "pbVar40[1] == 0x5a" (subscript_expression "pbVar40[1]" identifier [ number_literal ]) == number_literal) ))) )) (goto_statement "goto LAB_00133b71;" goto statement_identifier ;)) (expression_statement "local_58 = (undefined8 *)0x0;" (assignment_expression "local_58 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50[0] = 0;" (assignment_expression "local_50[0] = 0" (subscript_expression "local_50[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_3c = 10;" (assignment_expression "local_3c = 10" identifier = number_literal) ;) (expression_statement "local_78 = pbVar40;" (assignment_expression "local_78 = pbVar40" identifier = identifier) ;) (expression_statement "local_68 = param_1;" (assignment_expression "local_68 = param_1" identifier = identifier) ;) (expression_statement "local_60 = param_2;" (assignment_expression "local_60 = param_2" identifier = identifier) ;) (expression_statement "local_48 = (void *)xmalloc(0xa0);" (assignment_expression "local_48 = (void *)xmalloc(0xa0)" identifier = (cast_expression "(void *)xmalloc(0xa0)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0xa0)" identifier (argument_list "(0xa0)" ( number_literal ))))) ;) (labeled_statement "LAB_0013360b:\n              pbVar33 = local_78;" statement_identifier : (expression_statement "pbVar33 = local_78;" (assignment_expression "pbVar33 = local_78" identifier = identifier) ;)) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "pbVar37 = local_78;" (assignment_expression "pbVar37 = local_78" identifier = identifier) ;) (do_statement "do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);" do (compound_statement "{\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              }" { (expression_statement "pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);" (assignment_expression "pbVar31 = (byte *)strchr((char *)pbVar37,0x5f)" identifier = (cast_expression "(byte *)strchr((char *)pbVar37,0x5f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strchr((char *)pbVar37,0x5f)" identifier (argument_list "((char *)pbVar37,0x5f)" ( (cast_expression "(char *)pbVar37" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))))) ;) (if_statement "if (pbVar31 == (byte *)0x0) goto LAB_00133635;" if (parenthesized_expression "(pbVar31 == (byte *)0x0)" ( (binary_expression "pbVar31 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00133635;" goto statement_identifier ;)) (expression_statement "pbVar37 = pbVar31 + 1;" (assignment_expression "pbVar37 = pbVar31 + 1" identifier = (binary_expression "pbVar31 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar31[1] != 0x5f)" ( (binary_expression "pbVar31[1] != 0x5f" (subscript_expression "pbVar31[1]" identifier [ number_literal ]) != number_literal) )) ;) (if_statement "if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }" if (parenthesized_expression "(pbVar37 != (byte *)0x0)" ( (binary_expression "pbVar37 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }" { (expression_statement "sVar20 = strspn((char *)pbVar31,"_");" (assignment_expression "sVar20 = strspn((char *)pbVar31,"_")" identifier = (call_expression "strspn((char *)pbVar31,"_")" identifier (argument_list "((char *)pbVar31,"_")" ( (cast_expression "(char *)pbVar31" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""_"" " string_content ") )))) ;) (if_statement "if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }" if (parenthesized_expression "(2 < (uint)sVar20)" ( (binary_expression "2 < (uint)sVar20" number_literal < (cast_expression "(uint)sVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }" { (expression_statement "pbVar31 = pbVar31 + ((uint)sVar20 - 2);" (assignment_expression "pbVar31 = pbVar31 + ((uint)sVar20 - 2)" identifier = (binary_expression "pbVar31 + ((uint)sVar20 - 2)" identifier + (parenthesized_expression "((uint)sVar20 - 2)" ( (binary_expression "(uint)sVar20 - 2" (cast_expression "(uint)sVar20" ( (type_descriptor "uint" type_identifier) ) identifier) - number_literal) )))) ;) })) (goto_statement "goto LAB_001330d0;" goto statement_identifier ;) })) (labeled_statement "LAB_00133635:\n              FUN_0012e540(pbVar33);" statement_identifier : (expression_statement "FUN_0012e540(pbVar33);" (call_expression "FUN_0012e540(pbVar33)" identifier (argument_list "(pbVar33)" ( identifier ))) ;)) (labeled_statement "LAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }" statement_identifier : (if_statement "if (local_48 != (void *)0x0) {\n                free(local_48);\n              }" if (parenthesized_expression "(local_48 != (void *)0x0)" ( (binary_expression "local_48 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                free(local_48);\n              }" { (expression_statement "free(local_48);" (call_expression "free(local_48)" identifier (argument_list "(local_48)" ( identifier ))) ;) }))) (goto_statement "goto LAB_00132793;" goto statement_identifier ;) })) (expression_statement "lVar26 = 4;" (assignment_expression "lVar26 = 4" identifier = number_literal) ;) (expression_statement "pbVar37 = pbVar40;" (assignment_expression "pbVar37 = pbVar40" identifier = identifier) ;) (expression_statement "pbVar33 = &DAT_00146a76;" (assignment_expression "pbVar33 = &DAT_00146a76" identifier = (pointer_expression "&DAT_00146a76" & identifier)) ;) (do_statement "do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);" do (compound_statement "{\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            }" { (if_statement "if (lVar26 == 0) break;" if (parenthesized_expression "(lVar26 == 0)" ( (binary_expression "lVar26 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar26 = lVar26 + -1;" (assignment_expression "lVar26 = lVar26 + -1" identifier = (binary_expression "lVar26 + -1" identifier + number_literal)) ;) (expression_statement "bVar41 = *pbVar37 < *pbVar33;" (assignment_expression "bVar41 = *pbVar37 < *pbVar33" identifier = (binary_expression "*pbVar37 < *pbVar33" (pointer_expression "*pbVar37" * identifier) < (pointer_expression "*pbVar33" * identifier))) ;) (expression_statement "bVar45 = *pbVar37 == *pbVar33;" (assignment_expression "bVar45 = *pbVar37 == *pbVar33" identifier = (binary_expression "*pbVar37 == *pbVar33" (pointer_expression "*pbVar37" * identifier) == (pointer_expression "*pbVar33" * identifier))) ;) (expression_statement "pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1" identifier = (binary_expression "pbVar37 + (ulong)bVar47 * -2 + 1" (binary_expression "pbVar37 + (ulong)bVar47 * -2" identifier + (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1" identifier = (binary_expression "pbVar33 + (ulong)bVar47 * -2 + 1" (binary_expression "pbVar33 + (ulong)bVar47 * -2" identifier + (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar45)" ( identifier )) ;) (expression_statement "bVar46 = (!bVar41 && !bVar45) == bVar41;" (assignment_expression "bVar46 = (!bVar41 && !bVar45) == bVar41" identifier = (binary_expression "(!bVar41 && !bVar45) == bVar41" (parenthesized_expression "(!bVar41 && !bVar45)" ( (binary_expression "!bVar41 && !bVar45" (unary_expression "!bVar41" ! identifier) && (unary_expression "!bVar45" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }" if (parenthesized_expression "(bVar46)" ( identifier )) (compound_statement "{\n              bVar45 = true;\n              bVar41 = true;\n            }" { (expression_statement "bVar45 = true;" (assignment_expression "bVar45 = true" identifier = true) ;) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" identifier = true) ;) }) (else_clause "else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }" else (if_statement "if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }" if (parenthesized_expression "(param_3 == (char *)0x0)" ( (binary_expression "param_3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }" { (expression_statement "bVar45 = false;" (assignment_expression "bVar45 = false" identifier = false) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (expression_statement "bVar46 = true;" (assignment_expression "bVar46 = true" identifier = true) ;) }) (else_clause "else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }" else (compound_statement "{\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }" { (expression_statement "iVar27 = strcmp(local_138,param_3);" (assignment_expression "iVar27 = strcmp(local_138,param_3)" identifier = (call_expression "strcmp(local_138,param_3)" identifier (argument_list "(local_138,param_3)" ( identifier , identifier )))) ;) (expression_statement "bVar45 = iVar27 == 0;" (assignment_expression "bVar45 = iVar27 == 0" identifier = (binary_expression "iVar27 == 0" identifier == number_literal)) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (expression_statement "bVar46 = true;" (assignment_expression "bVar46 = true" identifier = true) ;) }))))) (expression_statement "bVar42 = false;" (assignment_expression "bVar42 = false" identifier = false) ;) (expression_statement "lVar26 = 4;" (assignment_expression "lVar26 = 4" identifier = number_literal) ;) (expression_statement "pbVar37 = pbVar40;" (assignment_expression "pbVar37 = pbVar40" identifier = identifier) ;) (expression_statement "pbVar33 = &DAT_00146a4b;" (assignment_expression "pbVar33 = &DAT_00146a4b" identifier = (pointer_expression "&DAT_00146a4b" & identifier)) ;) (do_statement "do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);" do (compound_statement "{\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            }" { (if_statement "if (lVar26 == 0) break;" if (parenthesized_expression "(lVar26 == 0)" ( (binary_expression "lVar26 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar26 = lVar26 + -1;" (assignment_expression "lVar26 = lVar26 + -1" identifier = (binary_expression "lVar26 + -1" identifier + number_literal)) ;) (expression_statement "bVar42 = *pbVar37 < *pbVar33;" (assignment_expression "bVar42 = *pbVar37 < *pbVar33" identifier = (binary_expression "*pbVar37 < *pbVar33" (pointer_expression "*pbVar37" * identifier) < (pointer_expression "*pbVar33" * identifier))) ;) (expression_statement "bVar46 = *pbVar37 == *pbVar33;" (assignment_expression "bVar46 = *pbVar37 == *pbVar33" identifier = (binary_expression "*pbVar37 == *pbVar33" (pointer_expression "*pbVar37" * identifier) == (pointer_expression "*pbVar33" * identifier))) ;) (expression_statement "pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1" identifier = (binary_expression "pbVar37 + (ulong)bVar47 * -2 + 1" (binary_expression "pbVar37 + (ulong)bVar47 * -2" identifier + (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1" identifier = (binary_expression "pbVar33 + (ulong)bVar47 * -2 + 1" (binary_expression "pbVar33 + (ulong)bVar47 * -2" identifier + (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar46)" ( identifier )) ;) (if_statement "if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }" if (parenthesized_expression "((!bVar42 && !bVar46) == bVar42)" ( (binary_expression "(!bVar42 && !bVar46) == bVar42" (parenthesized_expression "(!bVar42 && !bVar46)" ( (binary_expression "!bVar42 && !bVar46" (unary_expression "!bVar42" ! identifier) && (unary_expression "!bVar46" ! identifier)) )) == identifier) )) (compound_statement "{\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }" { (labeled_statement "LAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);" statement_identifier : (expression_statement "puVar19 = (undefined8 *)xmalloc(8);" (assignment_expression "puVar19 = (undefined8 *)xmalloc(8)" identifier = (cast_expression "(undefined8 *)xmalloc(8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(8)" identifier (argument_list "(8)" ( number_literal ))))) ;)) (expression_statement "*puVar19 = 0;" (assignment_expression "*puVar19 = 0" (pointer_expression "*puVar19" * identifier) = number_literal) ;) (expression_statement "iVar27 = 0;" (assignment_expression "iVar27 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }" else (compound_statement "{\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }" { (labeled_statement "LAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }" statement_identifier : (if_statement "if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }" if (parenthesized_expression "(bVar41)" ( identifier )) (compound_statement "{\n                bVar41 = false;\n                goto LAB_001336b5;\n              }" { (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (goto_statement "goto LAB_001336b5;" goto statement_identifier ;) }))) (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" identifier = number_literal) ;) (if_statement "if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }" if (parenthesized_expression "(param_3 != (char *)0x0)" ( (binary_expression "param_3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }" { (expression_statement "sVar20 = strlen(param_3);" (assignment_expression "sVar20 = strlen(param_3)" identifier = (call_expression "strlen(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "local_d8 = sVar20 & 0xffffffff;" (assignment_expression "local_d8 = sVar20 & 0xffffffff" identifier = (binary_expression "sVar20 & 0xffffffff" identifier & number_literal)) ;) })) (expression_statement "pcVar15 = "C";" (assignment_expression "pcVar15 = "C"" identifier = (string_literal ""C"" " string_content ")) ;) (expression_statement "pcVar16 = "V";" (assignment_expression "pcVar16 = "V"" identifier = (string_literal ""V"" " string_content ")) ;) (if_statement "if (local_f0 == 0) {\n                pcVar15 = "";\n              }" if (parenthesized_expression "(local_f0 == 0)" ( (binary_expression "local_f0 == 0" identifier == number_literal) )) (compound_statement "{\n                pcVar15 = "";\n              }" { (expression_statement "pcVar15 = "";" (assignment_expression "pcVar15 = """ identifier = (string_literal """" " ")) ;) })) (if_statement "if (iVar5 == 0) {\n                pcVar16 = "";\n              }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                pcVar16 = "";\n              }" { (expression_statement "pcVar16 = "";" (assignment_expression "pcVar16 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "local_c0 = param_3;" (assignment_expression "local_c0 = param_3" identifier = identifier) ;) (if_statement "if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }" if (parenthesized_expression "((int)local_d8 == 0)" ( (binary_expression "(int)local_d8 == 0" (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n                sprintf((char *)&local_68,"__%s%s");\n              }" { (expression_statement "sprintf((char *)&local_68,"__%s%s");" (call_expression "sprintf((char *)&local_68,"__%s%s")" identifier (argument_list "((char *)&local_68,"__%s%s")" ( (cast_expression "(char *)&local_68" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_68" & identifier)) , (string_literal ""__%s%s"" " string_content ") ))) ;) }) (else_clause "else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }" else (if_statement "if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }" if (parenthesized_expression "((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0))" ( (binary_expression "(param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)" (parenthesized_expression "(param_3 == (char *)0x0)" ( (binary_expression "param_3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)" ( (comma_expression "pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0" (assignment_expression "pcVar21 = strchr(param_3,0x3c)" identifier = (call_expression "strchr(param_3,0x3c)" identifier (argument_list "(param_3,0x3c)" ( identifier , number_literal )))) , (binary_expression "pcVar21 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }" { (expression_statement "sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);" (call_expression "sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8)" identifier (argument_list "((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8)" ( (cast_expression "(char *)&local_68" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_68" & identifier)) , (string_literal ""__%s%s%d"" " string_content ") , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }" else (compound_statement "{\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }" { (expression_statement "sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);" (call_expression "sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16)" identifier (argument_list "((char *)&local_68,"__%s%s",pcVar15,pcVar16)" ( (cast_expression "(char *)&local_68" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_68" & identifier)) , (string_literal ""__%s%s"" " string_content ") , identifier , identifier ))) ;) (expression_statement "local_d8._0_4_ = 0;" (assignment_expression "local_d8._0_4_ = 0" (field_expression "local_d8._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_c0 = (char *)0x0;" (assignment_expression "local_c0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))))) (expression_statement "puVar30 = (uint *)&local_68;" (assignment_expression "puVar30 = (uint *)&local_68" identifier = (cast_expression "(uint *)&local_68" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_68" & identifier))) ;) (do_statement "do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);" do (compound_statement "{\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              }" { (expression_statement "puVar29 = puVar30;" (assignment_expression "puVar29 = puVar30" identifier = identifier) ;) (expression_statement "uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;" (assignment_expression "uVar6 = *puVar29 + 0xfefefeff & ~*puVar29" identifier = (binary_expression "*puVar29 + 0xfefefeff & ~*puVar29" (binary_expression "*puVar29 + 0xfefefeff" (pointer_expression "*puVar29" * identifier) + number_literal) & (unary_expression "~*puVar29" ~ (pointer_expression "*puVar29" * identifier)))) ;) (expression_statement "uVar7 = uVar6 & 0x80808080;" (assignment_expression "uVar7 = uVar6 & 0x80808080" identifier = (binary_expression "uVar6 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar30 = puVar29 + 1;" (assignment_expression "puVar30 = puVar29 + 1" identifier = (binary_expression "puVar29 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) ;) (expression_statement "bVar41 = (uVar6 & 0x8080) == 0;" (assignment_expression "bVar41 = (uVar6 & 0x8080) == 0" identifier = (binary_expression "(uVar6 & 0x8080) == 0" (parenthesized_expression "(uVar6 & 0x8080)" ( (binary_expression "uVar6 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }" if (parenthesized_expression "(bVar41)" ( identifier )) (compound_statement "{\n                uVar7 = uVar7 >> 0x10;\n              }" { (expression_statement "uVar7 = uVar7 >> 0x10;" (assignment_expression "uVar7 = uVar7 >> 0x10" identifier = (binary_expression "uVar7 >> 0x10" identifier >> number_literal)) ;) })) (expression_statement "cVar4 = *local_138;" (assignment_expression "cVar4 = *local_138" identifier = (pointer_expression "*local_138" * identifier)) ;) (if_statement "if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }" if (parenthesized_expression "(bVar41)" ( identifier )) (compound_statement "{\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }" { (expression_statement "puVar30 = (uint *)((long)puVar29 + 6);" (assignment_expression "puVar30 = (uint *)((long)puVar29 + 6)" identifier = (cast_expression "(uint *)((long)puVar29 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar29 + 6)" ( (binary_expression "(long)puVar29 + 6" (cast_expression "(long)puVar29" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) })) (expression_statement "iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;" (assignment_expression "iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68" identifier = (binary_expression "(((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68" (parenthesized_expression "(((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7))" ( (binary_expression "((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)" (parenthesized_expression "((int)puVar30 + -3)" ( (binary_expression "(int)puVar30 + -3" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - (cast_expression "(uint)CARRY1((byte)uVar7,(byte)uVar7)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar7,(byte)uVar7)" identifier (argument_list "((byte)uVar7,(byte)uVar7)" ( (cast_expression "(byte)uVar7" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar7" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) )) - (cast_expression "(int)&local_68" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_68" & identifier)))) ;) (expression_statement "sVar20 = strlen((char *)pbVar40);" (assignment_expression "sVar20 = strlen((char *)pbVar40)" identifier = (call_expression "strlen((char *)pbVar40)" identifier (argument_list "((char *)pbVar40)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }" if (parenthesized_expression "(bVar45)" ( identifier )) (compound_statement "{\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }" { (expression_statement "iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;" (assignment_expression "iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20" identifier = (binary_expression "iVar27 + (int)local_d8 + 1 + (int)sVar20" (binary_expression "iVar27 + (int)local_d8 + 1" (binary_expression "iVar27 + (int)local_d8" identifier + (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) + (cast_expression "(int)sVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;" if (parenthesized_expression "(((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.'))))" ( (binary_expression "((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))" (parenthesized_expression "((cVar4 == 'o') && (local_138[1] == 'p'))" ( (binary_expression "(cVar4 == 'o') && (local_138[1] == 'p')" (parenthesized_expression "(cVar4 == 'o')" ( (binary_expression "cVar4 == 'o'" identifier == (char_literal "'o'" ' character ')) )) && (parenthesized_expression "(local_138[1] == 'p')" ( (binary_expression "local_138[1] == 'p'" (subscript_expression "local_138[1]" identifier [ number_literal ]) == (char_literal "'p'" ' character ')) ))) )) && (parenthesized_expression "((local_138[2] == '$' || (local_138[2] == '.')))" ( (parenthesized_expression "(local_138[2] == '$' || (local_138[2] == '.'))" ( (binary_expression "local_138[2] == '$' || (local_138[2] == '.')" (binary_expression "local_138[2] == '$'" (subscript_expression "local_138[2]" identifier [ number_literal ]) == (char_literal "'$'" ' character ')) || (parenthesized_expression "(local_138[2] == '.')" ( (binary_expression "local_138[2] == '.'" (subscript_expression "local_138[2]" identifier [ number_literal ]) == (char_literal "'.'" ' character ')) ))) )) ))) )) (goto_statement "goto LAB_00132f86;" goto statement_identifier ;)) (expression_statement "pbVar22 = (byte *)xmalloc(iVar27);" (assignment_expression "pbVar22 = (byte *)xmalloc(iVar27)" identifier = (cast_expression "(byte *)xmalloc(iVar27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar27)" identifier (argument_list "(iVar27)" ( identifier ))))) ;) (expression_statement "*pbVar22 = 0;" (assignment_expression "*pbVar22 = 0" (pointer_expression "*pbVar22" * identifier) = number_literal) ;) }) (else_clause "else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }" else (compound_statement "{\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }" { (expression_statement "lVar26 = -1;" (assignment_expression "lVar26 = -1" identifier = number_literal) ;) (expression_statement "pcVar16 = local_138;" (assignment_expression "pcVar16 = local_138" identifier = identifier) ;) (do_statement "do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');" do (compound_statement "{\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                }" { (if_statement "if (lVar26 == 0) break;" if (parenthesized_expression "(lVar26 == 0)" ( (binary_expression "lVar26 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar26 = lVar26 + -1;" (assignment_expression "lVar26 = lVar26 + -1" identifier = (binary_expression "lVar26 + -1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (expression_statement "pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1" identifier = (binary_expression "pcVar16 + (ulong)bVar47 * -2 + 1" (binary_expression "pcVar16 + (ulong)bVar47 * -2" identifier + (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;" (assignment_expression "iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20" identifier = (binary_expression "((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20" (binary_expression "((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2" (parenthesized_expression "((iVar27 + (int)local_d8 + 1) - (int)lVar26)" ( (binary_expression "(iVar27 + (int)local_d8 + 1) - (int)lVar26" (parenthesized_expression "(iVar27 + (int)local_d8 + 1)" ( (binary_expression "iVar27 + (int)local_d8 + 1" (binary_expression "iVar27 + (int)local_d8" identifier + (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) )) - (cast_expression "(int)lVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal) + (cast_expression "(int)sVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }" if (parenthesized_expression "(((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.'))))" ( (binary_expression "((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))" (parenthesized_expression "((cVar4 == 'o') && (local_138[1] == 'p'))" ( (binary_expression "(cVar4 == 'o') && (local_138[1] == 'p')" (parenthesized_expression "(cVar4 == 'o')" ( (binary_expression "cVar4 == 'o'" identifier == (char_literal "'o'" ' character ')) )) && (parenthesized_expression "(local_138[1] == 'p')" ( (binary_expression "local_138[1] == 'p'" (subscript_expression "local_138[1]" identifier [ number_literal ]) == (char_literal "'p'" ' character ')) ))) )) && (parenthesized_expression "((local_138[2] == '$' || (local_138[2] == '.')))" ( (parenthesized_expression "(local_138[2] == '$' || (local_138[2] == '.'))" ( (binary_expression "local_138[2] == '$' || (local_138[2] == '.')" (binary_expression "local_138[2] == '$'" (subscript_expression "local_138[2]" identifier [ number_literal ]) == (char_literal "'$'" ' character ')) || (parenthesized_expression "(local_138[2] == '.')" ( (binary_expression "local_138[2] == '.'" (subscript_expression "local_138[2]" identifier [ number_literal ]) == (char_literal "'.'" ' character ')) ))) )) ))) )) (compound_statement "{\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }" { (labeled_statement "LAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);" statement_identifier : (expression_statement "pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);" (assignment_expression "pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0)" identifier = (cast_expression "(char *)cplus_mangle_opname(local_138 + 3,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "cplus_mangle_opname(local_138 + 3,0)" identifier (argument_list "(local_138 + 3,0)" ( (binary_expression "local_138 + 3" identifier + number_literal) , number_literal ))))) ;)) (if_statement "if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }" if (parenthesized_expression "(pcVar16 == (char *)0x0)" ( (binary_expression "pcVar16 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }" { (expression_statement "pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);" (assignment_expression "pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"No mangling for \"%s\"\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"No mangling for \"%s\"\n",5)" identifier (argument_list "(0,"No mangling for \"%s\"\n",5)" ( number_literal , (string_literal ""No mangling for \"%s\"\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(stderr,pcVar16,local_138);" (call_expression "fprintf(stderr,pcVar16,local_138)" identifier (argument_list "(stderr,pcVar16,local_138)" ( identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_0013279c;" goto statement_identifier ;) })) (expression_statement "lVar26 = -1;" (assignment_expression "lVar26 = -1" identifier = number_literal) ;) (expression_statement "pcVar15 = pcVar16;" (assignment_expression "pcVar15 = pcVar16" identifier = identifier) ;) (do_statement "do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');" do (compound_statement "{\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  }" { (if_statement "if (lVar26 == 0) break;" if (parenthesized_expression "(lVar26 == 0)" ( (binary_expression "lVar26 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar26 = lVar26 + -1;" (assignment_expression "lVar26 = lVar26 + -1" identifier = (binary_expression "lVar26 + -1" identifier + number_literal)) ;) (expression_statement "cVar4 = *pcVar15;" (assignment_expression "cVar4 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (expression_statement "pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1" identifier = (binary_expression "pcVar15 + (ulong)bVar47 * -2 + 1" (binary_expression "pcVar15 + (ulong)bVar47 * -2" identifier + (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);" (assignment_expression "pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26)" identifier = (cast_expression "(byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar27 + -1 + ~(uint)lVar26)" identifier (argument_list "(iVar27 + -1 + ~(uint)lVar26)" ( (binary_expression "iVar27 + -1 + ~(uint)lVar26" (binary_expression "iVar27 + -1" identifier + number_literal) + (unary_expression "~(uint)lVar26" ~ (cast_expression "(uint)lVar26" ( (type_descriptor "uint" type_identifier) ) identifier))) ))))) ;) (expression_statement "strncpy((char *)pbVar22,local_138,3);" (call_expression "strncpy((char *)pbVar22,local_138,3)" identifier (argument_list "((char *)pbVar22,local_138,3)" ( (cast_expression "(char *)pbVar22" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , number_literal ))) ;) (expression_statement "strcpy((char *)(pbVar22 + 3),pcVar16);" (call_expression "strcpy((char *)(pbVar22 + 3),pcVar16)" identifier (argument_list "((char *)(pbVar22 + 3),pcVar16)" ( (cast_expression "(char *)(pbVar22 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar22 + 3)" ( (binary_expression "pbVar22 + 3" identifier + number_literal) ))) , identifier ))) ;) }) (else_clause "else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }" else (compound_statement "{\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }" { (expression_statement "pbVar22 = (byte *)xmalloc(iVar27);" (assignment_expression "pbVar22 = (byte *)xmalloc(iVar27)" identifier = (cast_expression "(byte *)xmalloc(iVar27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar27)" identifier (argument_list "(iVar27)" ( identifier ))))) ;) (expression_statement "strcpy((char *)pbVar22,local_138);" (call_expression "strcpy((char *)pbVar22,local_138)" identifier (argument_list "((char *)pbVar22,local_138)" ( (cast_expression "(char *)pbVar22" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) }))) }))) (expression_statement "sVar20 = strlen((char *)pbVar22);" (assignment_expression "sVar20 = strlen((char *)pbVar22)" identifier = (call_expression "strlen((char *)pbVar22)" identifier (argument_list "((char *)pbVar22)" ( (cast_expression "(char *)pbVar22" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_d8 = sVar20 & 0xffffffff;" (assignment_expression "local_d8 = sVar20 & 0xffffffff" identifier = (binary_expression "sVar20 & 0xffffffff" identifier & number_literal)) ;) (expression_statement "pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);" (assignment_expression "pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68)" identifier = (call_expression "stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68)" identifier (argument_list "((char *)(pbVar22 + sVar20),(char *)&local_68)" ( (cast_expression "(char *)(pbVar22 + sVar20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar22 + sVar20)" ( (binary_expression "pbVar22 + sVar20" identifier + identifier) ))) , (cast_expression "(char *)&local_68" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_68" & identifier)) )))) ;) (if_statement "if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }" if (parenthesized_expression "(local_c0 != (char *)0x0)" ( (binary_expression "local_c0 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                strcpy(pcVar16,local_c0);\n              }" { (expression_statement "strcpy(pcVar16,local_c0);" (call_expression "strcpy(pcVar16,local_c0)" identifier (argument_list "(pcVar16,local_c0)" ( identifier , identifier ))) ;) })) (expression_statement "strcat((char *)pbVar22,(char *)pbVar40);" (call_expression "strcat((char *)pbVar22,(char *)pbVar40)" identifier (argument_list "((char *)pbVar22,(char *)pbVar40)" ( (cast_expression "(char *)pbVar22" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (labeled_statement "LAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;" statement_identifier : (if_statement "if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;" if (parenthesized_expression "((*pbVar40 == 0) || (bVar41))" ( (binary_expression "(*pbVar40 == 0) || (bVar41)" (parenthesized_expression "(*pbVar40 == 0)" ( (binary_expression "*pbVar40 == 0" (pointer_expression "*pbVar40" * identifier) == number_literal) )) || (parenthesized_expression "(bVar41)" ( identifier ))) )) (goto_statement "goto LAB_001328ca;" goto statement_identifier ;))) (if_statement "if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }" if (parenthesized_expression "((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a))" ( (binary_expression "(*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)" (parenthesized_expression "(*pbVar22 == 0x5f)" ( (binary_expression "*pbVar22 == 0x5f" (pointer_expression "*pbVar22" * identifier) == number_literal) )) && (parenthesized_expression "(pbVar22[1] == 0x5a)" ( (binary_expression "pbVar22[1] == 0x5a" (subscript_expression "pbVar22[1]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }" { (labeled_statement "LAB_00133b71:\n                local_78 = pbVar22;" statement_identifier : (expression_statement "local_78 = pbVar22;" (assignment_expression "local_78 = pbVar22" identifier = identifier) ;)) (expression_statement "piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);" (assignment_expression "piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68)" identifier = (cast_expression "(int *)FUN_001390d0(pbVar22,3,&local_68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001390d0(pbVar22,3,&local_68)" identifier (argument_list "(pbVar22,3,&local_68)" ( identifier , number_literal , (pointer_expression "&local_68" & identifier) ))))) ;) (if_statement "if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }" if (parenthesized_expression "(piVar24 == (int *)0x0)" ( (binary_expression "piVar24 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  FUN_0012e540(pbVar22);\n                }" { (expression_statement "FUN_0012e540(pbVar22);" (call_expression "FUN_0012e540(pbVar22)" identifier (argument_list "(pbVar22)" ( identifier ))) ;) }) (else_clause "else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }" else (compound_statement "{\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }" { (if_statement "if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }" if (parenthesized_expression "((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29))" ( (binary_expression "(*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)" (parenthesized_expression "(*piVar24 == 3)" ( (binary_expression "*piVar24 == 3" (pointer_expression "*piVar24" * identifier) == number_literal) )) && (parenthesized_expression "(**(int **)(piVar24 + 4) == 0x29)" ( (binary_expression "**(int **)(piVar24 + 4) == 0x29" (pointer_expression "**(int **)(piVar24 + 4)" * (pointer_expression "*(int **)(piVar24 + 4)" * (cast_expression "(int **)(piVar24 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar24 + 4)" ( (binary_expression "piVar24 + 4" identifier + number_literal) ))))) == number_literal) ))) )) (compound_statement "{\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }" { (expression_statement "puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);" (assignment_expression "puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c)" identifier = (cast_expression "(undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c)" identifier (argument_list "(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c)" ( identifier , identifier , (pointer_expression "*(undefined8 *)(*(int **)(piVar24 + 4) + 4)" * (cast_expression "(undefined8 *)(*(int **)(piVar24 + 4) + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int **)(piVar24 + 4) + 4)" ( (binary_expression "*(int **)(piVar24 + 4) + 4" (pointer_expression "*(int **)(piVar24 + 4)" * (cast_expression "(int **)(piVar24 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar24 + 4)" ( (binary_expression "piVar24 + 4" identifier + number_literal) )))) + number_literal) )))) , (pointer_expression "&local_7c" & identifier) ))))) ;) (expression_statement "free(local_68);" (call_expression "free(local_68)" identifier (argument_list "(local_68)" ( identifier ))) ;) (goto_statement "goto LAB_00133211;" goto statement_identifier ;) })) (expression_statement "pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);" (assignment_expression "pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Demangled name is not a function\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Demangled name is not a function\n",5)" identifier (argument_list "(0,"Demangled name is not a function\n",5)" ( number_literal , (string_literal ""Demangled name is not a function\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(stderr,pcVar16);" (call_expression "fprintf(stderr,pcVar16)" identifier (argument_list "(stderr,pcVar16)" ( identifier , identifier ))) ;) (expression_statement "free(local_68);" (call_expression "free(local_68)" identifier (argument_list "(local_68)" ( identifier ))) ;) }))) (goto_statement "goto LAB_00132793;" goto statement_identifier ;) })) (expression_statement "local_58 = (undefined8 *)0x0;" (assignment_expression "local_58 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50[0] = 0;" (assignment_expression "local_50[0] = 0" (subscript_expression "local_50[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_3c = 10;" (assignment_expression "local_3c = 10" identifier = number_literal) ;) (expression_statement "local_78 = pbVar22;" (assignment_expression "local_78 = pbVar22" identifier = identifier) ;) (expression_statement "local_68 = param_1;" (assignment_expression "local_68 = param_1" identifier = identifier) ;) (expression_statement "local_60 = param_2;" (assignment_expression "local_60 = param_2" identifier = identifier) ;) (expression_statement "local_48 = (void *)xmalloc(0xa0);" (assignment_expression "local_48 = (void *)xmalloc(0xa0)" identifier = (cast_expression "(void *)xmalloc(0xa0)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0xa0)" identifier (argument_list "(0xa0)" ( number_literal ))))) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (if_statement "if ((int)local_d8 == 0) goto LAB_0013360b;" if (parenthesized_expression "((int)local_d8 == 0)" ( (binary_expression "(int)local_d8 == 0" (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (goto_statement "goto LAB_0013360b;" goto statement_identifier ;)) (expression_statement "pbVar31 = local_78 + local_d8;" (assignment_expression "pbVar31 = local_78 + local_d8" identifier = (binary_expression "local_78 + local_d8" identifier + identifier)) ;) (expression_statement "pbVar33 = local_78;" (assignment_expression "pbVar33 = local_78" identifier = identifier) ;) (labeled_statement "LAB_001330d0:\n              bVar3 = pbVar31[2];" statement_identifier : (expression_statement "bVar3 = pbVar31[2];" (assignment_expression "bVar3 = pbVar31[2]" identifier = (subscript_expression "pbVar31[2]" identifier [ number_literal ])) ;)) (if_statement "if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }" if (parenthesized_expression "(pbVar33 == pbVar31)" ( (binary_expression "pbVar33 == pbVar31" identifier == identifier) )) (compound_statement "{\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }" { (if_statement "if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }" if (parenthesized_expression "(((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74))" ( (binary_expression "((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)" (parenthesized_expression "((_sch_istable[(ulong)bVar3 * 2] & 4) == 0)" ( (binary_expression "(_sch_istable[(ulong)bVar3 * 2] & 4) == 0" (parenthesized_expression "(_sch_istable[(ulong)bVar3 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)bVar3 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar3 * 2]" identifier [ (binary_expression "(ulong)bVar3 * 2" (cast_expression "(ulong)bVar3" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "(pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)" ( (comma_expression "pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74" (assignment_expression "pbVar37 = pbVar31" identifier = identifier) , (binary_expression "bVar3 != 0x51 && bVar3 != 0x74" (binary_expression "bVar3 != 0x51" identifier != number_literal) && (binary_expression "bVar3 != 0x74" identifier != number_literal))) ))) )) (compound_statement "{\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }" { (for_statement "for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }" for ( ; (binary_expression "*pbVar37 == 0x5f" (pointer_expression "*pbVar37" * identifier) == number_literal) ; (assignment_expression "pbVar37 = pbVar37 + 1" identifier = (binary_expression "pbVar37 + 1" identifier + number_literal)) ) (compound_statement "{\n                  }" { })) (expression_statement "pcVar16 = strstr((char *)pbVar37,"__");" (assignment_expression "pcVar16 = strstr((char *)pbVar37,"__")" identifier = (call_expression "strstr((char *)pbVar37,"__")" identifier (argument_list "((char *)pbVar37,"__")" ( (cast_expression "(char *)pbVar37" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""__"" " string_content ") )))) ;) (if_statement "if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }" if (parenthesized_expression "((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0'))" ( (binary_expression "(pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')" (parenthesized_expression "(pcVar16 == (char *)0x0)" ( (binary_expression "pcVar16 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar16[2] == '\0')" ( (binary_expression "pcVar16[2] == '\0'" (subscript_expression "pcVar16[2]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }" { (expression_statement "FUN_0012e540(pbVar31);" (call_expression "FUN_0012e540(pbVar31)" identifier (argument_list "(pbVar31)" ( identifier ))) ;) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;) })) (expression_statement "iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);" (assignment_expression "iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16)" identifier = (call_expression "FUN_00130f70(&local_68,&local_78,pcVar16)" identifier (argument_list "(&local_68,&local_78,pcVar16)" ( (pointer_expression "&local_68" & identifier) , (pointer_expression "&local_78" & identifier) , identifier )))) ;) (goto_statement "goto LAB_001330fd;" goto statement_identifier ;) })) (expression_statement "local_78 = pbVar31 + 2;" (assignment_expression "local_78 = pbVar31 + 2" identifier = (binary_expression "pbVar31 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }" else (compound_statement "{\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }" { (if_statement "if (bVar3 == 0) goto LAB_00133635;" if (parenthesized_expression "(bVar3 == 0)" ( (binary_expression "bVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00133635;" goto statement_identifier ;)) (expression_statement "iVar27 = FUN_00130f70(&local_68,&local_78);" (assignment_expression "iVar27 = FUN_00130f70(&local_68,&local_78)" identifier = (call_expression "FUN_00130f70(&local_68,&local_78)" identifier (argument_list "(&local_68,&local_78)" ( (pointer_expression "&local_68" & identifier) , (pointer_expression "&local_78" & identifier) )))) ;) (labeled_statement "LAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;" statement_identifier : (if_statement "if (iVar27 == 0) goto LAB_0013323f;" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;))) }))) (expression_statement "pbVar37 = local_78;" (assignment_expression "pbVar37 = local_78" identifier = identifier) ;) (expression_statement "bVar3 = *local_78;" (assignment_expression "bVar3 = *local_78" identifier = (pointer_expression "*local_78" * identifier)) ;) (if_statement "if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }" if (parenthesized_expression "(bVar3 != 0)" ( (binary_expression "bVar3 != 0" identifier != number_literal) )) (compound_statement "{\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }" { (expression_statement "pbVar33 = (byte *)0x0;" (assignment_expression "pbVar33 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar45 = false;" (assignment_expression "bVar45 = false" identifier = false) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (do_statement "do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);" do (compound_statement "{\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                }" { (expression_statement "pbVar31 = local_78;" (assignment_expression "pbVar31 = local_78" identifier = identifier) ;) (switch_statement "switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }" switch (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }" { (case_statement "case 0x30:" case number_literal :) (case_statement "case 0x31:" case number_literal :) (case_statement "case 0x32:" case number_literal :) (case_statement "case 0x33:" case number_literal :) (case_statement "case 0x34:" case number_literal :) (case_statement "case 0x35:" case number_literal :) (case_statement "case 0x36:" case number_literal :) (case_statement "case 0x37:" case number_literal :) (case_statement "case 0x38:" case number_literal :) (case_statement "case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;" case number_literal : (if_statement "if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }" if (parenthesized_expression "(pbVar33 == (byte *)0x0)" ( (binary_expression "pbVar33 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      pbVar33 = local_78;\n                    }" { (expression_statement "pbVar33 = local_78;" (assignment_expression "pbVar33 = local_78" identifier = identifier) ;) })) (expression_statement "iVar27 = FUN_0012eea0(&local_78,0);" (assignment_expression "iVar27 = FUN_0012eea0(&local_78,0)" identifier = (call_expression "FUN_0012eea0(&local_78,0)" identifier (argument_list "(&local_78,0)" ( (pointer_expression "&local_78" & identifier) , number_literal )))) ;) (goto_statement "goto joined_r0x0013334c;" goto statement_identifier ;)) (case_statement "default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;" default : (expression_statement "iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);" (assignment_expression "iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50)" identifier = (call_expression "FUN_00130da0(&local_68,&local_78,&local_58,local_50)" identifier (argument_list "(&local_68,&local_78,&local_58,local_50)" ( (pointer_expression "&local_68" & identifier) , (pointer_expression "&local_78" & identifier) , (pointer_expression "&local_58" & identifier) , identifier )))) ;) (if_statement "if (iVar27 == 0) goto LAB_0013323f;" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;)) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 0x43:" case number_literal :) (case_statement "case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;" case number_literal : (if_statement "if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }" if (parenthesized_expression "(pbVar33 == (byte *)0x0)" ( (binary_expression "pbVar33 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      pbVar33 = local_78;\n                    }" { (expression_statement "pbVar33 = local_78;" (assignment_expression "pbVar33 = local_78" identifier = identifier) ;) })) (expression_statement "local_78 = local_78 + 1;" (assignment_expression "local_78 = local_78 + 1" identifier = (binary_expression "local_78 + 1" identifier + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;" case number_literal : (expression_statement "local_78 = local_78 + 1;" (assignment_expression "local_78 = local_78 + 1" identifier = (binary_expression "local_78 + 1" identifier + number_literal)) ;) (expression_statement "iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);" (assignment_expression "iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50)" identifier = (call_expression "FUN_00130da0(&local_68,&local_78,&local_58,local_50)" identifier (argument_list "(&local_68,&local_78,&local_58,local_50)" ( (pointer_expression "&local_68" & identifier) , (pointer_expression "&local_78" & identifier) , (pointer_expression "&local_58" & identifier) , identifier )))) ;) (if_statement "if (iVar27 == 0) goto LAB_0013323f;" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;)) (expression_statement "pbVar33 = (byte *)0x0;" (assignment_expression "pbVar33 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;" case number_literal : (expression_statement "iVar27 = FUN_00130930(&local_68,&local_78,0);" (assignment_expression "iVar27 = FUN_00130930(&local_68,&local_78,0)" identifier = (call_expression "FUN_00130930(&local_68,&local_78,0)" identifier (argument_list "(&local_68,&local_78,0)" ( (pointer_expression "&local_68" & identifier) , (pointer_expression "&local_78" & identifier) , number_literal )))) ;) (if_statement "if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }" if (parenthesized_expression "(iVar27 != 0)" ( (binary_expression "iVar27 != 0" identifier != number_literal) )) (compound_statement "{\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }" { (expression_statement "iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);" (assignment_expression "iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31)" identifier = (call_expression "FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31)" identifier (argument_list "(&local_68,pbVar31,(long)local_78 - (long)pbVar31)" ( (pointer_expression "&local_68" & identifier) , identifier , (binary_expression "(long)local_78 - (long)pbVar31" (cast_expression "(long)local_78" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar31" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (goto_statement "goto joined_r0x001332f4;" goto statement_identifier ;) })) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;)) (case_statement "case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;" case number_literal : (expression_statement "FUN_0012e540(pbVar37);" (call_expression "FUN_0012e540(pbVar37)" identifier (argument_list "(pbVar37)" ( identifier ))) ;) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;)) (case_statement "case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;" case number_literal : (if_statement "if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }" if (parenthesized_expression "(pbVar33 == (byte *)0x0)" ( (binary_expression "pbVar33 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      pbVar33 = local_78;\n                    }" { (expression_statement "pbVar33 = local_78;" (assignment_expression "pbVar33 = local_78" identifier = identifier) ;) })) (expression_statement "iVar27 = FUN_00130390(&local_68,&local_78,0);" (assignment_expression "iVar27 = FUN_00130390(&local_68,&local_78,0)" identifier = (call_expression "FUN_00130390(&local_68,&local_78,0)" identifier (argument_list "(&local_68,&local_78,0)" ( (pointer_expression "&local_68" & identifier) , (pointer_expression "&local_78" & identifier) , number_literal )))) ;) (labeled_statement "joined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }" statement_identifier : (if_statement "if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }" if (parenthesized_expression "(iVar27 != 0)" ( (binary_expression "iVar27 != 0" identifier != number_literal) )) (compound_statement "{\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }" { (expression_statement "iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);" (assignment_expression "iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33)" identifier = (call_expression "FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33)" identifier (argument_list "(&local_68,pbVar33,(long)local_78 - (long)pbVar33)" ( (pointer_expression "&local_68" & identifier) , identifier , (binary_expression "(long)local_78 - (long)pbVar33" (cast_expression "(long)local_78" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar33" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (labeled_statement "joined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }" statement_identifier : (if_statement "if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }" if (parenthesized_expression "(iVar27 != 0)" ( (binary_expression "iVar27 != 0" identifier != number_literal) )) (compound_statement "{\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }" { (expression_statement "pbVar33 = (byte *)0x0;" (assignment_expression "pbVar33 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0013328f;" goto statement_identifier ;) }))) }))) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;)) })) (if_statement "if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }" if (parenthesized_expression "(bVar45)" ( identifier )) (compound_statement "{\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }" { (labeled_statement "LAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);" statement_identifier : (expression_statement "iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);" (assignment_expression "iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50)" identifier = (call_expression "FUN_00130da0(&local_68,&local_78,&local_58,local_50)" identifier (argument_list "(&local_68,&local_78,&local_58,local_50)" ( (pointer_expression "&local_68" & identifier) , (pointer_expression "&local_78" & identifier) , (pointer_expression "&local_58" & identifier) , identifier )))) ;)) (if_statement "if (iVar27 == 0) goto LAB_0013323f;" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;)) (expression_statement "bVar45 = true;" (assignment_expression "bVar45 = true" identifier = true) ;) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" identifier = true) ;) })) (expression_statement "bVar3 = *local_78;" (assignment_expression "bVar3 = *local_78" identifier = (pointer_expression "*local_78" * identifier)) ;) }) while (parenthesized_expression "(bVar3 != 0)" ( (binary_expression "bVar3 != 0" identifier != number_literal) )) ;) (if_statement "if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;" if (parenthesized_expression "((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))" ( (binary_expression "(!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0)" (parenthesized_expression "(!bVar41)" ( (unary_expression "!bVar41" ! identifier) )) && (parenthesized_expression "(iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0)" ( (comma_expression "iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0" (assignment_expression "iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50)" identifier = (call_expression "FUN_00130da0(&local_68,&local_78,&local_58,local_50)" identifier (argument_list "(&local_68,&local_78,&local_58,local_50)" ( (pointer_expression "&local_68" & identifier) , (pointer_expression "&local_78" & identifier) , (pointer_expression "&local_58" & identifier) , identifier )))) , (binary_expression "iVar27 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;)) })) (expression_statement "free(local_48);" (call_expression "free(local_48)" identifier (argument_list "(local_48)" ( identifier ))) ;) (expression_statement "local_48 = (void *)0x0;" (assignment_expression "local_48 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }" if (parenthesized_expression "(local_58 == (undefined8 *)0x0)" ( (binary_expression "local_58 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }" { (expression_statement "pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);" (assignment_expression "pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"no argument types in mangled string\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"no argument types in mangled string\n",5)" identifier (argument_list "(0,"no argument types in mangled string\n",5)" ( number_literal , (string_literal ""no argument types in mangled string\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(stderr,pcVar16);" (call_expression "fprintf(stderr,pcVar16)" identifier (argument_list "(stderr,pcVar16)" ( identifier , identifier ))) ;) })) (expression_statement "local_7c = local_50[0];" (assignment_expression "local_7c = local_50[0]" identifier = (subscript_expression "local_50[0]" identifier [ number_literal ])) ;) (expression_statement "puVar19 = local_58;" (assignment_expression "puVar19 = local_58" identifier = identifier) ;) (labeled_statement "LAB_00133211:\n              iVar27 = local_7c;" statement_identifier : (expression_statement "iVar27 = local_7c;" (assignment_expression "iVar27 = local_7c" identifier = identifier) ;)) (if_statement "if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;" if (parenthesized_expression "(puVar19 == (undefined8 *)0x0)" ( (binary_expression "puVar19 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00132793;" goto statement_identifier ;)) }))) (expression_statement "lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);" (assignment_expression "lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27)" identifier = (call_expression "FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27)" identifier (argument_list "(param_1,lVar17,lVar13,puVar19,iVar27)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (lVar17 == 0) goto LAB_00132793;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00132793;" goto statement_identifier ;)) }))) (expression_statement "uVar7 = local_ec + 1;" (assignment_expression "uVar7 = local_ec + 1" identifier = (binary_expression "local_ec + 1" identifier + number_literal)) ;) (if_statement "if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }" if (parenthesized_expression "(local_e8 <= uVar7)" ( (binary_expression "local_e8 <= uVar7" identifier <= identifier) )) (compound_statement "{\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }" { (expression_statement "local_e8 = local_e8 + 10;" (assignment_expression "local_e8 = local_e8 + 10" identifier = (binary_expression "local_e8 + 10" identifier + number_literal)) ;) (expression_statement "local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);" (assignment_expression "local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3)" identifier = (cast_expression "(void *)xrealloc(local_128,(ulong)local_e8 << 3)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(local_128,(ulong)local_e8 << 3)" identifier (argument_list "(local_128,(ulong)local_e8 << 3)" ( identifier , (binary_expression "(ulong)local_e8 << 3" (cast_expression "(ulong)local_e8" ( (type_descriptor "ulong" type_identifier) ) identifier) << number_literal) ))))) ;) })) (expression_statement "plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);" (assignment_expression "plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8)" identifier = (cast_expression "(long *)((long)local_128 + (ulong)local_ec * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_128 + (ulong)local_ec * 8)" ( (binary_expression "(long)local_128 + (ulong)local_ec * 8" (cast_expression "(long)local_128" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)local_ec * 8" (cast_expression "(ulong)local_ec" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) )))) ;) (if_statement "if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }" if (parenthesized_expression "(bVar44)" ( identifier )) (compound_statement "{\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }" { (expression_statement "lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);" (assignment_expression "lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5)" identifier = (call_expression "FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5)" identifier (argument_list "(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "*plVar10 = lVar17;" (assignment_expression "*plVar10 = lVar17" (pointer_expression "*plVar10" * identifier) = identifier) ;) }) (else_clause "else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }" else (compound_statement "{\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }" { (expression_statement "lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);" (assignment_expression "lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100)" identifier = (call_expression "FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100)" identifier (argument_list "(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "*plVar10 = lVar17;" (assignment_expression "*plVar10 = lVar17" (pointer_expression "*plVar10" * identifier) = identifier) ;) }))) (if_statement "if (lVar17 == 0) goto LAB_00132793;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00132793;" goto statement_identifier ;)) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) }) while (parenthesized_expression "((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'))" ( (binary_expression "(*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0')" (parenthesized_expression "(*pcVar16 != ';')" ( (binary_expression "*pcVar16 != ';'" (pointer_expression "*pcVar16" * identifier) != (char_literal "';'" ' character ')) )) && (parenthesized_expression "(lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0')" ( (comma_expression "lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'" (assignment_expression "lVar17 = lVar18" identifier = identifier) , (comma_expression "local_ec = uVar7, *pcVar16 != '\0'" (assignment_expression "local_ec = uVar7" identifier = identifier) , (binary_expression "*pcVar16 != '\0'" (pointer_expression "*pcVar16" * identifier) != (char_literal "'\0'" ' escape_sequence ')))) ))) )) ;) (expression_statement "*(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;" (assignment_expression "*(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0" (pointer_expression "*(undefined8 *)((long)local_128 + (ulong)uVar7 * 8)" * (cast_expression "(undefined8 *)((long)local_128 + (ulong)uVar7 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_128 + (ulong)uVar7 * 8)" ( (binary_expression "(long)local_128 + (ulong)uVar7 * 8" (cast_expression "(long)local_128" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)uVar7 * 8" (cast_expression "(ulong)uVar7" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) )))) = number_literal) ;) (if_statement "if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }" if (parenthesized_expression "(*pcVar16 != '\0')" ( (binary_expression "*pcVar16 != '\0'" (pointer_expression "*pcVar16" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          *param_4 = (ulong)(pcVar16 + 1);\n        }" { (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) })) (expression_statement "uVar39 = local_c8 + 1;" (assignment_expression "uVar39 = local_c8 + 1" identifier = (binary_expression "local_c8 + 1" identifier + number_literal)) ;) (if_statement "if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }" if (parenthesized_expression "(local_c4 <= uVar39)" ( (binary_expression "local_c4 <= uVar39" identifier <= identifier) )) (compound_statement "{\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }" { (expression_statement "local_c4 = local_c4 + 10;" (assignment_expression "local_c4 = local_c4 + 10" identifier = (binary_expression "local_c4 + 10" identifier + number_literal)) ;) (expression_statement "local_108 = xrealloc(local_108,(ulong)local_c4 << 3);" (assignment_expression "local_108 = xrealloc(local_108,(ulong)local_c4 << 3)" identifier = (call_expression "xrealloc(local_108,(ulong)local_c4 << 3)" identifier (argument_list "(local_108,(ulong)local_c4 << 3)" ( identifier , (binary_expression "(ulong)local_c4 << 3" (cast_expression "(ulong)local_c4" ( (type_descriptor "ulong" type_identifier) ) identifier) << number_literal) )))) ;) })) (expression_statement "uVar14 = FUN_0012dae0(param_1,local_138,local_128);" (assignment_expression "uVar14 = FUN_0012dae0(param_1,local_138,local_128)" identifier = (call_expression "FUN_0012dae0(param_1,local_138,local_128)" identifier (argument_list "(param_1,local_138,local_128)" ( identifier , identifier , identifier )))) ;) (expression_statement "*(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;" (assignment_expression "*(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14" (pointer_expression "*(undefined8 *)(local_108 + (ulong)local_c8 * 8)" * (cast_expression "(undefined8 *)(local_108 + (ulong)local_c8 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_108 + (ulong)local_c8 * 8)" ( (binary_expression "local_108 + (ulong)local_c8 * 8" identifier + (binary_expression "(ulong)local_c8 * 8" (cast_expression "(ulong)local_c8" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) )))) = identifier) ;) (expression_statement "pbVar22 = (byte *)*param_4;" (assignment_expression "pbVar22 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "bVar3 = *pbVar22;" (assignment_expression "bVar3 = *pbVar22" identifier = (pointer_expression "*pbVar22" * identifier)) ;) (expression_statement "local_c8 = uVar39;" (assignment_expression "local_c8 = uVar39" identifier = identifier) ;) }) while (parenthesized_expression "(bVar3 != 0x3b)" ( (binary_expression "bVar3 != 0x3b" identifier != number_literal) )) ;) (if_statement "if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }" if (parenthesized_expression "(local_108 != 0)" ( (binary_expression "local_108 != 0" identifier != number_literal) )) (compound_statement "{\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }" { (expression_statement "*(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;" (assignment_expression "*(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0" (pointer_expression "*(undefined8 *)(local_108 + (ulong)local_c8 * 8)" * (cast_expression "(undefined8 *)(local_108 + (ulong)local_c8 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_108 + (ulong)local_c8 * 8)" ( (binary_expression "local_108 + (ulong)local_c8 * 8" identifier + (binary_expression "(ulong)local_c8 * 8" (cast_expression "(ulong)local_c8" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) )))) = number_literal) ;) })) (if_statement "if (param_6 <= pbVar22) goto LAB_00131328;" if (parenthesized_expression "(param_6 <= pbVar22)" ( (binary_expression "param_6 <= pbVar22" identifier <= identifier) )) (goto_statement "goto LAB_00131328;" goto statement_identifier ;)) (expression_statement "pbVar34 = pbVar22;" (assignment_expression "pbVar34 = pbVar22" identifier = identifier) ;) (if_statement "if (*pbVar22 == 0x3b) goto LAB_001334bc;" if (parenthesized_expression "(*pbVar22 == 0x3b)" ( (binary_expression "*pbVar22 == 0x3b" (pointer_expression "*pbVar22" * identifier) == number_literal) )) (goto_statement "goto LAB_001334bc;" goto statement_identifier ;)) }))) (if_statement "if (*pbVar22 == 0x7e) {\n      pbVar40 = pbVar22 + 1;\n      *param_4 = (ulong)pbVar40;\n      if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *param_4 = (ulong)(pbVar40 + 1);\n      iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n      if (iVar5 == 0) goto LAB_00131328;\n      if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }\n      if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;\n      uVar14 = 1;\n      lVar17 = 0;\n    }\n    else {\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }" if (parenthesized_expression "(*pbVar22 == 0x7e)" ( (binary_expression "*pbVar22 == 0x7e" (pointer_expression "*pbVar22" * identifier) == number_literal) )) (compound_statement "{\n      pbVar40 = pbVar22 + 1;\n      *param_4 = (ulong)pbVar40;\n      if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *param_4 = (ulong)(pbVar40 + 1);\n      iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n      if (iVar5 == 0) goto LAB_00131328;\n      if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }\n      if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;\n      uVar14 = 1;\n      lVar17 = 0;\n    }" { (expression_statement "pbVar40 = pbVar22 + 1;" (assignment_expression "pbVar40 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "*param_4 = (ulong)pbVar40;" (assignment_expression "*param_4 = (ulong)pbVar40" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar40" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }" if (parenthesized_expression "(((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b))" ( (binary_expression "((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)" (parenthesized_expression "((pbVar22[1] & 0xef) == 0x2d)" ( (binary_expression "(pbVar22[1] & 0xef) == 0x2d" (parenthesized_expression "(pbVar22[1] & 0xef)" ( (binary_expression "pbVar22[1] & 0xef" (subscript_expression "pbVar22[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) || (parenthesized_expression "(pbVar22[1] == 0x2b)" ( (binary_expression "pbVar22[1] == 0x2b" (subscript_expression "pbVar22[1]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }" { (expression_statement "pbVar40 = pbVar22 + 2;" (assignment_expression "pbVar40 = pbVar22 + 2" identifier = (binary_expression "pbVar22 + 2" identifier + number_literal)) ;) (expression_statement "*param_4 = (ulong)pbVar40;" (assignment_expression "*param_4 = (ulong)pbVar40" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar40" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) })) (if_statement "if (*pbVar40 != 0x25) goto LAB_0013244a;" if (parenthesized_expression "(*pbVar40 != 0x25)" ( (binary_expression "*pbVar40 != 0x25" (pointer_expression "*pbVar40" * identifier) != number_literal) )) (goto_statement "goto LAB_0013244a;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)(pbVar40 + 1);" (assignment_expression "*param_4 = (ulong)(pbVar40 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pbVar40 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pbVar40 + 1)" ( (binary_expression "pbVar40 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);" (assignment_expression "iVar5 = FUN_0012e6c0(param_4,&local_68,param_6)" identifier = (call_expression "FUN_0012e6c0(param_4,&local_68,param_6)" identifier (argument_list "(param_4,&local_68,param_6)" ( identifier , (pointer_expression "&local_68" & identifier) , identifier )))) ;) (if_statement "if (iVar5 == 0) goto LAB_00131328;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00131328;" goto statement_identifier ;)) (if_statement "if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }" if (parenthesized_expression "((uint)local_68 != (uint)local_70)" ( (binary_expression "(uint)local_68 != (uint)local_70" (cast_expression "(uint)local_68" ( (type_descriptor "uint" type_identifier) ) identifier) != (cast_expression "(uint)local_70" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }" { (labeled_statement "LAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);" statement_identifier : (expression_statement "*param_4 = (ulong)(pbVar40 + 1);" (assignment_expression "*param_4 = (ulong)(pbVar40 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pbVar40 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pbVar40 + 1)" ( (binary_expression "pbVar40 + 1" identifier + number_literal) )))) ;)) (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "cVar4 = *pcVar16;" (assignment_expression "cVar4 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (while_statement "while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }" while (parenthesized_expression "((cVar4 != ';' && (cVar4 != '\0')))" ( (parenthesized_expression "(cVar4 != ';' && (cVar4 != '\0'))" ( (binary_expression "cVar4 != ';' && (cVar4 != '\0')" (binary_expression "cVar4 != ';'" identifier != (char_literal "';'" ' character ')) && (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) )) (compound_statement "{\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }" { (expression_statement "pcVar16 = pcVar16 + 1;" (assignment_expression "pcVar16 = pcVar16 + 1" identifier = (binary_expression "pcVar16 + 1" identifier + number_literal)) ;) (expression_statement "cVar4 = *pcVar16;" (assignment_expression "cVar4 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) })) (if_statement "if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }" if (parenthesized_expression "(cVar4 != ';')" ( (binary_expression "cVar4 != ';'" identifier != (char_literal "';'" ' character ')) )) (compound_statement "{\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }" { (labeled_statement "LAB_00132740:\n          FUN_0012e570(pbVar34);" statement_identifier : (expression_statement "FUN_0012e570(pbVar34);" (call_expression "FUN_0012e570(pbVar34)" identifier (argument_list "(pbVar34)" ( identifier ))) ;)) (labeled_statement "LAB_00131328:\n          free(local_130);" statement_identifier : (expression_statement "free(local_130);" (call_expression "free(local_130)" identifier (argument_list "(local_130)" ( identifier ))) ;)) (return_statement "return 0;" return number_literal ;) })) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (goto_statement "goto LAB_0013244c;" goto statement_identifier ;) })) (if_statement "if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;" if (parenthesized_expression "(local_68._4_4_ != local_70._4_4_)" ( (binary_expression "local_68._4_4_ != local_70._4_4_" (field_expression "local_68._4_4_" identifier . field_identifier) != (field_expression "local_70._4_4_" identifier . field_identifier)) )) (goto_statement "goto LAB_00132596;" goto statement_identifier ;)) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (expression_statement "lVar17 = 0;" (assignment_expression "lVar17 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }" else (compound_statement "{\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }" { (labeled_statement "LAB_0013244a:\n      lVar17 = 0;" statement_identifier : (expression_statement "lVar17 = 0;" (assignment_expression "lVar17 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }" statement_identifier : (if_statement "if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }" if (parenthesized_expression "(((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43))" ( (binary_expression "((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)" (parenthesized_expression "((local_108 == 0 && local_f8 == 0) && lVar17 == 0)" ( (binary_expression "(local_108 == 0 && local_f8 == 0) && lVar17 == 0" (parenthesized_expression "(local_108 == 0 && local_f8 == 0)" ( (binary_expression "local_108 == 0 && local_f8 == 0" (binary_expression "local_108 == 0" identifier == number_literal) && (binary_expression "local_f8 == 0" identifier == number_literal)) )) && (binary_expression "lVar17 == 0" identifier == number_literal)) )) && (parenthesized_expression "(!bVar43)" ( (unary_expression "!bVar43" ! identifier) ))) )) (compound_statement "{\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }" { (expression_statement "lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);" (assignment_expression "lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130)" identifier = (call_expression "FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130)" identifier (argument_list "(param_1,bVar38 == 0x73,uVar8,local_130)" ( identifier , (binary_expression "bVar38 == 0x73" identifier == number_literal) , identifier , identifier )))) ;) (break_statement "break;" break ;) }))) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) }))) (expression_statement "lVar17 = FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14);" (assignment_expression "lVar17 = FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14)" identifier = (call_expression "FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14)" identifier (argument_list "(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14)" ( identifier , (binary_expression "bVar38 == 0x73" identifier == number_literal) , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x78:\n    bVar47 = pbVar22[1];\n    if (bVar47 == 0x65) {\n      uVar32 = 0xb;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }\nLAB_00131e0e:\n    pbVar40 = pbVar40 + 1;\n    *param_4 = (ulong)pbVar40;\n    pcVar15 = strchr((char *)pbVar40,0x3c);\n    pcVar16 = strchr((char *)pbVar40,0x3a);\n    if (pcVar16 != (char *)0x0) {\n      if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }\n      cVar4 = *pcVar15;\n      if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }\n    }\nswitchD_001311d2_caseD_24:\n    FUN_0012e570(pbVar34);\n    return 0;" case number_literal : (expression_statement "bVar47 = pbVar22[1];" (assignment_expression "bVar47 = pbVar22[1]" identifier = (subscript_expression "pbVar22[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar47 == 0x65) {\n      uVar32 = 0xb;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }" if (parenthesized_expression "(bVar47 == 0x65)" ( (binary_expression "bVar47 == 0x65" identifier == number_literal) )) (compound_statement "{\n      uVar32 = 0xb;\n    }" { (expression_statement "uVar32 = 0xb;" (assignment_expression "uVar32 = 0xb" identifier = number_literal) ;) }) (else_clause "else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }" else (compound_statement "{\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }" { (if_statement "if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }" if (parenthesized_expression "((char)bVar47 < 'f')" ( (binary_expression "(char)bVar47 < 'f'" (cast_expression "(char)bVar47" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'f'" ' character ')) )) (compound_statement "{\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }" { (if_statement "if (bVar47 == 0) goto switchD_001311d2_caseD_24;" if (parenthesized_expression "(bVar47 == 0)" ( (binary_expression "bVar47 == 0" identifier == number_literal) )) (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }" else (compound_statement "{\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }" { (expression_statement "uVar32 = 7;" (assignment_expression "uVar32 = 7" identifier = number_literal) ;) (if_statement "if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;" if (parenthesized_expression "((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75))" ( (binary_expression "(bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)" (parenthesized_expression "(bVar47 == 0x73)" ( (binary_expression "bVar47 == 0x73" identifier == number_literal) )) || (parenthesized_expression "(uVar32 = 8, bVar47 == 0x75)" ( (comma_expression "uVar32 = 8, bVar47 == 0x75" (assignment_expression "uVar32 = 8" identifier = number_literal) , (binary_expression "bVar47 == 0x75" identifier == number_literal)) ))) )) (goto_statement "goto LAB_00131e0e;" goto statement_identifier ;)) }))) (expression_statement "uVar32 = 7;" (assignment_expression "uVar32 = 7" identifier = number_literal) ;) (expression_statement "uVar8 = dcgettext(0,"unrecognized cross reference type",5);" (assignment_expression "uVar8 = dcgettext(0,"unrecognized cross reference type",5)" identifier = (call_expression "dcgettext(0,"unrecognized cross reference type",5)" identifier (argument_list "(0,"unrecognized cross reference type",5)" ( number_literal , (string_literal ""unrecognized cross reference type"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0012e500(pbVar34,uVar8);" (call_expression "FUN_0012e500(pbVar34,uVar8)" identifier (argument_list "(pbVar34,uVar8)" ( identifier , identifier ))) ;) (expression_statement "pbVar40 = (byte *)*param_4;" (assignment_expression "pbVar40 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) }))) (labeled_statement "LAB_00131e0e:\n    pbVar40 = pbVar40 + 1;" statement_identifier : (expression_statement "pbVar40 = pbVar40 + 1;" (assignment_expression "pbVar40 = pbVar40 + 1" identifier = (binary_expression "pbVar40 + 1" identifier + number_literal)) ;)) (expression_statement "*param_4 = (ulong)pbVar40;" (assignment_expression "*param_4 = (ulong)pbVar40" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar40" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "pcVar15 = strchr((char *)pbVar40,0x3c);" (assignment_expression "pcVar15 = strchr((char *)pbVar40,0x3c)" identifier = (call_expression "strchr((char *)pbVar40,0x3c)" identifier (argument_list "((char *)pbVar40,0x3c)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (expression_statement "pcVar16 = strchr((char *)pbVar40,0x3a);" (assignment_expression "pcVar16 = strchr((char *)pbVar40,0x3a)" identifier = (call_expression "strchr((char *)pbVar40,0x3a)" identifier (argument_list "((char *)pbVar40,0x3a)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar16 != (char *)0x0) {\n      if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }\n      cVar4 = *pcVar15;\n      if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }\n    }" if (parenthesized_expression "(pcVar16 != (char *)0x0)" ( (binary_expression "pcVar16 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }\n      cVar4 = *pcVar15;\n      if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }\n    }" { (if_statement "if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }" if (parenthesized_expression "(((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':'))" ( (binary_expression "((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')" (parenthesized_expression "((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15))" ( (binary_expression "(pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)" (parenthesized_expression "(pcVar15 == (char *)0x0)" ( (binary_expression "pcVar15 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar16 <= pcVar15)" ( (binary_expression "pcVar16 <= pcVar15" identifier <= identifier) ))) )) || (parenthesized_expression "(pcVar16[1] != ':')" ( (binary_expression "pcVar16[1] != ':'" (subscript_expression "pcVar16[1]" identifier [ number_literal ]) != (char_literal "':'" ' character ')) ))) )) (compound_statement "{\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }" { (labeled_statement "LAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;" statement_identifier : (expression_statement "uVar35 = (long)pcVar16 - (long)pbVar40;" (assignment_expression "uVar35 = (long)pcVar16 - (long)pbVar40" identifier = (binary_expression "(long)pcVar16 - (long)pbVar40" (cast_expression "(long)pcVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar40" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;)) (if_statement "if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }" if (parenthesized_expression "(((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0'))" ( (binary_expression "((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')" (parenthesized_expression "((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0))" ( (binary_expression "(param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)" (parenthesized_expression "(param_3 != (char *)0x0)" ( (binary_expression "param_3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)" ( (comma_expression "iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0" (assignment_expression "iVar5 = strncmp(param_3,(char *)pbVar40,uVar35)" identifier = (call_expression "strncmp(param_3,(char *)pbVar40,uVar35)" identifier (argument_list "(param_3,(char *)pbVar40,uVar35)" ( identifier , (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(param_3[uVar35] == '\0')" ( (binary_expression "param_3[uVar35] == '\0'" (subscript_expression "param_3[uVar35]" identifier [ identifier ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }" { (expression_statement "*(undefined4 *)(param_2 + 0x1a8) = 1;" (assignment_expression "*(undefined4 *)(param_2 + 0x1a8) = 1" (pointer_expression "*(undefined4 *)(param_2 + 0x1a8)" * (cast_expression "(undefined4 *)(param_2 + 0x1a8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1a8)" ( (binary_expression "param_2 + 0x1a8" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);" (assignment_expression "lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32)" identifier = (call_expression "FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32)" identifier (argument_list "(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32)" ( identifier , (binary_expression "param_2 + 0x1a0" identifier + number_literal) , identifier , (binary_expression "uVar35 & 0xffffffff" identifier & number_literal) , identifier )))) ;) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (break_statement "break;" break ;) })) (expression_statement "cVar4 = *pcVar15;" (assignment_expression "cVar4 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (if_statement "if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "pcVar16 = pcVar15;" (assignment_expression "pcVar16 = pcVar15" identifier = identifier) ;) (do_statement "do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');" do (compound_statement "{\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }" { (if_statement "if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;" if (parenthesized_expression "(cVar4 == '<')" ( (binary_expression "cVar4 == '<'" identifier == (char_literal "'<'" ' character ')) )) (compound_statement "{\n            iVar5 = iVar5 + 1;\n          }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) }) (else_clause "else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;" else (if_statement "if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;" if (parenthesized_expression "(cVar4 == '>')" ( (binary_expression "cVar4 == '>'" identifier == (char_literal "'>'" ' character ')) )) (compound_statement "{\n            iVar5 = iVar5 + -1;\n          }" { (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) }) (else_clause "else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;" else (if_statement "if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;" if (parenthesized_expression "((iVar5 == 0) && (cVar4 == ':'))" ( (binary_expression "(iVar5 == 0) && (cVar4 == ':')" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) && (parenthesized_expression "(cVar4 == ':')" ( (binary_expression "cVar4 == ':'" identifier == (char_literal "':'" ' character ')) ))) )) (goto_statement "goto LAB_00131e52;" goto statement_identifier ;)))))) (expression_statement "pcVar16 = pcVar16 + 1;" (assignment_expression "pcVar16 = pcVar16 + 1" identifier = (binary_expression "pcVar16 + 1" identifier + number_literal)) ;) (expression_statement "cVar4 = *pcVar16;" (assignment_expression "cVar4 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) }) while (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) })) (labeled_statement "switchD_001311d2_caseD_24:\n    FUN_0012e570(pbVar34);" statement_identifier : (expression_statement "FUN_0012e570(pbVar34);" (call_expression "FUN_0012e570(pbVar34)" identifier (argument_list "(pbVar34)" ( identifier ))) ;)) (return_statement "return 0;" return number_literal ;)) })) (if_statement "if (lVar17 != 0) {\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    if (local_13c == -1) {\n      return lVar17;\n    }\n    iVar5 = FUN_0012de60(param_1,lVar17,local_13c);\n    if (iVar5 != 0) {\n      return lVar17;\n    }\n  }" if (parenthesized_expression "(lVar17 != 0)" ( (binary_expression "lVar17 != 0" identifier != number_literal) )) (compound_statement "{\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    if (local_13c == -1) {\n      return lVar17;\n    }\n    iVar5 = FUN_0012de60(param_1,lVar17,local_13c);\n    if (iVar5 != 0) {\n      return lVar17;\n    }\n  }" { (if_statement "if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }" if (parenthesized_expression "((uint)local_70 != -1)" ( (binary_expression "(uint)local_70 != -1" (cast_expression "(uint)local_70" ( (type_descriptor "uint" type_identifier) ) identifier) != number_literal) )) (compound_statement "{\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }" { (expression_statement "plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);" (assignment_expression "plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70)" identifier = (cast_expression "(long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70)" identifier (argument_list "(param_2 + 0x80,param_2 + 0x88,&local_70)" ( (binary_expression "param_2 + 0x80" identifier + number_literal) , (binary_expression "param_2 + 0x88" identifier + number_literal) , (pointer_expression "&local_70" & identifier) ))))) ;) (if_statement "if (plVar10 == (long *)0x0) {\n        return 0;\n      }" if (parenthesized_expression "(plVar10 == (long *)0x0)" ( (binary_expression "plVar10 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "*plVar10 = lVar17;" (assignment_expression "*plVar10 = lVar17" (pointer_expression "*plVar10" * identifier) = identifier) ;) })) (if_statement "if (local_13c == -1) {\n      return lVar17;\n    }" if (parenthesized_expression "(local_13c == -1)" ( (binary_expression "local_13c == -1" identifier == number_literal) )) (compound_statement "{\n      return lVar17;\n    }" { (return_statement "return lVar17;" return identifier ;) })) (expression_statement "iVar5 = FUN_0012de60(param_1,lVar17,local_13c);" (assignment_expression "iVar5 = FUN_0012de60(param_1,lVar17,local_13c)" identifier = (call_expression "FUN_0012de60(param_1,lVar17,local_13c)" identifier (argument_list "(param_1,lVar17,local_13c)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 != 0) {\n      return lVar17;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      return lVar17;\n    }" { (return_statement "return lVar17;" return identifier ;) })) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\ndebug_type\nparse_stab_type(void *dhandle,stab_handle *info,char *type_name,char **pp,\n               debug_type_conflict **slotp,char *p_end)\n\n{\n  char cVar1;\n  byte bVar2;\n  char cVar3;\n  bfd_boolean bVar4;\n  bfd_boolean bVar5;\n  debug_type_kind dVar6;\n  int iVar7;\n  uint uVar8;\n  debug_type_conflict *ppdVar9;\n  ulong uVar10;\n  long lVar11;\n  bfd_signed_vma *values;\n  bfd_vma bVar12;\n  bfd_vma bVar13;\n  bfd_vma bVar14;\n  debug_field pdVar15;\n  char *pcVar16;\n  char *pcVar17;\n  debug_type pdVar18;\n  debug_type pdVar19;\n  debug_type_conflict pdVar20;\n  debug_method_variant pdVar21;\n  debug_method pdVar22;\n  debug_type pdVar23;\n  stab_demangle_typestring *arg_types;\n  debug_baseclass pdVar24;\n  char *pcVar25;\n  byte *pbVar26;\n  demangle_component *pdVar27;\n  bfd_vma lower;\n  ulong uVar28;\n  uint *puVar29;\n  uint *puVar30;\n  char **pstart;\n  byte *pbVar31;\n  size_t sVar32;\n  debug_type_conflict *ppdVar33;\n  byte *pbVar34;\n  byte *pbVar35;\n  debug_visibility dVar36;\n  byte bVar37;\n  ulong uVar38;\n  uint uVar39;\n  byte *pbVar40;\n  bool bVar41;\n  bool bVar42;\n  bool bVar43;\n  bool bVar44;\n  bool bVar45;\n  bool bVar46;\n  byte bVar47;\n  char **local_148;\n  uint local_13c;\n  char *local_138;\n  debug_field *local_130;\n  debug_method_variant *local_128;\n  debug_visibility local_120;\n  bfd_boolean local_118;\n  debug_method *local_108;\n  debug_type local_100;\n  debug_baseclass *local_f8;\n  int local_f0;\n  uint local_ec;\n  uint local_e8;\n  debug_visibility local_e4;\n  ulong local_e0;\n  ulong local_d8;\n  uint local_c8;\n  uint local_c4;\n  char *local_c0;\n  bfd_boolean varargs;\n  bfd_boolean varargs_1;\n  char *p;\n  int typenums [2];\n  int xtypenums [2];\n  stab_demangle_typestring *local_58;\n  uint local_50 [2];\n  stab_demangle_typestring *local_48;\n  uint local_40;\n  uint local_3c;\n  \n  bVar47 = 0;\n  if (slotp != (debug_type_conflict **)0x0) {\n    *slotp = (debug_type_conflict *)0x0;\n  }\n  pbVar31 = (byte *)*pp;\n  if (p_end <= pbVar31) {\n    return (debug_type)0x0;\n  }\n  info->self_crossref = 0;\n  bVar37 = *pbVar31;\n  if (((_sch_istable[(ulong)bVar37 * 2] & 4) != 0) || (bVar37 == 0x2d || bVar37 == 0x28)) {\n    bVar4 = parse_stab_type_number(pp,typenums,p_end);\n    if (bVar4 == 0) {\n      return (debug_type)0x0;\n    }\n    pcVar17 = *pp;\n    if (*pcVar17 != '=') {\n      pdVar18 = stab_find_type(dhandle,info,typenums);\n      return pdVar18;\n    }\n    if (((slotp != (debug_type_conflict **)0x0) && (-1 < typenums[0])) && (-1 < (long)typenums)) {\n      ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums);\n      pcVar17 = *pp;\n      *slotp = ppdVar9;\n    }\n    bVar4 = 0;\n    *pp = pcVar17 + 1;\n    local_13c = 0xffffffff;\n    pbVar26 = (byte *)(pcVar17 + 1);\n    do {\n      while( true ) {\n        while( true ) {\n          bVar37 = *pbVar26;\n          pbVar40 = pbVar26 + 1;\n          if (bVar37 != 0x40) goto LAB_001311b2;\n          bVar37 = pbVar26[1];\n          uVar10 = (ulong)bVar37;\n          if (((_sch_istable[uVar10 * 2] & 4) != 0) || (bVar37 == 0x2d || bVar37 == 0x28)) {\n            *pp = (char *)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar10 != ';') {\n            if ((char)uVar10 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar10 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *pp = (char *)pbVar40;\n          bVar37 = pbVar26[1];\n          if (bVar37 != 0x53) break;\n          bVar4 = 1;\n          pbVar26 = pbVar40;\n        }\n        if (bVar37 != 0x73) break;\n        lVar11 = strtol((char *)(pbVar26 + 2),(char **)0x0,10);\n        if ((int)lVar11 < 8) {\n          local_13c = 0xffffffff;\n          pbVar26 = (byte *)*pp;\n        }\n        else {\n          local_13c = (int)lVar11 >> 3;\n          pbVar26 = (byte *)*pp;\n        }\n      }\n      pbVar26 = pbVar40;\n    } while (bVar37 != 0);\n    goto switchD_001311d2_caseD_24;\n  }\n  pbVar40 = pbVar31 + 1;\n  bVar4 = 0;\n  local_13c = 0xffffffff;\n  typenums[0] = -1;\n  typenums[1] = -1;\n  bVar37 = *pbVar31;\n  pbVar26 = pbVar31;\nLAB_001311b2:\n  *pp = (char *)pbVar40;\n  switch(bVar37) {\n  case 0x23:\n    if (pbVar26[1] == 0x23) {\n      *pp = (char *)(pbVar26 + 2);\n      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      if (**pp != ';') goto switchD_001311d2_caseD_24;\n      *pp = *pp + 1;\n      pdVar20 = debug_make_method_type\n                          (dhandle,pdVar18,(debug_type_conflict)0x0,(debug_type_conflict *)0x0,0);\n    }\n    else {\n      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      if (**pp != ',') goto switchD_001311d2_caseD_24;\n      *pp = *pp + 1;\n      pdVar19 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar19 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      uVar38 = 10;\n      ppdVar9 = (debug_type_conflict *)xmalloc(0x50);\n      uVar10 = 0;\n      while( true ) {\n        pcVar17 = *pp;\n        iVar7 = (int)uVar10;\n        if (*pcVar17 == ';') break;\n        if (*pcVar17 != ',') {\n          bad_stab((char *)pbVar31);\n          return (debug_type)0x0;\n        }\n        *pp = pcVar17 + 1;\n        if ((uint)uVar38 <= iVar7 + 1U) {\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          ppdVar9 = (debug_type_conflict *)xrealloc(ppdVar9,uVar38 << 3);\n        }\n        ppdVar33 = ppdVar9 + uVar10;\n        pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        uVar10 = (ulong)(iVar7 + 1U);\n        *ppdVar33 = pdVar23;\n        if (pdVar23 == (debug_type)0x0) {\n          return (debug_type)0x0;\n        }\n      }\n      bVar4 = 1;\n      *pp = pcVar17 + 1;\n      ppdVar33 = ppdVar9;\n      if (iVar7 != 0) {\n        ppdVar33 = ppdVar9 + (iVar7 - 1);\n        dVar6 = debug_get_type_kind(dhandle,*ppdVar33);\n        if (dVar6 == DEBUG_KIND_VOID) {\n          bVar4 = 0;\n        }\n        else {\n          ppdVar33 = ppdVar9 + uVar10;\n        }\n      }\n      *ppdVar33 = (debug_type_conflict)0x0;\n      pdVar20 = debug_make_method_type(dhandle,pdVar19,pdVar18,ppdVar9,bVar4);\n    }\n    break;\n  default:\n    goto switchD_001311d2_caseD_24;\n  case 0x26:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_reference_type(dhandle,pdVar18);\n    break;\n  case 0x28:\n  case 0x2d:\n  case 0x30:\n  case 0x31:\n  case 0x32:\n  case 0x33:\n  case 0x34:\n  case 0x35:\n  case 0x36:\n  case 0x37:\n  case 0x38:\n  case 0x39:\n    *pp = (char *)pbVar26;\n    bVar4 = parse_stab_type_number(pp,xtypenums,p_end);\n    if (bVar4 == 0) {\n      return (debug_type)0x0;\n    }\n    if (typenums[0] == xtypenums[0]) {\n      if (typenums[1] != xtypenums[1]) goto LAB_00132079;\n      pdVar20 = debug_make_void_type(dhandle);\n    }\n    else {\nLAB_00132079:\n      *pp = (char *)pbVar26;\n      pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar20 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n    }\n    if (typenums[0] != -1) {\n      ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums);\n      if (ppdVar9 == (debug_type_conflict *)0x0) {\n        return (debug_type)0x0;\n      }\n      *ppdVar9 = pdVar20;\n    }\n    break;\n  case 0x2a:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_pointer_type(dhandle,pdVar18);\n    break;\n  case 0x40:\nswitchD_001311d2_caseD_40:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    if (pdVar18 == (debug_type)0x0) {\n      return (debug_type)0x0;\n    }\n    if (**pp != ',') goto switchD_001311d2_caseD_24;\n    *pp = *pp + 1;\n    pdVar19 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    if (pdVar19 == (debug_type)0x0) {\n      return (debug_type)0x0;\n    }\n    pdVar20 = debug_make_offset_type(dhandle,pdVar18,pdVar19);\n    break;\n  case 0x42:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_volatile_type(dhandle,pdVar18);\n    break;\n  case 0x52:\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    if ((**pp != ';') || (bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end), **pp != ';'))\n    goto LAB_00132126;\n    if (bVar12 - 3 < 3) {\n      pdVar20 = debug_make_complex_type(dhandle,(uint)bVar13);\n    }\n    else {\n      pdVar20 = debug_make_float_type(dhandle,(uint)bVar13);\n    }\n    break;\n  case 0x53:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_set_type(dhandle,pdVar18,bVar4);\n    break;\n  case 0x61:\n    if (pbVar26[1] == 0x72) {\n      pbVar26 = pbVar26 + 2;\n      *pp = (char *)pbVar26;\n      if (p_end <= pbVar26) {\n        return (debug_type)0x0;\n      }\n      p = (char *)pbVar26;\n      bVar5 = parse_stab_type_number(&p,xtypenums,p_end);\n      if (bVar5 == 0) {\n        return (debug_type)0x0;\n      }\n      if ((xtypenums[0] == 0 && xtypenums[1] == 0) && (**pp != '=')) {\n        pdVar20 = debug_find_named_type(dhandle,"int");\n        if ((pdVar20 == (debug_type_conflict)0x0) &&\n           (pdVar20 = debug_make_int_type(dhandle,4,0), pdVar20 == (debug_type_conflict)0x0)) {\n          return (debug_type)0x0;\n        }\n        *pp = p;\n        pcVar17 = p;\n      }\n      else {\n        pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        pcVar17 = *pp;\n      }\n      if (*pcVar17 == ';') {\n        *pp = pcVar17 + 1;\n        bVar47 = pcVar17[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *pp = pcVar17 + 2;\n        }\n        else {\n          bVar43 = false;\n        }\n        bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        pcVar17 = *pp;\n        if (*pcVar17 == ';') {\n          *pp = pcVar17 + 1;\n          bVar47 = pcVar17[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *pp = pcVar17 + 2;\n          }\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp == ';') {\n            *pp = *pp + 1;\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 == (debug_type)0x0) {\n              return (debug_type)0x0;\n            }\n            lower = 0;\n            bVar14 = 0xffffffffffffffff;\n            if (!bVar43) {\n              lower = bVar12;\n              bVar14 = bVar13;\n            }\n            pdVar20 = debug_make_array_type(dhandle,pdVar18,pdVar20,lower,bVar14,bVar4);\n            break;\n          }\n        }\n      }\n      bad_stab((char *)pbVar26);\n      return (debug_type)0x0;\n    }\n    goto switchD_001311d2_caseD_24;\n  case 0x62:\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    if (pbVar26[1] == 0x73) {\n      bVar4 = 0;\n    }\n    else {\n      if (pbVar26[1] != 0x75) goto LAB_00132126;\n      bVar4 = 1;\n    }\n    *pp = (char *)(pbVar26 + 2);\n    if (((byte)(pbVar26[2] + 0x9e) < 2) || (pbVar26[2] == 0x76)) {\n      *pp = (char *)(pbVar26 + 3);\n    }\n    parse_number(pp,(bfd_boolean *)0x0,p_end);\n    if (**pp != ';') goto LAB_00132126;\n    *pp = *pp + 1;\n    parse_number(pp,(bfd_boolean *)0x0,p_end);\n    if (**pp != ';') goto LAB_00132126;\n    *pp = *pp + 1;\n    bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    if (**pp == ';') {\n      *pp = *pp + 1;\n    }\n    if (bVar12 != 0) {\n      pdVar20 = debug_make_int_type(dhandle,(uint)(bVar12 >> 3),bVar4);\n      break;\n    }\nLAB_00133358:\n    pdVar20 = debug_make_void_type(dhandle);\n    break;\n  case 0x65:\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    pbVar31 = pbVar40;\n    if (pbVar26[1] == 0x2d) {\n      do {\n        pbVar26 = pbVar31;\n        *pp = (char *)(pbVar26 + 1);\n        bVar47 = pbVar26[1];\n        if (bVar47 == 0x3a) break;\n        pbVar31 = pbVar26 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *pp = (char *)(pbVar26 + 2);\n    }\n    local_148 = (char **)xmalloc(0x50);\n    values = (bfd_signed_vma *)xmalloc(0x50);\n    pbVar31 = (byte *)*pp;\n    uVar10 = (ulong)*pbVar31;\n    if ((*pbVar31 < 0x3c) && ((0x800100000000001U >> (uVar10 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar38 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar10;\n        pbVar26 = pbVar31;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar26 = pbVar26 + 1;\n          bVar47 = *pbVar26;\n        }\n        if (bVar47 == 0) {\n          bad_stab((char *)pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(values);\n          return (debug_type)0x0;\n        }\n        pcVar17 = savestring((char *)pbVar31,(int)pbVar26 - (int)pbVar31);\n        *pp = (char *)(pbVar26 + 1);\n        bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        if (**pp != ',') {\n          bad_stab((char *)pbVar40);\n          free(pcVar17);\n          goto LAB_00132cf2;\n        }\n        uVar8 = uVar39 + 1;\n        *pp = *pp + 1;\n        if ((uint)uVar38 <= uVar8) {\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          local_148 = (char **)xrealloc(local_148,uVar38 << 3);\n          values = (bfd_signed_vma *)xrealloc(values,uVar38 << 3);\n        }\n        uVar28 = (ulong)uVar8;\n        local_148[uVar39] = pcVar17;\n        pbVar31 = (byte *)*pp;\n        values[uVar39] = bVar12;\n        uVar10 = (ulong)*pbVar31;\n        uVar39 = uVar8;\n      } while ((0x3b < *pbVar31) || ((0x800100000000001U >> (uVar10 & 0x3f) & 1) == 0));\n    }\n    local_148[uVar28] = (char *)0x0;\n    pcVar17 = *pp;\n    values[uVar28] = 0;\n    if (*pcVar17 == ';') {\n      *pp = pcVar17 + 1;\n    }\n    pdVar20 = debug_make_enum_type(dhandle,local_148,values);\n    break;\n  case 0x66:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_function_type(dhandle,pdVar18,(debug_type_conflict *)0x0,0);\n    break;\n  case 0x6b:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_const_type(dhandle,pdVar18);\n    break;\n  case 0x72:\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    bVar4 = parse_stab_type_number(pp,xtypenums,p_end);\n    if (bVar4 == 0) {\n      return (debug_type)0x0;\n    }\n    bVar43 = false;\n    if (xtypenums[0] == typenums[0]) {\n      bVar43 = xtypenums[1] == typenums[1];\n    }\n    pbVar31 = (byte *)*pp;\n    pdVar18 = (debug_type)0x0;\n    bVar37 = *pbVar31;\n    if (bVar37 == 0x3d) {\n      *pp = (char *)pbVar40;\n      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      pbVar31 = (byte *)*pp;\n      bVar37 = *pbVar31;\n    }\n    if (bVar37 == 0x3b) {\n      pbVar31 = pbVar31 + 1;\n      *pp = (char *)pbVar31;\n    }\n    bVar12 = parse_number(pp,&varargs_1,p_end);\n    if (**pp != ';') goto LAB_00132126;\n    pcVar17 = *pp + 1;\n    *pp = pcVar17;\n    bVar13 = parse_number(pp,(bfd_boolean *)&p,p_end);\n    bVar4 = varargs_1;\n    if (**pp != ';') goto LAB_00132126;\n    *pp = *pp + 1;\n    if (varargs_1 != 0 || (int)p != 0) {\n      bVar41 = false;\n      bVar44 = pdVar18 == (debug_type)0x0;\n      if (!bVar44) {\nLAB_00131960:\n        pcVar17 = (char *)dcgettext(0,"numeric overflow",5);\n        warn_stab((char *)pbVar40,pcVar17);\n        goto LAB_0013197e;\n      }\n      lVar11 = 0x18;\n      pbVar26 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar41 = *pbVar31 < *pbVar26;\n        bVar44 = *pbVar31 == *pbVar26;\n        pbVar31 = pbVar31 + (ulong)bVar47 * -2 + 1;\n        pbVar26 = pbVar26 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar7 = strncmp(pcVar17,"0777777777777777777777;",0x17), iVar7 != 0)) {\n        if ((bVar12 != 0) ||\n           ((bVar4 != 0 || (iVar7 = strncmp(pcVar17,"01777777777777777777777;",0x18), iVar7 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        pdVar20 = debug_make_int_type(dhandle,8,1);\n        break;\n      }\nLAB_0013373f:\n      pdVar20 = debug_make_int_type(dhandle,8,0);\n      break;\n    }\nLAB_0013197e:\n    if (pdVar18 == (debug_type)0x0) {\n      if ((bVar43) && (bVar12 == 0)) {\n        if (bVar13 == 0) goto LAB_00133358;\n        if (bVar13 == 0xffffffffffffffff) {\nLAB_00133395:\n          if (type_name != (char *)0x0) {\n            iVar7 = strcmp(type_name,"long long int");\n            if (iVar7 == 0) goto LAB_0013373f;\n            iVar7 = strcmp(type_name,"long long unsigned int");\n            if (iVar7 == 0) goto LAB_0013348a;\n          }\n        }\n        else {\n          if (bVar13 == 0x7f) {\nLAB_00133dee:\n            pdVar20 = debug_make_int_type(dhandle,1,0);\n            break;\n          }\nLAB_00133a66:\n          uVar39 = (uint)bVar13;\n          if ((long)bVar13 < 0) goto LAB_00133b55;\n          if (bVar13 == 0xff) {\n            pdVar20 = debug_make_int_type(dhandle,1,1);\n            break;\n          }\n          if (bVar13 == 0xffff) {\n            pdVar20 = debug_make_int_type(dhandle,2,1);\n            break;\n          }\n          if (bVar13 != 0xffffffff) goto LAB_00131987;\n        }\n        pdVar20 = debug_make_int_type(dhandle,4,1);\n        break;\n      }\n      bVar41 = bVar13 != 0;\n      uVar39 = (uint)bVar12;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)bVar12) && (!bVar41)) {\n          pdVar20 = debug_make_float_type(dhandle,uVar39);\n          break;\n        }\n        if ((bVar13 == 0xffffffffffffffff) && (bVar12 == 0)) goto LAB_00133395;\n        if (bVar12 == 0) goto LAB_00133a66;\n        if (((-1 < (long)bVar12) || (bVar41)) || ((bVar12 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)bVar12) {\n          pdVar20 = debug_make_complex_type(dhandle,uVar39);\n          break;\n        }\n        if (-1 < (long)bVar12) {\nLAB_001336f0:\n          if ((bVar12 == ~bVar13) || (bVar12 == bVar13 + 1)) {\n            if (bVar13 == 0x7f) goto LAB_00133dee;\n            if (bVar13 == 0x7fff) {\n              pdVar20 = debug_make_int_type(dhandle,2,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffff) {\n              pdVar20 = debug_make_int_type(dhandle,4,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\nLAB_00133b55:\n      pdVar20 = debug_make_int_type(dhandle,-uVar39,1);\n    }\n    else {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        bad_stab((char *)pbVar40);\n        return (debug_type)0x0;\n      }\n      pdVar20 = stab_find_type(dhandle,info,xtypenums);\n      if (pdVar20 == (debug_type)0x0) {\n        pcVar17 = (char *)dcgettext(0,"missing index type",5);\n        warn_stab((char *)pbVar40,pcVar17);\n        pdVar20 = debug_make_int_type(dhandle,4,0);\n      }\n      pdVar20 = debug_make_range_type(dhandle,pdVar20,bVar12,bVar13);\n    }\n    break;\n  case 0x73:\n  case 0x75:\n    bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    pbVar40 = (byte *)*pp;\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    local_f8 = (debug_baseclass *)0x0;\n    if (*pbVar40 == 0x21) {\n      *pp = (char *)(pbVar40 + 1);\n      bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n      if (**pp != ',') goto LAB_00132126;\n      iVar7 = (int)bVar13;\n      uVar10 = bVar13 & 0xffffffff;\n      *pp = *pp + 1;\n      local_f8 = (debug_baseclass *)xmalloc((ulong)(iVar7 + 1) << 3);\n      if (iVar7 != 0) {\n        uVar38 = 0;\n        cVar3 = **pp;\n        if (cVar3 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar28 = uVar38;\n        if (cVar3 == '1') {\n          bVar4 = 1;\n        }\n        else {\n          if (cVar3 == '\0') goto LAB_00132126;\n          bVar4 = 0;\n          pcVar17 = (char *)dcgettext(0,"unknown virtual character for baseclass",5);\n          warn_stab((char *)pbVar40,pcVar17);\n        }\n        do {\n          pcVar17 = *pp;\n          *pp = pcVar17 + 1;\n          cVar3 = pcVar17[1];\n          if (cVar3 == '0') {\n            dVar36 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto LAB_00132126;\n            }\n            else {\n              dVar36 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (dVar36 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00132a81;\n            }\n            dVar36 = DEBUG_VISIBILITY_PUBLIC;\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for baseclass",5);\n            warn_stab((char *)pbVar40,pcVar17);\n          }\nLAB_00132a81:\n          *pp = *pp + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132126;\n          *pp = *pp + 1;\n          pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n          if (pdVar18 == (debug_type)0x0) {\n            return (debug_type)0x0;\n          }\n          pdVar24 = debug_make_baseclass(dhandle,pdVar18,bVar13,bVar4,dVar36);\n          local_f8[uVar28] = pdVar24;\n          if (pdVar24 == (debug_baseclass)0x0) {\n            return (debug_type)0x0;\n          }\n          if (**pp != ';') {\n            return (debug_type)0x0;\n          }\n          pcVar17 = *pp + 1;\n          uVar10 = (ulong)((int)uVar28 + 1);\n          uVar38 = uVar28 + 1;\n          *pp = pcVar17;\n          if (uVar28 == iVar7 - 1) break;\n          cVar3 = *pcVar17;\n          if (cVar3 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          bVar4 = 0;\n          uVar28 = uVar38;\n        } while( true );\n      }\n      pbVar40 = (byte *)*pp;\n      local_f8[uVar10] = (debug_baseclass)0x0;\n      if (p_end <= pbVar40) {\n        return (debug_type)0x0;\n      }\n    }\n    uVar10 = 0;\n    local_130 = (debug_field *)xmalloc(0x50);\n    pbVar31 = (byte *)*pp;\n    bVar43 = false;\n    bVar2 = *pbVar31;\n    local_138._0_4_ = 10;\n    while (bVar2 != 0x3b) {\n      uVar39 = (int)uVar10 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (debug_field *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar2 = *pbVar31;\n      }\n      if (((bVar2 == 0x24) || (bVar2 == 0x2e)) && (pbVar31[1] != 0x5f)) {\n        pcVar17 = *pp;\n        pbVar31 = (byte *)(pcVar17 + 1);\n        *pp = (char *)pbVar31;\n        local_130[uVar10] = (debug_field)0x0;\n        if (p_end <= pbVar31) goto LAB_00131328;\n        if (pcVar17[1] != 'v') goto LAB_00132740;\n        *pp = pcVar17 + 2;\n        cVar3 = pcVar17[2];\n        if (cVar3 == '\0') goto LAB_00132740;\n        *pp = pcVar17 + 3;\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (pdVar18 == (debug_type)0x0) goto LAB_00131328;\n        if (cVar3 == 'b') {\n          pcVar17 = debug_get_type_name(dhandle,pdVar18);\n          if (pcVar17 == (char *)0x0) {\n            pcVar17 = (char *)dcgettext(0,"unnamed $vb type",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar17 = "FOO";\n          }\n          pcVar17 = (char *)concat(&DAT_00146a0b,pcVar17,0);\n        }\n        else {\n          pcVar17 = "_vptr$";\n          if (cVar3 != 'f') {\n            pcVar16 = (char *)dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar17 = "INVALID_CPLUSPLUS_ABBREV";\n            warn_stab((char *)pbVar31,pcVar16);\n          }\n        }\n        if (**pp != ':') goto LAB_00132740;\n        *pp = *pp + 1;\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (**pp != ',') goto LAB_00132740;\n        *pp = *pp + 1;\n        bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        if (**pp != ';') goto LAB_00132740;\n        *pp = *pp + 1;\n        pdVar15 = debug_make_field(dhandle,pcVar17,pdVar18,bVar13,0,DEBUG_VISIBILITY_PRIVATE);\n        local_130[uVar10] = pdVar15;\n        if (pdVar15 == (debug_field)0x0) goto LAB_00131328;\n      }\n      else {\n        pcVar17 = strchr((char *)pbVar31,0x3a);\n        if (pcVar17 == (char *)0x0) {\n          bad_stab((char *)pbVar40);\n          free(local_130);\n          return (debug_type)0x0;\n        }\n        pbVar31 = (byte *)*pp;\n        if (pcVar17[1] == ':') break;\n        if (p_end <= pbVar31) {\n          return (debug_type)0x0;\n        }\n        pcVar16 = savestring((char *)pbVar31,(int)pcVar17 - (int)pbVar31);\n        *pp = pcVar17 + 1;\n        if (pcVar17[1] == '/') {\n          pcVar25 = pcVar17 + 2;\n          *pp = pcVar25;\n          cVar3 = pcVar17[2];\n          if (cVar3 == '0') {\n            local_120 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (local_120 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00131b6d;\n            }\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for field",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar25 = *pp;\n            local_120 = DEBUG_VISIBILITY_PUBLIC;\n          }\nLAB_00131b6d:\n          *pp = pcVar25 + 1;\n        }\n        else {\n          local_120 = DEBUG_VISIBILITY_PUBLIC;\n        }\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (pdVar18 == (debug_type)0x0) {\n          free(pcVar16);\n          return (debug_type)0x0;\n        }\n        pcVar17 = *pp;\n        if (*pcVar17 == ':') {\n          pcVar17 = pcVar17 + 1;\n          *pp = pcVar17;\n          pcVar25 = strchr(pcVar17,0x3b);\n          if (pcVar25 == (char *)0x0) goto LAB_00132614;\n          pcVar17 = savestring(pcVar17,(int)pcVar25 - (int)pcVar17);\n          *pp = pcVar25 + 1;\n          pdVar15 = debug_make_static_member(dhandle,pcVar16,pdVar18,pcVar17,local_120);\n          bVar43 = true;\n          local_130[uVar10] = pdVar15;\n        }\n        else {\n          if (*pcVar17 != ',') {\nLAB_00132614:\n            bad_stab((char *)pbVar31);\n            free(pcVar16);\n            return (debug_type)0x0;\n          }\n          *pp = pcVar17 + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132614;\n          *pp = *pp + 1;\n          bVar14 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ';') goto LAB_00132614;\n          *pp = *pp + 1;\n          dVar36 = DEBUG_VISIBILITY_IGNORE;\n          if (bVar13 != 0 || bVar14 != 0) {\n            dVar36 = local_120;\n          }\n          pdVar15 = debug_make_field(dhandle,pcVar16,pdVar18,bVar13,bVar14,dVar36);\n          local_130[uVar10] = pdVar15;\n        }\n      }\n      pbVar31 = (byte *)*pp;\n      uVar10 = (ulong)uVar39;\n      bVar2 = *pbVar31;\n    }\n    local_130[uVar10] = (debug_field)0x0;\n    if (p_end <= pbVar31) goto LAB_00131328;\n    bVar2 = *pbVar31;\n    if (bVar2 == 0x3b) {\n      local_108 = (debug_method *)0x0;\nLAB_001334bc:\n      pbVar26 = pbVar31 + 1;\n      *pp = (char *)pbVar26;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (debug_method_variant *)0x0;\n      local_108 = (debug_method *)0x0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar26 = pbVar31;\n      do {\n        pcVar17 = strchr((char *)pbVar26,0x3a);\n        if ((pcVar17 == (char *)0x0) || (pcVar17[1] != ':')) break;\n        pcVar16 = pcVar17 + 2;\n        if ((bVar2 == 0x6f) && ((pbVar26[1] == 0x70 && (pbVar26[2] == 0x24)))) {\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          pcVar17 = pcVar16;\n          while ((cVar3 != '.' && (cVar3 != '\0'))) {\n            pcVar17 = pcVar17 + 1;\n            cVar3 = *pcVar17;\n          }\n          if (cVar3 != '.') {\n            bad_stab((char *)pbVar31);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (debug_method_variant *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = savestring(pcVar16,(int)pcVar17 - (int)pcVar16);\n          *pp = pcVar17 + 1;\n        }\n        else {\n          local_138 = savestring((char *)pbVar26,(int)pcVar17 - (int)pbVar26);\n          *pp = pcVar16;\n        }\n        local_128 = (debug_method_variant *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        pdVar18 = (debug_type)0x0;\n        do {\n          if (pdVar18 == (debug_type)0x0) {\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 != (debug_type)0x0) {\n              pcVar17 = *pp;\n              if (*pcVar17 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar17 = *pp;\nLAB_00131d3f:\n          *pp = pcVar17 + 1;\n          pcVar17 = strchr(pcVar17 + 1,0x3b);\n          if (pcVar17 == (char *)0x0) {\nLAB_00132781:\n            bad_stab((char *)pbVar31);\n            goto LAB_00132793;\n          }\n          dVar6 = debug_get_type_kind(dhandle,pdVar18);\n          bVar41 = false;\n          if (dVar6 == DEBUG_KIND_METHOD) {\n            ppdVar9 = debug_get_parameter_types(dhandle,pdVar18,&varargs);\n            bVar41 = ppdVar9 == (debug_type_conflict *)0x0;\n          }\n          pbVar40 = (byte *)savestring(*pp,(int)pcVar17 - (int)*pp);\n          *pp = pcVar17 + 1;\n          cVar3 = pcVar17[1];\n          if (cVar3 == '0') {\n            local_e4 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else if (cVar3 == '1') {\n            local_e4 = DEBUG_VISIBILITY_PROTECTED;\n          }\n          else {\n            if (cVar3 == '\0') goto LAB_00132781;\n            local_e4 = DEBUG_VISIBILITY_PUBLIC;\n          }\n          pcVar16 = pcVar17 + 2;\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          switch(cVar3) {\n          case '*':\n          case '.':\n          case '?':\n            local_118 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            pcVar17 = (char *)dcgettext(0,"const/volatile indicator missing",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar16 = *pp;\n            local_118 = 0;\n            local_f0 = 0;\n            cVar3 = *pcVar16;\n            break;\n          case 'A':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            local_f0 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n          }\n          pbVar26 = pbVar40;\n          if (cVar3 == '.') {\n            bVar44 = false;\n            pdVar19 = (debug_type)0x0;\n            *pp = pcVar16 + 1;\n            local_100 = (debug_type)0x0;\n            local_e0 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar3 != '?') {\n              if (cVar3 == '*') {\n                *pp = pcVar16 + 1;\n                bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n                pcVar17 = *pp;\n                if (*pcVar17 != ';') goto LAB_00132781;\n                local_e0 = (ulong)((uint)bVar13 & 0x7fffffff);\n                *pp = pcVar17 + 1;\n                if ((pcVar17[1] == ';') || (pcVar17[1] == '\0')) {\n                  local_100 = (debug_type)0x0;\n                  pdVar19 = (debug_type)0x0;\n                  bVar44 = false;\n                }\n                else {\n                  pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end);\n                  cVar3 = **pp;\n                  if (cVar3 == ':') {\n                    local_100 = (debug_type)0x0;\n                    bVar44 = false;\n                    pdVar19 = pdVar23;\n                  }\n                  else {\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }\n                }\n              }\n              else {\n                warn_stab((char *)pbVar31,"member function type missing");\n                bVar44 = false;\n                local_100 = (debug_type)0x0;\n                local_e0 = 0;\n                pdVar19 = (debug_type)0x0;\n              }\n              goto LAB_001322ba;\n            }\n            *pp = pcVar16 + 1;\n            sVar32 = strlen(local_138);\n            iVar7 = strncmp((char *)pbVar40,local_138,sVar32);\n            if (iVar7 == 0) {\n              local_100 = (debug_type)0x0;\n              pdVar19 = (debug_type)0x0;\n              local_e0 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = (debug_type)0x0;\n            pdVar19 = (debug_type)0x0;\n            local_e0 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            pdVar23 = stab_find_type(dhandle,info,typenums);\n            if (pdVar23 == (debug_type)0x0) goto LAB_00132793;\n            pdVar20 = debug_get_return_type(dhandle,pdVar18);\n            if (pdVar20 == (debug_type_conflict)0x0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar7 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar7 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (type_name != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar2 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) && (bVar2 != 0x51 && bVar2 != 0x74))\n                 && (iVar7 = strncmp((char *)pbVar40,"__ct",4), iVar7 != 0)) {\n                if (type_name != (char *)0x0) {\nLAB_001338f6:\n                  iVar7 = strcmp(local_138,type_name);\n                  bVar45 = iVar7 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar40;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\nLAB_0013360b:\n              pcVar16 = p;\n              local_40 = 0;\n              pcVar17 = p;\n              do {\n                pcVar25 = strchr(pcVar17,0x5f);\n                if (pcVar25 == (char *)0x0) goto LAB_00133635;\n                pcVar17 = pcVar25 + 1;\n              } while (pcVar25[1] != '_');\n              if (pcVar17 != (char *)0x0) {\n                sVar32 = strspn(pcVar25,"_");\n                if (2 < (uint)sVar32) {\n                  pcVar25 = pcVar25 + ((uint)sVar32 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              stab_bad_demangle(pcVar16);\nLAB_0013323f:\n              if (local_48 != (stab_demangle_typestring *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a76;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar41 = *pbVar34 < *pbVar35;\n              bVar45 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (type_name == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar7 = strcmp(local_138,type_name);\n              bVar45 = iVar7 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a4b;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar42 = *pbVar34 < *pbVar35;\n              bVar46 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              arg_types = (stab_demangle_typestring *)xmalloc(8);\n              arg_types->typestring = (char *)0x0;\n              bVar4 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (type_name != (char *)0x0) {\n                sVar32 = strlen(type_name);\n                local_d8 = sVar32 & 0xffffffff;\n              }\n              pcVar16 = "C";\n              pcVar17 = "V";\n              if (local_f0 == 0) {\n                pcVar16 = "";\n              }\n              if (local_118 == 0) {\n                pcVar17 = "";\n              }\n              local_c0 = type_name;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)xtypenums,"__%s%s");\n              }\n              else if ((type_name == (char *)0x0) ||\n                      (pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0)) {\n                sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8);\n              }\n              else {\n                sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)xtypenums;\n              do {\n                puVar29 = puVar30;\n                uVar8 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar39 = uVar8 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar39 == 0);\n              bVar41 = (uVar8 & 0x8080) == 0;\n              if (bVar41) {\n                uVar39 = uVar39 >> 0x10;\n              }\n              cVar3 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar7 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar39,(byte)uVar39)) -\n                      (int)xtypenums;\n              sVar32 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar7 = iVar7 + (int)local_d8 + 1 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar26 = (byte *)xmalloc(iVar7);\n                *pbVar26 = 0;\n              }\n              else {\n                lVar11 = -1;\n                pcVar17 = local_138;\n                do {\n                  if (lVar11 == 0) break;\n                  lVar11 = lVar11 + -1;\n                  cVar1 = *pcVar17;\n                  pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar7 = ((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar17 == (char *)0x0) {\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar11 = -1;\n                  pcVar16 = pcVar17;\n                  do {\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar3 != '\0');\n                  pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);\n                  strncpy((char *)pbVar26,local_138,3);\n                  strcpy((char *)(pbVar26 + 3),pcVar17);\n                }\n                else {\n                  pbVar26 = (byte *)xmalloc(iVar7);\n                  strcpy((char *)pbVar26,local_138);\n                }\n              }\n              sVar32 = strlen((char *)pbVar26);\n              local_d8 = sVar32 & 0xffffffff;\n              pcVar17 = stpcpy((char *)(pbVar26 + sVar32),(char *)xtypenums);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar17,local_c0);\n              }\n              strcat((char *)pbVar26,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar26 == 0x5f) && (pbVar26[1] == 0x5a)) {\nLAB_00133b71:\n                p = (char *)pbVar26;\n                pdVar27 = cplus_demangle_v3_components((char *)pbVar26,3,(void **)xtypenums);\n                if (pdVar27 == (demangle_component *)0x0) {\n                  stab_bad_demangle((char *)pbVar26);\n                }\n                else {\n                  if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }\n                  pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar17);\n                  free((void *)xtypenums);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar26;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pcVar25 = p + local_d8;\n              pcVar16 = p;\nLAB_001330d0:\n              bVar2 = pcVar25[2];\n              if (pcVar16 == pcVar25) {\n                if (((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) &&\n                   (pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74)) {\n                  for (; *pcVar17 == '_'; pcVar17 = pcVar17 + 1) {\n                  }\n                  pcVar17 = strstr(pcVar17,"__");\n                  if ((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')) {\n                    stab_bad_demangle(pcVar25);\n                    goto LAB_0013323f;\n                  }\n                  iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17);\n                  goto LAB_001330fd;\n                }\n                p = pcVar25 + 2;\n              }\n              else {\n                if (bVar2 == 0) goto LAB_00133635;\n                iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25);\nLAB_001330fd:\n                if (iVar7 == 0) goto LAB_0013323f;\n              }\n              pcVar17 = p;\n              cVar3 = *p;\n              if (cVar3 != '\0') {\n                pcVar16 = (char *)0x0;\n                bVar41 = false;\n                pstart = (char **)0x0;\n                do {\n                  pcVar25 = p;\n                  switch(cVar3) {\n                  case '0':\n                  case '1':\n                  case '2':\n                  case '3':\n                  case '4':\n                  case '5':\n                  case '6':\n                  case '7':\n                  case '8':\n                  case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;\n                  default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'C':\n                  case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;\n                  case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;\n                  case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar41) {\nLAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    pstart = (char **)0x1;\n                  }\n                  cVar3 = *p;\n                } while (cVar3 != '\0');\n                if (((int)pstart == 0) &&\n                   (bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (stab_demangle_typestring *)0x0;\n              if (local_58 == (stab_demangle_typestring *)0x0) {\n                pcVar17 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar17);\n              }\n              varargs_1 = local_50[0];\n              arg_types = local_58;\nLAB_00133211:\n              bVar4 = varargs_1;\n              if (arg_types == (stab_demangle_typestring *)0x0) goto LAB_00132793;\n            }\n            pdVar18 = debug_make_method_type\n                                (dhandle,pdVar20,pdVar23,(debug_type_conflict *)arg_types,bVar4);\n            if (pdVar18 == (debug_type_conflict)0x0) goto LAB_00132793;\n          }\n          uVar39 = local_ec + 1;\n          if (local_e8 <= uVar39) {\n            local_e8 = local_e8 + 10;\n            local_128 = (debug_method_variant *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          if (bVar44) {\n            pdVar21 = debug_make_static_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118);\n            local_128[local_ec] = pdVar21;\n          }\n          else {\n            pdVar21 = debug_make_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118,\n                                 local_e0,local_100);\n            local_128[local_ec] = pdVar21;\n          }\n          if (pdVar21 == (debug_method_variant)0x0) goto LAB_00132793;\n          pcVar17 = *pp;\n        } while ((*pcVar17 != ';') && (pdVar18 = pdVar19, local_ec = uVar39, *pcVar17 != '\0'));\n        local_128[uVar39] = (debug_method_variant)0x0;\n        if (*pcVar17 != '\0') {\n          *pp = pcVar17 + 1;\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = (debug_method *)xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        pdVar22 = debug_make_method(dhandle,local_138,local_128);\n        local_108[local_c8] = pdVar22;\n        pbVar26 = (byte *)*pp;\n        bVar2 = *pbVar26;\n        local_c8 = uVar39;\n      } while (bVar2 != 0x3b);\n      if (local_108 != (debug_method *)0x0) {\n        local_108[local_c8] = (debug_method)0x0;\n      }\n      if (p_end <= pbVar26) goto LAB_00131328;\n      pbVar31 = pbVar26;\n      if (*pbVar26 == 0x3b) goto LAB_001334bc;\n    }\n    if (*pbVar26 == 0x7e) {\n      pbVar40 = pbVar26 + 1;\n      *pp = (char *)pbVar40;\n      if (((pbVar26[1] & 0xef) == 0x2d) || (pbVar26[1] == 0x2b)) {\n        pbVar40 = pbVar26 + 2;\n        *pp = (char *)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *pp = (char *)(pbVar40 + 1);\n      bVar4 = parse_stab_type_number(pp,xtypenums,p_end);\n      if (bVar4 == 0) goto LAB_00131328;\n      if (xtypenums[0] != typenums[0]) {\nLAB_00132596:\n        *pp = (char *)(pbVar40 + 1);\n        pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        pcVar17 = *pp;\n        cVar3 = *pcVar17;\n        while ((cVar3 != ';' && (cVar3 != '\0'))) {\n          pcVar17 = pcVar17 + 1;\n          cVar3 = *pcVar17;\n        }\n        if (cVar3 != ';') {\nLAB_00132740:\n          bad_stab((char *)pbVar31);\nLAB_00131328:\n          free(local_130);\n          return (debug_type)0x0;\n        }\n        *pp = pcVar17 + 1;\n        goto LAB_0013244c;\n      }\n      if (xtypenums[1] != typenums[1]) goto LAB_00132596;\n      bVar4 = 1;\n      pdVar20 = (debug_type_conflict)0x0;\n    }\n    else {\nLAB_0013244a:\n      pdVar20 = (debug_type_conflict)0x0;\nLAB_0013244c:\n      if (((local_108 == (debug_method *)0x0 && local_f8 == (debug_baseclass *)0x0) &&\n           pdVar20 == (debug_type_conflict)0x0) && (!bVar43)) {\n        pdVar20 = debug_make_struct_type(dhandle,(uint)(bVar37 == 0x73),bVar12,local_130);\n        break;\n      }\n      bVar4 = 0;\n    }\n    pdVar20 = debug_make_object_type\n                        (dhandle,(uint)(bVar37 == 0x73),bVar12,local_130,local_f8,local_108,pdVar20,\n                         bVar4);\n    break;\n  case 0x78:\n    bVar47 = pbVar26[1];\n    if (bVar47 == 0x65) {\n      dVar6 = DEBUG_KIND_ENUM;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        dVar6 = DEBUG_KIND_STRUCT;\n        if ((bVar47 == 0x73) || (dVar6 = DEBUG_KIND_UNION, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      dVar6 = DEBUG_KIND_STRUCT;\n      pcVar17 = (char *)dcgettext(0,"unrecognized cross reference type",5);\n      warn_stab((char *)pbVar31,pcVar17);\n      pbVar40 = (byte *)*pp;\n    }\nLAB_00131e0e:\n    pbVar40 = pbVar40 + 1;\n    *pp = (char *)pbVar40;\n    pcVar16 = strchr((char *)pbVar40,0x3c);\n    pcVar17 = strchr((char *)pbVar40,0x3a);\n    if (pcVar17 != (char *)0x0) {\n      if (((pcVar16 == (char *)0x0) || (pcVar17 <= pcVar16)) || (pcVar17[1] != ':')) {\nLAB_00131e52:\n        sVar32 = (long)pcVar17 - (long)pbVar40;\n        if (((type_name != (char *)0x0) &&\n            (iVar7 = strncmp(type_name,(char *)pbVar40,sVar32), iVar7 == 0)) &&\n           (type_name[sVar32] == '\0')) {\n          info->self_crossref = 1;\n        }\n        pdVar20 = stab_find_tagged_type\n                            (dhandle,(stab_handle *)&info->tags,(char *)pbVar40,(int)sVar32,dVar6);\n        *pp = pcVar17 + 1;\n        break;\n      }\n      cVar3 = *pcVar16;\n      if (cVar3 != '\0') {\n        iVar7 = 0;\n        pcVar17 = pcVar16;\n        do {\n          if (cVar3 == '<') {\n            iVar7 = iVar7 + 1;\n          }\n          else if (cVar3 == '>') {\n            iVar7 = iVar7 + -1;\n          }\n          else if ((iVar7 == 0) && (cVar3 == ':')) goto LAB_00131e52;\n          pcVar17 = pcVar17 + 1;\n          cVar3 = *pcVar17;\n        } while (cVar3 != '\0');\n      }\n    }\nswitchD_001311d2_caseD_24:\n    bad_stab((char *)pbVar31);\n    return (debug_type)0x0;\n  }\n  if (pdVar20 != (debug_type_conflict)0x0) {\n    if (typenums[0] != -1) {\n      ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums);\n      if (ppdVar9 == (debug_type_conflict *)0x0) {\n        return (debug_type)0x0;\n      }\n      *ppdVar9 = pdVar20;\n    }\n    if (local_13c == 0xffffffff) {\n      return pdVar20;\n    }\n    bVar4 = debug_record_type_size(dhandle,pdVar20,local_13c);\n    if (bVar4 != 0) {\n      return pdVar20;\n    }\n  }\n  return (debug_type)0x0;\n}\n\n" comment (function_definition "debug_type\nparse_stab_type(void *dhandle,stab_handle *info,char *type_name,char **pp,\n               debug_type_conflict **slotp,char *p_end)\n\n{\n  char cVar1;\n  byte bVar2;\n  char cVar3;\n  bfd_boolean bVar4;\n  bfd_boolean bVar5;\n  debug_type_kind dVar6;\n  int iVar7;\n  uint uVar8;\n  debug_type_conflict *ppdVar9;\n  ulong uVar10;\n  long lVar11;\n  bfd_signed_vma *values;\n  bfd_vma bVar12;\n  bfd_vma bVar13;\n  bfd_vma bVar14;\n  debug_field pdVar15;\n  char *pcVar16;\n  char *pcVar17;\n  debug_type pdVar18;\n  debug_type pdVar19;\n  debug_type_conflict pdVar20;\n  debug_method_variant pdVar21;\n  debug_method pdVar22;\n  debug_type pdVar23;\n  stab_demangle_typestring *arg_types;\n  debug_baseclass pdVar24;\n  char *pcVar25;\n  byte *pbVar26;\n  demangle_component *pdVar27;\n  bfd_vma lower;\n  ulong uVar28;\n  uint *puVar29;\n  uint *puVar30;\n  char **pstart;\n  byte *pbVar31;\n  size_t sVar32;\n  debug_type_conflict *ppdVar33;\n  byte *pbVar34;\n  byte *pbVar35;\n  debug_visibility dVar36;\n  byte bVar37;\n  ulong uVar38;\n  uint uVar39;\n  byte *pbVar40;\n  bool bVar41;\n  bool bVar42;\n  bool bVar43;\n  bool bVar44;\n  bool bVar45;\n  bool bVar46;\n  byte bVar47;\n  char **local_148;\n  uint local_13c;\n  char *local_138;\n  debug_field *local_130;\n  debug_method_variant *local_128;\n  debug_visibility local_120;\n  bfd_boolean local_118;\n  debug_method *local_108;\n  debug_type local_100;\n  debug_baseclass *local_f8;\n  int local_f0;\n  uint local_ec;\n  uint local_e8;\n  debug_visibility local_e4;\n  ulong local_e0;\n  ulong local_d8;\n  uint local_c8;\n  uint local_c4;\n  char *local_c0;\n  bfd_boolean varargs;\n  bfd_boolean varargs_1;\n  char *p;\n  int typenums [2];\n  int xtypenums [2];\n  stab_demangle_typestring *local_58;\n  uint local_50 [2];\n  stab_demangle_typestring *local_48;\n  uint local_40;\n  uint local_3c;\n  \n  bVar47 = 0;\n  if (slotp != (debug_type_conflict **)0x0) {\n    *slotp = (debug_type_conflict *)0x0;\n  }\n  pbVar31 = (byte *)*pp;\n  if (p_end <= pbVar31) {\n    return (debug_type)0x0;\n  }\n  info->self_crossref = 0;\n  bVar37 = *pbVar31;\n  if (((_sch_istable[(ulong)bVar37 * 2] & 4) != 0) || (bVar37 == 0x2d || bVar37 == 0x28)) {\n    bVar4 = parse_stab_type_number(pp,typenums,p_end);\n    if (bVar4 == 0) {\n      return (debug_type)0x0;\n    }\n    pcVar17 = *pp;\n    if (*pcVar17 != '=') {\n      pdVar18 = stab_find_type(dhandle,info,typenums);\n      return pdVar18;\n    }\n    if (((slotp != (debug_type_conflict **)0x0) && (-1 < typenums[0])) && (-1 < (long)typenums)) {\n      ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums);\n      pcVar17 = *pp;\n      *slotp = ppdVar9;\n    }\n    bVar4 = 0;\n    *pp = pcVar17 + 1;\n    local_13c = 0xffffffff;\n    pbVar26 = (byte *)(pcVar17 + 1);\n    do {\n      while( true ) {\n        while( true ) {\n          bVar37 = *pbVar26;\n          pbVar40 = pbVar26 + 1;\n          if (bVar37 != 0x40) goto LAB_001311b2;\n          bVar37 = pbVar26[1];\n          uVar10 = (ulong)bVar37;\n          if (((_sch_istable[uVar10 * 2] & 4) != 0) || (bVar37 == 0x2d || bVar37 == 0x28)) {\n            *pp = (char *)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar10 != ';') {\n            if ((char)uVar10 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar10 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *pp = (char *)pbVar40;\n          bVar37 = pbVar26[1];\n          if (bVar37 != 0x53) break;\n          bVar4 = 1;\n          pbVar26 = pbVar40;\n        }\n        if (bVar37 != 0x73) break;\n        lVar11 = strtol((char *)(pbVar26 + 2),(char **)0x0,10);\n        if ((int)lVar11 < 8) {\n          local_13c = 0xffffffff;\n          pbVar26 = (byte *)*pp;\n        }\n        else {\n          local_13c = (int)lVar11 >> 3;\n          pbVar26 = (byte *)*pp;\n        }\n      }\n      pbVar26 = pbVar40;\n    } while (bVar37 != 0);\n    goto switchD_001311d2_caseD_24;\n  }\n  pbVar40 = pbVar31 + 1;\n  bVar4 = 0;\n  local_13c = 0xffffffff;\n  typenums[0] = -1;\n  typenums[1] = -1;\n  bVar37 = *pbVar31;\n  pbVar26 = pbVar31;\nLAB_001311b2:\n  *pp = (char *)pbVar40;\n  switch(bVar37) {\n  case 0x23:\n    if (pbVar26[1] == 0x23) {\n      *pp = (char *)(pbVar26 + 2);\n      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      if (**pp != ';') goto switchD_001311d2_caseD_24;\n      *pp = *pp + 1;\n      pdVar20 = debug_make_method_type\n                          (dhandle,pdVar18,(debug_type_conflict)0x0,(debug_type_conflict *)0x0,0);\n    }\n    else {\n      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      if (**pp != ',') goto switchD_001311d2_caseD_24;\n      *pp = *pp + 1;\n      pdVar19 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar19 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      uVar38 = 10;\n      ppdVar9 = (debug_type_conflict *)xmalloc(0x50);\n      uVar10 = 0;\n      while( true ) {\n        pcVar17 = *pp;\n        iVar7 = (int)uVar10;\n        if (*pcVar17 == ';') break;\n        if (*pcVar17 != ',') {\n          bad_stab((char *)pbVar31);\n          return (debug_type)0x0;\n        }\n        *pp = pcVar17 + 1;\n        if ((uint)uVar38 <= iVar7 + 1U) {\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          ppdVar9 = (debug_type_conflict *)xrealloc(ppdVar9,uVar38 << 3);\n        }\n        ppdVar33 = ppdVar9 + uVar10;\n        pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        uVar10 = (ulong)(iVar7 + 1U);\n        *ppdVar33 = pdVar23;\n        if (pdVar23 == (debug_type)0x0) {\n          return (debug_type)0x0;\n        }\n      }\n      bVar4 = 1;\n      *pp = pcVar17 + 1;\n      ppdVar33 = ppdVar9;\n      if (iVar7 != 0) {\n        ppdVar33 = ppdVar9 + (iVar7 - 1);\n        dVar6 = debug_get_type_kind(dhandle,*ppdVar33);\n        if (dVar6 == DEBUG_KIND_VOID) {\n          bVar4 = 0;\n        }\n        else {\n          ppdVar33 = ppdVar9 + uVar10;\n        }\n      }\n      *ppdVar33 = (debug_type_conflict)0x0;\n      pdVar20 = debug_make_method_type(dhandle,pdVar19,pdVar18,ppdVar9,bVar4);\n    }\n    break;\n  default:\n    goto switchD_001311d2_caseD_24;\n  case 0x26:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_reference_type(dhandle,pdVar18);\n    break;\n  case 0x28:\n  case 0x2d:\n  case 0x30:\n  case 0x31:\n  case 0x32:\n  case 0x33:\n  case 0x34:\n  case 0x35:\n  case 0x36:\n  case 0x37:\n  case 0x38:\n  case 0x39:\n    *pp = (char *)pbVar26;\n    bVar4 = parse_stab_type_number(pp,xtypenums,p_end);\n    if (bVar4 == 0) {\n      return (debug_type)0x0;\n    }\n    if (typenums[0] == xtypenums[0]) {\n      if (typenums[1] != xtypenums[1]) goto LAB_00132079;\n      pdVar20 = debug_make_void_type(dhandle);\n    }\n    else {\nLAB_00132079:\n      *pp = (char *)pbVar26;\n      pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar20 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n    }\n    if (typenums[0] != -1) {\n      ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums);\n      if (ppdVar9 == (debug_type_conflict *)0x0) {\n        return (debug_type)0x0;\n      }\n      *ppdVar9 = pdVar20;\n    }\n    break;\n  case 0x2a:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_pointer_type(dhandle,pdVar18);\n    break;\n  case 0x40:\nswitchD_001311d2_caseD_40:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    if (pdVar18 == (debug_type)0x0) {\n      return (debug_type)0x0;\n    }\n    if (**pp != ',') goto switchD_001311d2_caseD_24;\n    *pp = *pp + 1;\n    pdVar19 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    if (pdVar19 == (debug_type)0x0) {\n      return (debug_type)0x0;\n    }\n    pdVar20 = debug_make_offset_type(dhandle,pdVar18,pdVar19);\n    break;\n  case 0x42:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_volatile_type(dhandle,pdVar18);\n    break;\n  case 0x52:\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    if ((**pp != ';') || (bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end), **pp != ';'))\n    goto LAB_00132126;\n    if (bVar12 - 3 < 3) {\n      pdVar20 = debug_make_complex_type(dhandle,(uint)bVar13);\n    }\n    else {\n      pdVar20 = debug_make_float_type(dhandle,(uint)bVar13);\n    }\n    break;\n  case 0x53:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_set_type(dhandle,pdVar18,bVar4);\n    break;\n  case 0x61:\n    if (pbVar26[1] == 0x72) {\n      pbVar26 = pbVar26 + 2;\n      *pp = (char *)pbVar26;\n      if (p_end <= pbVar26) {\n        return (debug_type)0x0;\n      }\n      p = (char *)pbVar26;\n      bVar5 = parse_stab_type_number(&p,xtypenums,p_end);\n      if (bVar5 == 0) {\n        return (debug_type)0x0;\n      }\n      if ((xtypenums[0] == 0 && xtypenums[1] == 0) && (**pp != '=')) {\n        pdVar20 = debug_find_named_type(dhandle,"int");\n        if ((pdVar20 == (debug_type_conflict)0x0) &&\n           (pdVar20 = debug_make_int_type(dhandle,4,0), pdVar20 == (debug_type_conflict)0x0)) {\n          return (debug_type)0x0;\n        }\n        *pp = p;\n        pcVar17 = p;\n      }\n      else {\n        pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        pcVar17 = *pp;\n      }\n      if (*pcVar17 == ';') {\n        *pp = pcVar17 + 1;\n        bVar47 = pcVar17[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *pp = pcVar17 + 2;\n        }\n        else {\n          bVar43 = false;\n        }\n        bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        pcVar17 = *pp;\n        if (*pcVar17 == ';') {\n          *pp = pcVar17 + 1;\n          bVar47 = pcVar17[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *pp = pcVar17 + 2;\n          }\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp == ';') {\n            *pp = *pp + 1;\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 == (debug_type)0x0) {\n              return (debug_type)0x0;\n            }\n            lower = 0;\n            bVar14 = 0xffffffffffffffff;\n            if (!bVar43) {\n              lower = bVar12;\n              bVar14 = bVar13;\n            }\n            pdVar20 = debug_make_array_type(dhandle,pdVar18,pdVar20,lower,bVar14,bVar4);\n            break;\n          }\n        }\n      }\n      bad_stab((char *)pbVar26);\n      return (debug_type)0x0;\n    }\n    goto switchD_001311d2_caseD_24;\n  case 0x62:\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    if (pbVar26[1] == 0x73) {\n      bVar4 = 0;\n    }\n    else {\n      if (pbVar26[1] != 0x75) goto LAB_00132126;\n      bVar4 = 1;\n    }\n    *pp = (char *)(pbVar26 + 2);\n    if (((byte)(pbVar26[2] + 0x9e) < 2) || (pbVar26[2] == 0x76)) {\n      *pp = (char *)(pbVar26 + 3);\n    }\n    parse_number(pp,(bfd_boolean *)0x0,p_end);\n    if (**pp != ';') goto LAB_00132126;\n    *pp = *pp + 1;\n    parse_number(pp,(bfd_boolean *)0x0,p_end);\n    if (**pp != ';') goto LAB_00132126;\n    *pp = *pp + 1;\n    bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    if (**pp == ';') {\n      *pp = *pp + 1;\n    }\n    if (bVar12 != 0) {\n      pdVar20 = debug_make_int_type(dhandle,(uint)(bVar12 >> 3),bVar4);\n      break;\n    }\nLAB_00133358:\n    pdVar20 = debug_make_void_type(dhandle);\n    break;\n  case 0x65:\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    pbVar31 = pbVar40;\n    if (pbVar26[1] == 0x2d) {\n      do {\n        pbVar26 = pbVar31;\n        *pp = (char *)(pbVar26 + 1);\n        bVar47 = pbVar26[1];\n        if (bVar47 == 0x3a) break;\n        pbVar31 = pbVar26 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *pp = (char *)(pbVar26 + 2);\n    }\n    local_148 = (char **)xmalloc(0x50);\n    values = (bfd_signed_vma *)xmalloc(0x50);\n    pbVar31 = (byte *)*pp;\n    uVar10 = (ulong)*pbVar31;\n    if ((*pbVar31 < 0x3c) && ((0x800100000000001U >> (uVar10 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar38 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar10;\n        pbVar26 = pbVar31;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar26 = pbVar26 + 1;\n          bVar47 = *pbVar26;\n        }\n        if (bVar47 == 0) {\n          bad_stab((char *)pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(values);\n          return (debug_type)0x0;\n        }\n        pcVar17 = savestring((char *)pbVar31,(int)pbVar26 - (int)pbVar31);\n        *pp = (char *)(pbVar26 + 1);\n        bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        if (**pp != ',') {\n          bad_stab((char *)pbVar40);\n          free(pcVar17);\n          goto LAB_00132cf2;\n        }\n        uVar8 = uVar39 + 1;\n        *pp = *pp + 1;\n        if ((uint)uVar38 <= uVar8) {\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          local_148 = (char **)xrealloc(local_148,uVar38 << 3);\n          values = (bfd_signed_vma *)xrealloc(values,uVar38 << 3);\n        }\n        uVar28 = (ulong)uVar8;\n        local_148[uVar39] = pcVar17;\n        pbVar31 = (byte *)*pp;\n        values[uVar39] = bVar12;\n        uVar10 = (ulong)*pbVar31;\n        uVar39 = uVar8;\n      } while ((0x3b < *pbVar31) || ((0x800100000000001U >> (uVar10 & 0x3f) & 1) == 0));\n    }\n    local_148[uVar28] = (char *)0x0;\n    pcVar17 = *pp;\n    values[uVar28] = 0;\n    if (*pcVar17 == ';') {\n      *pp = pcVar17 + 1;\n    }\n    pdVar20 = debug_make_enum_type(dhandle,local_148,values);\n    break;\n  case 0x66:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_function_type(dhandle,pdVar18,(debug_type_conflict *)0x0,0);\n    break;\n  case 0x6b:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_const_type(dhandle,pdVar18);\n    break;\n  case 0x72:\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    bVar4 = parse_stab_type_number(pp,xtypenums,p_end);\n    if (bVar4 == 0) {\n      return (debug_type)0x0;\n    }\n    bVar43 = false;\n    if (xtypenums[0] == typenums[0]) {\n      bVar43 = xtypenums[1] == typenums[1];\n    }\n    pbVar31 = (byte *)*pp;\n    pdVar18 = (debug_type)0x0;\n    bVar37 = *pbVar31;\n    if (bVar37 == 0x3d) {\n      *pp = (char *)pbVar40;\n      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      pbVar31 = (byte *)*pp;\n      bVar37 = *pbVar31;\n    }\n    if (bVar37 == 0x3b) {\n      pbVar31 = pbVar31 + 1;\n      *pp = (char *)pbVar31;\n    }\n    bVar12 = parse_number(pp,&varargs_1,p_end);\n    if (**pp != ';') goto LAB_00132126;\n    pcVar17 = *pp + 1;\n    *pp = pcVar17;\n    bVar13 = parse_number(pp,(bfd_boolean *)&p,p_end);\n    bVar4 = varargs_1;\n    if (**pp != ';') goto LAB_00132126;\n    *pp = *pp + 1;\n    if (varargs_1 != 0 || (int)p != 0) {\n      bVar41 = false;\n      bVar44 = pdVar18 == (debug_type)0x0;\n      if (!bVar44) {\nLAB_00131960:\n        pcVar17 = (char *)dcgettext(0,"numeric overflow",5);\n        warn_stab((char *)pbVar40,pcVar17);\n        goto LAB_0013197e;\n      }\n      lVar11 = 0x18;\n      pbVar26 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar41 = *pbVar31 < *pbVar26;\n        bVar44 = *pbVar31 == *pbVar26;\n        pbVar31 = pbVar31 + (ulong)bVar47 * -2 + 1;\n        pbVar26 = pbVar26 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar7 = strncmp(pcVar17,"0777777777777777777777;",0x17), iVar7 != 0)) {\n        if ((bVar12 != 0) ||\n           ((bVar4 != 0 || (iVar7 = strncmp(pcVar17,"01777777777777777777777;",0x18), iVar7 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        pdVar20 = debug_make_int_type(dhandle,8,1);\n        break;\n      }\nLAB_0013373f:\n      pdVar20 = debug_make_int_type(dhandle,8,0);\n      break;\n    }\nLAB_0013197e:\n    if (pdVar18 == (debug_type)0x0) {\n      if ((bVar43) && (bVar12 == 0)) {\n        if (bVar13 == 0) goto LAB_00133358;\n        if (bVar13 == 0xffffffffffffffff) {\nLAB_00133395:\n          if (type_name != (char *)0x0) {\n            iVar7 = strcmp(type_name,"long long int");\n            if (iVar7 == 0) goto LAB_0013373f;\n            iVar7 = strcmp(type_name,"long long unsigned int");\n            if (iVar7 == 0) goto LAB_0013348a;\n          }\n        }\n        else {\n          if (bVar13 == 0x7f) {\nLAB_00133dee:\n            pdVar20 = debug_make_int_type(dhandle,1,0);\n            break;\n          }\nLAB_00133a66:\n          uVar39 = (uint)bVar13;\n          if ((long)bVar13 < 0) goto LAB_00133b55;\n          if (bVar13 == 0xff) {\n            pdVar20 = debug_make_int_type(dhandle,1,1);\n            break;\n          }\n          if (bVar13 == 0xffff) {\n            pdVar20 = debug_make_int_type(dhandle,2,1);\n            break;\n          }\n          if (bVar13 != 0xffffffff) goto LAB_00131987;\n        }\n        pdVar20 = debug_make_int_type(dhandle,4,1);\n        break;\n      }\n      bVar41 = bVar13 != 0;\n      uVar39 = (uint)bVar12;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)bVar12) && (!bVar41)) {\n          pdVar20 = debug_make_float_type(dhandle,uVar39);\n          break;\n        }\n        if ((bVar13 == 0xffffffffffffffff) && (bVar12 == 0)) goto LAB_00133395;\n        if (bVar12 == 0) goto LAB_00133a66;\n        if (((-1 < (long)bVar12) || (bVar41)) || ((bVar12 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)bVar12) {\n          pdVar20 = debug_make_complex_type(dhandle,uVar39);\n          break;\n        }\n        if (-1 < (long)bVar12) {\nLAB_001336f0:\n          if ((bVar12 == ~bVar13) || (bVar12 == bVar13 + 1)) {\n            if (bVar13 == 0x7f) goto LAB_00133dee;\n            if (bVar13 == 0x7fff) {\n              pdVar20 = debug_make_int_type(dhandle,2,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffff) {\n              pdVar20 = debug_make_int_type(dhandle,4,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\nLAB_00133b55:\n      pdVar20 = debug_make_int_type(dhandle,-uVar39,1);\n    }\n    else {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        bad_stab((char *)pbVar40);\n        return (debug_type)0x0;\n      }\n      pdVar20 = stab_find_type(dhandle,info,xtypenums);\n      if (pdVar20 == (debug_type)0x0) {\n        pcVar17 = (char *)dcgettext(0,"missing index type",5);\n        warn_stab((char *)pbVar40,pcVar17);\n        pdVar20 = debug_make_int_type(dhandle,4,0);\n      }\n      pdVar20 = debug_make_range_type(dhandle,pdVar20,bVar12,bVar13);\n    }\n    break;\n  case 0x73:\n  case 0x75:\n    bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    pbVar40 = (byte *)*pp;\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    local_f8 = (debug_baseclass *)0x0;\n    if (*pbVar40 == 0x21) {\n      *pp = (char *)(pbVar40 + 1);\n      bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n      if (**pp != ',') goto LAB_00132126;\n      iVar7 = (int)bVar13;\n      uVar10 = bVar13 & 0xffffffff;\n      *pp = *pp + 1;\n      local_f8 = (debug_baseclass *)xmalloc((ulong)(iVar7 + 1) << 3);\n      if (iVar7 != 0) {\n        uVar38 = 0;\n        cVar3 = **pp;\n        if (cVar3 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar28 = uVar38;\n        if (cVar3 == '1') {\n          bVar4 = 1;\n        }\n        else {\n          if (cVar3 == '\0') goto LAB_00132126;\n          bVar4 = 0;\n          pcVar17 = (char *)dcgettext(0,"unknown virtual character for baseclass",5);\n          warn_stab((char *)pbVar40,pcVar17);\n        }\n        do {\n          pcVar17 = *pp;\n          *pp = pcVar17 + 1;\n          cVar3 = pcVar17[1];\n          if (cVar3 == '0') {\n            dVar36 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto LAB_00132126;\n            }\n            else {\n              dVar36 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (dVar36 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00132a81;\n            }\n            dVar36 = DEBUG_VISIBILITY_PUBLIC;\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for baseclass",5);\n            warn_stab((char *)pbVar40,pcVar17);\n          }\nLAB_00132a81:\n          *pp = *pp + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132126;\n          *pp = *pp + 1;\n          pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n          if (pdVar18 == (debug_type)0x0) {\n            return (debug_type)0x0;\n          }\n          pdVar24 = debug_make_baseclass(dhandle,pdVar18,bVar13,bVar4,dVar36);\n          local_f8[uVar28] = pdVar24;\n          if (pdVar24 == (debug_baseclass)0x0) {\n            return (debug_type)0x0;\n          }\n          if (**pp != ';') {\n            return (debug_type)0x0;\n          }\n          pcVar17 = *pp + 1;\n          uVar10 = (ulong)((int)uVar28 + 1);\n          uVar38 = uVar28 + 1;\n          *pp = pcVar17;\n          if (uVar28 == iVar7 - 1) break;\n          cVar3 = *pcVar17;\n          if (cVar3 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          bVar4 = 0;\n          uVar28 = uVar38;\n        } while( true );\n      }\n      pbVar40 = (byte *)*pp;\n      local_f8[uVar10] = (debug_baseclass)0x0;\n      if (p_end <= pbVar40) {\n        return (debug_type)0x0;\n      }\n    }\n    uVar10 = 0;\n    local_130 = (debug_field *)xmalloc(0x50);\n    pbVar31 = (byte *)*pp;\n    bVar43 = false;\n    bVar2 = *pbVar31;\n    local_138._0_4_ = 10;\n    while (bVar2 != 0x3b) {\n      uVar39 = (int)uVar10 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (debug_field *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar2 = *pbVar31;\n      }\n      if (((bVar2 == 0x24) || (bVar2 == 0x2e)) && (pbVar31[1] != 0x5f)) {\n        pcVar17 = *pp;\n        pbVar31 = (byte *)(pcVar17 + 1);\n        *pp = (char *)pbVar31;\n        local_130[uVar10] = (debug_field)0x0;\n        if (p_end <= pbVar31) goto LAB_00131328;\n        if (pcVar17[1] != 'v') goto LAB_00132740;\n        *pp = pcVar17 + 2;\n        cVar3 = pcVar17[2];\n        if (cVar3 == '\0') goto LAB_00132740;\n        *pp = pcVar17 + 3;\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (pdVar18 == (debug_type)0x0) goto LAB_00131328;\n        if (cVar3 == 'b') {\n          pcVar17 = debug_get_type_name(dhandle,pdVar18);\n          if (pcVar17 == (char *)0x0) {\n            pcVar17 = (char *)dcgettext(0,"unnamed $vb type",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar17 = "FOO";\n          }\n          pcVar17 = (char *)concat(&DAT_00146a0b,pcVar17,0);\n        }\n        else {\n          pcVar17 = "_vptr$";\n          if (cVar3 != 'f') {\n            pcVar16 = (char *)dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar17 = "INVALID_CPLUSPLUS_ABBREV";\n            warn_stab((char *)pbVar31,pcVar16);\n          }\n        }\n        if (**pp != ':') goto LAB_00132740;\n        *pp = *pp + 1;\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (**pp != ',') goto LAB_00132740;\n        *pp = *pp + 1;\n        bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        if (**pp != ';') goto LAB_00132740;\n        *pp = *pp + 1;\n        pdVar15 = debug_make_field(dhandle,pcVar17,pdVar18,bVar13,0,DEBUG_VISIBILITY_PRIVATE);\n        local_130[uVar10] = pdVar15;\n        if (pdVar15 == (debug_field)0x0) goto LAB_00131328;\n      }\n      else {\n        pcVar17 = strchr((char *)pbVar31,0x3a);\n        if (pcVar17 == (char *)0x0) {\n          bad_stab((char *)pbVar40);\n          free(local_130);\n          return (debug_type)0x0;\n        }\n        pbVar31 = (byte *)*pp;\n        if (pcVar17[1] == ':') break;\n        if (p_end <= pbVar31) {\n          return (debug_type)0x0;\n        }\n        pcVar16 = savestring((char *)pbVar31,(int)pcVar17 - (int)pbVar31);\n        *pp = pcVar17 + 1;\n        if (pcVar17[1] == '/') {\n          pcVar25 = pcVar17 + 2;\n          *pp = pcVar25;\n          cVar3 = pcVar17[2];\n          if (cVar3 == '0') {\n            local_120 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (local_120 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00131b6d;\n            }\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for field",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar25 = *pp;\n            local_120 = DEBUG_VISIBILITY_PUBLIC;\n          }\nLAB_00131b6d:\n          *pp = pcVar25 + 1;\n        }\n        else {\n          local_120 = DEBUG_VISIBILITY_PUBLIC;\n        }\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (pdVar18 == (debug_type)0x0) {\n          free(pcVar16);\n          return (debug_type)0x0;\n        }\n        pcVar17 = *pp;\n        if (*pcVar17 == ':') {\n          pcVar17 = pcVar17 + 1;\n          *pp = pcVar17;\n          pcVar25 = strchr(pcVar17,0x3b);\n          if (pcVar25 == (char *)0x0) goto LAB_00132614;\n          pcVar17 = savestring(pcVar17,(int)pcVar25 - (int)pcVar17);\n          *pp = pcVar25 + 1;\n          pdVar15 = debug_make_static_member(dhandle,pcVar16,pdVar18,pcVar17,local_120);\n          bVar43 = true;\n          local_130[uVar10] = pdVar15;\n        }\n        else {\n          if (*pcVar17 != ',') {\nLAB_00132614:\n            bad_stab((char *)pbVar31);\n            free(pcVar16);\n            return (debug_type)0x0;\n          }\n          *pp = pcVar17 + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132614;\n          *pp = *pp + 1;\n          bVar14 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ';') goto LAB_00132614;\n          *pp = *pp + 1;\n          dVar36 = DEBUG_VISIBILITY_IGNORE;\n          if (bVar13 != 0 || bVar14 != 0) {\n            dVar36 = local_120;\n          }\n          pdVar15 = debug_make_field(dhandle,pcVar16,pdVar18,bVar13,bVar14,dVar36);\n          local_130[uVar10] = pdVar15;\n        }\n      }\n      pbVar31 = (byte *)*pp;\n      uVar10 = (ulong)uVar39;\n      bVar2 = *pbVar31;\n    }\n    local_130[uVar10] = (debug_field)0x0;\n    if (p_end <= pbVar31) goto LAB_00131328;\n    bVar2 = *pbVar31;\n    if (bVar2 == 0x3b) {\n      local_108 = (debug_method *)0x0;\nLAB_001334bc:\n      pbVar26 = pbVar31 + 1;\n      *pp = (char *)pbVar26;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (debug_method_variant *)0x0;\n      local_108 = (debug_method *)0x0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar26 = pbVar31;\n      do {\n        pcVar17 = strchr((char *)pbVar26,0x3a);\n        if ((pcVar17 == (char *)0x0) || (pcVar17[1] != ':')) break;\n        pcVar16 = pcVar17 + 2;\n        if ((bVar2 == 0x6f) && ((pbVar26[1] == 0x70 && (pbVar26[2] == 0x24)))) {\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          pcVar17 = pcVar16;\n          while ((cVar3 != '.' && (cVar3 != '\0'))) {\n            pcVar17 = pcVar17 + 1;\n            cVar3 = *pcVar17;\n          }\n          if (cVar3 != '.') {\n            bad_stab((char *)pbVar31);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (debug_method_variant *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = savestring(pcVar16,(int)pcVar17 - (int)pcVar16);\n          *pp = pcVar17 + 1;\n        }\n        else {\n          local_138 = savestring((char *)pbVar26,(int)pcVar17 - (int)pbVar26);\n          *pp = pcVar16;\n        }\n        local_128 = (debug_method_variant *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        pdVar18 = (debug_type)0x0;\n        do {\n          if (pdVar18 == (debug_type)0x0) {\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 != (debug_type)0x0) {\n              pcVar17 = *pp;\n              if (*pcVar17 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar17 = *pp;\nLAB_00131d3f:\n          *pp = pcVar17 + 1;\n          pcVar17 = strchr(pcVar17 + 1,0x3b);\n          if (pcVar17 == (char *)0x0) {\nLAB_00132781:\n            bad_stab((char *)pbVar31);\n            goto LAB_00132793;\n          }\n          dVar6 = debug_get_type_kind(dhandle,pdVar18);\n          bVar41 = false;\n          if (dVar6 == DEBUG_KIND_METHOD) {\n            ppdVar9 = debug_get_parameter_types(dhandle,pdVar18,&varargs);\n            bVar41 = ppdVar9 == (debug_type_conflict *)0x0;\n          }\n          pbVar40 = (byte *)savestring(*pp,(int)pcVar17 - (int)*pp);\n          *pp = pcVar17 + 1;\n          cVar3 = pcVar17[1];\n          if (cVar3 == '0') {\n            local_e4 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else if (cVar3 == '1') {\n            local_e4 = DEBUG_VISIBILITY_PROTECTED;\n          }\n          else {\n            if (cVar3 == '\0') goto LAB_00132781;\n            local_e4 = DEBUG_VISIBILITY_PUBLIC;\n          }\n          pcVar16 = pcVar17 + 2;\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          switch(cVar3) {\n          case '*':\n          case '.':\n          case '?':\n            local_118 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            pcVar17 = (char *)dcgettext(0,"const/volatile indicator missing",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar16 = *pp;\n            local_118 = 0;\n            local_f0 = 0;\n            cVar3 = *pcVar16;\n            break;\n          case 'A':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            local_f0 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n          }\n          pbVar26 = pbVar40;\n          if (cVar3 == '.') {\n            bVar44 = false;\n            pdVar19 = (debug_type)0x0;\n            *pp = pcVar16 + 1;\n            local_100 = (debug_type)0x0;\n            local_e0 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar3 != '?') {\n              if (cVar3 == '*') {\n                *pp = pcVar16 + 1;\n                bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n                pcVar17 = *pp;\n                if (*pcVar17 != ';') goto LAB_00132781;\n                local_e0 = (ulong)((uint)bVar13 & 0x7fffffff);\n                *pp = pcVar17 + 1;\n                if ((pcVar17[1] == ';') || (pcVar17[1] == '\0')) {\n                  local_100 = (debug_type)0x0;\n                  pdVar19 = (debug_type)0x0;\n                  bVar44 = false;\n                }\n                else {\n                  pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end);\n                  cVar3 = **pp;\n                  if (cVar3 == ':') {\n                    local_100 = (debug_type)0x0;\n                    bVar44 = false;\n                    pdVar19 = pdVar23;\n                  }\n                  else {\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }\n                }\n              }\n              else {\n                warn_stab((char *)pbVar31,"member function type missing");\n                bVar44 = false;\n                local_100 = (debug_type)0x0;\n                local_e0 = 0;\n                pdVar19 = (debug_type)0x0;\n              }\n              goto LAB_001322ba;\n            }\n            *pp = pcVar16 + 1;\n            sVar32 = strlen(local_138);\n            iVar7 = strncmp((char *)pbVar40,local_138,sVar32);\n            if (iVar7 == 0) {\n              local_100 = (debug_type)0x0;\n              pdVar19 = (debug_type)0x0;\n              local_e0 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = (debug_type)0x0;\n            pdVar19 = (debug_type)0x0;\n            local_e0 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            pdVar23 = stab_find_type(dhandle,info,typenums);\n            if (pdVar23 == (debug_type)0x0) goto LAB_00132793;\n            pdVar20 = debug_get_return_type(dhandle,pdVar18);\n            if (pdVar20 == (debug_type_conflict)0x0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar7 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar7 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (type_name != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar2 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) && (bVar2 != 0x51 && bVar2 != 0x74))\n                 && (iVar7 = strncmp((char *)pbVar40,"__ct",4), iVar7 != 0)) {\n                if (type_name != (char *)0x0) {\nLAB_001338f6:\n                  iVar7 = strcmp(local_138,type_name);\n                  bVar45 = iVar7 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar40;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\nLAB_0013360b:\n              pcVar16 = p;\n              local_40 = 0;\n              pcVar17 = p;\n              do {\n                pcVar25 = strchr(pcVar17,0x5f);\n                if (pcVar25 == (char *)0x0) goto LAB_00133635;\n                pcVar17 = pcVar25 + 1;\n              } while (pcVar25[1] != '_');\n              if (pcVar17 != (char *)0x0) {\n                sVar32 = strspn(pcVar25,"_");\n                if (2 < (uint)sVar32) {\n                  pcVar25 = pcVar25 + ((uint)sVar32 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              stab_bad_demangle(pcVar16);\nLAB_0013323f:\n              if (local_48 != (stab_demangle_typestring *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a76;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar41 = *pbVar34 < *pbVar35;\n              bVar45 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (type_name == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar7 = strcmp(local_138,type_name);\n              bVar45 = iVar7 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a4b;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar42 = *pbVar34 < *pbVar35;\n              bVar46 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              arg_types = (stab_demangle_typestring *)xmalloc(8);\n              arg_types->typestring = (char *)0x0;\n              bVar4 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (type_name != (char *)0x0) {\n                sVar32 = strlen(type_name);\n                local_d8 = sVar32 & 0xffffffff;\n              }\n              pcVar16 = "C";\n              pcVar17 = "V";\n              if (local_f0 == 0) {\n                pcVar16 = "";\n              }\n              if (local_118 == 0) {\n                pcVar17 = "";\n              }\n              local_c0 = type_name;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)xtypenums,"__%s%s");\n              }\n              else if ((type_name == (char *)0x0) ||\n                      (pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0)) {\n                sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8);\n              }\n              else {\n                sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)xtypenums;\n              do {\n                puVar29 = puVar30;\n                uVar8 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar39 = uVar8 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar39 == 0);\n              bVar41 = (uVar8 & 0x8080) == 0;\n              if (bVar41) {\n                uVar39 = uVar39 >> 0x10;\n              }\n              cVar3 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar7 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar39,(byte)uVar39)) -\n                      (int)xtypenums;\n              sVar32 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar7 = iVar7 + (int)local_d8 + 1 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar26 = (byte *)xmalloc(iVar7);\n                *pbVar26 = 0;\n              }\n              else {\n                lVar11 = -1;\n                pcVar17 = local_138;\n                do {\n                  if (lVar11 == 0) break;\n                  lVar11 = lVar11 + -1;\n                  cVar1 = *pcVar17;\n                  pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar7 = ((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar17 == (char *)0x0) {\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar11 = -1;\n                  pcVar16 = pcVar17;\n                  do {\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar3 != '\0');\n                  pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);\n                  strncpy((char *)pbVar26,local_138,3);\n                  strcpy((char *)(pbVar26 + 3),pcVar17);\n                }\n                else {\n                  pbVar26 = (byte *)xmalloc(iVar7);\n                  strcpy((char *)pbVar26,local_138);\n                }\n              }\n              sVar32 = strlen((char *)pbVar26);\n              local_d8 = sVar32 & 0xffffffff;\n              pcVar17 = stpcpy((char *)(pbVar26 + sVar32),(char *)xtypenums);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar17,local_c0);\n              }\n              strcat((char *)pbVar26,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar26 == 0x5f) && (pbVar26[1] == 0x5a)) {\nLAB_00133b71:\n                p = (char *)pbVar26;\n                pdVar27 = cplus_demangle_v3_components((char *)pbVar26,3,(void **)xtypenums);\n                if (pdVar27 == (demangle_component *)0x0) {\n                  stab_bad_demangle((char *)pbVar26);\n                }\n                else {\n                  if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }\n                  pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar17);\n                  free((void *)xtypenums);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar26;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pcVar25 = p + local_d8;\n              pcVar16 = p;\nLAB_001330d0:\n              bVar2 = pcVar25[2];\n              if (pcVar16 == pcVar25) {\n                if (((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) &&\n                   (pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74)) {\n                  for (; *pcVar17 == '_'; pcVar17 = pcVar17 + 1) {\n                  }\n                  pcVar17 = strstr(pcVar17,"__");\n                  if ((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')) {\n                    stab_bad_demangle(pcVar25);\n                    goto LAB_0013323f;\n                  }\n                  iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17);\n                  goto LAB_001330fd;\n                }\n                p = pcVar25 + 2;\n              }\n              else {\n                if (bVar2 == 0) goto LAB_00133635;\n                iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25);\nLAB_001330fd:\n                if (iVar7 == 0) goto LAB_0013323f;\n              }\n              pcVar17 = p;\n              cVar3 = *p;\n              if (cVar3 != '\0') {\n                pcVar16 = (char *)0x0;\n                bVar41 = false;\n                pstart = (char **)0x0;\n                do {\n                  pcVar25 = p;\n                  switch(cVar3) {\n                  case '0':\n                  case '1':\n                  case '2':\n                  case '3':\n                  case '4':\n                  case '5':\n                  case '6':\n                  case '7':\n                  case '8':\n                  case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;\n                  default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'C':\n                  case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;\n                  case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;\n                  case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar41) {\nLAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    pstart = (char **)0x1;\n                  }\n                  cVar3 = *p;\n                } while (cVar3 != '\0');\n                if (((int)pstart == 0) &&\n                   (bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (stab_demangle_typestring *)0x0;\n              if (local_58 == (stab_demangle_typestring *)0x0) {\n                pcVar17 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar17);\n              }\n              varargs_1 = local_50[0];\n              arg_types = local_58;\nLAB_00133211:\n              bVar4 = varargs_1;\n              if (arg_types == (stab_demangle_typestring *)0x0) goto LAB_00132793;\n            }\n            pdVar18 = debug_make_method_type\n                                (dhandle,pdVar20,pdVar23,(debug_type_conflict *)arg_types,bVar4);\n            if (pdVar18 == (debug_type_conflict)0x0) goto LAB_00132793;\n          }\n          uVar39 = local_ec + 1;\n          if (local_e8 <= uVar39) {\n            local_e8 = local_e8 + 10;\n            local_128 = (debug_method_variant *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          if (bVar44) {\n            pdVar21 = debug_make_static_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118);\n            local_128[local_ec] = pdVar21;\n          }\n          else {\n            pdVar21 = debug_make_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118,\n                                 local_e0,local_100);\n            local_128[local_ec] = pdVar21;\n          }\n          if (pdVar21 == (debug_method_variant)0x0) goto LAB_00132793;\n          pcVar17 = *pp;\n        } while ((*pcVar17 != ';') && (pdVar18 = pdVar19, local_ec = uVar39, *pcVar17 != '\0'));\n        local_128[uVar39] = (debug_method_variant)0x0;\n        if (*pcVar17 != '\0') {\n          *pp = pcVar17 + 1;\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = (debug_method *)xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        pdVar22 = debug_make_method(dhandle,local_138,local_128);\n        local_108[local_c8] = pdVar22;\n        pbVar26 = (byte *)*pp;\n        bVar2 = *pbVar26;\n        local_c8 = uVar39;\n      } while (bVar2 != 0x3b);\n      if (local_108 != (debug_method *)0x0) {\n        local_108[local_c8] = (debug_method)0x0;\n      }\n      if (p_end <= pbVar26) goto LAB_00131328;\n      pbVar31 = pbVar26;\n      if (*pbVar26 == 0x3b) goto LAB_001334bc;\n    }\n    if (*pbVar26 == 0x7e) {\n      pbVar40 = pbVar26 + 1;\n      *pp = (char *)pbVar40;\n      if (((pbVar26[1] & 0xef) == 0x2d) || (pbVar26[1] == 0x2b)) {\n        pbVar40 = pbVar26 + 2;\n        *pp = (char *)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *pp = (char *)(pbVar40 + 1);\n      bVar4 = parse_stab_type_number(pp,xtypenums,p_end);\n      if (bVar4 == 0) goto LAB_00131328;\n      if (xtypenums[0] != typenums[0]) {\nLAB_00132596:\n        *pp = (char *)(pbVar40 + 1);\n        pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        pcVar17 = *pp;\n        cVar3 = *pcVar17;\n        while ((cVar3 != ';' && (cVar3 != '\0'))) {\n          pcVar17 = pcVar17 + 1;\n          cVar3 = *pcVar17;\n        }\n        if (cVar3 != ';') {\nLAB_00132740:\n          bad_stab((char *)pbVar31);\nLAB_00131328:\n          free(local_130);\n          return (debug_type)0x0;\n        }\n        *pp = pcVar17 + 1;\n        goto LAB_0013244c;\n      }\n      if (xtypenums[1] != typenums[1]) goto LAB_00132596;\n      bVar4 = 1;\n      pdVar20 = (debug_type_conflict)0x0;\n    }\n    else {\nLAB_0013244a:\n      pdVar20 = (debug_type_conflict)0x0;\nLAB_0013244c:\n      if (((local_108 == (debug_method *)0x0 && local_f8 == (debug_baseclass *)0x0) &&\n           pdVar20 == (debug_type_conflict)0x0) && (!bVar43)) {\n        pdVar20 = debug_make_struct_type(dhandle,(uint)(bVar37 == 0x73),bVar12,local_130);\n        break;\n      }\n      bVar4 = 0;\n    }\n    pdVar20 = debug_make_object_type\n                        (dhandle,(uint)(bVar37 == 0x73),bVar12,local_130,local_f8,local_108,pdVar20,\n                         bVar4);\n    break;\n  case 0x78:\n    bVar47 = pbVar26[1];\n    if (bVar47 == 0x65) {\n      dVar6 = DEBUG_KIND_ENUM;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        dVar6 = DEBUG_KIND_STRUCT;\n        if ((bVar47 == 0x73) || (dVar6 = DEBUG_KIND_UNION, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      dVar6 = DEBUG_KIND_STRUCT;\n      pcVar17 = (char *)dcgettext(0,"unrecognized cross reference type",5);\n      warn_stab((char *)pbVar31,pcVar17);\n      pbVar40 = (byte *)*pp;\n    }\nLAB_00131e0e:\n    pbVar40 = pbVar40 + 1;\n    *pp = (char *)pbVar40;\n    pcVar16 = strchr((char *)pbVar40,0x3c);\n    pcVar17 = strchr((char *)pbVar40,0x3a);\n    if (pcVar17 != (char *)0x0) {\n      if (((pcVar16 == (char *)0x0) || (pcVar17 <= pcVar16)) || (pcVar17[1] != ':')) {\nLAB_00131e52:\n        sVar32 = (long)pcVar17 - (long)pbVar40;\n        if (((type_name != (char *)0x0) &&\n            (iVar7 = strncmp(type_name,(char *)pbVar40,sVar32), iVar7 == 0)) &&\n           (type_name[sVar32] == '\0')) {\n          info->self_crossref = 1;\n        }\n        pdVar20 = stab_find_tagged_type\n                            (dhandle,(stab_handle *)&info->tags,(char *)pbVar40,(int)sVar32,dVar6);\n        *pp = pcVar17 + 1;\n        break;\n      }\n      cVar3 = *pcVar16;\n      if (cVar3 != '\0') {\n        iVar7 = 0;\n        pcVar17 = pcVar16;\n        do {\n          if (cVar3 == '<') {\n            iVar7 = iVar7 + 1;\n          }\n          else if (cVar3 == '>') {\n            iVar7 = iVar7 + -1;\n          }\n          else if ((iVar7 == 0) && (cVar3 == ':')) goto LAB_00131e52;\n          pcVar17 = pcVar17 + 1;\n          cVar3 = *pcVar17;\n        } while (cVar3 != '\0');\n      }\n    }\nswitchD_001311d2_caseD_24:\n    bad_stab((char *)pbVar31);\n    return (debug_type)0x0;\n  }\n  if (pdVar20 != (debug_type_conflict)0x0) {\n    if (typenums[0] != -1) {\n      ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums);\n      if (ppdVar9 == (debug_type_conflict *)0x0) {\n        return (debug_type)0x0;\n      }\n      *ppdVar9 = pdVar20;\n    }\n    if (local_13c == 0xffffffff) {\n      return pdVar20;\n    }\n    bVar4 = debug_record_type_size(dhandle,pdVar20,local_13c);\n    if (bVar4 != 0) {\n      return pdVar20;\n    }\n  }\n  return (debug_type)0x0;\n}" type_identifier (function_declarator "parse_stab_type(void *dhandle,stab_handle *info,char *type_name,char **pp,\n               debug_type_conflict **slotp,char *p_end)" identifier (parameter_list "(void *dhandle,stab_handle *info,char *type_name,char **pp,\n               debug_type_conflict **slotp,char *p_end)" ( (parameter_declaration "void *dhandle" primitive_type (pointer_declarator "*dhandle" * identifier)) , (parameter_declaration "stab_handle *info" type_identifier (pointer_declarator "*info" * identifier)) , (parameter_declaration "char *type_name" primitive_type (pointer_declarator "*type_name" * identifier)) , (parameter_declaration "char **pp" primitive_type (pointer_declarator "**pp" * (pointer_declarator "*pp" * identifier))) , (parameter_declaration "debug_type_conflict **slotp" type_identifier (pointer_declarator "**slotp" * (pointer_declarator "*slotp" * identifier))) , (parameter_declaration "char *p_end" primitive_type (pointer_declarator "*p_end" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  byte bVar2;\n  char cVar3;\n  bfd_boolean bVar4;\n  bfd_boolean bVar5;\n  debug_type_kind dVar6;\n  int iVar7;\n  uint uVar8;\n  debug_type_conflict *ppdVar9;\n  ulong uVar10;\n  long lVar11;\n  bfd_signed_vma *values;\n  bfd_vma bVar12;\n  bfd_vma bVar13;\n  bfd_vma bVar14;\n  debug_field pdVar15;\n  char *pcVar16;\n  char *pcVar17;\n  debug_type pdVar18;\n  debug_type pdVar19;\n  debug_type_conflict pdVar20;\n  debug_method_variant pdVar21;\n  debug_method pdVar22;\n  debug_type pdVar23;\n  stab_demangle_typestring *arg_types;\n  debug_baseclass pdVar24;\n  char *pcVar25;\n  byte *pbVar26;\n  demangle_component *pdVar27;\n  bfd_vma lower;\n  ulong uVar28;\n  uint *puVar29;\n  uint *puVar30;\n  char **pstart;\n  byte *pbVar31;\n  size_t sVar32;\n  debug_type_conflict *ppdVar33;\n  byte *pbVar34;\n  byte *pbVar35;\n  debug_visibility dVar36;\n  byte bVar37;\n  ulong uVar38;\n  uint uVar39;\n  byte *pbVar40;\n  bool bVar41;\n  bool bVar42;\n  bool bVar43;\n  bool bVar44;\n  bool bVar45;\n  bool bVar46;\n  byte bVar47;\n  char **local_148;\n  uint local_13c;\n  char *local_138;\n  debug_field *local_130;\n  debug_method_variant *local_128;\n  debug_visibility local_120;\n  bfd_boolean local_118;\n  debug_method *local_108;\n  debug_type local_100;\n  debug_baseclass *local_f8;\n  int local_f0;\n  uint local_ec;\n  uint local_e8;\n  debug_visibility local_e4;\n  ulong local_e0;\n  ulong local_d8;\n  uint local_c8;\n  uint local_c4;\n  char *local_c0;\n  bfd_boolean varargs;\n  bfd_boolean varargs_1;\n  char *p;\n  int typenums [2];\n  int xtypenums [2];\n  stab_demangle_typestring *local_58;\n  uint local_50 [2];\n  stab_demangle_typestring *local_48;\n  uint local_40;\n  uint local_3c;\n  \n  bVar47 = 0;\n  if (slotp != (debug_type_conflict **)0x0) {\n    *slotp = (debug_type_conflict *)0x0;\n  }\n  pbVar31 = (byte *)*pp;\n  if (p_end <= pbVar31) {\n    return (debug_type)0x0;\n  }\n  info->self_crossref = 0;\n  bVar37 = *pbVar31;\n  if (((_sch_istable[(ulong)bVar37 * 2] & 4) != 0) || (bVar37 == 0x2d || bVar37 == 0x28)) {\n    bVar4 = parse_stab_type_number(pp,typenums,p_end);\n    if (bVar4 == 0) {\n      return (debug_type)0x0;\n    }\n    pcVar17 = *pp;\n    if (*pcVar17 != '=') {\n      pdVar18 = stab_find_type(dhandle,info,typenums);\n      return pdVar18;\n    }\n    if (((slotp != (debug_type_conflict **)0x0) && (-1 < typenums[0])) && (-1 < (long)typenums)) {\n      ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums);\n      pcVar17 = *pp;\n      *slotp = ppdVar9;\n    }\n    bVar4 = 0;\n    *pp = pcVar17 + 1;\n    local_13c = 0xffffffff;\n    pbVar26 = (byte *)(pcVar17 + 1);\n    do {\n      while( true ) {\n        while( true ) {\n          bVar37 = *pbVar26;\n          pbVar40 = pbVar26 + 1;\n          if (bVar37 != 0x40) goto LAB_001311b2;\n          bVar37 = pbVar26[1];\n          uVar10 = (ulong)bVar37;\n          if (((_sch_istable[uVar10 * 2] & 4) != 0) || (bVar37 == 0x2d || bVar37 == 0x28)) {\n            *pp = (char *)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar10 != ';') {\n            if ((char)uVar10 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar10 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *pp = (char *)pbVar40;\n          bVar37 = pbVar26[1];\n          if (bVar37 != 0x53) break;\n          bVar4 = 1;\n          pbVar26 = pbVar40;\n        }\n        if (bVar37 != 0x73) break;\n        lVar11 = strtol((char *)(pbVar26 + 2),(char **)0x0,10);\n        if ((int)lVar11 < 8) {\n          local_13c = 0xffffffff;\n          pbVar26 = (byte *)*pp;\n        }\n        else {\n          local_13c = (int)lVar11 >> 3;\n          pbVar26 = (byte *)*pp;\n        }\n      }\n      pbVar26 = pbVar40;\n    } while (bVar37 != 0);\n    goto switchD_001311d2_caseD_24;\n  }\n  pbVar40 = pbVar31 + 1;\n  bVar4 = 0;\n  local_13c = 0xffffffff;\n  typenums[0] = -1;\n  typenums[1] = -1;\n  bVar37 = *pbVar31;\n  pbVar26 = pbVar31;\nLAB_001311b2:\n  *pp = (char *)pbVar40;\n  switch(bVar37) {\n  case 0x23:\n    if (pbVar26[1] == 0x23) {\n      *pp = (char *)(pbVar26 + 2);\n      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      if (**pp != ';') goto switchD_001311d2_caseD_24;\n      *pp = *pp + 1;\n      pdVar20 = debug_make_method_type\n                          (dhandle,pdVar18,(debug_type_conflict)0x0,(debug_type_conflict *)0x0,0);\n    }\n    else {\n      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      if (**pp != ',') goto switchD_001311d2_caseD_24;\n      *pp = *pp + 1;\n      pdVar19 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar19 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      uVar38 = 10;\n      ppdVar9 = (debug_type_conflict *)xmalloc(0x50);\n      uVar10 = 0;\n      while( true ) {\n        pcVar17 = *pp;\n        iVar7 = (int)uVar10;\n        if (*pcVar17 == ';') break;\n        if (*pcVar17 != ',') {\n          bad_stab((char *)pbVar31);\n          return (debug_type)0x0;\n        }\n        *pp = pcVar17 + 1;\n        if ((uint)uVar38 <= iVar7 + 1U) {\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          ppdVar9 = (debug_type_conflict *)xrealloc(ppdVar9,uVar38 << 3);\n        }\n        ppdVar33 = ppdVar9 + uVar10;\n        pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        uVar10 = (ulong)(iVar7 + 1U);\n        *ppdVar33 = pdVar23;\n        if (pdVar23 == (debug_type)0x0) {\n          return (debug_type)0x0;\n        }\n      }\n      bVar4 = 1;\n      *pp = pcVar17 + 1;\n      ppdVar33 = ppdVar9;\n      if (iVar7 != 0) {\n        ppdVar33 = ppdVar9 + (iVar7 - 1);\n        dVar6 = debug_get_type_kind(dhandle,*ppdVar33);\n        if (dVar6 == DEBUG_KIND_VOID) {\n          bVar4 = 0;\n        }\n        else {\n          ppdVar33 = ppdVar9 + uVar10;\n        }\n      }\n      *ppdVar33 = (debug_type_conflict)0x0;\n      pdVar20 = debug_make_method_type(dhandle,pdVar19,pdVar18,ppdVar9,bVar4);\n    }\n    break;\n  default:\n    goto switchD_001311d2_caseD_24;\n  case 0x26:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_reference_type(dhandle,pdVar18);\n    break;\n  case 0x28:\n  case 0x2d:\n  case 0x30:\n  case 0x31:\n  case 0x32:\n  case 0x33:\n  case 0x34:\n  case 0x35:\n  case 0x36:\n  case 0x37:\n  case 0x38:\n  case 0x39:\n    *pp = (char *)pbVar26;\n    bVar4 = parse_stab_type_number(pp,xtypenums,p_end);\n    if (bVar4 == 0) {\n      return (debug_type)0x0;\n    }\n    if (typenums[0] == xtypenums[0]) {\n      if (typenums[1] != xtypenums[1]) goto LAB_00132079;\n      pdVar20 = debug_make_void_type(dhandle);\n    }\n    else {\nLAB_00132079:\n      *pp = (char *)pbVar26;\n      pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar20 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n    }\n    if (typenums[0] != -1) {\n      ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums);\n      if (ppdVar9 == (debug_type_conflict *)0x0) {\n        return (debug_type)0x0;\n      }\n      *ppdVar9 = pdVar20;\n    }\n    break;\n  case 0x2a:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_pointer_type(dhandle,pdVar18);\n    break;\n  case 0x40:\nswitchD_001311d2_caseD_40:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    if (pdVar18 == (debug_type)0x0) {\n      return (debug_type)0x0;\n    }\n    if (**pp != ',') goto switchD_001311d2_caseD_24;\n    *pp = *pp + 1;\n    pdVar19 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    if (pdVar19 == (debug_type)0x0) {\n      return (debug_type)0x0;\n    }\n    pdVar20 = debug_make_offset_type(dhandle,pdVar18,pdVar19);\n    break;\n  case 0x42:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_volatile_type(dhandle,pdVar18);\n    break;\n  case 0x52:\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    if ((**pp != ';') || (bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end), **pp != ';'))\n    goto LAB_00132126;\n    if (bVar12 - 3 < 3) {\n      pdVar20 = debug_make_complex_type(dhandle,(uint)bVar13);\n    }\n    else {\n      pdVar20 = debug_make_float_type(dhandle,(uint)bVar13);\n    }\n    break;\n  case 0x53:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_set_type(dhandle,pdVar18,bVar4);\n    break;\n  case 0x61:\n    if (pbVar26[1] == 0x72) {\n      pbVar26 = pbVar26 + 2;\n      *pp = (char *)pbVar26;\n      if (p_end <= pbVar26) {\n        return (debug_type)0x0;\n      }\n      p = (char *)pbVar26;\n      bVar5 = parse_stab_type_number(&p,xtypenums,p_end);\n      if (bVar5 == 0) {\n        return (debug_type)0x0;\n      }\n      if ((xtypenums[0] == 0 && xtypenums[1] == 0) && (**pp != '=')) {\n        pdVar20 = debug_find_named_type(dhandle,"int");\n        if ((pdVar20 == (debug_type_conflict)0x0) &&\n           (pdVar20 = debug_make_int_type(dhandle,4,0), pdVar20 == (debug_type_conflict)0x0)) {\n          return (debug_type)0x0;\n        }\n        *pp = p;\n        pcVar17 = p;\n      }\n      else {\n        pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        pcVar17 = *pp;\n      }\n      if (*pcVar17 == ';') {\n        *pp = pcVar17 + 1;\n        bVar47 = pcVar17[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *pp = pcVar17 + 2;\n        }\n        else {\n          bVar43 = false;\n        }\n        bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        pcVar17 = *pp;\n        if (*pcVar17 == ';') {\n          *pp = pcVar17 + 1;\n          bVar47 = pcVar17[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *pp = pcVar17 + 2;\n          }\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp == ';') {\n            *pp = *pp + 1;\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 == (debug_type)0x0) {\n              return (debug_type)0x0;\n            }\n            lower = 0;\n            bVar14 = 0xffffffffffffffff;\n            if (!bVar43) {\n              lower = bVar12;\n              bVar14 = bVar13;\n            }\n            pdVar20 = debug_make_array_type(dhandle,pdVar18,pdVar20,lower,bVar14,bVar4);\n            break;\n          }\n        }\n      }\n      bad_stab((char *)pbVar26);\n      return (debug_type)0x0;\n    }\n    goto switchD_001311d2_caseD_24;\n  case 0x62:\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    if (pbVar26[1] == 0x73) {\n      bVar4 = 0;\n    }\n    else {\n      if (pbVar26[1] != 0x75) goto LAB_00132126;\n      bVar4 = 1;\n    }\n    *pp = (char *)(pbVar26 + 2);\n    if (((byte)(pbVar26[2] + 0x9e) < 2) || (pbVar26[2] == 0x76)) {\n      *pp = (char *)(pbVar26 + 3);\n    }\n    parse_number(pp,(bfd_boolean *)0x0,p_end);\n    if (**pp != ';') goto LAB_00132126;\n    *pp = *pp + 1;\n    parse_number(pp,(bfd_boolean *)0x0,p_end);\n    if (**pp != ';') goto LAB_00132126;\n    *pp = *pp + 1;\n    bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    if (**pp == ';') {\n      *pp = *pp + 1;\n    }\n    if (bVar12 != 0) {\n      pdVar20 = debug_make_int_type(dhandle,(uint)(bVar12 >> 3),bVar4);\n      break;\n    }\nLAB_00133358:\n    pdVar20 = debug_make_void_type(dhandle);\n    break;\n  case 0x65:\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    pbVar31 = pbVar40;\n    if (pbVar26[1] == 0x2d) {\n      do {\n        pbVar26 = pbVar31;\n        *pp = (char *)(pbVar26 + 1);\n        bVar47 = pbVar26[1];\n        if (bVar47 == 0x3a) break;\n        pbVar31 = pbVar26 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *pp = (char *)(pbVar26 + 2);\n    }\n    local_148 = (char **)xmalloc(0x50);\n    values = (bfd_signed_vma *)xmalloc(0x50);\n    pbVar31 = (byte *)*pp;\n    uVar10 = (ulong)*pbVar31;\n    if ((*pbVar31 < 0x3c) && ((0x800100000000001U >> (uVar10 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar38 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar10;\n        pbVar26 = pbVar31;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar26 = pbVar26 + 1;\n          bVar47 = *pbVar26;\n        }\n        if (bVar47 == 0) {\n          bad_stab((char *)pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(values);\n          return (debug_type)0x0;\n        }\n        pcVar17 = savestring((char *)pbVar31,(int)pbVar26 - (int)pbVar31);\n        *pp = (char *)(pbVar26 + 1);\n        bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        if (**pp != ',') {\n          bad_stab((char *)pbVar40);\n          free(pcVar17);\n          goto LAB_00132cf2;\n        }\n        uVar8 = uVar39 + 1;\n        *pp = *pp + 1;\n        if ((uint)uVar38 <= uVar8) {\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          local_148 = (char **)xrealloc(local_148,uVar38 << 3);\n          values = (bfd_signed_vma *)xrealloc(values,uVar38 << 3);\n        }\n        uVar28 = (ulong)uVar8;\n        local_148[uVar39] = pcVar17;\n        pbVar31 = (byte *)*pp;\n        values[uVar39] = bVar12;\n        uVar10 = (ulong)*pbVar31;\n        uVar39 = uVar8;\n      } while ((0x3b < *pbVar31) || ((0x800100000000001U >> (uVar10 & 0x3f) & 1) == 0));\n    }\n    local_148[uVar28] = (char *)0x0;\n    pcVar17 = *pp;\n    values[uVar28] = 0;\n    if (*pcVar17 == ';') {\n      *pp = pcVar17 + 1;\n    }\n    pdVar20 = debug_make_enum_type(dhandle,local_148,values);\n    break;\n  case 0x66:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_function_type(dhandle,pdVar18,(debug_type_conflict *)0x0,0);\n    break;\n  case 0x6b:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_const_type(dhandle,pdVar18);\n    break;\n  case 0x72:\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    bVar4 = parse_stab_type_number(pp,xtypenums,p_end);\n    if (bVar4 == 0) {\n      return (debug_type)0x0;\n    }\n    bVar43 = false;\n    if (xtypenums[0] == typenums[0]) {\n      bVar43 = xtypenums[1] == typenums[1];\n    }\n    pbVar31 = (byte *)*pp;\n    pdVar18 = (debug_type)0x0;\n    bVar37 = *pbVar31;\n    if (bVar37 == 0x3d) {\n      *pp = (char *)pbVar40;\n      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      pbVar31 = (byte *)*pp;\n      bVar37 = *pbVar31;\n    }\n    if (bVar37 == 0x3b) {\n      pbVar31 = pbVar31 + 1;\n      *pp = (char *)pbVar31;\n    }\n    bVar12 = parse_number(pp,&varargs_1,p_end);\n    if (**pp != ';') goto LAB_00132126;\n    pcVar17 = *pp + 1;\n    *pp = pcVar17;\n    bVar13 = parse_number(pp,(bfd_boolean *)&p,p_end);\n    bVar4 = varargs_1;\n    if (**pp != ';') goto LAB_00132126;\n    *pp = *pp + 1;\n    if (varargs_1 != 0 || (int)p != 0) {\n      bVar41 = false;\n      bVar44 = pdVar18 == (debug_type)0x0;\n      if (!bVar44) {\nLAB_00131960:\n        pcVar17 = (char *)dcgettext(0,"numeric overflow",5);\n        warn_stab((char *)pbVar40,pcVar17);\n        goto LAB_0013197e;\n      }\n      lVar11 = 0x18;\n      pbVar26 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar41 = *pbVar31 < *pbVar26;\n        bVar44 = *pbVar31 == *pbVar26;\n        pbVar31 = pbVar31 + (ulong)bVar47 * -2 + 1;\n        pbVar26 = pbVar26 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar7 = strncmp(pcVar17,"0777777777777777777777;",0x17), iVar7 != 0)) {\n        if ((bVar12 != 0) ||\n           ((bVar4 != 0 || (iVar7 = strncmp(pcVar17,"01777777777777777777777;",0x18), iVar7 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        pdVar20 = debug_make_int_type(dhandle,8,1);\n        break;\n      }\nLAB_0013373f:\n      pdVar20 = debug_make_int_type(dhandle,8,0);\n      break;\n    }\nLAB_0013197e:\n    if (pdVar18 == (debug_type)0x0) {\n      if ((bVar43) && (bVar12 == 0)) {\n        if (bVar13 == 0) goto LAB_00133358;\n        if (bVar13 == 0xffffffffffffffff) {\nLAB_00133395:\n          if (type_name != (char *)0x0) {\n            iVar7 = strcmp(type_name,"long long int");\n            if (iVar7 == 0) goto LAB_0013373f;\n            iVar7 = strcmp(type_name,"long long unsigned int");\n            if (iVar7 == 0) goto LAB_0013348a;\n          }\n        }\n        else {\n          if (bVar13 == 0x7f) {\nLAB_00133dee:\n            pdVar20 = debug_make_int_type(dhandle,1,0);\n            break;\n          }\nLAB_00133a66:\n          uVar39 = (uint)bVar13;\n          if ((long)bVar13 < 0) goto LAB_00133b55;\n          if (bVar13 == 0xff) {\n            pdVar20 = debug_make_int_type(dhandle,1,1);\n            break;\n          }\n          if (bVar13 == 0xffff) {\n            pdVar20 = debug_make_int_type(dhandle,2,1);\n            break;\n          }\n          if (bVar13 != 0xffffffff) goto LAB_00131987;\n        }\n        pdVar20 = debug_make_int_type(dhandle,4,1);\n        break;\n      }\n      bVar41 = bVar13 != 0;\n      uVar39 = (uint)bVar12;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)bVar12) && (!bVar41)) {\n          pdVar20 = debug_make_float_type(dhandle,uVar39);\n          break;\n        }\n        if ((bVar13 == 0xffffffffffffffff) && (bVar12 == 0)) goto LAB_00133395;\n        if (bVar12 == 0) goto LAB_00133a66;\n        if (((-1 < (long)bVar12) || (bVar41)) || ((bVar12 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)bVar12) {\n          pdVar20 = debug_make_complex_type(dhandle,uVar39);\n          break;\n        }\n        if (-1 < (long)bVar12) {\nLAB_001336f0:\n          if ((bVar12 == ~bVar13) || (bVar12 == bVar13 + 1)) {\n            if (bVar13 == 0x7f) goto LAB_00133dee;\n            if (bVar13 == 0x7fff) {\n              pdVar20 = debug_make_int_type(dhandle,2,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffff) {\n              pdVar20 = debug_make_int_type(dhandle,4,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\nLAB_00133b55:\n      pdVar20 = debug_make_int_type(dhandle,-uVar39,1);\n    }\n    else {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        bad_stab((char *)pbVar40);\n        return (debug_type)0x0;\n      }\n      pdVar20 = stab_find_type(dhandle,info,xtypenums);\n      if (pdVar20 == (debug_type)0x0) {\n        pcVar17 = (char *)dcgettext(0,"missing index type",5);\n        warn_stab((char *)pbVar40,pcVar17);\n        pdVar20 = debug_make_int_type(dhandle,4,0);\n      }\n      pdVar20 = debug_make_range_type(dhandle,pdVar20,bVar12,bVar13);\n    }\n    break;\n  case 0x73:\n  case 0x75:\n    bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    pbVar40 = (byte *)*pp;\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    local_f8 = (debug_baseclass *)0x0;\n    if (*pbVar40 == 0x21) {\n      *pp = (char *)(pbVar40 + 1);\n      bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n      if (**pp != ',') goto LAB_00132126;\n      iVar7 = (int)bVar13;\n      uVar10 = bVar13 & 0xffffffff;\n      *pp = *pp + 1;\n      local_f8 = (debug_baseclass *)xmalloc((ulong)(iVar7 + 1) << 3);\n      if (iVar7 != 0) {\n        uVar38 = 0;\n        cVar3 = **pp;\n        if (cVar3 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar28 = uVar38;\n        if (cVar3 == '1') {\n          bVar4 = 1;\n        }\n        else {\n          if (cVar3 == '\0') goto LAB_00132126;\n          bVar4 = 0;\n          pcVar17 = (char *)dcgettext(0,"unknown virtual character for baseclass",5);\n          warn_stab((char *)pbVar40,pcVar17);\n        }\n        do {\n          pcVar17 = *pp;\n          *pp = pcVar17 + 1;\n          cVar3 = pcVar17[1];\n          if (cVar3 == '0') {\n            dVar36 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto LAB_00132126;\n            }\n            else {\n              dVar36 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (dVar36 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00132a81;\n            }\n            dVar36 = DEBUG_VISIBILITY_PUBLIC;\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for baseclass",5);\n            warn_stab((char *)pbVar40,pcVar17);\n          }\nLAB_00132a81:\n          *pp = *pp + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132126;\n          *pp = *pp + 1;\n          pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n          if (pdVar18 == (debug_type)0x0) {\n            return (debug_type)0x0;\n          }\n          pdVar24 = debug_make_baseclass(dhandle,pdVar18,bVar13,bVar4,dVar36);\n          local_f8[uVar28] = pdVar24;\n          if (pdVar24 == (debug_baseclass)0x0) {\n            return (debug_type)0x0;\n          }\n          if (**pp != ';') {\n            return (debug_type)0x0;\n          }\n          pcVar17 = *pp + 1;\n          uVar10 = (ulong)((int)uVar28 + 1);\n          uVar38 = uVar28 + 1;\n          *pp = pcVar17;\n          if (uVar28 == iVar7 - 1) break;\n          cVar3 = *pcVar17;\n          if (cVar3 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          bVar4 = 0;\n          uVar28 = uVar38;\n        } while( true );\n      }\n      pbVar40 = (byte *)*pp;\n      local_f8[uVar10] = (debug_baseclass)0x0;\n      if (p_end <= pbVar40) {\n        return (debug_type)0x0;\n      }\n    }\n    uVar10 = 0;\n    local_130 = (debug_field *)xmalloc(0x50);\n    pbVar31 = (byte *)*pp;\n    bVar43 = false;\n    bVar2 = *pbVar31;\n    local_138._0_4_ = 10;\n    while (bVar2 != 0x3b) {\n      uVar39 = (int)uVar10 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (debug_field *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar2 = *pbVar31;\n      }\n      if (((bVar2 == 0x24) || (bVar2 == 0x2e)) && (pbVar31[1] != 0x5f)) {\n        pcVar17 = *pp;\n        pbVar31 = (byte *)(pcVar17 + 1);\n        *pp = (char *)pbVar31;\n        local_130[uVar10] = (debug_field)0x0;\n        if (p_end <= pbVar31) goto LAB_00131328;\n        if (pcVar17[1] != 'v') goto LAB_00132740;\n        *pp = pcVar17 + 2;\n        cVar3 = pcVar17[2];\n        if (cVar3 == '\0') goto LAB_00132740;\n        *pp = pcVar17 + 3;\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (pdVar18 == (debug_type)0x0) goto LAB_00131328;\n        if (cVar3 == 'b') {\n          pcVar17 = debug_get_type_name(dhandle,pdVar18);\n          if (pcVar17 == (char *)0x0) {\n            pcVar17 = (char *)dcgettext(0,"unnamed $vb type",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar17 = "FOO";\n          }\n          pcVar17 = (char *)concat(&DAT_00146a0b,pcVar17,0);\n        }\n        else {\n          pcVar17 = "_vptr$";\n          if (cVar3 != 'f') {\n            pcVar16 = (char *)dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar17 = "INVALID_CPLUSPLUS_ABBREV";\n            warn_stab((char *)pbVar31,pcVar16);\n          }\n        }\n        if (**pp != ':') goto LAB_00132740;\n        *pp = *pp + 1;\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (**pp != ',') goto LAB_00132740;\n        *pp = *pp + 1;\n        bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        if (**pp != ';') goto LAB_00132740;\n        *pp = *pp + 1;\n        pdVar15 = debug_make_field(dhandle,pcVar17,pdVar18,bVar13,0,DEBUG_VISIBILITY_PRIVATE);\n        local_130[uVar10] = pdVar15;\n        if (pdVar15 == (debug_field)0x0) goto LAB_00131328;\n      }\n      else {\n        pcVar17 = strchr((char *)pbVar31,0x3a);\n        if (pcVar17 == (char *)0x0) {\n          bad_stab((char *)pbVar40);\n          free(local_130);\n          return (debug_type)0x0;\n        }\n        pbVar31 = (byte *)*pp;\n        if (pcVar17[1] == ':') break;\n        if (p_end <= pbVar31) {\n          return (debug_type)0x0;\n        }\n        pcVar16 = savestring((char *)pbVar31,(int)pcVar17 - (int)pbVar31);\n        *pp = pcVar17 + 1;\n        if (pcVar17[1] == '/') {\n          pcVar25 = pcVar17 + 2;\n          *pp = pcVar25;\n          cVar3 = pcVar17[2];\n          if (cVar3 == '0') {\n            local_120 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (local_120 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00131b6d;\n            }\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for field",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar25 = *pp;\n            local_120 = DEBUG_VISIBILITY_PUBLIC;\n          }\nLAB_00131b6d:\n          *pp = pcVar25 + 1;\n        }\n        else {\n          local_120 = DEBUG_VISIBILITY_PUBLIC;\n        }\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (pdVar18 == (debug_type)0x0) {\n          free(pcVar16);\n          return (debug_type)0x0;\n        }\n        pcVar17 = *pp;\n        if (*pcVar17 == ':') {\n          pcVar17 = pcVar17 + 1;\n          *pp = pcVar17;\n          pcVar25 = strchr(pcVar17,0x3b);\n          if (pcVar25 == (char *)0x0) goto LAB_00132614;\n          pcVar17 = savestring(pcVar17,(int)pcVar25 - (int)pcVar17);\n          *pp = pcVar25 + 1;\n          pdVar15 = debug_make_static_member(dhandle,pcVar16,pdVar18,pcVar17,local_120);\n          bVar43 = true;\n          local_130[uVar10] = pdVar15;\n        }\n        else {\n          if (*pcVar17 != ',') {\nLAB_00132614:\n            bad_stab((char *)pbVar31);\n            free(pcVar16);\n            return (debug_type)0x0;\n          }\n          *pp = pcVar17 + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132614;\n          *pp = *pp + 1;\n          bVar14 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ';') goto LAB_00132614;\n          *pp = *pp + 1;\n          dVar36 = DEBUG_VISIBILITY_IGNORE;\n          if (bVar13 != 0 || bVar14 != 0) {\n            dVar36 = local_120;\n          }\n          pdVar15 = debug_make_field(dhandle,pcVar16,pdVar18,bVar13,bVar14,dVar36);\n          local_130[uVar10] = pdVar15;\n        }\n      }\n      pbVar31 = (byte *)*pp;\n      uVar10 = (ulong)uVar39;\n      bVar2 = *pbVar31;\n    }\n    local_130[uVar10] = (debug_field)0x0;\n    if (p_end <= pbVar31) goto LAB_00131328;\n    bVar2 = *pbVar31;\n    if (bVar2 == 0x3b) {\n      local_108 = (debug_method *)0x0;\nLAB_001334bc:\n      pbVar26 = pbVar31 + 1;\n      *pp = (char *)pbVar26;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (debug_method_variant *)0x0;\n      local_108 = (debug_method *)0x0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar26 = pbVar31;\n      do {\n        pcVar17 = strchr((char *)pbVar26,0x3a);\n        if ((pcVar17 == (char *)0x0) || (pcVar17[1] != ':')) break;\n        pcVar16 = pcVar17 + 2;\n        if ((bVar2 == 0x6f) && ((pbVar26[1] == 0x70 && (pbVar26[2] == 0x24)))) {\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          pcVar17 = pcVar16;\n          while ((cVar3 != '.' && (cVar3 != '\0'))) {\n            pcVar17 = pcVar17 + 1;\n            cVar3 = *pcVar17;\n          }\n          if (cVar3 != '.') {\n            bad_stab((char *)pbVar31);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (debug_method_variant *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = savestring(pcVar16,(int)pcVar17 - (int)pcVar16);\n          *pp = pcVar17 + 1;\n        }\n        else {\n          local_138 = savestring((char *)pbVar26,(int)pcVar17 - (int)pbVar26);\n          *pp = pcVar16;\n        }\n        local_128 = (debug_method_variant *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        pdVar18 = (debug_type)0x0;\n        do {\n          if (pdVar18 == (debug_type)0x0) {\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 != (debug_type)0x0) {\n              pcVar17 = *pp;\n              if (*pcVar17 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar17 = *pp;\nLAB_00131d3f:\n          *pp = pcVar17 + 1;\n          pcVar17 = strchr(pcVar17 + 1,0x3b);\n          if (pcVar17 == (char *)0x0) {\nLAB_00132781:\n            bad_stab((char *)pbVar31);\n            goto LAB_00132793;\n          }\n          dVar6 = debug_get_type_kind(dhandle,pdVar18);\n          bVar41 = false;\n          if (dVar6 == DEBUG_KIND_METHOD) {\n            ppdVar9 = debug_get_parameter_types(dhandle,pdVar18,&varargs);\n            bVar41 = ppdVar9 == (debug_type_conflict *)0x0;\n          }\n          pbVar40 = (byte *)savestring(*pp,(int)pcVar17 - (int)*pp);\n          *pp = pcVar17 + 1;\n          cVar3 = pcVar17[1];\n          if (cVar3 == '0') {\n            local_e4 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else if (cVar3 == '1') {\n            local_e4 = DEBUG_VISIBILITY_PROTECTED;\n          }\n          else {\n            if (cVar3 == '\0') goto LAB_00132781;\n            local_e4 = DEBUG_VISIBILITY_PUBLIC;\n          }\n          pcVar16 = pcVar17 + 2;\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          switch(cVar3) {\n          case '*':\n          case '.':\n          case '?':\n            local_118 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            pcVar17 = (char *)dcgettext(0,"const/volatile indicator missing",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar16 = *pp;\n            local_118 = 0;\n            local_f0 = 0;\n            cVar3 = *pcVar16;\n            break;\n          case 'A':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            local_f0 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n          }\n          pbVar26 = pbVar40;\n          if (cVar3 == '.') {\n            bVar44 = false;\n            pdVar19 = (debug_type)0x0;\n            *pp = pcVar16 + 1;\n            local_100 = (debug_type)0x0;\n            local_e0 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar3 != '?') {\n              if (cVar3 == '*') {\n                *pp = pcVar16 + 1;\n                bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n                pcVar17 = *pp;\n                if (*pcVar17 != ';') goto LAB_00132781;\n                local_e0 = (ulong)((uint)bVar13 & 0x7fffffff);\n                *pp = pcVar17 + 1;\n                if ((pcVar17[1] == ';') || (pcVar17[1] == '\0')) {\n                  local_100 = (debug_type)0x0;\n                  pdVar19 = (debug_type)0x0;\n                  bVar44 = false;\n                }\n                else {\n                  pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end);\n                  cVar3 = **pp;\n                  if (cVar3 == ':') {\n                    local_100 = (debug_type)0x0;\n                    bVar44 = false;\n                    pdVar19 = pdVar23;\n                  }\n                  else {\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }\n                }\n              }\n              else {\n                warn_stab((char *)pbVar31,"member function type missing");\n                bVar44 = false;\n                local_100 = (debug_type)0x0;\n                local_e0 = 0;\n                pdVar19 = (debug_type)0x0;\n              }\n              goto LAB_001322ba;\n            }\n            *pp = pcVar16 + 1;\n            sVar32 = strlen(local_138);\n            iVar7 = strncmp((char *)pbVar40,local_138,sVar32);\n            if (iVar7 == 0) {\n              local_100 = (debug_type)0x0;\n              pdVar19 = (debug_type)0x0;\n              local_e0 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = (debug_type)0x0;\n            pdVar19 = (debug_type)0x0;\n            local_e0 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            pdVar23 = stab_find_type(dhandle,info,typenums);\n            if (pdVar23 == (debug_type)0x0) goto LAB_00132793;\n            pdVar20 = debug_get_return_type(dhandle,pdVar18);\n            if (pdVar20 == (debug_type_conflict)0x0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar7 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar7 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (type_name != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar2 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) && (bVar2 != 0x51 && bVar2 != 0x74))\n                 && (iVar7 = strncmp((char *)pbVar40,"__ct",4), iVar7 != 0)) {\n                if (type_name != (char *)0x0) {\nLAB_001338f6:\n                  iVar7 = strcmp(local_138,type_name);\n                  bVar45 = iVar7 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar40;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\nLAB_0013360b:\n              pcVar16 = p;\n              local_40 = 0;\n              pcVar17 = p;\n              do {\n                pcVar25 = strchr(pcVar17,0x5f);\n                if (pcVar25 == (char *)0x0) goto LAB_00133635;\n                pcVar17 = pcVar25 + 1;\n              } while (pcVar25[1] != '_');\n              if (pcVar17 != (char *)0x0) {\n                sVar32 = strspn(pcVar25,"_");\n                if (2 < (uint)sVar32) {\n                  pcVar25 = pcVar25 + ((uint)sVar32 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              stab_bad_demangle(pcVar16);\nLAB_0013323f:\n              if (local_48 != (stab_demangle_typestring *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a76;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar41 = *pbVar34 < *pbVar35;\n              bVar45 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (type_name == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar7 = strcmp(local_138,type_name);\n              bVar45 = iVar7 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a4b;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar42 = *pbVar34 < *pbVar35;\n              bVar46 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              arg_types = (stab_demangle_typestring *)xmalloc(8);\n              arg_types->typestring = (char *)0x0;\n              bVar4 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (type_name != (char *)0x0) {\n                sVar32 = strlen(type_name);\n                local_d8 = sVar32 & 0xffffffff;\n              }\n              pcVar16 = "C";\n              pcVar17 = "V";\n              if (local_f0 == 0) {\n                pcVar16 = "";\n              }\n              if (local_118 == 0) {\n                pcVar17 = "";\n              }\n              local_c0 = type_name;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)xtypenums,"__%s%s");\n              }\n              else if ((type_name == (char *)0x0) ||\n                      (pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0)) {\n                sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8);\n              }\n              else {\n                sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)xtypenums;\n              do {\n                puVar29 = puVar30;\n                uVar8 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar39 = uVar8 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar39 == 0);\n              bVar41 = (uVar8 & 0x8080) == 0;\n              if (bVar41) {\n                uVar39 = uVar39 >> 0x10;\n              }\n              cVar3 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar7 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar39,(byte)uVar39)) -\n                      (int)xtypenums;\n              sVar32 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar7 = iVar7 + (int)local_d8 + 1 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar26 = (byte *)xmalloc(iVar7);\n                *pbVar26 = 0;\n              }\n              else {\n                lVar11 = -1;\n                pcVar17 = local_138;\n                do {\n                  if (lVar11 == 0) break;\n                  lVar11 = lVar11 + -1;\n                  cVar1 = *pcVar17;\n                  pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar7 = ((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar17 == (char *)0x0) {\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar11 = -1;\n                  pcVar16 = pcVar17;\n                  do {\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar3 != '\0');\n                  pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);\n                  strncpy((char *)pbVar26,local_138,3);\n                  strcpy((char *)(pbVar26 + 3),pcVar17);\n                }\n                else {\n                  pbVar26 = (byte *)xmalloc(iVar7);\n                  strcpy((char *)pbVar26,local_138);\n                }\n              }\n              sVar32 = strlen((char *)pbVar26);\n              local_d8 = sVar32 & 0xffffffff;\n              pcVar17 = stpcpy((char *)(pbVar26 + sVar32),(char *)xtypenums);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar17,local_c0);\n              }\n              strcat((char *)pbVar26,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar26 == 0x5f) && (pbVar26[1] == 0x5a)) {\nLAB_00133b71:\n                p = (char *)pbVar26;\n                pdVar27 = cplus_demangle_v3_components((char *)pbVar26,3,(void **)xtypenums);\n                if (pdVar27 == (demangle_component *)0x0) {\n                  stab_bad_demangle((char *)pbVar26);\n                }\n                else {\n                  if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }\n                  pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar17);\n                  free((void *)xtypenums);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar26;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pcVar25 = p + local_d8;\n              pcVar16 = p;\nLAB_001330d0:\n              bVar2 = pcVar25[2];\n              if (pcVar16 == pcVar25) {\n                if (((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) &&\n                   (pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74)) {\n                  for (; *pcVar17 == '_'; pcVar17 = pcVar17 + 1) {\n                  }\n                  pcVar17 = strstr(pcVar17,"__");\n                  if ((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')) {\n                    stab_bad_demangle(pcVar25);\n                    goto LAB_0013323f;\n                  }\n                  iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17);\n                  goto LAB_001330fd;\n                }\n                p = pcVar25 + 2;\n              }\n              else {\n                if (bVar2 == 0) goto LAB_00133635;\n                iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25);\nLAB_001330fd:\n                if (iVar7 == 0) goto LAB_0013323f;\n              }\n              pcVar17 = p;\n              cVar3 = *p;\n              if (cVar3 != '\0') {\n                pcVar16 = (char *)0x0;\n                bVar41 = false;\n                pstart = (char **)0x0;\n                do {\n                  pcVar25 = p;\n                  switch(cVar3) {\n                  case '0':\n                  case '1':\n                  case '2':\n                  case '3':\n                  case '4':\n                  case '5':\n                  case '6':\n                  case '7':\n                  case '8':\n                  case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;\n                  default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'C':\n                  case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;\n                  case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;\n                  case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar41) {\nLAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    pstart = (char **)0x1;\n                  }\n                  cVar3 = *p;\n                } while (cVar3 != '\0');\n                if (((int)pstart == 0) &&\n                   (bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (stab_demangle_typestring *)0x0;\n              if (local_58 == (stab_demangle_typestring *)0x0) {\n                pcVar17 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar17);\n              }\n              varargs_1 = local_50[0];\n              arg_types = local_58;\nLAB_00133211:\n              bVar4 = varargs_1;\n              if (arg_types == (stab_demangle_typestring *)0x0) goto LAB_00132793;\n            }\n            pdVar18 = debug_make_method_type\n                                (dhandle,pdVar20,pdVar23,(debug_type_conflict *)arg_types,bVar4);\n            if (pdVar18 == (debug_type_conflict)0x0) goto LAB_00132793;\n          }\n          uVar39 = local_ec + 1;\n          if (local_e8 <= uVar39) {\n            local_e8 = local_e8 + 10;\n            local_128 = (debug_method_variant *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          if (bVar44) {\n            pdVar21 = debug_make_static_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118);\n            local_128[local_ec] = pdVar21;\n          }\n          else {\n            pdVar21 = debug_make_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118,\n                                 local_e0,local_100);\n            local_128[local_ec] = pdVar21;\n          }\n          if (pdVar21 == (debug_method_variant)0x0) goto LAB_00132793;\n          pcVar17 = *pp;\n        } while ((*pcVar17 != ';') && (pdVar18 = pdVar19, local_ec = uVar39, *pcVar17 != '\0'));\n        local_128[uVar39] = (debug_method_variant)0x0;\n        if (*pcVar17 != '\0') {\n          *pp = pcVar17 + 1;\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = (debug_method *)xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        pdVar22 = debug_make_method(dhandle,local_138,local_128);\n        local_108[local_c8] = pdVar22;\n        pbVar26 = (byte *)*pp;\n        bVar2 = *pbVar26;\n        local_c8 = uVar39;\n      } while (bVar2 != 0x3b);\n      if (local_108 != (debug_method *)0x0) {\n        local_108[local_c8] = (debug_method)0x0;\n      }\n      if (p_end <= pbVar26) goto LAB_00131328;\n      pbVar31 = pbVar26;\n      if (*pbVar26 == 0x3b) goto LAB_001334bc;\n    }\n    if (*pbVar26 == 0x7e) {\n      pbVar40 = pbVar26 + 1;\n      *pp = (char *)pbVar40;\n      if (((pbVar26[1] & 0xef) == 0x2d) || (pbVar26[1] == 0x2b)) {\n        pbVar40 = pbVar26 + 2;\n        *pp = (char *)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *pp = (char *)(pbVar40 + 1);\n      bVar4 = parse_stab_type_number(pp,xtypenums,p_end);\n      if (bVar4 == 0) goto LAB_00131328;\n      if (xtypenums[0] != typenums[0]) {\nLAB_00132596:\n        *pp = (char *)(pbVar40 + 1);\n        pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        pcVar17 = *pp;\n        cVar3 = *pcVar17;\n        while ((cVar3 != ';' && (cVar3 != '\0'))) {\n          pcVar17 = pcVar17 + 1;\n          cVar3 = *pcVar17;\n        }\n        if (cVar3 != ';') {\nLAB_00132740:\n          bad_stab((char *)pbVar31);\nLAB_00131328:\n          free(local_130);\n          return (debug_type)0x0;\n        }\n        *pp = pcVar17 + 1;\n        goto LAB_0013244c;\n      }\n      if (xtypenums[1] != typenums[1]) goto LAB_00132596;\n      bVar4 = 1;\n      pdVar20 = (debug_type_conflict)0x0;\n    }\n    else {\nLAB_0013244a:\n      pdVar20 = (debug_type_conflict)0x0;\nLAB_0013244c:\n      if (((local_108 == (debug_method *)0x0 && local_f8 == (debug_baseclass *)0x0) &&\n           pdVar20 == (debug_type_conflict)0x0) && (!bVar43)) {\n        pdVar20 = debug_make_struct_type(dhandle,(uint)(bVar37 == 0x73),bVar12,local_130);\n        break;\n      }\n      bVar4 = 0;\n    }\n    pdVar20 = debug_make_object_type\n                        (dhandle,(uint)(bVar37 == 0x73),bVar12,local_130,local_f8,local_108,pdVar20,\n                         bVar4);\n    break;\n  case 0x78:\n    bVar47 = pbVar26[1];\n    if (bVar47 == 0x65) {\n      dVar6 = DEBUG_KIND_ENUM;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        dVar6 = DEBUG_KIND_STRUCT;\n        if ((bVar47 == 0x73) || (dVar6 = DEBUG_KIND_UNION, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      dVar6 = DEBUG_KIND_STRUCT;\n      pcVar17 = (char *)dcgettext(0,"unrecognized cross reference type",5);\n      warn_stab((char *)pbVar31,pcVar17);\n      pbVar40 = (byte *)*pp;\n    }\nLAB_00131e0e:\n    pbVar40 = pbVar40 + 1;\n    *pp = (char *)pbVar40;\n    pcVar16 = strchr((char *)pbVar40,0x3c);\n    pcVar17 = strchr((char *)pbVar40,0x3a);\n    if (pcVar17 != (char *)0x0) {\n      if (((pcVar16 == (char *)0x0) || (pcVar17 <= pcVar16)) || (pcVar17[1] != ':')) {\nLAB_00131e52:\n        sVar32 = (long)pcVar17 - (long)pbVar40;\n        if (((type_name != (char *)0x0) &&\n            (iVar7 = strncmp(type_name,(char *)pbVar40,sVar32), iVar7 == 0)) &&\n           (type_name[sVar32] == '\0')) {\n          info->self_crossref = 1;\n        }\n        pdVar20 = stab_find_tagged_type\n                            (dhandle,(stab_handle *)&info->tags,(char *)pbVar40,(int)sVar32,dVar6);\n        *pp = pcVar17 + 1;\n        break;\n      }\n      cVar3 = *pcVar16;\n      if (cVar3 != '\0') {\n        iVar7 = 0;\n        pcVar17 = pcVar16;\n        do {\n          if (cVar3 == '<') {\n            iVar7 = iVar7 + 1;\n          }\n          else if (cVar3 == '>') {\n            iVar7 = iVar7 + -1;\n          }\n          else if ((iVar7 == 0) && (cVar3 == ':')) goto LAB_00131e52;\n          pcVar17 = pcVar17 + 1;\n          cVar3 = *pcVar17;\n        } while (cVar3 != '\0');\n      }\n    }\nswitchD_001311d2_caseD_24:\n    bad_stab((char *)pbVar31);\n    return (debug_type)0x0;\n  }\n  if (pdVar20 != (debug_type_conflict)0x0) {\n    if (typenums[0] != -1) {\n      ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums);\n      if (ppdVar9 == (debug_type_conflict *)0x0) {\n        return (debug_type)0x0;\n      }\n      *ppdVar9 = pdVar20;\n    }\n    if (local_13c == 0xffffffff) {\n      return pdVar20;\n    }\n    bVar4 = debug_record_type_size(dhandle,pdVar20,local_13c);\n    if (bVar4 != 0) {\n      return pdVar20;\n    }\n  }\n  return (debug_type)0x0;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "byte bVar2;" type_identifier identifier ;) (declaration "char cVar3;" primitive_type identifier ;) (declaration "bfd_boolean bVar4;" type_identifier identifier ;) (declaration "bfd_boolean bVar5;" type_identifier identifier ;) (declaration "debug_type_kind dVar6;" type_identifier identifier ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "debug_type_conflict *ppdVar9;" type_identifier (pointer_declarator "*ppdVar9" * identifier) ;) (declaration "ulong uVar10;" type_identifier identifier ;) (declaration "long lVar11;" (sized_type_specifier "long" long) identifier ;) (declaration "bfd_signed_vma *values;" type_identifier (pointer_declarator "*values" * identifier) ;) (declaration "bfd_vma bVar12;" type_identifier identifier ;) (declaration "bfd_vma bVar13;" type_identifier identifier ;) (declaration "bfd_vma bVar14;" type_identifier identifier ;) (declaration "debug_field pdVar15;" type_identifier identifier ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "char *pcVar17;" primitive_type (pointer_declarator "*pcVar17" * identifier) ;) (declaration "debug_type pdVar18;" type_identifier identifier ;) (declaration "debug_type pdVar19;" type_identifier identifier ;) (declaration "debug_type_conflict pdVar20;" type_identifier identifier ;) (declaration "debug_method_variant pdVar21;" type_identifier identifier ;) (declaration "debug_method pdVar22;" type_identifier identifier ;) (declaration "debug_type pdVar23;" type_identifier identifier ;) (declaration "stab_demangle_typestring *arg_types;" type_identifier (pointer_declarator "*arg_types" * identifier) ;) (declaration "debug_baseclass pdVar24;" type_identifier identifier ;) (declaration "char *pcVar25;" primitive_type (pointer_declarator "*pcVar25" * identifier) ;) (declaration "byte *pbVar26;" type_identifier (pointer_declarator "*pbVar26" * identifier) ;) (declaration "demangle_component *pdVar27;" type_identifier (pointer_declarator "*pdVar27" * identifier) ;) (declaration "bfd_vma lower;" type_identifier identifier ;) (declaration "ulong uVar28;" type_identifier identifier ;) (declaration "uint *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "uint *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "char **pstart;" primitive_type (pointer_declarator "**pstart" * (pointer_declarator "*pstart" * identifier)) ;) (declaration "byte *pbVar31;" type_identifier (pointer_declarator "*pbVar31" * identifier) ;) (declaration "size_t sVar32;" primitive_type identifier ;) (declaration "debug_type_conflict *ppdVar33;" type_identifier (pointer_declarator "*ppdVar33" * identifier) ;) (declaration "byte *pbVar34;" type_identifier (pointer_declarator "*pbVar34" * identifier) ;) (declaration "byte *pbVar35;" type_identifier (pointer_declarator "*pbVar35" * identifier) ;) (declaration "debug_visibility dVar36;" type_identifier identifier ;) (declaration "byte bVar37;" type_identifier identifier ;) (declaration "ulong uVar38;" type_identifier identifier ;) (declaration "uint uVar39;" type_identifier identifier ;) (declaration "byte *pbVar40;" type_identifier (pointer_declarator "*pbVar40" * identifier) ;) (declaration "bool bVar41;" primitive_type identifier ;) (declaration "bool bVar42;" primitive_type identifier ;) (declaration "bool bVar43;" primitive_type identifier ;) (declaration "bool bVar44;" primitive_type identifier ;) (declaration "bool bVar45;" primitive_type identifier ;) (declaration "bool bVar46;" primitive_type identifier ;) (declaration "byte bVar47;" type_identifier identifier ;) (declaration "char **local_148;" primitive_type (pointer_declarator "**local_148" * (pointer_declarator "*local_148" * identifier)) ;) (declaration "uint local_13c;" type_identifier identifier ;) (declaration "char *local_138;" primitive_type (pointer_declarator "*local_138" * identifier) ;) (declaration "debug_field *local_130;" type_identifier (pointer_declarator "*local_130" * identifier) ;) (declaration "debug_method_variant *local_128;" type_identifier (pointer_declarator "*local_128" * identifier) ;) (declaration "debug_visibility local_120;" type_identifier identifier ;) (declaration "bfd_boolean local_118;" type_identifier identifier ;) (declaration "debug_method *local_108;" type_identifier (pointer_declarator "*local_108" * identifier) ;) (declaration "debug_type local_100;" type_identifier identifier ;) (declaration "debug_baseclass *local_f8;" type_identifier (pointer_declarator "*local_f8" * identifier) ;) (declaration "int local_f0;" primitive_type identifier ;) (declaration "uint local_ec;" type_identifier identifier ;) (declaration "uint local_e8;" type_identifier identifier ;) (declaration "debug_visibility local_e4;" type_identifier identifier ;) (declaration "ulong local_e0;" type_identifier identifier ;) (declaration "ulong local_d8;" type_identifier identifier ;) (declaration "uint local_c8;" type_identifier identifier ;) (declaration "uint local_c4;" type_identifier identifier ;) (declaration "char *local_c0;" primitive_type (pointer_declarator "*local_c0" * identifier) ;) (declaration "bfd_boolean varargs;" type_identifier identifier ;) (declaration "bfd_boolean varargs_1;" type_identifier identifier ;) (declaration "char *p;" primitive_type (pointer_declarator "*p" * identifier) ;) (declaration "int typenums [2];" primitive_type (array_declarator "typenums [2]" identifier [ number_literal ]) ;) (declaration "int xtypenums [2];" primitive_type (array_declarator "xtypenums [2]" identifier [ number_literal ]) ;) (declaration "stab_demangle_typestring *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "uint local_50 [2];" type_identifier (array_declarator "local_50 [2]" identifier [ number_literal ]) ;) (declaration "stab_demangle_typestring *local_48;" type_identifier (pointer_declarator "*local_48" * identifier) ;) (declaration "uint local_40;" type_identifier identifier ;) (declaration "uint local_3c;" type_identifier identifier ;) (expression_statement "bVar47 = 0;" (assignment_expression "bVar47 = 0" identifier = number_literal) ;) (if_statement "if (slotp != (debug_type_conflict **)0x0) {\n    *slotp = (debug_type_conflict *)0x0;\n  }" if (parenthesized_expression "(slotp != (debug_type_conflict **)0x0)" ( (binary_expression "slotp != (debug_type_conflict **)0x0" identifier != (cast_expression "(debug_type_conflict **)0x0" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n    *slotp = (debug_type_conflict *)0x0;\n  }" { (expression_statement "*slotp = (debug_type_conflict *)0x0;" (assignment_expression "*slotp = (debug_type_conflict *)0x0" (pointer_expression "*slotp" * identifier) = (cast_expression "(debug_type_conflict *)0x0" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "pbVar31 = (byte *)*pp;" (assignment_expression "pbVar31 = (byte *)*pp" identifier = (cast_expression "(byte *)*pp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp" * identifier))) ;) (if_statement "if (p_end <= pbVar31) {\n    return (debug_type)0x0;\n  }" if (parenthesized_expression "(p_end <= pbVar31)" ( (binary_expression "p_end <= pbVar31" identifier <= identifier) )) (compound_statement "{\n    return (debug_type)0x0;\n  }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "info->self_crossref = 0;" (assignment_expression "info->self_crossref = 0" (field_expression "info->self_crossref" identifier -> field_identifier) = number_literal) ;) (expression_statement "bVar37 = *pbVar31;" (assignment_expression "bVar37 = *pbVar31" identifier = (pointer_expression "*pbVar31" * identifier)) ;) (if_statement "if (((_sch_istable[(ulong)bVar37 * 2] & 4) != 0) || (bVar37 == 0x2d || bVar37 == 0x28)) {\n    bVar4 = parse_stab_type_number(pp,typenums,p_end);\n    if (bVar4 == 0) {\n      return (debug_type)0x0;\n    }\n    pcVar17 = *pp;\n    if (*pcVar17 != '=') {\n      pdVar18 = stab_find_type(dhandle,info,typenums);\n      return pdVar18;\n    }\n    if (((slotp != (debug_type_conflict **)0x0) && (-1 < typenums[0])) && (-1 < (long)typenums)) {\n      ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums);\n      pcVar17 = *pp;\n      *slotp = ppdVar9;\n    }\n    bVar4 = 0;\n    *pp = pcVar17 + 1;\n    local_13c = 0xffffffff;\n    pbVar26 = (byte *)(pcVar17 + 1);\n    do {\n      while( true ) {\n        while( true ) {\n          bVar37 = *pbVar26;\n          pbVar40 = pbVar26 + 1;\n          if (bVar37 != 0x40) goto LAB_001311b2;\n          bVar37 = pbVar26[1];\n          uVar10 = (ulong)bVar37;\n          if (((_sch_istable[uVar10 * 2] & 4) != 0) || (bVar37 == 0x2d || bVar37 == 0x28)) {\n            *pp = (char *)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar10 != ';') {\n            if ((char)uVar10 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar10 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *pp = (char *)pbVar40;\n          bVar37 = pbVar26[1];\n          if (bVar37 != 0x53) break;\n          bVar4 = 1;\n          pbVar26 = pbVar40;\n        }\n        if (bVar37 != 0x73) break;\n        lVar11 = strtol((char *)(pbVar26 + 2),(char **)0x0,10);\n        if ((int)lVar11 < 8) {\n          local_13c = 0xffffffff;\n          pbVar26 = (byte *)*pp;\n        }\n        else {\n          local_13c = (int)lVar11 >> 3;\n          pbVar26 = (byte *)*pp;\n        }\n      }\n      pbVar26 = pbVar40;\n    } while (bVar37 != 0);\n    goto switchD_001311d2_caseD_24;\n  }" if (parenthesized_expression "(((_sch_istable[(ulong)bVar37 * 2] & 4) != 0) || (bVar37 == 0x2d || bVar37 == 0x28))" ( (binary_expression "((_sch_istable[(ulong)bVar37 * 2] & 4) != 0) || (bVar37 == 0x2d || bVar37 == 0x28)" (parenthesized_expression "((_sch_istable[(ulong)bVar37 * 2] & 4) != 0)" ( (binary_expression "(_sch_istable[(ulong)bVar37 * 2] & 4) != 0" (parenthesized_expression "(_sch_istable[(ulong)bVar37 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)bVar37 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar37 * 2]" identifier [ (binary_expression "(ulong)bVar37 * 2" (cast_expression "(ulong)bVar37" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) != number_literal) )) || (parenthesized_expression "(bVar37 == 0x2d || bVar37 == 0x28)" ( (binary_expression "bVar37 == 0x2d || bVar37 == 0x28" (binary_expression "bVar37 == 0x2d" identifier == number_literal) || (binary_expression "bVar37 == 0x28" identifier == number_literal)) ))) )) (compound_statement "{\n    bVar4 = parse_stab_type_number(pp,typenums,p_end);\n    if (bVar4 == 0) {\n      return (debug_type)0x0;\n    }\n    pcVar17 = *pp;\n    if (*pcVar17 != '=') {\n      pdVar18 = stab_find_type(dhandle,info,typenums);\n      return pdVar18;\n    }\n    if (((slotp != (debug_type_conflict **)0x0) && (-1 < typenums[0])) && (-1 < (long)typenums)) {\n      ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums);\n      pcVar17 = *pp;\n      *slotp = ppdVar9;\n    }\n    bVar4 = 0;\n    *pp = pcVar17 + 1;\n    local_13c = 0xffffffff;\n    pbVar26 = (byte *)(pcVar17 + 1);\n    do {\n      while( true ) {\n        while( true ) {\n          bVar37 = *pbVar26;\n          pbVar40 = pbVar26 + 1;\n          if (bVar37 != 0x40) goto LAB_001311b2;\n          bVar37 = pbVar26[1];\n          uVar10 = (ulong)bVar37;\n          if (((_sch_istable[uVar10 * 2] & 4) != 0) || (bVar37 == 0x2d || bVar37 == 0x28)) {\n            *pp = (char *)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar10 != ';') {\n            if ((char)uVar10 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar10 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *pp = (char *)pbVar40;\n          bVar37 = pbVar26[1];\n          if (bVar37 != 0x53) break;\n          bVar4 = 1;\n          pbVar26 = pbVar40;\n        }\n        if (bVar37 != 0x73) break;\n        lVar11 = strtol((char *)(pbVar26 + 2),(char **)0x0,10);\n        if ((int)lVar11 < 8) {\n          local_13c = 0xffffffff;\n          pbVar26 = (byte *)*pp;\n        }\n        else {\n          local_13c = (int)lVar11 >> 3;\n          pbVar26 = (byte *)*pp;\n        }\n      }\n      pbVar26 = pbVar40;\n    } while (bVar37 != 0);\n    goto switchD_001311d2_caseD_24;\n  }" { (expression_statement "bVar4 = parse_stab_type_number(pp,typenums,p_end);" (assignment_expression "bVar4 = parse_stab_type_number(pp,typenums,p_end)" identifier = (call_expression "parse_stab_type_number(pp,typenums,p_end)" identifier (argument_list "(pp,typenums,p_end)" ( identifier , identifier , identifier )))) ;) (if_statement "if (bVar4 == 0) {\n      return (debug_type)0x0;\n    }" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      return (debug_type)0x0;\n    }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "pcVar17 = *pp;" (assignment_expression "pcVar17 = *pp" identifier = (pointer_expression "*pp" * identifier)) ;) (if_statement "if (*pcVar17 != '=') {\n      pdVar18 = stab_find_type(dhandle,info,typenums);\n      return pdVar18;\n    }" if (parenthesized_expression "(*pcVar17 != '=')" ( (binary_expression "*pcVar17 != '='" (pointer_expression "*pcVar17" * identifier) != (char_literal "'='" ' character ')) )) (compound_statement "{\n      pdVar18 = stab_find_type(dhandle,info,typenums);\n      return pdVar18;\n    }" { (expression_statement "pdVar18 = stab_find_type(dhandle,info,typenums);" (assignment_expression "pdVar18 = stab_find_type(dhandle,info,typenums)" identifier = (call_expression "stab_find_type(dhandle,info,typenums)" identifier (argument_list "(dhandle,info,typenums)" ( identifier , identifier , identifier )))) ;) (return_statement "return pdVar18;" return identifier ;) })) (if_statement "if (((slotp != (debug_type_conflict **)0x0) && (-1 < typenums[0])) && (-1 < (long)typenums)) {\n      ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums);\n      pcVar17 = *pp;\n      *slotp = ppdVar9;\n    }" if (parenthesized_expression "(((slotp != (debug_type_conflict **)0x0) && (-1 < typenums[0])) && (-1 < (long)typenums))" ( (binary_expression "((slotp != (debug_type_conflict **)0x0) && (-1 < typenums[0])) && (-1 < (long)typenums)" (parenthesized_expression "((slotp != (debug_type_conflict **)0x0) && (-1 < typenums[0]))" ( (binary_expression "(slotp != (debug_type_conflict **)0x0) && (-1 < typenums[0])" (parenthesized_expression "(slotp != (debug_type_conflict **)0x0)" ( (binary_expression "slotp != (debug_type_conflict **)0x0" identifier != (cast_expression "(debug_type_conflict **)0x0" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) && (parenthesized_expression "(-1 < typenums[0])" ( (binary_expression "-1 < typenums[0]" number_literal < (subscript_expression "typenums[0]" identifier [ number_literal ])) ))) )) && (parenthesized_expression "(-1 < (long)typenums)" ( (binary_expression "-1 < (long)typenums" number_literal < (cast_expression "(long)typenums" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))) )) (compound_statement "{\n      ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums);\n      pcVar17 = *pp;\n      *slotp = ppdVar9;\n    }" { (expression_statement "ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums);" (assignment_expression "ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums)" identifier = (call_expression "stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums)" identifier (argument_list "((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums)" ( (cast_expression "(stab_handle *)&info->files" ( (type_descriptor "stab_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&info->files" & (field_expression "info->files" identifier -> field_identifier))) , (cast_expression "(int *)&info->file_types" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&info->file_types" & (field_expression "info->file_types" identifier -> field_identifier))) , (cast_expression "(stab_handle *)typenums" ( (type_descriptor "stab_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "pcVar17 = *pp;" (assignment_expression "pcVar17 = *pp" identifier = (pointer_expression "*pp" * identifier)) ;) (expression_statement "*slotp = ppdVar9;" (assignment_expression "*slotp = ppdVar9" (pointer_expression "*slotp" * identifier) = identifier) ;) })) (expression_statement "bVar4 = 0;" (assignment_expression "bVar4 = 0" identifier = number_literal) ;) (expression_statement "*pp = pcVar17 + 1;" (assignment_expression "*pp = pcVar17 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (expression_statement "local_13c = 0xffffffff;" (assignment_expression "local_13c = 0xffffffff" identifier = number_literal) ;) (expression_statement "pbVar26 = (byte *)(pcVar17 + 1);" (assignment_expression "pbVar26 = (byte *)(pcVar17 + 1)" identifier = (cast_expression "(byte *)(pcVar17 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar17 + 1)" ( (binary_expression "pcVar17 + 1" identifier + number_literal) )))) ;) (do_statement "do {\n      while( true ) {\n        while( true ) {\n          bVar37 = *pbVar26;\n          pbVar40 = pbVar26 + 1;\n          if (bVar37 != 0x40) goto LAB_001311b2;\n          bVar37 = pbVar26[1];\n          uVar10 = (ulong)bVar37;\n          if (((_sch_istable[uVar10 * 2] & 4) != 0) || (bVar37 == 0x2d || bVar37 == 0x28)) {\n            *pp = (char *)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar10 != ';') {\n            if ((char)uVar10 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar10 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *pp = (char *)pbVar40;\n          bVar37 = pbVar26[1];\n          if (bVar37 != 0x53) break;\n          bVar4 = 1;\n          pbVar26 = pbVar40;\n        }\n        if (bVar37 != 0x73) break;\n        lVar11 = strtol((char *)(pbVar26 + 2),(char **)0x0,10);\n        if ((int)lVar11 < 8) {\n          local_13c = 0xffffffff;\n          pbVar26 = (byte *)*pp;\n        }\n        else {\n          local_13c = (int)lVar11 >> 3;\n          pbVar26 = (byte *)*pp;\n        }\n      }\n      pbVar26 = pbVar40;\n    } while (bVar37 != 0);" do (compound_statement "{\n      while( true ) {\n        while( true ) {\n          bVar37 = *pbVar26;\n          pbVar40 = pbVar26 + 1;\n          if (bVar37 != 0x40) goto LAB_001311b2;\n          bVar37 = pbVar26[1];\n          uVar10 = (ulong)bVar37;\n          if (((_sch_istable[uVar10 * 2] & 4) != 0) || (bVar37 == 0x2d || bVar37 == 0x28)) {\n            *pp = (char *)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar10 != ';') {\n            if ((char)uVar10 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar10 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *pp = (char *)pbVar40;\n          bVar37 = pbVar26[1];\n          if (bVar37 != 0x53) break;\n          bVar4 = 1;\n          pbVar26 = pbVar40;\n        }\n        if (bVar37 != 0x73) break;\n        lVar11 = strtol((char *)(pbVar26 + 2),(char **)0x0,10);\n        if ((int)lVar11 < 8) {\n          local_13c = 0xffffffff;\n          pbVar26 = (byte *)*pp;\n        }\n        else {\n          local_13c = (int)lVar11 >> 3;\n          pbVar26 = (byte *)*pp;\n        }\n      }\n      pbVar26 = pbVar40;\n    }" { (while_statement "while( true ) {\n        while( true ) {\n          bVar37 = *pbVar26;\n          pbVar40 = pbVar26 + 1;\n          if (bVar37 != 0x40) goto LAB_001311b2;\n          bVar37 = pbVar26[1];\n          uVar10 = (ulong)bVar37;\n          if (((_sch_istable[uVar10 * 2] & 4) != 0) || (bVar37 == 0x2d || bVar37 == 0x28)) {\n            *pp = (char *)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar10 != ';') {\n            if ((char)uVar10 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar10 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *pp = (char *)pbVar40;\n          bVar37 = pbVar26[1];\n          if (bVar37 != 0x53) break;\n          bVar4 = 1;\n          pbVar26 = pbVar40;\n        }\n        if (bVar37 != 0x73) break;\n        lVar11 = strtol((char *)(pbVar26 + 2),(char **)0x0,10);\n        if ((int)lVar11 < 8) {\n          local_13c = 0xffffffff;\n          pbVar26 = (byte *)*pp;\n        }\n        else {\n          local_13c = (int)lVar11 >> 3;\n          pbVar26 = (byte *)*pp;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        while( true ) {\n          bVar37 = *pbVar26;\n          pbVar40 = pbVar26 + 1;\n          if (bVar37 != 0x40) goto LAB_001311b2;\n          bVar37 = pbVar26[1];\n          uVar10 = (ulong)bVar37;\n          if (((_sch_istable[uVar10 * 2] & 4) != 0) || (bVar37 == 0x2d || bVar37 == 0x28)) {\n            *pp = (char *)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar10 != ';') {\n            if ((char)uVar10 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar10 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *pp = (char *)pbVar40;\n          bVar37 = pbVar26[1];\n          if (bVar37 != 0x53) break;\n          bVar4 = 1;\n          pbVar26 = pbVar40;\n        }\n        if (bVar37 != 0x73) break;\n        lVar11 = strtol((char *)(pbVar26 + 2),(char **)0x0,10);\n        if ((int)lVar11 < 8) {\n          local_13c = 0xffffffff;\n          pbVar26 = (byte *)*pp;\n        }\n        else {\n          local_13c = (int)lVar11 >> 3;\n          pbVar26 = (byte *)*pp;\n        }\n      }" { (while_statement "while( true ) {\n          bVar37 = *pbVar26;\n          pbVar40 = pbVar26 + 1;\n          if (bVar37 != 0x40) goto LAB_001311b2;\n          bVar37 = pbVar26[1];\n          uVar10 = (ulong)bVar37;\n          if (((_sch_istable[uVar10 * 2] & 4) != 0) || (bVar37 == 0x2d || bVar37 == 0x28)) {\n            *pp = (char *)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar10 != ';') {\n            if ((char)uVar10 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar10 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *pp = (char *)pbVar40;\n          bVar37 = pbVar26[1];\n          if (bVar37 != 0x53) break;\n          bVar4 = 1;\n          pbVar26 = pbVar40;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          bVar37 = *pbVar26;\n          pbVar40 = pbVar26 + 1;\n          if (bVar37 != 0x40) goto LAB_001311b2;\n          bVar37 = pbVar26[1];\n          uVar10 = (ulong)bVar37;\n          if (((_sch_istable[uVar10 * 2] & 4) != 0) || (bVar37 == 0x2d || bVar37 == 0x28)) {\n            *pp = (char *)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar10 != ';') {\n            if ((char)uVar10 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar10 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *pp = (char *)pbVar40;\n          bVar37 = pbVar26[1];\n          if (bVar37 != 0x53) break;\n          bVar4 = 1;\n          pbVar26 = pbVar40;\n        }" { (expression_statement "bVar37 = *pbVar26;" (assignment_expression "bVar37 = *pbVar26" identifier = (pointer_expression "*pbVar26" * identifier)) ;) (expression_statement "pbVar40 = pbVar26 + 1;" (assignment_expression "pbVar40 = pbVar26 + 1" identifier = (binary_expression "pbVar26 + 1" identifier + number_literal)) ;) (if_statement "if (bVar37 != 0x40) goto LAB_001311b2;" if (parenthesized_expression "(bVar37 != 0x40)" ( (binary_expression "bVar37 != 0x40" identifier != number_literal) )) (goto_statement "goto LAB_001311b2;" goto statement_identifier ;)) (expression_statement "bVar37 = pbVar26[1];" (assignment_expression "bVar37 = pbVar26[1]" identifier = (subscript_expression "pbVar26[1]" identifier [ number_literal ])) ;) (expression_statement "uVar10 = (ulong)bVar37;" (assignment_expression "uVar10 = (ulong)bVar37" identifier = (cast_expression "(ulong)bVar37" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (((_sch_istable[uVar10 * 2] & 4) != 0) || (bVar37 == 0x2d || bVar37 == 0x28)) {\n            *pp = (char *)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }" if (parenthesized_expression "(((_sch_istable[uVar10 * 2] & 4) != 0) || (bVar37 == 0x2d || bVar37 == 0x28))" ( (binary_expression "((_sch_istable[uVar10 * 2] & 4) != 0) || (bVar37 == 0x2d || bVar37 == 0x28)" (parenthesized_expression "((_sch_istable[uVar10 * 2] & 4) != 0)" ( (binary_expression "(_sch_istable[uVar10 * 2] & 4) != 0" (parenthesized_expression "(_sch_istable[uVar10 * 2] & 4)" ( (binary_expression "_sch_istable[uVar10 * 2] & 4" (subscript_expression "_sch_istable[uVar10 * 2]" identifier [ (binary_expression "uVar10 * 2" identifier * number_literal) ]) & number_literal) )) != number_literal) )) || (parenthesized_expression "(bVar37 == 0x2d || bVar37 == 0x28)" ( (binary_expression "bVar37 == 0x2d || bVar37 == 0x28" (binary_expression "bVar37 == 0x2d" identifier == number_literal) || (binary_expression "bVar37 == 0x28" identifier == number_literal)) ))) )) (compound_statement "{\n            *pp = (char *)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }" { (expression_statement "*pp = (char *)pbVar40;" (assignment_expression "*pp = (char *)pbVar40" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (goto_statement "goto switchD_001311d2_caseD_40;" goto statement_identifier ;) })) (while_statement "while ((char)uVar10 != ';') {\n            if ((char)uVar10 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar10 = (ulong)*pbVar40;\n          }" while (parenthesized_expression "((char)uVar10 != ';')" ( (binary_expression "(char)uVar10 != ';'" (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "';'" ' character ')) )) (compound_statement "{\n            if ((char)uVar10 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar10 = (ulong)*pbVar40;\n          }" { (if_statement "if ((char)uVar10 == '\0') goto switchD_001311d2_caseD_24;" if (parenthesized_expression "((char)uVar10 == '\0')" ( (binary_expression "(char)uVar10 == '\0'" (cast_expression "(char)uVar10" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;)) (expression_statement "pbVar40 = pbVar40 + 1;" (assignment_expression "pbVar40 = pbVar40 + 1" identifier = (binary_expression "pbVar40 + 1" identifier + number_literal)) ;) (expression_statement "uVar10 = (ulong)*pbVar40;" (assignment_expression "uVar10 = (ulong)*pbVar40" identifier = (binary_expression "(ulong)*pbVar40" (parenthesized_expression "(ulong)" ( identifier )) * identifier)) ;) })) (expression_statement "pbVar40 = pbVar40 + 1;" (assignment_expression "pbVar40 = pbVar40 + 1" identifier = (binary_expression "pbVar40 + 1" identifier + number_literal)) ;) (expression_statement "*pp = (char *)pbVar40;" (assignment_expression "*pp = (char *)pbVar40" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar37 = pbVar26[1];" (assignment_expression "bVar37 = pbVar26[1]" identifier = (subscript_expression "pbVar26[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar37 != 0x53) break;" if (parenthesized_expression "(bVar37 != 0x53)" ( (binary_expression "bVar37 != 0x53" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "bVar4 = 1;" (assignment_expression "bVar4 = 1" identifier = number_literal) ;) (expression_statement "pbVar26 = pbVar40;" (assignment_expression "pbVar26 = pbVar40" identifier = identifier) ;) })) (if_statement "if (bVar37 != 0x73) break;" if (parenthesized_expression "(bVar37 != 0x73)" ( (binary_expression "bVar37 != 0x73" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = strtol((char *)(pbVar26 + 2),(char **)0x0,10);" (assignment_expression "lVar11 = strtol((char *)(pbVar26 + 2),(char **)0x0,10)" identifier = (call_expression "strtol((char *)(pbVar26 + 2),(char **)0x0,10)" identifier (argument_list "((char *)(pbVar26 + 2),(char **)0x0,10)" ( (cast_expression "(char *)(pbVar26 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 2)" ( (binary_expression "pbVar26 + 2" identifier + number_literal) ))) , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;) (if_statement "if ((int)lVar11 < 8) {\n          local_13c = 0xffffffff;\n          pbVar26 = (byte *)*pp;\n        }\n        else {\n          local_13c = (int)lVar11 >> 3;\n          pbVar26 = (byte *)*pp;\n        }" if (parenthesized_expression "((int)lVar11 < 8)" ( (binary_expression "(int)lVar11 < 8" (cast_expression "(int)lVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          local_13c = 0xffffffff;\n          pbVar26 = (byte *)*pp;\n        }" { (expression_statement "local_13c = 0xffffffff;" (assignment_expression "local_13c = 0xffffffff" identifier = number_literal) ;) (expression_statement "pbVar26 = (byte *)*pp;" (assignment_expression "pbVar26 = (byte *)*pp" identifier = (cast_expression "(byte *)*pp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp" * identifier))) ;) }) (else_clause "else {\n          local_13c = (int)lVar11 >> 3;\n          pbVar26 = (byte *)*pp;\n        }" else (compound_statement "{\n          local_13c = (int)lVar11 >> 3;\n          pbVar26 = (byte *)*pp;\n        }" { (expression_statement "local_13c = (int)lVar11 >> 3;" (assignment_expression "local_13c = (int)lVar11 >> 3" identifier = (binary_expression "(int)lVar11 >> 3" (cast_expression "(int)lVar11" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "pbVar26 = (byte *)*pp;" (assignment_expression "pbVar26 = (byte *)*pp" identifier = (cast_expression "(byte *)*pp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp" * identifier))) ;) }))) })) (expression_statement "pbVar26 = pbVar40;" (assignment_expression "pbVar26 = pbVar40" identifier = identifier) ;) }) while (parenthesized_expression "(bVar37 != 0)" ( (binary_expression "bVar37 != 0" identifier != number_literal) )) ;) (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;) })) (expression_statement "pbVar40 = pbVar31 + 1;" (assignment_expression "pbVar40 = pbVar31 + 1" identifier = (binary_expression "pbVar31 + 1" identifier + number_literal)) ;) (expression_statement "bVar4 = 0;" (assignment_expression "bVar4 = 0" identifier = number_literal) ;) (expression_statement "local_13c = 0xffffffff;" (assignment_expression "local_13c = 0xffffffff" identifier = number_literal) ;) (expression_statement "typenums[0] = -1;" (assignment_expression "typenums[0] = -1" (subscript_expression "typenums[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "typenums[1] = -1;" (assignment_expression "typenums[1] = -1" (subscript_expression "typenums[1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "bVar37 = *pbVar31;" (assignment_expression "bVar37 = *pbVar31" identifier = (pointer_expression "*pbVar31" * identifier)) ;) (expression_statement "pbVar26 = pbVar31;" (assignment_expression "pbVar26 = pbVar31" identifier = identifier) ;) (labeled_statement "LAB_001311b2:\n  *pp = (char *)pbVar40;" statement_identifier : (expression_statement "*pp = (char *)pbVar40;" (assignment_expression "*pp = (char *)pbVar40" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (switch_statement "switch(bVar37) {\n  case 0x23:\n    if (pbVar26[1] == 0x23) {\n      *pp = (char *)(pbVar26 + 2);\n      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      if (**pp != ';') goto switchD_001311d2_caseD_24;\n      *pp = *pp + 1;\n      pdVar20 = debug_make_method_type\n                          (dhandle,pdVar18,(debug_type_conflict)0x0,(debug_type_conflict *)0x0,0);\n    }\n    else {\n      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      if (**pp != ',') goto switchD_001311d2_caseD_24;\n      *pp = *pp + 1;\n      pdVar19 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar19 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      uVar38 = 10;\n      ppdVar9 = (debug_type_conflict *)xmalloc(0x50);\n      uVar10 = 0;\n      while( true ) {\n        pcVar17 = *pp;\n        iVar7 = (int)uVar10;\n        if (*pcVar17 == ';') break;\n        if (*pcVar17 != ',') {\n          bad_stab((char *)pbVar31);\n          return (debug_type)0x0;\n        }\n        *pp = pcVar17 + 1;\n        if ((uint)uVar38 <= iVar7 + 1U) {\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          ppdVar9 = (debug_type_conflict *)xrealloc(ppdVar9,uVar38 << 3);\n        }\n        ppdVar33 = ppdVar9 + uVar10;\n        pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        uVar10 = (ulong)(iVar7 + 1U);\n        *ppdVar33 = pdVar23;\n        if (pdVar23 == (debug_type)0x0) {\n          return (debug_type)0x0;\n        }\n      }\n      bVar4 = 1;\n      *pp = pcVar17 + 1;\n      ppdVar33 = ppdVar9;\n      if (iVar7 != 0) {\n        ppdVar33 = ppdVar9 + (iVar7 - 1);\n        dVar6 = debug_get_type_kind(dhandle,*ppdVar33);\n        if (dVar6 == DEBUG_KIND_VOID) {\n          bVar4 = 0;\n        }\n        else {\n          ppdVar33 = ppdVar9 + uVar10;\n        }\n      }\n      *ppdVar33 = (debug_type_conflict)0x0;\n      pdVar20 = debug_make_method_type(dhandle,pdVar19,pdVar18,ppdVar9,bVar4);\n    }\n    break;\n  default:\n    goto switchD_001311d2_caseD_24;\n  case 0x26:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_reference_type(dhandle,pdVar18);\n    break;\n  case 0x28:\n  case 0x2d:\n  case 0x30:\n  case 0x31:\n  case 0x32:\n  case 0x33:\n  case 0x34:\n  case 0x35:\n  case 0x36:\n  case 0x37:\n  case 0x38:\n  case 0x39:\n    *pp = (char *)pbVar26;\n    bVar4 = parse_stab_type_number(pp,xtypenums,p_end);\n    if (bVar4 == 0) {\n      return (debug_type)0x0;\n    }\n    if (typenums[0] == xtypenums[0]) {\n      if (typenums[1] != xtypenums[1]) goto LAB_00132079;\n      pdVar20 = debug_make_void_type(dhandle);\n    }\n    else {\nLAB_00132079:\n      *pp = (char *)pbVar26;\n      pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar20 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n    }\n    if (typenums[0] != -1) {\n      ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums);\n      if (ppdVar9 == (debug_type_conflict *)0x0) {\n        return (debug_type)0x0;\n      }\n      *ppdVar9 = pdVar20;\n    }\n    break;\n  case 0x2a:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_pointer_type(dhandle,pdVar18);\n    break;\n  case 0x40:\nswitchD_001311d2_caseD_40:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    if (pdVar18 == (debug_type)0x0) {\n      return (debug_type)0x0;\n    }\n    if (**pp != ',') goto switchD_001311d2_caseD_24;\n    *pp = *pp + 1;\n    pdVar19 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    if (pdVar19 == (debug_type)0x0) {\n      return (debug_type)0x0;\n    }\n    pdVar20 = debug_make_offset_type(dhandle,pdVar18,pdVar19);\n    break;\n  case 0x42:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_volatile_type(dhandle,pdVar18);\n    break;\n  case 0x52:\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    if ((**pp != ';') || (bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end), **pp != ';'))\n    goto LAB_00132126;\n    if (bVar12 - 3 < 3) {\n      pdVar20 = debug_make_complex_type(dhandle,(uint)bVar13);\n    }\n    else {\n      pdVar20 = debug_make_float_type(dhandle,(uint)bVar13);\n    }\n    break;\n  case 0x53:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_set_type(dhandle,pdVar18,bVar4);\n    break;\n  case 0x61:\n    if (pbVar26[1] == 0x72) {\n      pbVar26 = pbVar26 + 2;\n      *pp = (char *)pbVar26;\n      if (p_end <= pbVar26) {\n        return (debug_type)0x0;\n      }\n      p = (char *)pbVar26;\n      bVar5 = parse_stab_type_number(&p,xtypenums,p_end);\n      if (bVar5 == 0) {\n        return (debug_type)0x0;\n      }\n      if ((xtypenums[0] == 0 && xtypenums[1] == 0) && (**pp != '=')) {\n        pdVar20 = debug_find_named_type(dhandle,"int");\n        if ((pdVar20 == (debug_type_conflict)0x0) &&\n           (pdVar20 = debug_make_int_type(dhandle,4,0), pdVar20 == (debug_type_conflict)0x0)) {\n          return (debug_type)0x0;\n        }\n        *pp = p;\n        pcVar17 = p;\n      }\n      else {\n        pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        pcVar17 = *pp;\n      }\n      if (*pcVar17 == ';') {\n        *pp = pcVar17 + 1;\n        bVar47 = pcVar17[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *pp = pcVar17 + 2;\n        }\n        else {\n          bVar43 = false;\n        }\n        bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        pcVar17 = *pp;\n        if (*pcVar17 == ';') {\n          *pp = pcVar17 + 1;\n          bVar47 = pcVar17[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *pp = pcVar17 + 2;\n          }\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp == ';') {\n            *pp = *pp + 1;\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 == (debug_type)0x0) {\n              return (debug_type)0x0;\n            }\n            lower = 0;\n            bVar14 = 0xffffffffffffffff;\n            if (!bVar43) {\n              lower = bVar12;\n              bVar14 = bVar13;\n            }\n            pdVar20 = debug_make_array_type(dhandle,pdVar18,pdVar20,lower,bVar14,bVar4);\n            break;\n          }\n        }\n      }\n      bad_stab((char *)pbVar26);\n      return (debug_type)0x0;\n    }\n    goto switchD_001311d2_caseD_24;\n  case 0x62:\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    if (pbVar26[1] == 0x73) {\n      bVar4 = 0;\n    }\n    else {\n      if (pbVar26[1] != 0x75) goto LAB_00132126;\n      bVar4 = 1;\n    }\n    *pp = (char *)(pbVar26 + 2);\n    if (((byte)(pbVar26[2] + 0x9e) < 2) || (pbVar26[2] == 0x76)) {\n      *pp = (char *)(pbVar26 + 3);\n    }\n    parse_number(pp,(bfd_boolean *)0x0,p_end);\n    if (**pp != ';') goto LAB_00132126;\n    *pp = *pp + 1;\n    parse_number(pp,(bfd_boolean *)0x0,p_end);\n    if (**pp != ';') goto LAB_00132126;\n    *pp = *pp + 1;\n    bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    if (**pp == ';') {\n      *pp = *pp + 1;\n    }\n    if (bVar12 != 0) {\n      pdVar20 = debug_make_int_type(dhandle,(uint)(bVar12 >> 3),bVar4);\n      break;\n    }\nLAB_00133358:\n    pdVar20 = debug_make_void_type(dhandle);\n    break;\n  case 0x65:\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    pbVar31 = pbVar40;\n    if (pbVar26[1] == 0x2d) {\n      do {\n        pbVar26 = pbVar31;\n        *pp = (char *)(pbVar26 + 1);\n        bVar47 = pbVar26[1];\n        if (bVar47 == 0x3a) break;\n        pbVar31 = pbVar26 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *pp = (char *)(pbVar26 + 2);\n    }\n    local_148 = (char **)xmalloc(0x50);\n    values = (bfd_signed_vma *)xmalloc(0x50);\n    pbVar31 = (byte *)*pp;\n    uVar10 = (ulong)*pbVar31;\n    if ((*pbVar31 < 0x3c) && ((0x800100000000001U >> (uVar10 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar38 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar10;\n        pbVar26 = pbVar31;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar26 = pbVar26 + 1;\n          bVar47 = *pbVar26;\n        }\n        if (bVar47 == 0) {\n          bad_stab((char *)pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(values);\n          return (debug_type)0x0;\n        }\n        pcVar17 = savestring((char *)pbVar31,(int)pbVar26 - (int)pbVar31);\n        *pp = (char *)(pbVar26 + 1);\n        bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        if (**pp != ',') {\n          bad_stab((char *)pbVar40);\n          free(pcVar17);\n          goto LAB_00132cf2;\n        }\n        uVar8 = uVar39 + 1;\n        *pp = *pp + 1;\n        if ((uint)uVar38 <= uVar8) {\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          local_148 = (char **)xrealloc(local_148,uVar38 << 3);\n          values = (bfd_signed_vma *)xrealloc(values,uVar38 << 3);\n        }\n        uVar28 = (ulong)uVar8;\n        local_148[uVar39] = pcVar17;\n        pbVar31 = (byte *)*pp;\n        values[uVar39] = bVar12;\n        uVar10 = (ulong)*pbVar31;\n        uVar39 = uVar8;\n      } while ((0x3b < *pbVar31) || ((0x800100000000001U >> (uVar10 & 0x3f) & 1) == 0));\n    }\n    local_148[uVar28] = (char *)0x0;\n    pcVar17 = *pp;\n    values[uVar28] = 0;\n    if (*pcVar17 == ';') {\n      *pp = pcVar17 + 1;\n    }\n    pdVar20 = debug_make_enum_type(dhandle,local_148,values);\n    break;\n  case 0x66:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_function_type(dhandle,pdVar18,(debug_type_conflict *)0x0,0);\n    break;\n  case 0x6b:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_const_type(dhandle,pdVar18);\n    break;\n  case 0x72:\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    bVar4 = parse_stab_type_number(pp,xtypenums,p_end);\n    if (bVar4 == 0) {\n      return (debug_type)0x0;\n    }\n    bVar43 = false;\n    if (xtypenums[0] == typenums[0]) {\n      bVar43 = xtypenums[1] == typenums[1];\n    }\n    pbVar31 = (byte *)*pp;\n    pdVar18 = (debug_type)0x0;\n    bVar37 = *pbVar31;\n    if (bVar37 == 0x3d) {\n      *pp = (char *)pbVar40;\n      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      pbVar31 = (byte *)*pp;\n      bVar37 = *pbVar31;\n    }\n    if (bVar37 == 0x3b) {\n      pbVar31 = pbVar31 + 1;\n      *pp = (char *)pbVar31;\n    }\n    bVar12 = parse_number(pp,&varargs_1,p_end);\n    if (**pp != ';') goto LAB_00132126;\n    pcVar17 = *pp + 1;\n    *pp = pcVar17;\n    bVar13 = parse_number(pp,(bfd_boolean *)&p,p_end);\n    bVar4 = varargs_1;\n    if (**pp != ';') goto LAB_00132126;\n    *pp = *pp + 1;\n    if (varargs_1 != 0 || (int)p != 0) {\n      bVar41 = false;\n      bVar44 = pdVar18 == (debug_type)0x0;\n      if (!bVar44) {\nLAB_00131960:\n        pcVar17 = (char *)dcgettext(0,"numeric overflow",5);\n        warn_stab((char *)pbVar40,pcVar17);\n        goto LAB_0013197e;\n      }\n      lVar11 = 0x18;\n      pbVar26 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar41 = *pbVar31 < *pbVar26;\n        bVar44 = *pbVar31 == *pbVar26;\n        pbVar31 = pbVar31 + (ulong)bVar47 * -2 + 1;\n        pbVar26 = pbVar26 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar7 = strncmp(pcVar17,"0777777777777777777777;",0x17), iVar7 != 0)) {\n        if ((bVar12 != 0) ||\n           ((bVar4 != 0 || (iVar7 = strncmp(pcVar17,"01777777777777777777777;",0x18), iVar7 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        pdVar20 = debug_make_int_type(dhandle,8,1);\n        break;\n      }\nLAB_0013373f:\n      pdVar20 = debug_make_int_type(dhandle,8,0);\n      break;\n    }\nLAB_0013197e:\n    if (pdVar18 == (debug_type)0x0) {\n      if ((bVar43) && (bVar12 == 0)) {\n        if (bVar13 == 0) goto LAB_00133358;\n        if (bVar13 == 0xffffffffffffffff) {\nLAB_00133395:\n          if (type_name != (char *)0x0) {\n            iVar7 = strcmp(type_name,"long long int");\n            if (iVar7 == 0) goto LAB_0013373f;\n            iVar7 = strcmp(type_name,"long long unsigned int");\n            if (iVar7 == 0) goto LAB_0013348a;\n          }\n        }\n        else {\n          if (bVar13 == 0x7f) {\nLAB_00133dee:\n            pdVar20 = debug_make_int_type(dhandle,1,0);\n            break;\n          }\nLAB_00133a66:\n          uVar39 = (uint)bVar13;\n          if ((long)bVar13 < 0) goto LAB_00133b55;\n          if (bVar13 == 0xff) {\n            pdVar20 = debug_make_int_type(dhandle,1,1);\n            break;\n          }\n          if (bVar13 == 0xffff) {\n            pdVar20 = debug_make_int_type(dhandle,2,1);\n            break;\n          }\n          if (bVar13 != 0xffffffff) goto LAB_00131987;\n        }\n        pdVar20 = debug_make_int_type(dhandle,4,1);\n        break;\n      }\n      bVar41 = bVar13 != 0;\n      uVar39 = (uint)bVar12;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)bVar12) && (!bVar41)) {\n          pdVar20 = debug_make_float_type(dhandle,uVar39);\n          break;\n        }\n        if ((bVar13 == 0xffffffffffffffff) && (bVar12 == 0)) goto LAB_00133395;\n        if (bVar12 == 0) goto LAB_00133a66;\n        if (((-1 < (long)bVar12) || (bVar41)) || ((bVar12 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)bVar12) {\n          pdVar20 = debug_make_complex_type(dhandle,uVar39);\n          break;\n        }\n        if (-1 < (long)bVar12) {\nLAB_001336f0:\n          if ((bVar12 == ~bVar13) || (bVar12 == bVar13 + 1)) {\n            if (bVar13 == 0x7f) goto LAB_00133dee;\n            if (bVar13 == 0x7fff) {\n              pdVar20 = debug_make_int_type(dhandle,2,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffff) {\n              pdVar20 = debug_make_int_type(dhandle,4,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\nLAB_00133b55:\n      pdVar20 = debug_make_int_type(dhandle,-uVar39,1);\n    }\n    else {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        bad_stab((char *)pbVar40);\n        return (debug_type)0x0;\n      }\n      pdVar20 = stab_find_type(dhandle,info,xtypenums);\n      if (pdVar20 == (debug_type)0x0) {\n        pcVar17 = (char *)dcgettext(0,"missing index type",5);\n        warn_stab((char *)pbVar40,pcVar17);\n        pdVar20 = debug_make_int_type(dhandle,4,0);\n      }\n      pdVar20 = debug_make_range_type(dhandle,pdVar20,bVar12,bVar13);\n    }\n    break;\n  case 0x73:\n  case 0x75:\n    bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    pbVar40 = (byte *)*pp;\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    local_f8 = (debug_baseclass *)0x0;\n    if (*pbVar40 == 0x21) {\n      *pp = (char *)(pbVar40 + 1);\n      bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n      if (**pp != ',') goto LAB_00132126;\n      iVar7 = (int)bVar13;\n      uVar10 = bVar13 & 0xffffffff;\n      *pp = *pp + 1;\n      local_f8 = (debug_baseclass *)xmalloc((ulong)(iVar7 + 1) << 3);\n      if (iVar7 != 0) {\n        uVar38 = 0;\n        cVar3 = **pp;\n        if (cVar3 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar28 = uVar38;\n        if (cVar3 == '1') {\n          bVar4 = 1;\n        }\n        else {\n          if (cVar3 == '\0') goto LAB_00132126;\n          bVar4 = 0;\n          pcVar17 = (char *)dcgettext(0,"unknown virtual character for baseclass",5);\n          warn_stab((char *)pbVar40,pcVar17);\n        }\n        do {\n          pcVar17 = *pp;\n          *pp = pcVar17 + 1;\n          cVar3 = pcVar17[1];\n          if (cVar3 == '0') {\n            dVar36 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto LAB_00132126;\n            }\n            else {\n              dVar36 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (dVar36 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00132a81;\n            }\n            dVar36 = DEBUG_VISIBILITY_PUBLIC;\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for baseclass",5);\n            warn_stab((char *)pbVar40,pcVar17);\n          }\nLAB_00132a81:\n          *pp = *pp + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132126;\n          *pp = *pp + 1;\n          pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n          if (pdVar18 == (debug_type)0x0) {\n            return (debug_type)0x0;\n          }\n          pdVar24 = debug_make_baseclass(dhandle,pdVar18,bVar13,bVar4,dVar36);\n          local_f8[uVar28] = pdVar24;\n          if (pdVar24 == (debug_baseclass)0x0) {\n            return (debug_type)0x0;\n          }\n          if (**pp != ';') {\n            return (debug_type)0x0;\n          }\n          pcVar17 = *pp + 1;\n          uVar10 = (ulong)((int)uVar28 + 1);\n          uVar38 = uVar28 + 1;\n          *pp = pcVar17;\n          if (uVar28 == iVar7 - 1) break;\n          cVar3 = *pcVar17;\n          if (cVar3 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          bVar4 = 0;\n          uVar28 = uVar38;\n        } while( true );\n      }\n      pbVar40 = (byte *)*pp;\n      local_f8[uVar10] = (debug_baseclass)0x0;\n      if (p_end <= pbVar40) {\n        return (debug_type)0x0;\n      }\n    }\n    uVar10 = 0;\n    local_130 = (debug_field *)xmalloc(0x50);\n    pbVar31 = (byte *)*pp;\n    bVar43 = false;\n    bVar2 = *pbVar31;\n    local_138._0_4_ = 10;\n    while (bVar2 != 0x3b) {\n      uVar39 = (int)uVar10 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (debug_field *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar2 = *pbVar31;\n      }\n      if (((bVar2 == 0x24) || (bVar2 == 0x2e)) && (pbVar31[1] != 0x5f)) {\n        pcVar17 = *pp;\n        pbVar31 = (byte *)(pcVar17 + 1);\n        *pp = (char *)pbVar31;\n        local_130[uVar10] = (debug_field)0x0;\n        if (p_end <= pbVar31) goto LAB_00131328;\n        if (pcVar17[1] != 'v') goto LAB_00132740;\n        *pp = pcVar17 + 2;\n        cVar3 = pcVar17[2];\n        if (cVar3 == '\0') goto LAB_00132740;\n        *pp = pcVar17 + 3;\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (pdVar18 == (debug_type)0x0) goto LAB_00131328;\n        if (cVar3 == 'b') {\n          pcVar17 = debug_get_type_name(dhandle,pdVar18);\n          if (pcVar17 == (char *)0x0) {\n            pcVar17 = (char *)dcgettext(0,"unnamed $vb type",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar17 = "FOO";\n          }\n          pcVar17 = (char *)concat(&DAT_00146a0b,pcVar17,0);\n        }\n        else {\n          pcVar17 = "_vptr$";\n          if (cVar3 != 'f') {\n            pcVar16 = (char *)dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar17 = "INVALID_CPLUSPLUS_ABBREV";\n            warn_stab((char *)pbVar31,pcVar16);\n          }\n        }\n        if (**pp != ':') goto LAB_00132740;\n        *pp = *pp + 1;\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (**pp != ',') goto LAB_00132740;\n        *pp = *pp + 1;\n        bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        if (**pp != ';') goto LAB_00132740;\n        *pp = *pp + 1;\n        pdVar15 = debug_make_field(dhandle,pcVar17,pdVar18,bVar13,0,DEBUG_VISIBILITY_PRIVATE);\n        local_130[uVar10] = pdVar15;\n        if (pdVar15 == (debug_field)0x0) goto LAB_00131328;\n      }\n      else {\n        pcVar17 = strchr((char *)pbVar31,0x3a);\n        if (pcVar17 == (char *)0x0) {\n          bad_stab((char *)pbVar40);\n          free(local_130);\n          return (debug_type)0x0;\n        }\n        pbVar31 = (byte *)*pp;\n        if (pcVar17[1] == ':') break;\n        if (p_end <= pbVar31) {\n          return (debug_type)0x0;\n        }\n        pcVar16 = savestring((char *)pbVar31,(int)pcVar17 - (int)pbVar31);\n        *pp = pcVar17 + 1;\n        if (pcVar17[1] == '/') {\n          pcVar25 = pcVar17 + 2;\n          *pp = pcVar25;\n          cVar3 = pcVar17[2];\n          if (cVar3 == '0') {\n            local_120 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (local_120 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00131b6d;\n            }\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for field",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar25 = *pp;\n            local_120 = DEBUG_VISIBILITY_PUBLIC;\n          }\nLAB_00131b6d:\n          *pp = pcVar25 + 1;\n        }\n        else {\n          local_120 = DEBUG_VISIBILITY_PUBLIC;\n        }\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (pdVar18 == (debug_type)0x0) {\n          free(pcVar16);\n          return (debug_type)0x0;\n        }\n        pcVar17 = *pp;\n        if (*pcVar17 == ':') {\n          pcVar17 = pcVar17 + 1;\n          *pp = pcVar17;\n          pcVar25 = strchr(pcVar17,0x3b);\n          if (pcVar25 == (char *)0x0) goto LAB_00132614;\n          pcVar17 = savestring(pcVar17,(int)pcVar25 - (int)pcVar17);\n          *pp = pcVar25 + 1;\n          pdVar15 = debug_make_static_member(dhandle,pcVar16,pdVar18,pcVar17,local_120);\n          bVar43 = true;\n          local_130[uVar10] = pdVar15;\n        }\n        else {\n          if (*pcVar17 != ',') {\nLAB_00132614:\n            bad_stab((char *)pbVar31);\n            free(pcVar16);\n            return (debug_type)0x0;\n          }\n          *pp = pcVar17 + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132614;\n          *pp = *pp + 1;\n          bVar14 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ';') goto LAB_00132614;\n          *pp = *pp + 1;\n          dVar36 = DEBUG_VISIBILITY_IGNORE;\n          if (bVar13 != 0 || bVar14 != 0) {\n            dVar36 = local_120;\n          }\n          pdVar15 = debug_make_field(dhandle,pcVar16,pdVar18,bVar13,bVar14,dVar36);\n          local_130[uVar10] = pdVar15;\n        }\n      }\n      pbVar31 = (byte *)*pp;\n      uVar10 = (ulong)uVar39;\n      bVar2 = *pbVar31;\n    }\n    local_130[uVar10] = (debug_field)0x0;\n    if (p_end <= pbVar31) goto LAB_00131328;\n    bVar2 = *pbVar31;\n    if (bVar2 == 0x3b) {\n      local_108 = (debug_method *)0x0;\nLAB_001334bc:\n      pbVar26 = pbVar31 + 1;\n      *pp = (char *)pbVar26;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (debug_method_variant *)0x0;\n      local_108 = (debug_method *)0x0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar26 = pbVar31;\n      do {\n        pcVar17 = strchr((char *)pbVar26,0x3a);\n        if ((pcVar17 == (char *)0x0) || (pcVar17[1] != ':')) break;\n        pcVar16 = pcVar17 + 2;\n        if ((bVar2 == 0x6f) && ((pbVar26[1] == 0x70 && (pbVar26[2] == 0x24)))) {\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          pcVar17 = pcVar16;\n          while ((cVar3 != '.' && (cVar3 != '\0'))) {\n            pcVar17 = pcVar17 + 1;\n            cVar3 = *pcVar17;\n          }\n          if (cVar3 != '.') {\n            bad_stab((char *)pbVar31);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (debug_method_variant *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = savestring(pcVar16,(int)pcVar17 - (int)pcVar16);\n          *pp = pcVar17 + 1;\n        }\n        else {\n          local_138 = savestring((char *)pbVar26,(int)pcVar17 - (int)pbVar26);\n          *pp = pcVar16;\n        }\n        local_128 = (debug_method_variant *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        pdVar18 = (debug_type)0x0;\n        do {\n          if (pdVar18 == (debug_type)0x0) {\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 != (debug_type)0x0) {\n              pcVar17 = *pp;\n              if (*pcVar17 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar17 = *pp;\nLAB_00131d3f:\n          *pp = pcVar17 + 1;\n          pcVar17 = strchr(pcVar17 + 1,0x3b);\n          if (pcVar17 == (char *)0x0) {\nLAB_00132781:\n            bad_stab((char *)pbVar31);\n            goto LAB_00132793;\n          }\n          dVar6 = debug_get_type_kind(dhandle,pdVar18);\n          bVar41 = false;\n          if (dVar6 == DEBUG_KIND_METHOD) {\n            ppdVar9 = debug_get_parameter_types(dhandle,pdVar18,&varargs);\n            bVar41 = ppdVar9 == (debug_type_conflict *)0x0;\n          }\n          pbVar40 = (byte *)savestring(*pp,(int)pcVar17 - (int)*pp);\n          *pp = pcVar17 + 1;\n          cVar3 = pcVar17[1];\n          if (cVar3 == '0') {\n            local_e4 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else if (cVar3 == '1') {\n            local_e4 = DEBUG_VISIBILITY_PROTECTED;\n          }\n          else {\n            if (cVar3 == '\0') goto LAB_00132781;\n            local_e4 = DEBUG_VISIBILITY_PUBLIC;\n          }\n          pcVar16 = pcVar17 + 2;\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          switch(cVar3) {\n          case '*':\n          case '.':\n          case '?':\n            local_118 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            pcVar17 = (char *)dcgettext(0,"const/volatile indicator missing",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar16 = *pp;\n            local_118 = 0;\n            local_f0 = 0;\n            cVar3 = *pcVar16;\n            break;\n          case 'A':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            local_f0 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n          }\n          pbVar26 = pbVar40;\n          if (cVar3 == '.') {\n            bVar44 = false;\n            pdVar19 = (debug_type)0x0;\n            *pp = pcVar16 + 1;\n            local_100 = (debug_type)0x0;\n            local_e0 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar3 != '?') {\n              if (cVar3 == '*') {\n                *pp = pcVar16 + 1;\n                bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n                pcVar17 = *pp;\n                if (*pcVar17 != ';') goto LAB_00132781;\n                local_e0 = (ulong)((uint)bVar13 & 0x7fffffff);\n                *pp = pcVar17 + 1;\n                if ((pcVar17[1] == ';') || (pcVar17[1] == '\0')) {\n                  local_100 = (debug_type)0x0;\n                  pdVar19 = (debug_type)0x0;\n                  bVar44 = false;\n                }\n                else {\n                  pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end);\n                  cVar3 = **pp;\n                  if (cVar3 == ':') {\n                    local_100 = (debug_type)0x0;\n                    bVar44 = false;\n                    pdVar19 = pdVar23;\n                  }\n                  else {\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }\n                }\n              }\n              else {\n                warn_stab((char *)pbVar31,"member function type missing");\n                bVar44 = false;\n                local_100 = (debug_type)0x0;\n                local_e0 = 0;\n                pdVar19 = (debug_type)0x0;\n              }\n              goto LAB_001322ba;\n            }\n            *pp = pcVar16 + 1;\n            sVar32 = strlen(local_138);\n            iVar7 = strncmp((char *)pbVar40,local_138,sVar32);\n            if (iVar7 == 0) {\n              local_100 = (debug_type)0x0;\n              pdVar19 = (debug_type)0x0;\n              local_e0 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = (debug_type)0x0;\n            pdVar19 = (debug_type)0x0;\n            local_e0 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            pdVar23 = stab_find_type(dhandle,info,typenums);\n            if (pdVar23 == (debug_type)0x0) goto LAB_00132793;\n            pdVar20 = debug_get_return_type(dhandle,pdVar18);\n            if (pdVar20 == (debug_type_conflict)0x0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar7 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar7 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (type_name != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar2 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) && (bVar2 != 0x51 && bVar2 != 0x74))\n                 && (iVar7 = strncmp((char *)pbVar40,"__ct",4), iVar7 != 0)) {\n                if (type_name != (char *)0x0) {\nLAB_001338f6:\n                  iVar7 = strcmp(local_138,type_name);\n                  bVar45 = iVar7 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar40;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\nLAB_0013360b:\n              pcVar16 = p;\n              local_40 = 0;\n              pcVar17 = p;\n              do {\n                pcVar25 = strchr(pcVar17,0x5f);\n                if (pcVar25 == (char *)0x0) goto LAB_00133635;\n                pcVar17 = pcVar25 + 1;\n              } while (pcVar25[1] != '_');\n              if (pcVar17 != (char *)0x0) {\n                sVar32 = strspn(pcVar25,"_");\n                if (2 < (uint)sVar32) {\n                  pcVar25 = pcVar25 + ((uint)sVar32 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              stab_bad_demangle(pcVar16);\nLAB_0013323f:\n              if (local_48 != (stab_demangle_typestring *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a76;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar41 = *pbVar34 < *pbVar35;\n              bVar45 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (type_name == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar7 = strcmp(local_138,type_name);\n              bVar45 = iVar7 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a4b;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar42 = *pbVar34 < *pbVar35;\n              bVar46 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              arg_types = (stab_demangle_typestring *)xmalloc(8);\n              arg_types->typestring = (char *)0x0;\n              bVar4 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (type_name != (char *)0x0) {\n                sVar32 = strlen(type_name);\n                local_d8 = sVar32 & 0xffffffff;\n              }\n              pcVar16 = "C";\n              pcVar17 = "V";\n              if (local_f0 == 0) {\n                pcVar16 = "";\n              }\n              if (local_118 == 0) {\n                pcVar17 = "";\n              }\n              local_c0 = type_name;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)xtypenums,"__%s%s");\n              }\n              else if ((type_name == (char *)0x0) ||\n                      (pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0)) {\n                sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8);\n              }\n              else {\n                sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)xtypenums;\n              do {\n                puVar29 = puVar30;\n                uVar8 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar39 = uVar8 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar39 == 0);\n              bVar41 = (uVar8 & 0x8080) == 0;\n              if (bVar41) {\n                uVar39 = uVar39 >> 0x10;\n              }\n              cVar3 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar7 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar39,(byte)uVar39)) -\n                      (int)xtypenums;\n              sVar32 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar7 = iVar7 + (int)local_d8 + 1 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar26 = (byte *)xmalloc(iVar7);\n                *pbVar26 = 0;\n              }\n              else {\n                lVar11 = -1;\n                pcVar17 = local_138;\n                do {\n                  if (lVar11 == 0) break;\n                  lVar11 = lVar11 + -1;\n                  cVar1 = *pcVar17;\n                  pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar7 = ((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar17 == (char *)0x0) {\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar11 = -1;\n                  pcVar16 = pcVar17;\n                  do {\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar3 != '\0');\n                  pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);\n                  strncpy((char *)pbVar26,local_138,3);\n                  strcpy((char *)(pbVar26 + 3),pcVar17);\n                }\n                else {\n                  pbVar26 = (byte *)xmalloc(iVar7);\n                  strcpy((char *)pbVar26,local_138);\n                }\n              }\n              sVar32 = strlen((char *)pbVar26);\n              local_d8 = sVar32 & 0xffffffff;\n              pcVar17 = stpcpy((char *)(pbVar26 + sVar32),(char *)xtypenums);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar17,local_c0);\n              }\n              strcat((char *)pbVar26,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar26 == 0x5f) && (pbVar26[1] == 0x5a)) {\nLAB_00133b71:\n                p = (char *)pbVar26;\n                pdVar27 = cplus_demangle_v3_components((char *)pbVar26,3,(void **)xtypenums);\n                if (pdVar27 == (demangle_component *)0x0) {\n                  stab_bad_demangle((char *)pbVar26);\n                }\n                else {\n                  if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }\n                  pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar17);\n                  free((void *)xtypenums);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar26;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pcVar25 = p + local_d8;\n              pcVar16 = p;\nLAB_001330d0:\n              bVar2 = pcVar25[2];\n              if (pcVar16 == pcVar25) {\n                if (((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) &&\n                   (pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74)) {\n                  for (; *pcVar17 == '_'; pcVar17 = pcVar17 + 1) {\n                  }\n                  pcVar17 = strstr(pcVar17,"__");\n                  if ((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')) {\n                    stab_bad_demangle(pcVar25);\n                    goto LAB_0013323f;\n                  }\n                  iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17);\n                  goto LAB_001330fd;\n                }\n                p = pcVar25 + 2;\n              }\n              else {\n                if (bVar2 == 0) goto LAB_00133635;\n                iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25);\nLAB_001330fd:\n                if (iVar7 == 0) goto LAB_0013323f;\n              }\n              pcVar17 = p;\n              cVar3 = *p;\n              if (cVar3 != '\0') {\n                pcVar16 = (char *)0x0;\n                bVar41 = false;\n                pstart = (char **)0x0;\n                do {\n                  pcVar25 = p;\n                  switch(cVar3) {\n                  case '0':\n                  case '1':\n                  case '2':\n                  case '3':\n                  case '4':\n                  case '5':\n                  case '6':\n                  case '7':\n                  case '8':\n                  case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;\n                  default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'C':\n                  case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;\n                  case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;\n                  case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar41) {\nLAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    pstart = (char **)0x1;\n                  }\n                  cVar3 = *p;\n                } while (cVar3 != '\0');\n                if (((int)pstart == 0) &&\n                   (bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (stab_demangle_typestring *)0x0;\n              if (local_58 == (stab_demangle_typestring *)0x0) {\n                pcVar17 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar17);\n              }\n              varargs_1 = local_50[0];\n              arg_types = local_58;\nLAB_00133211:\n              bVar4 = varargs_1;\n              if (arg_types == (stab_demangle_typestring *)0x0) goto LAB_00132793;\n            }\n            pdVar18 = debug_make_method_type\n                                (dhandle,pdVar20,pdVar23,(debug_type_conflict *)arg_types,bVar4);\n            if (pdVar18 == (debug_type_conflict)0x0) goto LAB_00132793;\n          }\n          uVar39 = local_ec + 1;\n          if (local_e8 <= uVar39) {\n            local_e8 = local_e8 + 10;\n            local_128 = (debug_method_variant *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          if (bVar44) {\n            pdVar21 = debug_make_static_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118);\n            local_128[local_ec] = pdVar21;\n          }\n          else {\n            pdVar21 = debug_make_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118,\n                                 local_e0,local_100);\n            local_128[local_ec] = pdVar21;\n          }\n          if (pdVar21 == (debug_method_variant)0x0) goto LAB_00132793;\n          pcVar17 = *pp;\n        } while ((*pcVar17 != ';') && (pdVar18 = pdVar19, local_ec = uVar39, *pcVar17 != '\0'));\n        local_128[uVar39] = (debug_method_variant)0x0;\n        if (*pcVar17 != '\0') {\n          *pp = pcVar17 + 1;\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = (debug_method *)xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        pdVar22 = debug_make_method(dhandle,local_138,local_128);\n        local_108[local_c8] = pdVar22;\n        pbVar26 = (byte *)*pp;\n        bVar2 = *pbVar26;\n        local_c8 = uVar39;\n      } while (bVar2 != 0x3b);\n      if (local_108 != (debug_method *)0x0) {\n        local_108[local_c8] = (debug_method)0x0;\n      }\n      if (p_end <= pbVar26) goto LAB_00131328;\n      pbVar31 = pbVar26;\n      if (*pbVar26 == 0x3b) goto LAB_001334bc;\n    }\n    if (*pbVar26 == 0x7e) {\n      pbVar40 = pbVar26 + 1;\n      *pp = (char *)pbVar40;\n      if (((pbVar26[1] & 0xef) == 0x2d) || (pbVar26[1] == 0x2b)) {\n        pbVar40 = pbVar26 + 2;\n        *pp = (char *)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *pp = (char *)(pbVar40 + 1);\n      bVar4 = parse_stab_type_number(pp,xtypenums,p_end);\n      if (bVar4 == 0) goto LAB_00131328;\n      if (xtypenums[0] != typenums[0]) {\nLAB_00132596:\n        *pp = (char *)(pbVar40 + 1);\n        pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        pcVar17 = *pp;\n        cVar3 = *pcVar17;\n        while ((cVar3 != ';' && (cVar3 != '\0'))) {\n          pcVar17 = pcVar17 + 1;\n          cVar3 = *pcVar17;\n        }\n        if (cVar3 != ';') {\nLAB_00132740:\n          bad_stab((char *)pbVar31);\nLAB_00131328:\n          free(local_130);\n          return (debug_type)0x0;\n        }\n        *pp = pcVar17 + 1;\n        goto LAB_0013244c;\n      }\n      if (xtypenums[1] != typenums[1]) goto LAB_00132596;\n      bVar4 = 1;\n      pdVar20 = (debug_type_conflict)0x0;\n    }\n    else {\nLAB_0013244a:\n      pdVar20 = (debug_type_conflict)0x0;\nLAB_0013244c:\n      if (((local_108 == (debug_method *)0x0 && local_f8 == (debug_baseclass *)0x0) &&\n           pdVar20 == (debug_type_conflict)0x0) && (!bVar43)) {\n        pdVar20 = debug_make_struct_type(dhandle,(uint)(bVar37 == 0x73),bVar12,local_130);\n        break;\n      }\n      bVar4 = 0;\n    }\n    pdVar20 = debug_make_object_type\n                        (dhandle,(uint)(bVar37 == 0x73),bVar12,local_130,local_f8,local_108,pdVar20,\n                         bVar4);\n    break;\n  case 0x78:\n    bVar47 = pbVar26[1];\n    if (bVar47 == 0x65) {\n      dVar6 = DEBUG_KIND_ENUM;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        dVar6 = DEBUG_KIND_STRUCT;\n        if ((bVar47 == 0x73) || (dVar6 = DEBUG_KIND_UNION, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      dVar6 = DEBUG_KIND_STRUCT;\n      pcVar17 = (char *)dcgettext(0,"unrecognized cross reference type",5);\n      warn_stab((char *)pbVar31,pcVar17);\n      pbVar40 = (byte *)*pp;\n    }\nLAB_00131e0e:\n    pbVar40 = pbVar40 + 1;\n    *pp = (char *)pbVar40;\n    pcVar16 = strchr((char *)pbVar40,0x3c);\n    pcVar17 = strchr((char *)pbVar40,0x3a);\n    if (pcVar17 != (char *)0x0) {\n      if (((pcVar16 == (char *)0x0) || (pcVar17 <= pcVar16)) || (pcVar17[1] != ':')) {\nLAB_00131e52:\n        sVar32 = (long)pcVar17 - (long)pbVar40;\n        if (((type_name != (char *)0x0) &&\n            (iVar7 = strncmp(type_name,(char *)pbVar40,sVar32), iVar7 == 0)) &&\n           (type_name[sVar32] == '\0')) {\n          info->self_crossref = 1;\n        }\n        pdVar20 = stab_find_tagged_type\n                            (dhandle,(stab_handle *)&info->tags,(char *)pbVar40,(int)sVar32,dVar6);\n        *pp = pcVar17 + 1;\n        break;\n      }\n      cVar3 = *pcVar16;\n      if (cVar3 != '\0') {\n        iVar7 = 0;\n        pcVar17 = pcVar16;\n        do {\n          if (cVar3 == '<') {\n            iVar7 = iVar7 + 1;\n          }\n          else if (cVar3 == '>') {\n            iVar7 = iVar7 + -1;\n          }\n          else if ((iVar7 == 0) && (cVar3 == ':')) goto LAB_00131e52;\n          pcVar17 = pcVar17 + 1;\n          cVar3 = *pcVar17;\n        } while (cVar3 != '\0');\n      }\n    }\nswitchD_001311d2_caseD_24:\n    bad_stab((char *)pbVar31);\n    return (debug_type)0x0;\n  }" switch (parenthesized_expression "(bVar37)" ( identifier )) (compound_statement "{\n  case 0x23:\n    if (pbVar26[1] == 0x23) {\n      *pp = (char *)(pbVar26 + 2);\n      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      if (**pp != ';') goto switchD_001311d2_caseD_24;\n      *pp = *pp + 1;\n      pdVar20 = debug_make_method_type\n                          (dhandle,pdVar18,(debug_type_conflict)0x0,(debug_type_conflict *)0x0,0);\n    }\n    else {\n      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      if (**pp != ',') goto switchD_001311d2_caseD_24;\n      *pp = *pp + 1;\n      pdVar19 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar19 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      uVar38 = 10;\n      ppdVar9 = (debug_type_conflict *)xmalloc(0x50);\n      uVar10 = 0;\n      while( true ) {\n        pcVar17 = *pp;\n        iVar7 = (int)uVar10;\n        if (*pcVar17 == ';') break;\n        if (*pcVar17 != ',') {\n          bad_stab((char *)pbVar31);\n          return (debug_type)0x0;\n        }\n        *pp = pcVar17 + 1;\n        if ((uint)uVar38 <= iVar7 + 1U) {\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          ppdVar9 = (debug_type_conflict *)xrealloc(ppdVar9,uVar38 << 3);\n        }\n        ppdVar33 = ppdVar9 + uVar10;\n        pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        uVar10 = (ulong)(iVar7 + 1U);\n        *ppdVar33 = pdVar23;\n        if (pdVar23 == (debug_type)0x0) {\n          return (debug_type)0x0;\n        }\n      }\n      bVar4 = 1;\n      *pp = pcVar17 + 1;\n      ppdVar33 = ppdVar9;\n      if (iVar7 != 0) {\n        ppdVar33 = ppdVar9 + (iVar7 - 1);\n        dVar6 = debug_get_type_kind(dhandle,*ppdVar33);\n        if (dVar6 == DEBUG_KIND_VOID) {\n          bVar4 = 0;\n        }\n        else {\n          ppdVar33 = ppdVar9 + uVar10;\n        }\n      }\n      *ppdVar33 = (debug_type_conflict)0x0;\n      pdVar20 = debug_make_method_type(dhandle,pdVar19,pdVar18,ppdVar9,bVar4);\n    }\n    break;\n  default:\n    goto switchD_001311d2_caseD_24;\n  case 0x26:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_reference_type(dhandle,pdVar18);\n    break;\n  case 0x28:\n  case 0x2d:\n  case 0x30:\n  case 0x31:\n  case 0x32:\n  case 0x33:\n  case 0x34:\n  case 0x35:\n  case 0x36:\n  case 0x37:\n  case 0x38:\n  case 0x39:\n    *pp = (char *)pbVar26;\n    bVar4 = parse_stab_type_number(pp,xtypenums,p_end);\n    if (bVar4 == 0) {\n      return (debug_type)0x0;\n    }\n    if (typenums[0] == xtypenums[0]) {\n      if (typenums[1] != xtypenums[1]) goto LAB_00132079;\n      pdVar20 = debug_make_void_type(dhandle);\n    }\n    else {\nLAB_00132079:\n      *pp = (char *)pbVar26;\n      pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar20 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n    }\n    if (typenums[0] != -1) {\n      ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums);\n      if (ppdVar9 == (debug_type_conflict *)0x0) {\n        return (debug_type)0x0;\n      }\n      *ppdVar9 = pdVar20;\n    }\n    break;\n  case 0x2a:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_pointer_type(dhandle,pdVar18);\n    break;\n  case 0x40:\nswitchD_001311d2_caseD_40:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    if (pdVar18 == (debug_type)0x0) {\n      return (debug_type)0x0;\n    }\n    if (**pp != ',') goto switchD_001311d2_caseD_24;\n    *pp = *pp + 1;\n    pdVar19 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    if (pdVar19 == (debug_type)0x0) {\n      return (debug_type)0x0;\n    }\n    pdVar20 = debug_make_offset_type(dhandle,pdVar18,pdVar19);\n    break;\n  case 0x42:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_volatile_type(dhandle,pdVar18);\n    break;\n  case 0x52:\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    if ((**pp != ';') || (bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end), **pp != ';'))\n    goto LAB_00132126;\n    if (bVar12 - 3 < 3) {\n      pdVar20 = debug_make_complex_type(dhandle,(uint)bVar13);\n    }\n    else {\n      pdVar20 = debug_make_float_type(dhandle,(uint)bVar13);\n    }\n    break;\n  case 0x53:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_set_type(dhandle,pdVar18,bVar4);\n    break;\n  case 0x61:\n    if (pbVar26[1] == 0x72) {\n      pbVar26 = pbVar26 + 2;\n      *pp = (char *)pbVar26;\n      if (p_end <= pbVar26) {\n        return (debug_type)0x0;\n      }\n      p = (char *)pbVar26;\n      bVar5 = parse_stab_type_number(&p,xtypenums,p_end);\n      if (bVar5 == 0) {\n        return (debug_type)0x0;\n      }\n      if ((xtypenums[0] == 0 && xtypenums[1] == 0) && (**pp != '=')) {\n        pdVar20 = debug_find_named_type(dhandle,"int");\n        if ((pdVar20 == (debug_type_conflict)0x0) &&\n           (pdVar20 = debug_make_int_type(dhandle,4,0), pdVar20 == (debug_type_conflict)0x0)) {\n          return (debug_type)0x0;\n        }\n        *pp = p;\n        pcVar17 = p;\n      }\n      else {\n        pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        pcVar17 = *pp;\n      }\n      if (*pcVar17 == ';') {\n        *pp = pcVar17 + 1;\n        bVar47 = pcVar17[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *pp = pcVar17 + 2;\n        }\n        else {\n          bVar43 = false;\n        }\n        bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        pcVar17 = *pp;\n        if (*pcVar17 == ';') {\n          *pp = pcVar17 + 1;\n          bVar47 = pcVar17[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *pp = pcVar17 + 2;\n          }\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp == ';') {\n            *pp = *pp + 1;\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 == (debug_type)0x0) {\n              return (debug_type)0x0;\n            }\n            lower = 0;\n            bVar14 = 0xffffffffffffffff;\n            if (!bVar43) {\n              lower = bVar12;\n              bVar14 = bVar13;\n            }\n            pdVar20 = debug_make_array_type(dhandle,pdVar18,pdVar20,lower,bVar14,bVar4);\n            break;\n          }\n        }\n      }\n      bad_stab((char *)pbVar26);\n      return (debug_type)0x0;\n    }\n    goto switchD_001311d2_caseD_24;\n  case 0x62:\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    if (pbVar26[1] == 0x73) {\n      bVar4 = 0;\n    }\n    else {\n      if (pbVar26[1] != 0x75) goto LAB_00132126;\n      bVar4 = 1;\n    }\n    *pp = (char *)(pbVar26 + 2);\n    if (((byte)(pbVar26[2] + 0x9e) < 2) || (pbVar26[2] == 0x76)) {\n      *pp = (char *)(pbVar26 + 3);\n    }\n    parse_number(pp,(bfd_boolean *)0x0,p_end);\n    if (**pp != ';') goto LAB_00132126;\n    *pp = *pp + 1;\n    parse_number(pp,(bfd_boolean *)0x0,p_end);\n    if (**pp != ';') goto LAB_00132126;\n    *pp = *pp + 1;\n    bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    if (**pp == ';') {\n      *pp = *pp + 1;\n    }\n    if (bVar12 != 0) {\n      pdVar20 = debug_make_int_type(dhandle,(uint)(bVar12 >> 3),bVar4);\n      break;\n    }\nLAB_00133358:\n    pdVar20 = debug_make_void_type(dhandle);\n    break;\n  case 0x65:\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    pbVar31 = pbVar40;\n    if (pbVar26[1] == 0x2d) {\n      do {\n        pbVar26 = pbVar31;\n        *pp = (char *)(pbVar26 + 1);\n        bVar47 = pbVar26[1];\n        if (bVar47 == 0x3a) break;\n        pbVar31 = pbVar26 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *pp = (char *)(pbVar26 + 2);\n    }\n    local_148 = (char **)xmalloc(0x50);\n    values = (bfd_signed_vma *)xmalloc(0x50);\n    pbVar31 = (byte *)*pp;\n    uVar10 = (ulong)*pbVar31;\n    if ((*pbVar31 < 0x3c) && ((0x800100000000001U >> (uVar10 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar38 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar10;\n        pbVar26 = pbVar31;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar26 = pbVar26 + 1;\n          bVar47 = *pbVar26;\n        }\n        if (bVar47 == 0) {\n          bad_stab((char *)pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(values);\n          return (debug_type)0x0;\n        }\n        pcVar17 = savestring((char *)pbVar31,(int)pbVar26 - (int)pbVar31);\n        *pp = (char *)(pbVar26 + 1);\n        bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        if (**pp != ',') {\n          bad_stab((char *)pbVar40);\n          free(pcVar17);\n          goto LAB_00132cf2;\n        }\n        uVar8 = uVar39 + 1;\n        *pp = *pp + 1;\n        if ((uint)uVar38 <= uVar8) {\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          local_148 = (char **)xrealloc(local_148,uVar38 << 3);\n          values = (bfd_signed_vma *)xrealloc(values,uVar38 << 3);\n        }\n        uVar28 = (ulong)uVar8;\n        local_148[uVar39] = pcVar17;\n        pbVar31 = (byte *)*pp;\n        values[uVar39] = bVar12;\n        uVar10 = (ulong)*pbVar31;\n        uVar39 = uVar8;\n      } while ((0x3b < *pbVar31) || ((0x800100000000001U >> (uVar10 & 0x3f) & 1) == 0));\n    }\n    local_148[uVar28] = (char *)0x0;\n    pcVar17 = *pp;\n    values[uVar28] = 0;\n    if (*pcVar17 == ';') {\n      *pp = pcVar17 + 1;\n    }\n    pdVar20 = debug_make_enum_type(dhandle,local_148,values);\n    break;\n  case 0x66:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_function_type(dhandle,pdVar18,(debug_type_conflict *)0x0,0);\n    break;\n  case 0x6b:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_const_type(dhandle,pdVar18);\n    break;\n  case 0x72:\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    bVar4 = parse_stab_type_number(pp,xtypenums,p_end);\n    if (bVar4 == 0) {\n      return (debug_type)0x0;\n    }\n    bVar43 = false;\n    if (xtypenums[0] == typenums[0]) {\n      bVar43 = xtypenums[1] == typenums[1];\n    }\n    pbVar31 = (byte *)*pp;\n    pdVar18 = (debug_type)0x0;\n    bVar37 = *pbVar31;\n    if (bVar37 == 0x3d) {\n      *pp = (char *)pbVar40;\n      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      pbVar31 = (byte *)*pp;\n      bVar37 = *pbVar31;\n    }\n    if (bVar37 == 0x3b) {\n      pbVar31 = pbVar31 + 1;\n      *pp = (char *)pbVar31;\n    }\n    bVar12 = parse_number(pp,&varargs_1,p_end);\n    if (**pp != ';') goto LAB_00132126;\n    pcVar17 = *pp + 1;\n    *pp = pcVar17;\n    bVar13 = parse_number(pp,(bfd_boolean *)&p,p_end);\n    bVar4 = varargs_1;\n    if (**pp != ';') goto LAB_00132126;\n    *pp = *pp + 1;\n    if (varargs_1 != 0 || (int)p != 0) {\n      bVar41 = false;\n      bVar44 = pdVar18 == (debug_type)0x0;\n      if (!bVar44) {\nLAB_00131960:\n        pcVar17 = (char *)dcgettext(0,"numeric overflow",5);\n        warn_stab((char *)pbVar40,pcVar17);\n        goto LAB_0013197e;\n      }\n      lVar11 = 0x18;\n      pbVar26 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar41 = *pbVar31 < *pbVar26;\n        bVar44 = *pbVar31 == *pbVar26;\n        pbVar31 = pbVar31 + (ulong)bVar47 * -2 + 1;\n        pbVar26 = pbVar26 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar7 = strncmp(pcVar17,"0777777777777777777777;",0x17), iVar7 != 0)) {\n        if ((bVar12 != 0) ||\n           ((bVar4 != 0 || (iVar7 = strncmp(pcVar17,"01777777777777777777777;",0x18), iVar7 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        pdVar20 = debug_make_int_type(dhandle,8,1);\n        break;\n      }\nLAB_0013373f:\n      pdVar20 = debug_make_int_type(dhandle,8,0);\n      break;\n    }\nLAB_0013197e:\n    if (pdVar18 == (debug_type)0x0) {\n      if ((bVar43) && (bVar12 == 0)) {\n        if (bVar13 == 0) goto LAB_00133358;\n        if (bVar13 == 0xffffffffffffffff) {\nLAB_00133395:\n          if (type_name != (char *)0x0) {\n            iVar7 = strcmp(type_name,"long long int");\n            if (iVar7 == 0) goto LAB_0013373f;\n            iVar7 = strcmp(type_name,"long long unsigned int");\n            if (iVar7 == 0) goto LAB_0013348a;\n          }\n        }\n        else {\n          if (bVar13 == 0x7f) {\nLAB_00133dee:\n            pdVar20 = debug_make_int_type(dhandle,1,0);\n            break;\n          }\nLAB_00133a66:\n          uVar39 = (uint)bVar13;\n          if ((long)bVar13 < 0) goto LAB_00133b55;\n          if (bVar13 == 0xff) {\n            pdVar20 = debug_make_int_type(dhandle,1,1);\n            break;\n          }\n          if (bVar13 == 0xffff) {\n            pdVar20 = debug_make_int_type(dhandle,2,1);\n            break;\n          }\n          if (bVar13 != 0xffffffff) goto LAB_00131987;\n        }\n        pdVar20 = debug_make_int_type(dhandle,4,1);\n        break;\n      }\n      bVar41 = bVar13 != 0;\n      uVar39 = (uint)bVar12;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)bVar12) && (!bVar41)) {\n          pdVar20 = debug_make_float_type(dhandle,uVar39);\n          break;\n        }\n        if ((bVar13 == 0xffffffffffffffff) && (bVar12 == 0)) goto LAB_00133395;\n        if (bVar12 == 0) goto LAB_00133a66;\n        if (((-1 < (long)bVar12) || (bVar41)) || ((bVar12 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)bVar12) {\n          pdVar20 = debug_make_complex_type(dhandle,uVar39);\n          break;\n        }\n        if (-1 < (long)bVar12) {\nLAB_001336f0:\n          if ((bVar12 == ~bVar13) || (bVar12 == bVar13 + 1)) {\n            if (bVar13 == 0x7f) goto LAB_00133dee;\n            if (bVar13 == 0x7fff) {\n              pdVar20 = debug_make_int_type(dhandle,2,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffff) {\n              pdVar20 = debug_make_int_type(dhandle,4,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\nLAB_00133b55:\n      pdVar20 = debug_make_int_type(dhandle,-uVar39,1);\n    }\n    else {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        bad_stab((char *)pbVar40);\n        return (debug_type)0x0;\n      }\n      pdVar20 = stab_find_type(dhandle,info,xtypenums);\n      if (pdVar20 == (debug_type)0x0) {\n        pcVar17 = (char *)dcgettext(0,"missing index type",5);\n        warn_stab((char *)pbVar40,pcVar17);\n        pdVar20 = debug_make_int_type(dhandle,4,0);\n      }\n      pdVar20 = debug_make_range_type(dhandle,pdVar20,bVar12,bVar13);\n    }\n    break;\n  case 0x73:\n  case 0x75:\n    bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    pbVar40 = (byte *)*pp;\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    local_f8 = (debug_baseclass *)0x0;\n    if (*pbVar40 == 0x21) {\n      *pp = (char *)(pbVar40 + 1);\n      bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n      if (**pp != ',') goto LAB_00132126;\n      iVar7 = (int)bVar13;\n      uVar10 = bVar13 & 0xffffffff;\n      *pp = *pp + 1;\n      local_f8 = (debug_baseclass *)xmalloc((ulong)(iVar7 + 1) << 3);\n      if (iVar7 != 0) {\n        uVar38 = 0;\n        cVar3 = **pp;\n        if (cVar3 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar28 = uVar38;\n        if (cVar3 == '1') {\n          bVar4 = 1;\n        }\n        else {\n          if (cVar3 == '\0') goto LAB_00132126;\n          bVar4 = 0;\n          pcVar17 = (char *)dcgettext(0,"unknown virtual character for baseclass",5);\n          warn_stab((char *)pbVar40,pcVar17);\n        }\n        do {\n          pcVar17 = *pp;\n          *pp = pcVar17 + 1;\n          cVar3 = pcVar17[1];\n          if (cVar3 == '0') {\n            dVar36 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto LAB_00132126;\n            }\n            else {\n              dVar36 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (dVar36 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00132a81;\n            }\n            dVar36 = DEBUG_VISIBILITY_PUBLIC;\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for baseclass",5);\n            warn_stab((char *)pbVar40,pcVar17);\n          }\nLAB_00132a81:\n          *pp = *pp + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132126;\n          *pp = *pp + 1;\n          pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n          if (pdVar18 == (debug_type)0x0) {\n            return (debug_type)0x0;\n          }\n          pdVar24 = debug_make_baseclass(dhandle,pdVar18,bVar13,bVar4,dVar36);\n          local_f8[uVar28] = pdVar24;\n          if (pdVar24 == (debug_baseclass)0x0) {\n            return (debug_type)0x0;\n          }\n          if (**pp != ';') {\n            return (debug_type)0x0;\n          }\n          pcVar17 = *pp + 1;\n          uVar10 = (ulong)((int)uVar28 + 1);\n          uVar38 = uVar28 + 1;\n          *pp = pcVar17;\n          if (uVar28 == iVar7 - 1) break;\n          cVar3 = *pcVar17;\n          if (cVar3 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          bVar4 = 0;\n          uVar28 = uVar38;\n        } while( true );\n      }\n      pbVar40 = (byte *)*pp;\n      local_f8[uVar10] = (debug_baseclass)0x0;\n      if (p_end <= pbVar40) {\n        return (debug_type)0x0;\n      }\n    }\n    uVar10 = 0;\n    local_130 = (debug_field *)xmalloc(0x50);\n    pbVar31 = (byte *)*pp;\n    bVar43 = false;\n    bVar2 = *pbVar31;\n    local_138._0_4_ = 10;\n    while (bVar2 != 0x3b) {\n      uVar39 = (int)uVar10 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (debug_field *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar2 = *pbVar31;\n      }\n      if (((bVar2 == 0x24) || (bVar2 == 0x2e)) && (pbVar31[1] != 0x5f)) {\n        pcVar17 = *pp;\n        pbVar31 = (byte *)(pcVar17 + 1);\n        *pp = (char *)pbVar31;\n        local_130[uVar10] = (debug_field)0x0;\n        if (p_end <= pbVar31) goto LAB_00131328;\n        if (pcVar17[1] != 'v') goto LAB_00132740;\n        *pp = pcVar17 + 2;\n        cVar3 = pcVar17[2];\n        if (cVar3 == '\0') goto LAB_00132740;\n        *pp = pcVar17 + 3;\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (pdVar18 == (debug_type)0x0) goto LAB_00131328;\n        if (cVar3 == 'b') {\n          pcVar17 = debug_get_type_name(dhandle,pdVar18);\n          if (pcVar17 == (char *)0x0) {\n            pcVar17 = (char *)dcgettext(0,"unnamed $vb type",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar17 = "FOO";\n          }\n          pcVar17 = (char *)concat(&DAT_00146a0b,pcVar17,0);\n        }\n        else {\n          pcVar17 = "_vptr$";\n          if (cVar3 != 'f') {\n            pcVar16 = (char *)dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar17 = "INVALID_CPLUSPLUS_ABBREV";\n            warn_stab((char *)pbVar31,pcVar16);\n          }\n        }\n        if (**pp != ':') goto LAB_00132740;\n        *pp = *pp + 1;\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (**pp != ',') goto LAB_00132740;\n        *pp = *pp + 1;\n        bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        if (**pp != ';') goto LAB_00132740;\n        *pp = *pp + 1;\n        pdVar15 = debug_make_field(dhandle,pcVar17,pdVar18,bVar13,0,DEBUG_VISIBILITY_PRIVATE);\n        local_130[uVar10] = pdVar15;\n        if (pdVar15 == (debug_field)0x0) goto LAB_00131328;\n      }\n      else {\n        pcVar17 = strchr((char *)pbVar31,0x3a);\n        if (pcVar17 == (char *)0x0) {\n          bad_stab((char *)pbVar40);\n          free(local_130);\n          return (debug_type)0x0;\n        }\n        pbVar31 = (byte *)*pp;\n        if (pcVar17[1] == ':') break;\n        if (p_end <= pbVar31) {\n          return (debug_type)0x0;\n        }\n        pcVar16 = savestring((char *)pbVar31,(int)pcVar17 - (int)pbVar31);\n        *pp = pcVar17 + 1;\n        if (pcVar17[1] == '/') {\n          pcVar25 = pcVar17 + 2;\n          *pp = pcVar25;\n          cVar3 = pcVar17[2];\n          if (cVar3 == '0') {\n            local_120 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (local_120 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00131b6d;\n            }\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for field",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar25 = *pp;\n            local_120 = DEBUG_VISIBILITY_PUBLIC;\n          }\nLAB_00131b6d:\n          *pp = pcVar25 + 1;\n        }\n        else {\n          local_120 = DEBUG_VISIBILITY_PUBLIC;\n        }\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (pdVar18 == (debug_type)0x0) {\n          free(pcVar16);\n          return (debug_type)0x0;\n        }\n        pcVar17 = *pp;\n        if (*pcVar17 == ':') {\n          pcVar17 = pcVar17 + 1;\n          *pp = pcVar17;\n          pcVar25 = strchr(pcVar17,0x3b);\n          if (pcVar25 == (char *)0x0) goto LAB_00132614;\n          pcVar17 = savestring(pcVar17,(int)pcVar25 - (int)pcVar17);\n          *pp = pcVar25 + 1;\n          pdVar15 = debug_make_static_member(dhandle,pcVar16,pdVar18,pcVar17,local_120);\n          bVar43 = true;\n          local_130[uVar10] = pdVar15;\n        }\n        else {\n          if (*pcVar17 != ',') {\nLAB_00132614:\n            bad_stab((char *)pbVar31);\n            free(pcVar16);\n            return (debug_type)0x0;\n          }\n          *pp = pcVar17 + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132614;\n          *pp = *pp + 1;\n          bVar14 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ';') goto LAB_00132614;\n          *pp = *pp + 1;\n          dVar36 = DEBUG_VISIBILITY_IGNORE;\n          if (bVar13 != 0 || bVar14 != 0) {\n            dVar36 = local_120;\n          }\n          pdVar15 = debug_make_field(dhandle,pcVar16,pdVar18,bVar13,bVar14,dVar36);\n          local_130[uVar10] = pdVar15;\n        }\n      }\n      pbVar31 = (byte *)*pp;\n      uVar10 = (ulong)uVar39;\n      bVar2 = *pbVar31;\n    }\n    local_130[uVar10] = (debug_field)0x0;\n    if (p_end <= pbVar31) goto LAB_00131328;\n    bVar2 = *pbVar31;\n    if (bVar2 == 0x3b) {\n      local_108 = (debug_method *)0x0;\nLAB_001334bc:\n      pbVar26 = pbVar31 + 1;\n      *pp = (char *)pbVar26;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (debug_method_variant *)0x0;\n      local_108 = (debug_method *)0x0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar26 = pbVar31;\n      do {\n        pcVar17 = strchr((char *)pbVar26,0x3a);\n        if ((pcVar17 == (char *)0x0) || (pcVar17[1] != ':')) break;\n        pcVar16 = pcVar17 + 2;\n        if ((bVar2 == 0x6f) && ((pbVar26[1] == 0x70 && (pbVar26[2] == 0x24)))) {\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          pcVar17 = pcVar16;\n          while ((cVar3 != '.' && (cVar3 != '\0'))) {\n            pcVar17 = pcVar17 + 1;\n            cVar3 = *pcVar17;\n          }\n          if (cVar3 != '.') {\n            bad_stab((char *)pbVar31);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (debug_method_variant *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = savestring(pcVar16,(int)pcVar17 - (int)pcVar16);\n          *pp = pcVar17 + 1;\n        }\n        else {\n          local_138 = savestring((char *)pbVar26,(int)pcVar17 - (int)pbVar26);\n          *pp = pcVar16;\n        }\n        local_128 = (debug_method_variant *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        pdVar18 = (debug_type)0x0;\n        do {\n          if (pdVar18 == (debug_type)0x0) {\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 != (debug_type)0x0) {\n              pcVar17 = *pp;\n              if (*pcVar17 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar17 = *pp;\nLAB_00131d3f:\n          *pp = pcVar17 + 1;\n          pcVar17 = strchr(pcVar17 + 1,0x3b);\n          if (pcVar17 == (char *)0x0) {\nLAB_00132781:\n            bad_stab((char *)pbVar31);\n            goto LAB_00132793;\n          }\n          dVar6 = debug_get_type_kind(dhandle,pdVar18);\n          bVar41 = false;\n          if (dVar6 == DEBUG_KIND_METHOD) {\n            ppdVar9 = debug_get_parameter_types(dhandle,pdVar18,&varargs);\n            bVar41 = ppdVar9 == (debug_type_conflict *)0x0;\n          }\n          pbVar40 = (byte *)savestring(*pp,(int)pcVar17 - (int)*pp);\n          *pp = pcVar17 + 1;\n          cVar3 = pcVar17[1];\n          if (cVar3 == '0') {\n            local_e4 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else if (cVar3 == '1') {\n            local_e4 = DEBUG_VISIBILITY_PROTECTED;\n          }\n          else {\n            if (cVar3 == '\0') goto LAB_00132781;\n            local_e4 = DEBUG_VISIBILITY_PUBLIC;\n          }\n          pcVar16 = pcVar17 + 2;\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          switch(cVar3) {\n          case '*':\n          case '.':\n          case '?':\n            local_118 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            pcVar17 = (char *)dcgettext(0,"const/volatile indicator missing",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar16 = *pp;\n            local_118 = 0;\n            local_f0 = 0;\n            cVar3 = *pcVar16;\n            break;\n          case 'A':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            local_f0 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n          }\n          pbVar26 = pbVar40;\n          if (cVar3 == '.') {\n            bVar44 = false;\n            pdVar19 = (debug_type)0x0;\n            *pp = pcVar16 + 1;\n            local_100 = (debug_type)0x0;\n            local_e0 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar3 != '?') {\n              if (cVar3 == '*') {\n                *pp = pcVar16 + 1;\n                bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n                pcVar17 = *pp;\n                if (*pcVar17 != ';') goto LAB_00132781;\n                local_e0 = (ulong)((uint)bVar13 & 0x7fffffff);\n                *pp = pcVar17 + 1;\n                if ((pcVar17[1] == ';') || (pcVar17[1] == '\0')) {\n                  local_100 = (debug_type)0x0;\n                  pdVar19 = (debug_type)0x0;\n                  bVar44 = false;\n                }\n                else {\n                  pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end);\n                  cVar3 = **pp;\n                  if (cVar3 == ':') {\n                    local_100 = (debug_type)0x0;\n                    bVar44 = false;\n                    pdVar19 = pdVar23;\n                  }\n                  else {\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }\n                }\n              }\n              else {\n                warn_stab((char *)pbVar31,"member function type missing");\n                bVar44 = false;\n                local_100 = (debug_type)0x0;\n                local_e0 = 0;\n                pdVar19 = (debug_type)0x0;\n              }\n              goto LAB_001322ba;\n            }\n            *pp = pcVar16 + 1;\n            sVar32 = strlen(local_138);\n            iVar7 = strncmp((char *)pbVar40,local_138,sVar32);\n            if (iVar7 == 0) {\n              local_100 = (debug_type)0x0;\n              pdVar19 = (debug_type)0x0;\n              local_e0 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = (debug_type)0x0;\n            pdVar19 = (debug_type)0x0;\n            local_e0 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            pdVar23 = stab_find_type(dhandle,info,typenums);\n            if (pdVar23 == (debug_type)0x0) goto LAB_00132793;\n            pdVar20 = debug_get_return_type(dhandle,pdVar18);\n            if (pdVar20 == (debug_type_conflict)0x0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar7 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar7 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (type_name != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar2 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) && (bVar2 != 0x51 && bVar2 != 0x74))\n                 && (iVar7 = strncmp((char *)pbVar40,"__ct",4), iVar7 != 0)) {\n                if (type_name != (char *)0x0) {\nLAB_001338f6:\n                  iVar7 = strcmp(local_138,type_name);\n                  bVar45 = iVar7 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar40;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\nLAB_0013360b:\n              pcVar16 = p;\n              local_40 = 0;\n              pcVar17 = p;\n              do {\n                pcVar25 = strchr(pcVar17,0x5f);\n                if (pcVar25 == (char *)0x0) goto LAB_00133635;\n                pcVar17 = pcVar25 + 1;\n              } while (pcVar25[1] != '_');\n              if (pcVar17 != (char *)0x0) {\n                sVar32 = strspn(pcVar25,"_");\n                if (2 < (uint)sVar32) {\n                  pcVar25 = pcVar25 + ((uint)sVar32 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              stab_bad_demangle(pcVar16);\nLAB_0013323f:\n              if (local_48 != (stab_demangle_typestring *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a76;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar41 = *pbVar34 < *pbVar35;\n              bVar45 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (type_name == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar7 = strcmp(local_138,type_name);\n              bVar45 = iVar7 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a4b;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar42 = *pbVar34 < *pbVar35;\n              bVar46 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              arg_types = (stab_demangle_typestring *)xmalloc(8);\n              arg_types->typestring = (char *)0x0;\n              bVar4 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (type_name != (char *)0x0) {\n                sVar32 = strlen(type_name);\n                local_d8 = sVar32 & 0xffffffff;\n              }\n              pcVar16 = "C";\n              pcVar17 = "V";\n              if (local_f0 == 0) {\n                pcVar16 = "";\n              }\n              if (local_118 == 0) {\n                pcVar17 = "";\n              }\n              local_c0 = type_name;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)xtypenums,"__%s%s");\n              }\n              else if ((type_name == (char *)0x0) ||\n                      (pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0)) {\n                sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8);\n              }\n              else {\n                sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)xtypenums;\n              do {\n                puVar29 = puVar30;\n                uVar8 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar39 = uVar8 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar39 == 0);\n              bVar41 = (uVar8 & 0x8080) == 0;\n              if (bVar41) {\n                uVar39 = uVar39 >> 0x10;\n              }\n              cVar3 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar7 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar39,(byte)uVar39)) -\n                      (int)xtypenums;\n              sVar32 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar7 = iVar7 + (int)local_d8 + 1 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar26 = (byte *)xmalloc(iVar7);\n                *pbVar26 = 0;\n              }\n              else {\n                lVar11 = -1;\n                pcVar17 = local_138;\n                do {\n                  if (lVar11 == 0) break;\n                  lVar11 = lVar11 + -1;\n                  cVar1 = *pcVar17;\n                  pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar7 = ((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar17 == (char *)0x0) {\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar11 = -1;\n                  pcVar16 = pcVar17;\n                  do {\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar3 != '\0');\n                  pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);\n                  strncpy((char *)pbVar26,local_138,3);\n                  strcpy((char *)(pbVar26 + 3),pcVar17);\n                }\n                else {\n                  pbVar26 = (byte *)xmalloc(iVar7);\n                  strcpy((char *)pbVar26,local_138);\n                }\n              }\n              sVar32 = strlen((char *)pbVar26);\n              local_d8 = sVar32 & 0xffffffff;\n              pcVar17 = stpcpy((char *)(pbVar26 + sVar32),(char *)xtypenums);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar17,local_c0);\n              }\n              strcat((char *)pbVar26,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar26 == 0x5f) && (pbVar26[1] == 0x5a)) {\nLAB_00133b71:\n                p = (char *)pbVar26;\n                pdVar27 = cplus_demangle_v3_components((char *)pbVar26,3,(void **)xtypenums);\n                if (pdVar27 == (demangle_component *)0x0) {\n                  stab_bad_demangle((char *)pbVar26);\n                }\n                else {\n                  if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }\n                  pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar17);\n                  free((void *)xtypenums);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar26;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pcVar25 = p + local_d8;\n              pcVar16 = p;\nLAB_001330d0:\n              bVar2 = pcVar25[2];\n              if (pcVar16 == pcVar25) {\n                if (((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) &&\n                   (pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74)) {\n                  for (; *pcVar17 == '_'; pcVar17 = pcVar17 + 1) {\n                  }\n                  pcVar17 = strstr(pcVar17,"__");\n                  if ((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')) {\n                    stab_bad_demangle(pcVar25);\n                    goto LAB_0013323f;\n                  }\n                  iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17);\n                  goto LAB_001330fd;\n                }\n                p = pcVar25 + 2;\n              }\n              else {\n                if (bVar2 == 0) goto LAB_00133635;\n                iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25);\nLAB_001330fd:\n                if (iVar7 == 0) goto LAB_0013323f;\n              }\n              pcVar17 = p;\n              cVar3 = *p;\n              if (cVar3 != '\0') {\n                pcVar16 = (char *)0x0;\n                bVar41 = false;\n                pstart = (char **)0x0;\n                do {\n                  pcVar25 = p;\n                  switch(cVar3) {\n                  case '0':\n                  case '1':\n                  case '2':\n                  case '3':\n                  case '4':\n                  case '5':\n                  case '6':\n                  case '7':\n                  case '8':\n                  case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;\n                  default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'C':\n                  case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;\n                  case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;\n                  case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar41) {\nLAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    pstart = (char **)0x1;\n                  }\n                  cVar3 = *p;\n                } while (cVar3 != '\0');\n                if (((int)pstart == 0) &&\n                   (bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (stab_demangle_typestring *)0x0;\n              if (local_58 == (stab_demangle_typestring *)0x0) {\n                pcVar17 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar17);\n              }\n              varargs_1 = local_50[0];\n              arg_types = local_58;\nLAB_00133211:\n              bVar4 = varargs_1;\n              if (arg_types == (stab_demangle_typestring *)0x0) goto LAB_00132793;\n            }\n            pdVar18 = debug_make_method_type\n                                (dhandle,pdVar20,pdVar23,(debug_type_conflict *)arg_types,bVar4);\n            if (pdVar18 == (debug_type_conflict)0x0) goto LAB_00132793;\n          }\n          uVar39 = local_ec + 1;\n          if (local_e8 <= uVar39) {\n            local_e8 = local_e8 + 10;\n            local_128 = (debug_method_variant *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          if (bVar44) {\n            pdVar21 = debug_make_static_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118);\n            local_128[local_ec] = pdVar21;\n          }\n          else {\n            pdVar21 = debug_make_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118,\n                                 local_e0,local_100);\n            local_128[local_ec] = pdVar21;\n          }\n          if (pdVar21 == (debug_method_variant)0x0) goto LAB_00132793;\n          pcVar17 = *pp;\n        } while ((*pcVar17 != ';') && (pdVar18 = pdVar19, local_ec = uVar39, *pcVar17 != '\0'));\n        local_128[uVar39] = (debug_method_variant)0x0;\n        if (*pcVar17 != '\0') {\n          *pp = pcVar17 + 1;\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = (debug_method *)xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        pdVar22 = debug_make_method(dhandle,local_138,local_128);\n        local_108[local_c8] = pdVar22;\n        pbVar26 = (byte *)*pp;\n        bVar2 = *pbVar26;\n        local_c8 = uVar39;\n      } while (bVar2 != 0x3b);\n      if (local_108 != (debug_method *)0x0) {\n        local_108[local_c8] = (debug_method)0x0;\n      }\n      if (p_end <= pbVar26) goto LAB_00131328;\n      pbVar31 = pbVar26;\n      if (*pbVar26 == 0x3b) goto LAB_001334bc;\n    }\n    if (*pbVar26 == 0x7e) {\n      pbVar40 = pbVar26 + 1;\n      *pp = (char *)pbVar40;\n      if (((pbVar26[1] & 0xef) == 0x2d) || (pbVar26[1] == 0x2b)) {\n        pbVar40 = pbVar26 + 2;\n        *pp = (char *)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *pp = (char *)(pbVar40 + 1);\n      bVar4 = parse_stab_type_number(pp,xtypenums,p_end);\n      if (bVar4 == 0) goto LAB_00131328;\n      if (xtypenums[0] != typenums[0]) {\nLAB_00132596:\n        *pp = (char *)(pbVar40 + 1);\n        pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        pcVar17 = *pp;\n        cVar3 = *pcVar17;\n        while ((cVar3 != ';' && (cVar3 != '\0'))) {\n          pcVar17 = pcVar17 + 1;\n          cVar3 = *pcVar17;\n        }\n        if (cVar3 != ';') {\nLAB_00132740:\n          bad_stab((char *)pbVar31);\nLAB_00131328:\n          free(local_130);\n          return (debug_type)0x0;\n        }\n        *pp = pcVar17 + 1;\n        goto LAB_0013244c;\n      }\n      if (xtypenums[1] != typenums[1]) goto LAB_00132596;\n      bVar4 = 1;\n      pdVar20 = (debug_type_conflict)0x0;\n    }\n    else {\nLAB_0013244a:\n      pdVar20 = (debug_type_conflict)0x0;\nLAB_0013244c:\n      if (((local_108 == (debug_method *)0x0 && local_f8 == (debug_baseclass *)0x0) &&\n           pdVar20 == (debug_type_conflict)0x0) && (!bVar43)) {\n        pdVar20 = debug_make_struct_type(dhandle,(uint)(bVar37 == 0x73),bVar12,local_130);\n        break;\n      }\n      bVar4 = 0;\n    }\n    pdVar20 = debug_make_object_type\n                        (dhandle,(uint)(bVar37 == 0x73),bVar12,local_130,local_f8,local_108,pdVar20,\n                         bVar4);\n    break;\n  case 0x78:\n    bVar47 = pbVar26[1];\n    if (bVar47 == 0x65) {\n      dVar6 = DEBUG_KIND_ENUM;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        dVar6 = DEBUG_KIND_STRUCT;\n        if ((bVar47 == 0x73) || (dVar6 = DEBUG_KIND_UNION, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      dVar6 = DEBUG_KIND_STRUCT;\n      pcVar17 = (char *)dcgettext(0,"unrecognized cross reference type",5);\n      warn_stab((char *)pbVar31,pcVar17);\n      pbVar40 = (byte *)*pp;\n    }\nLAB_00131e0e:\n    pbVar40 = pbVar40 + 1;\n    *pp = (char *)pbVar40;\n    pcVar16 = strchr((char *)pbVar40,0x3c);\n    pcVar17 = strchr((char *)pbVar40,0x3a);\n    if (pcVar17 != (char *)0x0) {\n      if (((pcVar16 == (char *)0x0) || (pcVar17 <= pcVar16)) || (pcVar17[1] != ':')) {\nLAB_00131e52:\n        sVar32 = (long)pcVar17 - (long)pbVar40;\n        if (((type_name != (char *)0x0) &&\n            (iVar7 = strncmp(type_name,(char *)pbVar40,sVar32), iVar7 == 0)) &&\n           (type_name[sVar32] == '\0')) {\n          info->self_crossref = 1;\n        }\n        pdVar20 = stab_find_tagged_type\n                            (dhandle,(stab_handle *)&info->tags,(char *)pbVar40,(int)sVar32,dVar6);\n        *pp = pcVar17 + 1;\n        break;\n      }\n      cVar3 = *pcVar16;\n      if (cVar3 != '\0') {\n        iVar7 = 0;\n        pcVar17 = pcVar16;\n        do {\n          if (cVar3 == '<') {\n            iVar7 = iVar7 + 1;\n          }\n          else if (cVar3 == '>') {\n            iVar7 = iVar7 + -1;\n          }\n          else if ((iVar7 == 0) && (cVar3 == ':')) goto LAB_00131e52;\n          pcVar17 = pcVar17 + 1;\n          cVar3 = *pcVar17;\n        } while (cVar3 != '\0');\n      }\n    }\nswitchD_001311d2_caseD_24:\n    bad_stab((char *)pbVar31);\n    return (debug_type)0x0;\n  }" { (case_statement "case 0x23:\n    if (pbVar26[1] == 0x23) {\n      *pp = (char *)(pbVar26 + 2);\n      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      if (**pp != ';') goto switchD_001311d2_caseD_24;\n      *pp = *pp + 1;\n      pdVar20 = debug_make_method_type\n                          (dhandle,pdVar18,(debug_type_conflict)0x0,(debug_type_conflict *)0x0,0);\n    }\n    else {\n      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      if (**pp != ',') goto switchD_001311d2_caseD_24;\n      *pp = *pp + 1;\n      pdVar19 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar19 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      uVar38 = 10;\n      ppdVar9 = (debug_type_conflict *)xmalloc(0x50);\n      uVar10 = 0;\n      while( true ) {\n        pcVar17 = *pp;\n        iVar7 = (int)uVar10;\n        if (*pcVar17 == ';') break;\n        if (*pcVar17 != ',') {\n          bad_stab((char *)pbVar31);\n          return (debug_type)0x0;\n        }\n        *pp = pcVar17 + 1;\n        if ((uint)uVar38 <= iVar7 + 1U) {\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          ppdVar9 = (debug_type_conflict *)xrealloc(ppdVar9,uVar38 << 3);\n        }\n        ppdVar33 = ppdVar9 + uVar10;\n        pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        uVar10 = (ulong)(iVar7 + 1U);\n        *ppdVar33 = pdVar23;\n        if (pdVar23 == (debug_type)0x0) {\n          return (debug_type)0x0;\n        }\n      }\n      bVar4 = 1;\n      *pp = pcVar17 + 1;\n      ppdVar33 = ppdVar9;\n      if (iVar7 != 0) {\n        ppdVar33 = ppdVar9 + (iVar7 - 1);\n        dVar6 = debug_get_type_kind(dhandle,*ppdVar33);\n        if (dVar6 == DEBUG_KIND_VOID) {\n          bVar4 = 0;\n        }\n        else {\n          ppdVar33 = ppdVar9 + uVar10;\n        }\n      }\n      *ppdVar33 = (debug_type_conflict)0x0;\n      pdVar20 = debug_make_method_type(dhandle,pdVar19,pdVar18,ppdVar9,bVar4);\n    }\n    break;" case number_literal : (if_statement "if (pbVar26[1] == 0x23) {\n      *pp = (char *)(pbVar26 + 2);\n      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      if (**pp != ';') goto switchD_001311d2_caseD_24;\n      *pp = *pp + 1;\n      pdVar20 = debug_make_method_type\n                          (dhandle,pdVar18,(debug_type_conflict)0x0,(debug_type_conflict *)0x0,0);\n    }\n    else {\n      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      if (**pp != ',') goto switchD_001311d2_caseD_24;\n      *pp = *pp + 1;\n      pdVar19 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar19 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      uVar38 = 10;\n      ppdVar9 = (debug_type_conflict *)xmalloc(0x50);\n      uVar10 = 0;\n      while( true ) {\n        pcVar17 = *pp;\n        iVar7 = (int)uVar10;\n        if (*pcVar17 == ';') break;\n        if (*pcVar17 != ',') {\n          bad_stab((char *)pbVar31);\n          return (debug_type)0x0;\n        }\n        *pp = pcVar17 + 1;\n        if ((uint)uVar38 <= iVar7 + 1U) {\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          ppdVar9 = (debug_type_conflict *)xrealloc(ppdVar9,uVar38 << 3);\n        }\n        ppdVar33 = ppdVar9 + uVar10;\n        pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        uVar10 = (ulong)(iVar7 + 1U);\n        *ppdVar33 = pdVar23;\n        if (pdVar23 == (debug_type)0x0) {\n          return (debug_type)0x0;\n        }\n      }\n      bVar4 = 1;\n      *pp = pcVar17 + 1;\n      ppdVar33 = ppdVar9;\n      if (iVar7 != 0) {\n        ppdVar33 = ppdVar9 + (iVar7 - 1);\n        dVar6 = debug_get_type_kind(dhandle,*ppdVar33);\n        if (dVar6 == DEBUG_KIND_VOID) {\n          bVar4 = 0;\n        }\n        else {\n          ppdVar33 = ppdVar9 + uVar10;\n        }\n      }\n      *ppdVar33 = (debug_type_conflict)0x0;\n      pdVar20 = debug_make_method_type(dhandle,pdVar19,pdVar18,ppdVar9,bVar4);\n    }" if (parenthesized_expression "(pbVar26[1] == 0x23)" ( (binary_expression "pbVar26[1] == 0x23" (subscript_expression "pbVar26[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      *pp = (char *)(pbVar26 + 2);\n      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      if (**pp != ';') goto switchD_001311d2_caseD_24;\n      *pp = *pp + 1;\n      pdVar20 = debug_make_method_type\n                          (dhandle,pdVar18,(debug_type_conflict)0x0,(debug_type_conflict *)0x0,0);\n    }" { (expression_statement "*pp = (char *)(pbVar26 + 2);" (assignment_expression "*pp = (char *)(pbVar26 + 2)" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)(pbVar26 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 2)" ( (binary_expression "pbVar26 + 2" identifier + number_literal) )))) ;) (expression_statement "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);" (assignment_expression "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier = (call_expression "parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier (argument_list "(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(debug_type_conflict **)0x0" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , identifier )))) ;) (if_statement "if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }" if (parenthesized_expression "(pdVar18 == (debug_type)0x0)" ( (binary_expression "pdVar18 == (debug_type)0x0" identifier == (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (compound_statement "{\n        return (debug_type)0x0;\n      }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (if_statement "if (**pp != ';') goto switchD_001311d2_caseD_24;" if (parenthesized_expression "(**pp != ';')" ( (binary_expression "**pp != ';'" (pointer_expression "**pp" * (pointer_expression "*pp" * identifier)) != (char_literal "';'" ' character ')) )) (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;)) (expression_statement "*pp = *pp + 1;" (assignment_expression "*pp = *pp + 1" (pointer_expression "*pp" * identifier) = (binary_expression "*pp + 1" (pointer_expression "*pp" * identifier) + number_literal)) ;) (expression_statement "pdVar20 = debug_make_method_type\n                          (dhandle,pdVar18,(debug_type_conflict)0x0,(debug_type_conflict *)0x0,0);" (assignment_expression "pdVar20 = debug_make_method_type\n                          (dhandle,pdVar18,(debug_type_conflict)0x0,(debug_type_conflict *)0x0,0)" identifier = (call_expression "debug_make_method_type\n                          (dhandle,pdVar18,(debug_type_conflict)0x0,(debug_type_conflict *)0x0,0)" identifier (argument_list "(dhandle,pdVar18,(debug_type_conflict)0x0,(debug_type_conflict *)0x0,0)" ( identifier , identifier , (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal) , (cast_expression "(debug_type_conflict *)0x0" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal )))) ;) }) (else_clause "else {\n      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      if (**pp != ',') goto switchD_001311d2_caseD_24;\n      *pp = *pp + 1;\n      pdVar19 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar19 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      uVar38 = 10;\n      ppdVar9 = (debug_type_conflict *)xmalloc(0x50);\n      uVar10 = 0;\n      while( true ) {\n        pcVar17 = *pp;\n        iVar7 = (int)uVar10;\n        if (*pcVar17 == ';') break;\n        if (*pcVar17 != ',') {\n          bad_stab((char *)pbVar31);\n          return (debug_type)0x0;\n        }\n        *pp = pcVar17 + 1;\n        if ((uint)uVar38 <= iVar7 + 1U) {\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          ppdVar9 = (debug_type_conflict *)xrealloc(ppdVar9,uVar38 << 3);\n        }\n        ppdVar33 = ppdVar9 + uVar10;\n        pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        uVar10 = (ulong)(iVar7 + 1U);\n        *ppdVar33 = pdVar23;\n        if (pdVar23 == (debug_type)0x0) {\n          return (debug_type)0x0;\n        }\n      }\n      bVar4 = 1;\n      *pp = pcVar17 + 1;\n      ppdVar33 = ppdVar9;\n      if (iVar7 != 0) {\n        ppdVar33 = ppdVar9 + (iVar7 - 1);\n        dVar6 = debug_get_type_kind(dhandle,*ppdVar33);\n        if (dVar6 == DEBUG_KIND_VOID) {\n          bVar4 = 0;\n        }\n        else {\n          ppdVar33 = ppdVar9 + uVar10;\n        }\n      }\n      *ppdVar33 = (debug_type_conflict)0x0;\n      pdVar20 = debug_make_method_type(dhandle,pdVar19,pdVar18,ppdVar9,bVar4);\n    }" else (compound_statement "{\n      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      if (**pp != ',') goto switchD_001311d2_caseD_24;\n      *pp = *pp + 1;\n      pdVar19 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar19 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      uVar38 = 10;\n      ppdVar9 = (debug_type_conflict *)xmalloc(0x50);\n      uVar10 = 0;\n      while( true ) {\n        pcVar17 = *pp;\n        iVar7 = (int)uVar10;\n        if (*pcVar17 == ';') break;\n        if (*pcVar17 != ',') {\n          bad_stab((char *)pbVar31);\n          return (debug_type)0x0;\n        }\n        *pp = pcVar17 + 1;\n        if ((uint)uVar38 <= iVar7 + 1U) {\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          ppdVar9 = (debug_type_conflict *)xrealloc(ppdVar9,uVar38 << 3);\n        }\n        ppdVar33 = ppdVar9 + uVar10;\n        pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        uVar10 = (ulong)(iVar7 + 1U);\n        *ppdVar33 = pdVar23;\n        if (pdVar23 == (debug_type)0x0) {\n          return (debug_type)0x0;\n        }\n      }\n      bVar4 = 1;\n      *pp = pcVar17 + 1;\n      ppdVar33 = ppdVar9;\n      if (iVar7 != 0) {\n        ppdVar33 = ppdVar9 + (iVar7 - 1);\n        dVar6 = debug_get_type_kind(dhandle,*ppdVar33);\n        if (dVar6 == DEBUG_KIND_VOID) {\n          bVar4 = 0;\n        }\n        else {\n          ppdVar33 = ppdVar9 + uVar10;\n        }\n      }\n      *ppdVar33 = (debug_type_conflict)0x0;\n      pdVar20 = debug_make_method_type(dhandle,pdVar19,pdVar18,ppdVar9,bVar4);\n    }" { (expression_statement "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);" (assignment_expression "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier = (call_expression "parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier (argument_list "(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(debug_type_conflict **)0x0" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , identifier )))) ;) (if_statement "if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }" if (parenthesized_expression "(pdVar18 == (debug_type)0x0)" ( (binary_expression "pdVar18 == (debug_type)0x0" identifier == (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (compound_statement "{\n        return (debug_type)0x0;\n      }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (if_statement "if (**pp != ',') goto switchD_001311d2_caseD_24;" if (parenthesized_expression "(**pp != ',')" ( (binary_expression "**pp != ','" (pointer_expression "**pp" * (pointer_expression "*pp" * identifier)) != (char_literal "','" ' character ')) )) (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;)) (expression_statement "*pp = *pp + 1;" (assignment_expression "*pp = *pp + 1" (pointer_expression "*pp" * identifier) = (binary_expression "*pp + 1" (pointer_expression "*pp" * identifier) + number_literal)) ;) (expression_statement "pdVar19 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);" (assignment_expression "pdVar19 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier = (call_expression "parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier (argument_list "(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(debug_type_conflict **)0x0" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , identifier )))) ;) (if_statement "if (pdVar19 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }" if (parenthesized_expression "(pdVar19 == (debug_type)0x0)" ( (binary_expression "pdVar19 == (debug_type)0x0" identifier == (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (compound_statement "{\n        return (debug_type)0x0;\n      }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "uVar38 = 10;" (assignment_expression "uVar38 = 10" identifier = number_literal) ;) (expression_statement "ppdVar9 = (debug_type_conflict *)xmalloc(0x50);" (assignment_expression "ppdVar9 = (debug_type_conflict *)xmalloc(0x50)" identifier = (cast_expression "(debug_type_conflict *)xmalloc(0x50)" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n        pcVar17 = *pp;\n        iVar7 = (int)uVar10;\n        if (*pcVar17 == ';') break;\n        if (*pcVar17 != ',') {\n          bad_stab((char *)pbVar31);\n          return (debug_type)0x0;\n        }\n        *pp = pcVar17 + 1;\n        if ((uint)uVar38 <= iVar7 + 1U) {\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          ppdVar9 = (debug_type_conflict *)xrealloc(ppdVar9,uVar38 << 3);\n        }\n        ppdVar33 = ppdVar9 + uVar10;\n        pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        uVar10 = (ulong)(iVar7 + 1U);\n        *ppdVar33 = pdVar23;\n        if (pdVar23 == (debug_type)0x0) {\n          return (debug_type)0x0;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        pcVar17 = *pp;\n        iVar7 = (int)uVar10;\n        if (*pcVar17 == ';') break;\n        if (*pcVar17 != ',') {\n          bad_stab((char *)pbVar31);\n          return (debug_type)0x0;\n        }\n        *pp = pcVar17 + 1;\n        if ((uint)uVar38 <= iVar7 + 1U) {\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          ppdVar9 = (debug_type_conflict *)xrealloc(ppdVar9,uVar38 << 3);\n        }\n        ppdVar33 = ppdVar9 + uVar10;\n        pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        uVar10 = (ulong)(iVar7 + 1U);\n        *ppdVar33 = pdVar23;\n        if (pdVar23 == (debug_type)0x0) {\n          return (debug_type)0x0;\n        }\n      }" { (expression_statement "pcVar17 = *pp;" (assignment_expression "pcVar17 = *pp" identifier = (pointer_expression "*pp" * identifier)) ;) (expression_statement "iVar7 = (int)uVar10;" (assignment_expression "iVar7 = (int)uVar10" identifier = (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (*pcVar17 == ';') break;" if (parenthesized_expression "(*pcVar17 == ';')" ( (binary_expression "*pcVar17 == ';'" (pointer_expression "*pcVar17" * identifier) == (char_literal "';'" ' character ')) )) (break_statement "break;" break ;)) (if_statement "if (*pcVar17 != ',') {\n          bad_stab((char *)pbVar31);\n          return (debug_type)0x0;\n        }" if (parenthesized_expression "(*pcVar17 != ',')" ( (binary_expression "*pcVar17 != ','" (pointer_expression "*pcVar17" * identifier) != (char_literal "','" ' character ')) )) (compound_statement "{\n          bad_stab((char *)pbVar31);\n          return (debug_type)0x0;\n        }" { (expression_statement "bad_stab((char *)pbVar31);" (call_expression "bad_stab((char *)pbVar31)" identifier (argument_list "((char *)pbVar31)" ( (cast_expression "(char *)pbVar31" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "*pp = pcVar17 + 1;" (assignment_expression "*pp = pcVar17 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (if_statement "if ((uint)uVar38 <= iVar7 + 1U) {\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          ppdVar9 = (debug_type_conflict *)xrealloc(ppdVar9,uVar38 << 3);\n        }" if (parenthesized_expression "((uint)uVar38 <= iVar7 + 1U)" ( (binary_expression "(uint)uVar38 <= iVar7 + 1U" (cast_expression "(uint)uVar38" ( (type_descriptor "uint" type_identifier) ) identifier) <= (binary_expression "iVar7 + 1U" identifier + number_literal)) )) (compound_statement "{\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          ppdVar9 = (debug_type_conflict *)xrealloc(ppdVar9,uVar38 << 3);\n        }" { (expression_statement "uVar38 = (ulong)((uint)uVar38 + 10);" (assignment_expression "uVar38 = (ulong)((uint)uVar38 + 10)" identifier = (call_expression "(ulong)((uint)uVar38 + 10)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((uint)uVar38 + 10)" ( (binary_expression "(uint)uVar38 + 10" (cast_expression "(uint)uVar38" ( (type_descriptor "uint" type_identifier) ) identifier) + number_literal) )))) ;) (expression_statement "ppdVar9 = (debug_type_conflict *)xrealloc(ppdVar9,uVar38 << 3);" (assignment_expression "ppdVar9 = (debug_type_conflict *)xrealloc(ppdVar9,uVar38 << 3)" identifier = (cast_expression "(debug_type_conflict *)xrealloc(ppdVar9,uVar38 << 3)" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(ppdVar9,uVar38 << 3)" identifier (argument_list "(ppdVar9,uVar38 << 3)" ( identifier , (binary_expression "uVar38 << 3" identifier << number_literal) ))))) ;) })) (expression_statement "ppdVar33 = ppdVar9 + uVar10;" (assignment_expression "ppdVar33 = ppdVar9 + uVar10" identifier = (binary_expression "ppdVar9 + uVar10" identifier + identifier)) ;) (expression_statement "pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);" (assignment_expression "pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier = (call_expression "parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier (argument_list "(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(debug_type_conflict **)0x0" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , identifier )))) ;) (expression_statement "uVar10 = (ulong)(iVar7 + 1U);" (assignment_expression "uVar10 = (ulong)(iVar7 + 1U)" identifier = (call_expression "(ulong)(iVar7 + 1U)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar7 + 1U)" ( (binary_expression "iVar7 + 1U" identifier + number_literal) )))) ;) (expression_statement "*ppdVar33 = pdVar23;" (assignment_expression "*ppdVar33 = pdVar23" (pointer_expression "*ppdVar33" * identifier) = identifier) ;) (if_statement "if (pdVar23 == (debug_type)0x0) {\n          return (debug_type)0x0;\n        }" if (parenthesized_expression "(pdVar23 == (debug_type)0x0)" ( (binary_expression "pdVar23 == (debug_type)0x0" identifier == (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (compound_statement "{\n          return (debug_type)0x0;\n        }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) })) (expression_statement "bVar4 = 1;" (assignment_expression "bVar4 = 1" identifier = number_literal) ;) (expression_statement "*pp = pcVar17 + 1;" (assignment_expression "*pp = pcVar17 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (expression_statement "ppdVar33 = ppdVar9;" (assignment_expression "ppdVar33 = ppdVar9" identifier = identifier) ;) (if_statement "if (iVar7 != 0) {\n        ppdVar33 = ppdVar9 + (iVar7 - 1);\n        dVar6 = debug_get_type_kind(dhandle,*ppdVar33);\n        if (dVar6 == DEBUG_KIND_VOID) {\n          bVar4 = 0;\n        }\n        else {\n          ppdVar33 = ppdVar9 + uVar10;\n        }\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        ppdVar33 = ppdVar9 + (iVar7 - 1);\n        dVar6 = debug_get_type_kind(dhandle,*ppdVar33);\n        if (dVar6 == DEBUG_KIND_VOID) {\n          bVar4 = 0;\n        }\n        else {\n          ppdVar33 = ppdVar9 + uVar10;\n        }\n      }" { (expression_statement "ppdVar33 = ppdVar9 + (iVar7 - 1);" (assignment_expression "ppdVar33 = ppdVar9 + (iVar7 - 1)" identifier = (binary_expression "ppdVar9 + (iVar7 - 1)" identifier + (parenthesized_expression "(iVar7 - 1)" ( (binary_expression "iVar7 - 1" identifier - number_literal) )))) ;) (expression_statement "dVar6 = debug_get_type_kind(dhandle,*ppdVar33);" (assignment_expression "dVar6 = debug_get_type_kind(dhandle,*ppdVar33)" identifier = (call_expression "debug_get_type_kind(dhandle,*ppdVar33)" identifier (argument_list "(dhandle,*ppdVar33)" ( identifier , (pointer_expression "*ppdVar33" * identifier) )))) ;) (if_statement "if (dVar6 == DEBUG_KIND_VOID) {\n          bVar4 = 0;\n        }\n        else {\n          ppdVar33 = ppdVar9 + uVar10;\n        }" if (parenthesized_expression "(dVar6 == DEBUG_KIND_VOID)" ( (binary_expression "dVar6 == DEBUG_KIND_VOID" identifier == identifier) )) (compound_statement "{\n          bVar4 = 0;\n        }" { (expression_statement "bVar4 = 0;" (assignment_expression "bVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          ppdVar33 = ppdVar9 + uVar10;\n        }" else (compound_statement "{\n          ppdVar33 = ppdVar9 + uVar10;\n        }" { (expression_statement "ppdVar33 = ppdVar9 + uVar10;" (assignment_expression "ppdVar33 = ppdVar9 + uVar10" identifier = (binary_expression "ppdVar9 + uVar10" identifier + identifier)) ;) }))) })) (expression_statement "*ppdVar33 = (debug_type_conflict)0x0;" (assignment_expression "*ppdVar33 = (debug_type_conflict)0x0" (pointer_expression "*ppdVar33" * identifier) = (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) ;) (expression_statement "pdVar20 = debug_make_method_type(dhandle,pdVar19,pdVar18,ppdVar9,bVar4);" (assignment_expression "pdVar20 = debug_make_method_type(dhandle,pdVar19,pdVar18,ppdVar9,bVar4)" identifier = (call_expression "debug_make_method_type(dhandle,pdVar19,pdVar18,ppdVar9,bVar4)" identifier (argument_list "(dhandle,pdVar19,pdVar18,ppdVar9,bVar4)" ( identifier , identifier , identifier , identifier , identifier )))) ;) }))) (break_statement "break;" break ;)) (case_statement "default:\n    goto switchD_001311d2_caseD_24;" default : (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;)) (case_statement "case 0x26:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_reference_type(dhandle,pdVar18);\n    break;" case number_literal : (expression_statement "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);" (assignment_expression "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier = (call_expression "parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier (argument_list "(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(debug_type_conflict **)0x0" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , identifier )))) ;) (expression_statement "pdVar20 = debug_make_reference_type(dhandle,pdVar18);" (assignment_expression "pdVar20 = debug_make_reference_type(dhandle,pdVar18)" identifier = (call_expression "debug_make_reference_type(dhandle,pdVar18)" identifier (argument_list "(dhandle,pdVar18)" ( identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x28:" case number_literal :) (case_statement "case 0x2d:" case number_literal :) (case_statement "case 0x30:" case number_literal :) (case_statement "case 0x31:" case number_literal :) (case_statement "case 0x32:" case number_literal :) (case_statement "case 0x33:" case number_literal :) (case_statement "case 0x34:" case number_literal :) (case_statement "case 0x35:" case number_literal :) (case_statement "case 0x36:" case number_literal :) (case_statement "case 0x37:" case number_literal :) (case_statement "case 0x38:" case number_literal :) (case_statement "case 0x39:\n    *pp = (char *)pbVar26;\n    bVar4 = parse_stab_type_number(pp,xtypenums,p_end);\n    if (bVar4 == 0) {\n      return (debug_type)0x0;\n    }\n    if (typenums[0] == xtypenums[0]) {\n      if (typenums[1] != xtypenums[1]) goto LAB_00132079;\n      pdVar20 = debug_make_void_type(dhandle);\n    }\n    else {\nLAB_00132079:\n      *pp = (char *)pbVar26;\n      pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar20 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n    }\n    if (typenums[0] != -1) {\n      ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums);\n      if (ppdVar9 == (debug_type_conflict *)0x0) {\n        return (debug_type)0x0;\n      }\n      *ppdVar9 = pdVar20;\n    }\n    break;" case number_literal : (expression_statement "*pp = (char *)pbVar26;" (assignment_expression "*pp = (char *)pbVar26" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar26" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar4 = parse_stab_type_number(pp,xtypenums,p_end);" (assignment_expression "bVar4 = parse_stab_type_number(pp,xtypenums,p_end)" identifier = (call_expression "parse_stab_type_number(pp,xtypenums,p_end)" identifier (argument_list "(pp,xtypenums,p_end)" ( identifier , identifier , identifier )))) ;) (if_statement "if (bVar4 == 0) {\n      return (debug_type)0x0;\n    }" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      return (debug_type)0x0;\n    }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (if_statement "if (typenums[0] == xtypenums[0]) {\n      if (typenums[1] != xtypenums[1]) goto LAB_00132079;\n      pdVar20 = debug_make_void_type(dhandle);\n    }\n    else {\nLAB_00132079:\n      *pp = (char *)pbVar26;\n      pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar20 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n    }" if (parenthesized_expression "(typenums[0] == xtypenums[0])" ( (binary_expression "typenums[0] == xtypenums[0]" (subscript_expression "typenums[0]" identifier [ number_literal ]) == (subscript_expression "xtypenums[0]" identifier [ number_literal ])) )) (compound_statement "{\n      if (typenums[1] != xtypenums[1]) goto LAB_00132079;\n      pdVar20 = debug_make_void_type(dhandle);\n    }" { (if_statement "if (typenums[1] != xtypenums[1]) goto LAB_00132079;" if (parenthesized_expression "(typenums[1] != xtypenums[1])" ( (binary_expression "typenums[1] != xtypenums[1]" (subscript_expression "typenums[1]" identifier [ number_literal ]) != (subscript_expression "xtypenums[1]" identifier [ number_literal ])) )) (goto_statement "goto LAB_00132079;" goto statement_identifier ;)) (expression_statement "pdVar20 = debug_make_void_type(dhandle);" (assignment_expression "pdVar20 = debug_make_void_type(dhandle)" identifier = (call_expression "debug_make_void_type(dhandle)" identifier (argument_list "(dhandle)" ( identifier )))) ;) }) (else_clause "else {\nLAB_00132079:\n      *pp = (char *)pbVar26;\n      pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar20 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n    }" else (compound_statement "{\nLAB_00132079:\n      *pp = (char *)pbVar26;\n      pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar20 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n    }" { (labeled_statement "LAB_00132079:\n      *pp = (char *)pbVar26;" statement_identifier : (expression_statement "*pp = (char *)pbVar26;" (assignment_expression "*pp = (char *)pbVar26" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar26" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);" (assignment_expression "pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier = (call_expression "parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier (argument_list "(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(debug_type_conflict **)0x0" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , identifier )))) ;) (if_statement "if (pdVar20 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }" if (parenthesized_expression "(pdVar20 == (debug_type)0x0)" ( (binary_expression "pdVar20 == (debug_type)0x0" identifier == (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (compound_statement "{\n        return (debug_type)0x0;\n      }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) }))) (if_statement "if (typenums[0] != -1) {\n      ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums);\n      if (ppdVar9 == (debug_type_conflict *)0x0) {\n        return (debug_type)0x0;\n      }\n      *ppdVar9 = pdVar20;\n    }" if (parenthesized_expression "(typenums[0] != -1)" ( (binary_expression "typenums[0] != -1" (subscript_expression "typenums[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums);\n      if (ppdVar9 == (debug_type_conflict *)0x0) {\n        return (debug_type)0x0;\n      }\n      *ppdVar9 = pdVar20;\n    }" { (expression_statement "ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums);" (assignment_expression "ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums)" identifier = (call_expression "stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums)" identifier (argument_list "((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums)" ( (cast_expression "(stab_handle *)&info->files" ( (type_descriptor "stab_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&info->files" & (field_expression "info->files" identifier -> field_identifier))) , (cast_expression "(int *)&info->file_types" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&info->file_types" & (field_expression "info->file_types" identifier -> field_identifier))) , (cast_expression "(stab_handle *)typenums" ( (type_descriptor "stab_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (ppdVar9 == (debug_type_conflict *)0x0) {\n        return (debug_type)0x0;\n      }" if (parenthesized_expression "(ppdVar9 == (debug_type_conflict *)0x0)" ( (binary_expression "ppdVar9 == (debug_type_conflict *)0x0" identifier == (cast_expression "(debug_type_conflict *)0x0" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return (debug_type)0x0;\n      }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "*ppdVar9 = pdVar20;" (assignment_expression "*ppdVar9 = pdVar20" (pointer_expression "*ppdVar9" * identifier) = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x2a:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_pointer_type(dhandle,pdVar18);\n    break;" case number_literal : (expression_statement "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);" (assignment_expression "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier = (call_expression "parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier (argument_list "(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(debug_type_conflict **)0x0" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , identifier )))) ;) (expression_statement "pdVar20 = debug_make_pointer_type(dhandle,pdVar18);" (assignment_expression "pdVar20 = debug_make_pointer_type(dhandle,pdVar18)" identifier = (call_expression "debug_make_pointer_type(dhandle,pdVar18)" identifier (argument_list "(dhandle,pdVar18)" ( identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x40:\nswitchD_001311d2_caseD_40:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    if (pdVar18 == (debug_type)0x0) {\n      return (debug_type)0x0;\n    }\n    if (**pp != ',') goto switchD_001311d2_caseD_24;\n    *pp = *pp + 1;\n    pdVar19 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    if (pdVar19 == (debug_type)0x0) {\n      return (debug_type)0x0;\n    }\n    pdVar20 = debug_make_offset_type(dhandle,pdVar18,pdVar19);\n    break;" case number_literal : (labeled_statement "switchD_001311d2_caseD_40:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);" statement_identifier : (expression_statement "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);" (assignment_expression "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier = (call_expression "parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier (argument_list "(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(debug_type_conflict **)0x0" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , identifier )))) ;)) (if_statement "if (pdVar18 == (debug_type)0x0) {\n      return (debug_type)0x0;\n    }" if (parenthesized_expression "(pdVar18 == (debug_type)0x0)" ( (binary_expression "pdVar18 == (debug_type)0x0" identifier == (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (compound_statement "{\n      return (debug_type)0x0;\n    }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (if_statement "if (**pp != ',') goto switchD_001311d2_caseD_24;" if (parenthesized_expression "(**pp != ',')" ( (binary_expression "**pp != ','" (pointer_expression "**pp" * (pointer_expression "*pp" * identifier)) != (char_literal "','" ' character ')) )) (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;)) (expression_statement "*pp = *pp + 1;" (assignment_expression "*pp = *pp + 1" (pointer_expression "*pp" * identifier) = (binary_expression "*pp + 1" (pointer_expression "*pp" * identifier) + number_literal)) ;) (expression_statement "pdVar19 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);" (assignment_expression "pdVar19 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier = (call_expression "parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier (argument_list "(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(debug_type_conflict **)0x0" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , identifier )))) ;) (if_statement "if (pdVar19 == (debug_type)0x0) {\n      return (debug_type)0x0;\n    }" if (parenthesized_expression "(pdVar19 == (debug_type)0x0)" ( (binary_expression "pdVar19 == (debug_type)0x0" identifier == (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (compound_statement "{\n      return (debug_type)0x0;\n    }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "pdVar20 = debug_make_offset_type(dhandle,pdVar18,pdVar19);" (assignment_expression "pdVar20 = debug_make_offset_type(dhandle,pdVar18,pdVar19)" identifier = (call_expression "debug_make_offset_type(dhandle,pdVar18,pdVar19)" identifier (argument_list "(dhandle,pdVar18,pdVar19)" ( identifier , identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x42:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_volatile_type(dhandle,pdVar18);\n    break;" case number_literal : (expression_statement "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);" (assignment_expression "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier = (call_expression "parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier (argument_list "(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(debug_type_conflict **)0x0" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , identifier )))) ;) (expression_statement "pdVar20 = debug_make_volatile_type(dhandle,pdVar18);" (assignment_expression "pdVar20 = debug_make_volatile_type(dhandle,pdVar18)" identifier = (call_expression "debug_make_volatile_type(dhandle,pdVar18)" identifier (argument_list "(dhandle,pdVar18)" ( identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x52:\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    if ((**pp != ';') || (bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end), **pp != ';'))\n    goto LAB_00132126;\n    if (bVar12 - 3 < 3) {\n      pdVar20 = debug_make_complex_type(dhandle,(uint)bVar13);\n    }\n    else {\n      pdVar20 = debug_make_float_type(dhandle,(uint)bVar13);\n    }\n    break;" case number_literal : (if_statement "if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }" if (parenthesized_expression "(p_end <= pbVar40)" ( (binary_expression "p_end <= pbVar40" identifier <= identifier) )) (compound_statement "{\n      return (debug_type)0x0;\n    }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);" (assignment_expression "bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier = (call_expression "parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier (argument_list "(pp,(bfd_boolean *)0x0,p_end)" ( identifier , (cast_expression "(bfd_boolean *)0x0" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (if_statement "if ((**pp != ';') || (bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end), **pp != ';'))\n    goto LAB_00132126;" if (parenthesized_expression "((**pp != ';') || (bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end), **pp != ';'))" ( (binary_expression "(**pp != ';') || (bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end), **pp != ';')" (parenthesized_expression "(**pp != ';')" ( (binary_expression "**pp != ';'" (pointer_expression "**pp" * (pointer_expression "*pp" * identifier)) != (char_literal "';'" ' character ')) )) || (parenthesized_expression "(bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end), **pp != ';')" ( (comma_expression "bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end), **pp != ';'" (assignment_expression "bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier = (call_expression "parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier (argument_list "(pp,(bfd_boolean *)0x0,p_end)" ( identifier , (cast_expression "(bfd_boolean *)0x0" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) , (binary_expression "**pp != ';'" (pointer_expression "**pp" * (pointer_expression "*pp" * identifier)) != (char_literal "';'" ' character '))) ))) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (if_statement "if (bVar12 - 3 < 3) {\n      pdVar20 = debug_make_complex_type(dhandle,(uint)bVar13);\n    }\n    else {\n      pdVar20 = debug_make_float_type(dhandle,(uint)bVar13);\n    }" if (parenthesized_expression "(bVar12 - 3 < 3)" ( (binary_expression "bVar12 - 3 < 3" (binary_expression "bVar12 - 3" identifier - number_literal) < number_literal) )) (compound_statement "{\n      pdVar20 = debug_make_complex_type(dhandle,(uint)bVar13);\n    }" { (expression_statement "pdVar20 = debug_make_complex_type(dhandle,(uint)bVar13);" (assignment_expression "pdVar20 = debug_make_complex_type(dhandle,(uint)bVar13)" identifier = (call_expression "debug_make_complex_type(dhandle,(uint)bVar13)" identifier (argument_list "(dhandle,(uint)bVar13)" ( identifier , (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) }) (else_clause "else {\n      pdVar20 = debug_make_float_type(dhandle,(uint)bVar13);\n    }" else (compound_statement "{\n      pdVar20 = debug_make_float_type(dhandle,(uint)bVar13);\n    }" { (expression_statement "pdVar20 = debug_make_float_type(dhandle,(uint)bVar13);" (assignment_expression "pdVar20 = debug_make_float_type(dhandle,(uint)bVar13)" identifier = (call_expression "debug_make_float_type(dhandle,(uint)bVar13)" identifier (argument_list "(dhandle,(uint)bVar13)" ( identifier , (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) )))) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x53:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_set_type(dhandle,pdVar18,bVar4);\n    break;" case number_literal : (expression_statement "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);" (assignment_expression "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier = (call_expression "parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier (argument_list "(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(debug_type_conflict **)0x0" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , identifier )))) ;) (expression_statement "pdVar20 = debug_make_set_type(dhandle,pdVar18,bVar4);" (assignment_expression "pdVar20 = debug_make_set_type(dhandle,pdVar18,bVar4)" identifier = (call_expression "debug_make_set_type(dhandle,pdVar18,bVar4)" identifier (argument_list "(dhandle,pdVar18,bVar4)" ( identifier , identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x61:\n    if (pbVar26[1] == 0x72) {\n      pbVar26 = pbVar26 + 2;\n      *pp = (char *)pbVar26;\n      if (p_end <= pbVar26) {\n        return (debug_type)0x0;\n      }\n      p = (char *)pbVar26;\n      bVar5 = parse_stab_type_number(&p,xtypenums,p_end);\n      if (bVar5 == 0) {\n        return (debug_type)0x0;\n      }\n      if ((xtypenums[0] == 0 && xtypenums[1] == 0) && (**pp != '=')) {\n        pdVar20 = debug_find_named_type(dhandle,"int");\n        if ((pdVar20 == (debug_type_conflict)0x0) &&\n           (pdVar20 = debug_make_int_type(dhandle,4,0), pdVar20 == (debug_type_conflict)0x0)) {\n          return (debug_type)0x0;\n        }\n        *pp = p;\n        pcVar17 = p;\n      }\n      else {\n        pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        pcVar17 = *pp;\n      }\n      if (*pcVar17 == ';') {\n        *pp = pcVar17 + 1;\n        bVar47 = pcVar17[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *pp = pcVar17 + 2;\n        }\n        else {\n          bVar43 = false;\n        }\n        bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        pcVar17 = *pp;\n        if (*pcVar17 == ';') {\n          *pp = pcVar17 + 1;\n          bVar47 = pcVar17[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *pp = pcVar17 + 2;\n          }\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp == ';') {\n            *pp = *pp + 1;\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 == (debug_type)0x0) {\n              return (debug_type)0x0;\n            }\n            lower = 0;\n            bVar14 = 0xffffffffffffffff;\n            if (!bVar43) {\n              lower = bVar12;\n              bVar14 = bVar13;\n            }\n            pdVar20 = debug_make_array_type(dhandle,pdVar18,pdVar20,lower,bVar14,bVar4);\n            break;\n          }\n        }\n      }\n      bad_stab((char *)pbVar26);\n      return (debug_type)0x0;\n    }\n    goto switchD_001311d2_caseD_24;" case number_literal : (if_statement "if (pbVar26[1] == 0x72) {\n      pbVar26 = pbVar26 + 2;\n      *pp = (char *)pbVar26;\n      if (p_end <= pbVar26) {\n        return (debug_type)0x0;\n      }\n      p = (char *)pbVar26;\n      bVar5 = parse_stab_type_number(&p,xtypenums,p_end);\n      if (bVar5 == 0) {\n        return (debug_type)0x0;\n      }\n      if ((xtypenums[0] == 0 && xtypenums[1] == 0) && (**pp != '=')) {\n        pdVar20 = debug_find_named_type(dhandle,"int");\n        if ((pdVar20 == (debug_type_conflict)0x0) &&\n           (pdVar20 = debug_make_int_type(dhandle,4,0), pdVar20 == (debug_type_conflict)0x0)) {\n          return (debug_type)0x0;\n        }\n        *pp = p;\n        pcVar17 = p;\n      }\n      else {\n        pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        pcVar17 = *pp;\n      }\n      if (*pcVar17 == ';') {\n        *pp = pcVar17 + 1;\n        bVar47 = pcVar17[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *pp = pcVar17 + 2;\n        }\n        else {\n          bVar43 = false;\n        }\n        bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        pcVar17 = *pp;\n        if (*pcVar17 == ';') {\n          *pp = pcVar17 + 1;\n          bVar47 = pcVar17[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *pp = pcVar17 + 2;\n          }\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp == ';') {\n            *pp = *pp + 1;\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 == (debug_type)0x0) {\n              return (debug_type)0x0;\n            }\n            lower = 0;\n            bVar14 = 0xffffffffffffffff;\n            if (!bVar43) {\n              lower = bVar12;\n              bVar14 = bVar13;\n            }\n            pdVar20 = debug_make_array_type(dhandle,pdVar18,pdVar20,lower,bVar14,bVar4);\n            break;\n          }\n        }\n      }\n      bad_stab((char *)pbVar26);\n      return (debug_type)0x0;\n    }" if (parenthesized_expression "(pbVar26[1] == 0x72)" ( (binary_expression "pbVar26[1] == 0x72" (subscript_expression "pbVar26[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      pbVar26 = pbVar26 + 2;\n      *pp = (char *)pbVar26;\n      if (p_end <= pbVar26) {\n        return (debug_type)0x0;\n      }\n      p = (char *)pbVar26;\n      bVar5 = parse_stab_type_number(&p,xtypenums,p_end);\n      if (bVar5 == 0) {\n        return (debug_type)0x0;\n      }\n      if ((xtypenums[0] == 0 && xtypenums[1] == 0) && (**pp != '=')) {\n        pdVar20 = debug_find_named_type(dhandle,"int");\n        if ((pdVar20 == (debug_type_conflict)0x0) &&\n           (pdVar20 = debug_make_int_type(dhandle,4,0), pdVar20 == (debug_type_conflict)0x0)) {\n          return (debug_type)0x0;\n        }\n        *pp = p;\n        pcVar17 = p;\n      }\n      else {\n        pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        pcVar17 = *pp;\n      }\n      if (*pcVar17 == ';') {\n        *pp = pcVar17 + 1;\n        bVar47 = pcVar17[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *pp = pcVar17 + 2;\n        }\n        else {\n          bVar43 = false;\n        }\n        bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        pcVar17 = *pp;\n        if (*pcVar17 == ';') {\n          *pp = pcVar17 + 1;\n          bVar47 = pcVar17[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *pp = pcVar17 + 2;\n          }\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp == ';') {\n            *pp = *pp + 1;\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 == (debug_type)0x0) {\n              return (debug_type)0x0;\n            }\n            lower = 0;\n            bVar14 = 0xffffffffffffffff;\n            if (!bVar43) {\n              lower = bVar12;\n              bVar14 = bVar13;\n            }\n            pdVar20 = debug_make_array_type(dhandle,pdVar18,pdVar20,lower,bVar14,bVar4);\n            break;\n          }\n        }\n      }\n      bad_stab((char *)pbVar26);\n      return (debug_type)0x0;\n    }" { (expression_statement "pbVar26 = pbVar26 + 2;" (assignment_expression "pbVar26 = pbVar26 + 2" identifier = (binary_expression "pbVar26 + 2" identifier + number_literal)) ;) (expression_statement "*pp = (char *)pbVar26;" (assignment_expression "*pp = (char *)pbVar26" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar26" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (p_end <= pbVar26) {\n        return (debug_type)0x0;\n      }" if (parenthesized_expression "(p_end <= pbVar26)" ( (binary_expression "p_end <= pbVar26" identifier <= identifier) )) (compound_statement "{\n        return (debug_type)0x0;\n      }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "p = (char *)pbVar26;" (assignment_expression "p = (char *)pbVar26" identifier = (cast_expression "(char *)pbVar26" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar5 = parse_stab_type_number(&p,xtypenums,p_end);" (assignment_expression "bVar5 = parse_stab_type_number(&p,xtypenums,p_end)" identifier = (call_expression "parse_stab_type_number(&p,xtypenums,p_end)" identifier (argument_list "(&p,xtypenums,p_end)" ( (pointer_expression "&p" & identifier) , identifier , identifier )))) ;) (if_statement "if (bVar5 == 0) {\n        return (debug_type)0x0;\n      }" if (parenthesized_expression "(bVar5 == 0)" ( (binary_expression "bVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        return (debug_type)0x0;\n      }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (if_statement "if ((xtypenums[0] == 0 && xtypenums[1] == 0) && (**pp != '=')) {\n        pdVar20 = debug_find_named_type(dhandle,"int");\n        if ((pdVar20 == (debug_type_conflict)0x0) &&\n           (pdVar20 = debug_make_int_type(dhandle,4,0), pdVar20 == (debug_type_conflict)0x0)) {\n          return (debug_type)0x0;\n        }\n        *pp = p;\n        pcVar17 = p;\n      }\n      else {\n        pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        pcVar17 = *pp;\n      }" if (parenthesized_expression "((xtypenums[0] == 0 && xtypenums[1] == 0) && (**pp != '='))" ( (binary_expression "(xtypenums[0] == 0 && xtypenums[1] == 0) && (**pp != '=')" (parenthesized_expression "(xtypenums[0] == 0 && xtypenums[1] == 0)" ( (binary_expression "xtypenums[0] == 0 && xtypenums[1] == 0" (binary_expression "xtypenums[0] == 0" (subscript_expression "xtypenums[0]" identifier [ number_literal ]) == number_literal) && (binary_expression "xtypenums[1] == 0" (subscript_expression "xtypenums[1]" identifier [ number_literal ]) == number_literal)) )) && (parenthesized_expression "(**pp != '=')" ( (binary_expression "**pp != '='" (pointer_expression "**pp" * (pointer_expression "*pp" * identifier)) != (char_literal "'='" ' character ')) ))) )) (compound_statement "{\n        pdVar20 = debug_find_named_type(dhandle,"int");\n        if ((pdVar20 == (debug_type_conflict)0x0) &&\n           (pdVar20 = debug_make_int_type(dhandle,4,0), pdVar20 == (debug_type_conflict)0x0)) {\n          return (debug_type)0x0;\n        }\n        *pp = p;\n        pcVar17 = p;\n      }" { (expression_statement "pdVar20 = debug_find_named_type(dhandle,"int");" (assignment_expression "pdVar20 = debug_find_named_type(dhandle,"int")" identifier = (call_expression "debug_find_named_type(dhandle,"int")" identifier (argument_list "(dhandle,"int")" ( identifier , (string_literal ""int"" " string_content ") )))) ;) (if_statement "if ((pdVar20 == (debug_type_conflict)0x0) &&\n           (pdVar20 = debug_make_int_type(dhandle,4,0), pdVar20 == (debug_type_conflict)0x0)) {\n          return (debug_type)0x0;\n        }" if (parenthesized_expression "((pdVar20 == (debug_type_conflict)0x0) &&\n           (pdVar20 = debug_make_int_type(dhandle,4,0), pdVar20 == (debug_type_conflict)0x0))" ( (binary_expression "(pdVar20 == (debug_type_conflict)0x0) &&\n           (pdVar20 = debug_make_int_type(dhandle,4,0), pdVar20 == (debug_type_conflict)0x0)" (parenthesized_expression "(pdVar20 == (debug_type_conflict)0x0)" ( (binary_expression "pdVar20 == (debug_type_conflict)0x0" identifier == (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) )) && (parenthesized_expression "(pdVar20 = debug_make_int_type(dhandle,4,0), pdVar20 == (debug_type_conflict)0x0)" ( (comma_expression "pdVar20 = debug_make_int_type(dhandle,4,0), pdVar20 == (debug_type_conflict)0x0" (assignment_expression "pdVar20 = debug_make_int_type(dhandle,4,0)" identifier = (call_expression "debug_make_int_type(dhandle,4,0)" identifier (argument_list "(dhandle,4,0)" ( identifier , number_literal , number_literal )))) , (binary_expression "pdVar20 == (debug_type_conflict)0x0" identifier == (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal))) ))) )) (compound_statement "{\n          return (debug_type)0x0;\n        }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "*pp = p;" (assignment_expression "*pp = p" (pointer_expression "*pp" * identifier) = identifier) ;) (expression_statement "pcVar17 = p;" (assignment_expression "pcVar17 = p" identifier = identifier) ;) }) (else_clause "else {\n        pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        pcVar17 = *pp;\n      }" else (compound_statement "{\n        pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        pcVar17 = *pp;\n      }" { (expression_statement "pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);" (assignment_expression "pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier = (call_expression "parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier (argument_list "(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(debug_type_conflict **)0x0" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , identifier )))) ;) (expression_statement "pcVar17 = *pp;" (assignment_expression "pcVar17 = *pp" identifier = (pointer_expression "*pp" * identifier)) ;) }))) (if_statement "if (*pcVar17 == ';') {\n        *pp = pcVar17 + 1;\n        bVar47 = pcVar17[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *pp = pcVar17 + 2;\n        }\n        else {\n          bVar43 = false;\n        }\n        bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        pcVar17 = *pp;\n        if (*pcVar17 == ';') {\n          *pp = pcVar17 + 1;\n          bVar47 = pcVar17[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *pp = pcVar17 + 2;\n          }\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp == ';') {\n            *pp = *pp + 1;\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 == (debug_type)0x0) {\n              return (debug_type)0x0;\n            }\n            lower = 0;\n            bVar14 = 0xffffffffffffffff;\n            if (!bVar43) {\n              lower = bVar12;\n              bVar14 = bVar13;\n            }\n            pdVar20 = debug_make_array_type(dhandle,pdVar18,pdVar20,lower,bVar14,bVar4);\n            break;\n          }\n        }\n      }" if (parenthesized_expression "(*pcVar17 == ';')" ( (binary_expression "*pcVar17 == ';'" (pointer_expression "*pcVar17" * identifier) == (char_literal "';'" ' character ')) )) (compound_statement "{\n        *pp = pcVar17 + 1;\n        bVar47 = pcVar17[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *pp = pcVar17 + 2;\n        }\n        else {\n          bVar43 = false;\n        }\n        bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        pcVar17 = *pp;\n        if (*pcVar17 == ';') {\n          *pp = pcVar17 + 1;\n          bVar47 = pcVar17[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *pp = pcVar17 + 2;\n          }\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp == ';') {\n            *pp = *pp + 1;\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 == (debug_type)0x0) {\n              return (debug_type)0x0;\n            }\n            lower = 0;\n            bVar14 = 0xffffffffffffffff;\n            if (!bVar43) {\n              lower = bVar12;\n              bVar14 = bVar13;\n            }\n            pdVar20 = debug_make_array_type(dhandle,pdVar18,pdVar20,lower,bVar14,bVar4);\n            break;\n          }\n        }\n      }" { (expression_statement "*pp = pcVar17 + 1;" (assignment_expression "*pp = pcVar17 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (expression_statement "bVar47 = pcVar17[1];" (assignment_expression "bVar47 = pcVar17[1]" identifier = (subscript_expression "pcVar17[1]" identifier [ number_literal ])) ;) (if_statement "if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *pp = pcVar17 + 2;\n        }\n        else {\n          bVar43 = false;\n        }" if (parenthesized_expression "(((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d))" ( (binary_expression "((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)" (parenthesized_expression "((_sch_istable[(ulong)bVar47 * 2] & 4) == 0)" ( (binary_expression "(_sch_istable[(ulong)bVar47 * 2] & 4) == 0" (parenthesized_expression "(_sch_istable[(ulong)bVar47 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)bVar47 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar47 * 2]" identifier [ (binary_expression "(ulong)bVar47 * 2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "(bVar47 != 0 && bVar47 != 0x2d)" ( (binary_expression "bVar47 != 0 && bVar47 != 0x2d" (binary_expression "bVar47 != 0" identifier != number_literal) && (binary_expression "bVar47 != 0x2d" identifier != number_literal)) ))) )) (compound_statement "{\n          bVar43 = true;\n          *pp = pcVar17 + 2;\n        }" { (expression_statement "bVar43 = true;" (assignment_expression "bVar43 = true" identifier = true) ;) (expression_statement "*pp = pcVar17 + 2;" (assignment_expression "*pp = pcVar17 + 2" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar17 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n          bVar43 = false;\n        }" else (compound_statement "{\n          bVar43 = false;\n        }" { (expression_statement "bVar43 = false;" (assignment_expression "bVar43 = false" identifier = false) ;) }))) (expression_statement "bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);" (assignment_expression "bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier = (call_expression "parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier (argument_list "(pp,(bfd_boolean *)0x0,p_end)" ( identifier , (cast_expression "(bfd_boolean *)0x0" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (expression_statement "pcVar17 = *pp;" (assignment_expression "pcVar17 = *pp" identifier = (pointer_expression "*pp" * identifier)) ;) (if_statement "if (*pcVar17 == ';') {\n          *pp = pcVar17 + 1;\n          bVar47 = pcVar17[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *pp = pcVar17 + 2;\n          }\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp == ';') {\n            *pp = *pp + 1;\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 == (debug_type)0x0) {\n              return (debug_type)0x0;\n            }\n            lower = 0;\n            bVar14 = 0xffffffffffffffff;\n            if (!bVar43) {\n              lower = bVar12;\n              bVar14 = bVar13;\n            }\n            pdVar20 = debug_make_array_type(dhandle,pdVar18,pdVar20,lower,bVar14,bVar4);\n            break;\n          }\n        }" if (parenthesized_expression "(*pcVar17 == ';')" ( (binary_expression "*pcVar17 == ';'" (pointer_expression "*pcVar17" * identifier) == (char_literal "';'" ' character ')) )) (compound_statement "{\n          *pp = pcVar17 + 1;\n          bVar47 = pcVar17[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *pp = pcVar17 + 2;\n          }\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp == ';') {\n            *pp = *pp + 1;\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 == (debug_type)0x0) {\n              return (debug_type)0x0;\n            }\n            lower = 0;\n            bVar14 = 0xffffffffffffffff;\n            if (!bVar43) {\n              lower = bVar12;\n              bVar14 = bVar13;\n            }\n            pdVar20 = debug_make_array_type(dhandle,pdVar18,pdVar20,lower,bVar14,bVar4);\n            break;\n          }\n        }" { (expression_statement "*pp = pcVar17 + 1;" (assignment_expression "*pp = pcVar17 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (expression_statement "bVar47 = pcVar17[1];" (assignment_expression "bVar47 = pcVar17[1]" identifier = (subscript_expression "pcVar17[1]" identifier [ number_literal ])) ;) (if_statement "if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *pp = pcVar17 + 2;\n          }" if (parenthesized_expression "(((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0))" ( (binary_expression "((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)" (parenthesized_expression "((_sch_istable[(ulong)bVar47 * 2] & 4) == 0)" ( (binary_expression "(_sch_istable[(ulong)bVar47 * 2] & 4) == 0" (parenthesized_expression "(_sch_istable[(ulong)bVar47 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)bVar47 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar47 * 2]" identifier [ (binary_expression "(ulong)bVar47 * 2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "(bVar47 != 0x2d && bVar47 != 0)" ( (binary_expression "bVar47 != 0x2d && bVar47 != 0" (binary_expression "bVar47 != 0x2d" identifier != number_literal) && (binary_expression "bVar47 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n            bVar43 = true;\n            *pp = pcVar17 + 2;\n          }" { (expression_statement "bVar43 = true;" (assignment_expression "bVar43 = true" identifier = true) ;) (expression_statement "*pp = pcVar17 + 2;" (assignment_expression "*pp = pcVar17 + 2" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar17 + 2" identifier + number_literal)) ;) })) (expression_statement "bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);" (assignment_expression "bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier = (call_expression "parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier (argument_list "(pp,(bfd_boolean *)0x0,p_end)" ( identifier , (cast_expression "(bfd_boolean *)0x0" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (if_statement "if (**pp == ';') {\n            *pp = *pp + 1;\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 == (debug_type)0x0) {\n              return (debug_type)0x0;\n            }\n            lower = 0;\n            bVar14 = 0xffffffffffffffff;\n            if (!bVar43) {\n              lower = bVar12;\n              bVar14 = bVar13;\n            }\n            pdVar20 = debug_make_array_type(dhandle,pdVar18,pdVar20,lower,bVar14,bVar4);\n            break;\n          }" if (parenthesized_expression "(**pp == ';')" ( (binary_expression "**pp == ';'" (pointer_expression "**pp" * (pointer_expression "*pp" * identifier)) == (char_literal "';'" ' character ')) )) (compound_statement "{\n            *pp = *pp + 1;\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 == (debug_type)0x0) {\n              return (debug_type)0x0;\n            }\n            lower = 0;\n            bVar14 = 0xffffffffffffffff;\n            if (!bVar43) {\n              lower = bVar12;\n              bVar14 = bVar13;\n            }\n            pdVar20 = debug_make_array_type(dhandle,pdVar18,pdVar20,lower,bVar14,bVar4);\n            break;\n          }" { (expression_statement "*pp = *pp + 1;" (assignment_expression "*pp = *pp + 1" (pointer_expression "*pp" * identifier) = (binary_expression "*pp + 1" (pointer_expression "*pp" * identifier) + number_literal)) ;) (expression_statement "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;" (assignment_expression "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier = (call_expression "parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier (argument_list "(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(debug_type_conflict **)0x0" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , identifier )))) ;) (if_statement "if (pdVar18 == (debug_type)0x0) {\n              return (debug_type)0x0;\n            }" if (parenthesized_expression "(pdVar18 == (debug_type)0x0)" ( (binary_expression "pdVar18 == (debug_type)0x0" identifier == (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (compound_statement "{\n              return (debug_type)0x0;\n            }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "lower = 0;" (assignment_expression "lower = 0" identifier = number_literal) ;) (expression_statement "bVar14 = 0xffffffffffffffff;" (assignment_expression "bVar14 = 0xffffffffffffffff" identifier = number_literal) ;) (if_statement "if (!bVar43) {\n              lower = bVar12;\n              bVar14 = bVar13;\n            }" if (parenthesized_expression "(!bVar43)" ( (unary_expression "!bVar43" ! identifier) )) (compound_statement "{\n              lower = bVar12;\n              bVar14 = bVar13;\n            }" { (expression_statement "lower = bVar12;" (assignment_expression "lower = bVar12" identifier = identifier) ;) (expression_statement "bVar14 = bVar13;" (assignment_expression "bVar14 = bVar13" identifier = identifier) ;) })) (expression_statement "pdVar20 = debug_make_array_type(dhandle,pdVar18,pdVar20,lower,bVar14,bVar4);" (assignment_expression "pdVar20 = debug_make_array_type(dhandle,pdVar18,pdVar20,lower,bVar14,bVar4)" identifier = (call_expression "debug_make_array_type(dhandle,pdVar18,pdVar20,lower,bVar14,bVar4)" identifier (argument_list "(dhandle,pdVar18,pdVar20,lower,bVar14,bVar4)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (break_statement "break;" break ;) })) })) })) (expression_statement "bad_stab((char *)pbVar26);" (call_expression "bad_stab((char *)pbVar26)" identifier (argument_list "((char *)pbVar26)" ( (cast_expression "(char *)pbVar26" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;)) (case_statement "case 0x62:\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    if (pbVar26[1] == 0x73) {\n      bVar4 = 0;\n    }\n    else {\n      if (pbVar26[1] != 0x75) goto LAB_00132126;\n      bVar4 = 1;\n    }\n    *pp = (char *)(pbVar26 + 2);\n    if (((byte)(pbVar26[2] + 0x9e) < 2) || (pbVar26[2] == 0x76)) {\n      *pp = (char *)(pbVar26 + 3);\n    }\n    parse_number(pp,(bfd_boolean *)0x0,p_end);\n    if (**pp != ';') goto LAB_00132126;\n    *pp = *pp + 1;\n    parse_number(pp,(bfd_boolean *)0x0,p_end);\n    if (**pp != ';') goto LAB_00132126;\n    *pp = *pp + 1;\n    bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    if (**pp == ';') {\n      *pp = *pp + 1;\n    }\n    if (bVar12 != 0) {\n      pdVar20 = debug_make_int_type(dhandle,(uint)(bVar12 >> 3),bVar4);\n      break;\n    }\nLAB_00133358:\n    pdVar20 = debug_make_void_type(dhandle);\n    break;" case number_literal : (if_statement "if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }" if (parenthesized_expression "(p_end <= pbVar40)" ( (binary_expression "p_end <= pbVar40" identifier <= identifier) )) (compound_statement "{\n      return (debug_type)0x0;\n    }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (if_statement "if (pbVar26[1] == 0x73) {\n      bVar4 = 0;\n    }\n    else {\n      if (pbVar26[1] != 0x75) goto LAB_00132126;\n      bVar4 = 1;\n    }" if (parenthesized_expression "(pbVar26[1] == 0x73)" ( (binary_expression "pbVar26[1] == 0x73" (subscript_expression "pbVar26[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      bVar4 = 0;\n    }" { (expression_statement "bVar4 = 0;" (assignment_expression "bVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (pbVar26[1] != 0x75) goto LAB_00132126;\n      bVar4 = 1;\n    }" else (compound_statement "{\n      if (pbVar26[1] != 0x75) goto LAB_00132126;\n      bVar4 = 1;\n    }" { (if_statement "if (pbVar26[1] != 0x75) goto LAB_00132126;" if (parenthesized_expression "(pbVar26[1] != 0x75)" ( (binary_expression "pbVar26[1] != 0x75" (subscript_expression "pbVar26[1]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "bVar4 = 1;" (assignment_expression "bVar4 = 1" identifier = number_literal) ;) }))) (expression_statement "*pp = (char *)(pbVar26 + 2);" (assignment_expression "*pp = (char *)(pbVar26 + 2)" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)(pbVar26 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 2)" ( (binary_expression "pbVar26 + 2" identifier + number_literal) )))) ;) (if_statement "if (((byte)(pbVar26[2] + 0x9e) < 2) || (pbVar26[2] == 0x76)) {\n      *pp = (char *)(pbVar26 + 3);\n    }" if (parenthesized_expression "(((byte)(pbVar26[2] + 0x9e) < 2) || (pbVar26[2] == 0x76))" ( (binary_expression "((byte)(pbVar26[2] + 0x9e) < 2) || (pbVar26[2] == 0x76)" (parenthesized_expression "((byte)(pbVar26[2] + 0x9e) < 2)" ( (binary_expression "(byte)(pbVar26[2] + 0x9e) < 2" (call_expression "(byte)(pbVar26[2] + 0x9e)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pbVar26[2] + 0x9e)" ( (binary_expression "pbVar26[2] + 0x9e" (subscript_expression "pbVar26[2]" identifier [ number_literal ]) + number_literal) ))) < number_literal) )) || (parenthesized_expression "(pbVar26[2] == 0x76)" ( (binary_expression "pbVar26[2] == 0x76" (subscript_expression "pbVar26[2]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      *pp = (char *)(pbVar26 + 3);\n    }" { (expression_statement "*pp = (char *)(pbVar26 + 3);" (assignment_expression "*pp = (char *)(pbVar26 + 3)" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)(pbVar26 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 3)" ( (binary_expression "pbVar26 + 3" identifier + number_literal) )))) ;) })) (expression_statement "parse_number(pp,(bfd_boolean *)0x0,p_end);" (call_expression "parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier (argument_list "(pp,(bfd_boolean *)0x0,p_end)" ( identifier , (cast_expression "(bfd_boolean *)0x0" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier ))) ;) (if_statement "if (**pp != ';') goto LAB_00132126;" if (parenthesized_expression "(**pp != ';')" ( (binary_expression "**pp != ';'" (pointer_expression "**pp" * (pointer_expression "*pp" * identifier)) != (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "*pp = *pp + 1;" (assignment_expression "*pp = *pp + 1" (pointer_expression "*pp" * identifier) = (binary_expression "*pp + 1" (pointer_expression "*pp" * identifier) + number_literal)) ;) (expression_statement "parse_number(pp,(bfd_boolean *)0x0,p_end);" (call_expression "parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier (argument_list "(pp,(bfd_boolean *)0x0,p_end)" ( identifier , (cast_expression "(bfd_boolean *)0x0" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier ))) ;) (if_statement "if (**pp != ';') goto LAB_00132126;" if (parenthesized_expression "(**pp != ';')" ( (binary_expression "**pp != ';'" (pointer_expression "**pp" * (pointer_expression "*pp" * identifier)) != (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "*pp = *pp + 1;" (assignment_expression "*pp = *pp + 1" (pointer_expression "*pp" * identifier) = (binary_expression "*pp + 1" (pointer_expression "*pp" * identifier) + number_literal)) ;) (expression_statement "bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);" (assignment_expression "bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier = (call_expression "parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier (argument_list "(pp,(bfd_boolean *)0x0,p_end)" ( identifier , (cast_expression "(bfd_boolean *)0x0" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (if_statement "if (**pp == ';') {\n      *pp = *pp + 1;\n    }" if (parenthesized_expression "(**pp == ';')" ( (binary_expression "**pp == ';'" (pointer_expression "**pp" * (pointer_expression "*pp" * identifier)) == (char_literal "';'" ' character ')) )) (compound_statement "{\n      *pp = *pp + 1;\n    }" { (expression_statement "*pp = *pp + 1;" (assignment_expression "*pp = *pp + 1" (pointer_expression "*pp" * identifier) = (binary_expression "*pp + 1" (pointer_expression "*pp" * identifier) + number_literal)) ;) })) (if_statement "if (bVar12 != 0) {\n      pdVar20 = debug_make_int_type(dhandle,(uint)(bVar12 >> 3),bVar4);\n      break;\n    }" if (parenthesized_expression "(bVar12 != 0)" ( (binary_expression "bVar12 != 0" identifier != number_literal) )) (compound_statement "{\n      pdVar20 = debug_make_int_type(dhandle,(uint)(bVar12 >> 3),bVar4);\n      break;\n    }" { (expression_statement "pdVar20 = debug_make_int_type(dhandle,(uint)(bVar12 >> 3),bVar4);" (assignment_expression "pdVar20 = debug_make_int_type(dhandle,(uint)(bVar12 >> 3),bVar4)" identifier = (call_expression "debug_make_int_type(dhandle,(uint)(bVar12 >> 3),bVar4)" identifier (argument_list "(dhandle,(uint)(bVar12 >> 3),bVar4)" ( identifier , (call_expression "(uint)(bVar12 >> 3)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar12 >> 3)" ( (binary_expression "bVar12 >> 3" identifier >> number_literal) ))) , identifier )))) ;) (break_statement "break;" break ;) })) (labeled_statement "LAB_00133358:\n    pdVar20 = debug_make_void_type(dhandle);" statement_identifier : (expression_statement "pdVar20 = debug_make_void_type(dhandle);" (assignment_expression "pdVar20 = debug_make_void_type(dhandle)" identifier = (call_expression "debug_make_void_type(dhandle)" identifier (argument_list "(dhandle)" ( identifier )))) ;)) (break_statement "break;" break ;)) (case_statement "case 0x65:\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    pbVar31 = pbVar40;\n    if (pbVar26[1] == 0x2d) {\n      do {\n        pbVar26 = pbVar31;\n        *pp = (char *)(pbVar26 + 1);\n        bVar47 = pbVar26[1];\n        if (bVar47 == 0x3a) break;\n        pbVar31 = pbVar26 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *pp = (char *)(pbVar26 + 2);\n    }\n    local_148 = (char **)xmalloc(0x50);\n    values = (bfd_signed_vma *)xmalloc(0x50);\n    pbVar31 = (byte *)*pp;\n    uVar10 = (ulong)*pbVar31;\n    if ((*pbVar31 < 0x3c) && ((0x800100000000001U >> (uVar10 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar38 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar10;\n        pbVar26 = pbVar31;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar26 = pbVar26 + 1;\n          bVar47 = *pbVar26;\n        }\n        if (bVar47 == 0) {\n          bad_stab((char *)pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(values);\n          return (debug_type)0x0;\n        }\n        pcVar17 = savestring((char *)pbVar31,(int)pbVar26 - (int)pbVar31);\n        *pp = (char *)(pbVar26 + 1);\n        bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        if (**pp != ',') {\n          bad_stab((char *)pbVar40);\n          free(pcVar17);\n          goto LAB_00132cf2;\n        }\n        uVar8 = uVar39 + 1;\n        *pp = *pp + 1;\n        if ((uint)uVar38 <= uVar8) {\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          local_148 = (char **)xrealloc(local_148,uVar38 << 3);\n          values = (bfd_signed_vma *)xrealloc(values,uVar38 << 3);\n        }\n        uVar28 = (ulong)uVar8;\n        local_148[uVar39] = pcVar17;\n        pbVar31 = (byte *)*pp;\n        values[uVar39] = bVar12;\n        uVar10 = (ulong)*pbVar31;\n        uVar39 = uVar8;\n      } while ((0x3b < *pbVar31) || ((0x800100000000001U >> (uVar10 & 0x3f) & 1) == 0));\n    }\n    local_148[uVar28] = (char *)0x0;\n    pcVar17 = *pp;\n    values[uVar28] = 0;\n    if (*pcVar17 == ';') {\n      *pp = pcVar17 + 1;\n    }\n    pdVar20 = debug_make_enum_type(dhandle,local_148,values);\n    break;" case number_literal : (if_statement "if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }" if (parenthesized_expression "(p_end <= pbVar40)" ( (binary_expression "p_end <= pbVar40" identifier <= identifier) )) (compound_statement "{\n      return (debug_type)0x0;\n    }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "pbVar31 = pbVar40;" (assignment_expression "pbVar31 = pbVar40" identifier = identifier) ;) (if_statement "if (pbVar26[1] == 0x2d) {\n      do {\n        pbVar26 = pbVar31;\n        *pp = (char *)(pbVar26 + 1);\n        bVar47 = pbVar26[1];\n        if (bVar47 == 0x3a) break;\n        pbVar31 = pbVar26 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *pp = (char *)(pbVar26 + 2);\n    }" if (parenthesized_expression "(pbVar26[1] == 0x2d)" ( (binary_expression "pbVar26[1] == 0x2d" (subscript_expression "pbVar26[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      do {\n        pbVar26 = pbVar31;\n        *pp = (char *)(pbVar26 + 1);\n        bVar47 = pbVar26[1];\n        if (bVar47 == 0x3a) break;\n        pbVar31 = pbVar26 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *pp = (char *)(pbVar26 + 2);\n    }" { (do_statement "do {\n        pbVar26 = pbVar31;\n        *pp = (char *)(pbVar26 + 1);\n        bVar47 = pbVar26[1];\n        if (bVar47 == 0x3a) break;\n        pbVar31 = pbVar26 + 1;\n      } while (bVar47 != 0);" do (compound_statement "{\n        pbVar26 = pbVar31;\n        *pp = (char *)(pbVar26 + 1);\n        bVar47 = pbVar26[1];\n        if (bVar47 == 0x3a) break;\n        pbVar31 = pbVar26 + 1;\n      }" { (expression_statement "pbVar26 = pbVar31;" (assignment_expression "pbVar26 = pbVar31" identifier = identifier) ;) (expression_statement "*pp = (char *)(pbVar26 + 1);" (assignment_expression "*pp = (char *)(pbVar26 + 1)" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)(pbVar26 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 1)" ( (binary_expression "pbVar26 + 1" identifier + number_literal) )))) ;) (expression_statement "bVar47 = pbVar26[1];" (assignment_expression "bVar47 = pbVar26[1]" identifier = (subscript_expression "pbVar26[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar47 == 0x3a) break;" if (parenthesized_expression "(bVar47 == 0x3a)" ( (binary_expression "bVar47 == 0x3a" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar31 = pbVar26 + 1;" (assignment_expression "pbVar31 = pbVar26 + 1" identifier = (binary_expression "pbVar26 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar47 != 0)" ( (binary_expression "bVar47 != 0" identifier != number_literal) )) ;) (if_statement "if (bVar47 == 0) goto LAB_00132126;" if (parenthesized_expression "(bVar47 == 0)" ( (binary_expression "bVar47 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "*pp = (char *)(pbVar26 + 2);" (assignment_expression "*pp = (char *)(pbVar26 + 2)" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)(pbVar26 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 2)" ( (binary_expression "pbVar26 + 2" identifier + number_literal) )))) ;) })) (expression_statement "local_148 = (char **)xmalloc(0x50);" (assignment_expression "local_148 = (char **)xmalloc(0x50)" identifier = (cast_expression "(char **)xmalloc(0x50)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "xmalloc(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "values = (bfd_signed_vma *)xmalloc(0x50);" (assignment_expression "values = (bfd_signed_vma *)xmalloc(0x50)" identifier = (cast_expression "(bfd_signed_vma *)xmalloc(0x50)" ( (type_descriptor "bfd_signed_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "pbVar31 = (byte *)*pp;" (assignment_expression "pbVar31 = (byte *)*pp" identifier = (cast_expression "(byte *)*pp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp" * identifier))) ;) (expression_statement "uVar10 = (ulong)*pbVar31;" (assignment_expression "uVar10 = (ulong)*pbVar31" identifier = (binary_expression "(ulong)*pbVar31" (parenthesized_expression "(ulong)" ( identifier )) * identifier)) ;) (if_statement "if ((*pbVar31 < 0x3c) && ((0x800100000000001U >> (uVar10 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar38 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar10;\n        pbVar26 = pbVar31;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar26 = pbVar26 + 1;\n          bVar47 = *pbVar26;\n        }\n        if (bVar47 == 0) {\n          bad_stab((char *)pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(values);\n          return (debug_type)0x0;\n        }\n        pcVar17 = savestring((char *)pbVar31,(int)pbVar26 - (int)pbVar31);\n        *pp = (char *)(pbVar26 + 1);\n        bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        if (**pp != ',') {\n          bad_stab((char *)pbVar40);\n          free(pcVar17);\n          goto LAB_00132cf2;\n        }\n        uVar8 = uVar39 + 1;\n        *pp = *pp + 1;\n        if ((uint)uVar38 <= uVar8) {\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          local_148 = (char **)xrealloc(local_148,uVar38 << 3);\n          values = (bfd_signed_vma *)xrealloc(values,uVar38 << 3);\n        }\n        uVar28 = (ulong)uVar8;\n        local_148[uVar39] = pcVar17;\n        pbVar31 = (byte *)*pp;\n        values[uVar39] = bVar12;\n        uVar10 = (ulong)*pbVar31;\n        uVar39 = uVar8;\n      } while ((0x3b < *pbVar31) || ((0x800100000000001U >> (uVar10 & 0x3f) & 1) == 0));\n    }" if (parenthesized_expression "((*pbVar31 < 0x3c) && ((0x800100000000001U >> (uVar10 & 0x3f) & 1) != 0))" ( (binary_expression "(*pbVar31 < 0x3c) && ((0x800100000000001U >> (uVar10 & 0x3f) & 1) != 0)" (parenthesized_expression "(*pbVar31 < 0x3c)" ( (binary_expression "*pbVar31 < 0x3c" (pointer_expression "*pbVar31" * identifier) < number_literal) )) && (parenthesized_expression "((0x800100000000001U >> (uVar10 & 0x3f) & 1) != 0)" ( (binary_expression "(0x800100000000001U >> (uVar10 & 0x3f) & 1) != 0" (parenthesized_expression "(0x800100000000001U >> (uVar10 & 0x3f) & 1)" ( (binary_expression "0x800100000000001U >> (uVar10 & 0x3f) & 1" (binary_expression "0x800100000000001U >> (uVar10 & 0x3f)" number_literal >> (parenthesized_expression "(uVar10 & 0x3f)" ( (binary_expression "uVar10 & 0x3f" identifier & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      uVar28 = 0;\n    }" { (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      uVar38 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar10;\n        pbVar26 = pbVar31;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar26 = pbVar26 + 1;\n          bVar47 = *pbVar26;\n        }\n        if (bVar47 == 0) {\n          bad_stab((char *)pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(values);\n          return (debug_type)0x0;\n        }\n        pcVar17 = savestring((char *)pbVar31,(int)pbVar26 - (int)pbVar31);\n        *pp = (char *)(pbVar26 + 1);\n        bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        if (**pp != ',') {\n          bad_stab((char *)pbVar40);\n          free(pcVar17);\n          goto LAB_00132cf2;\n        }\n        uVar8 = uVar39 + 1;\n        *pp = *pp + 1;\n        if ((uint)uVar38 <= uVar8) {\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          local_148 = (char **)xrealloc(local_148,uVar38 << 3);\n          values = (bfd_signed_vma *)xrealloc(values,uVar38 << 3);\n        }\n        uVar28 = (ulong)uVar8;\n        local_148[uVar39] = pcVar17;\n        pbVar31 = (byte *)*pp;\n        values[uVar39] = bVar12;\n        uVar10 = (ulong)*pbVar31;\n        uVar39 = uVar8;\n      } while ((0x3b < *pbVar31) || ((0x800100000000001U >> (uVar10 & 0x3f) & 1) == 0));\n    }" else (compound_statement "{\n      uVar38 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar10;\n        pbVar26 = pbVar31;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar26 = pbVar26 + 1;\n          bVar47 = *pbVar26;\n        }\n        if (bVar47 == 0) {\n          bad_stab((char *)pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(values);\n          return (debug_type)0x0;\n        }\n        pcVar17 = savestring((char *)pbVar31,(int)pbVar26 - (int)pbVar31);\n        *pp = (char *)(pbVar26 + 1);\n        bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        if (**pp != ',') {\n          bad_stab((char *)pbVar40);\n          free(pcVar17);\n          goto LAB_00132cf2;\n        }\n        uVar8 = uVar39 + 1;\n        *pp = *pp + 1;\n        if ((uint)uVar38 <= uVar8) {\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          local_148 = (char **)xrealloc(local_148,uVar38 << 3);\n          values = (bfd_signed_vma *)xrealloc(values,uVar38 << 3);\n        }\n        uVar28 = (ulong)uVar8;\n        local_148[uVar39] = pcVar17;\n        pbVar31 = (byte *)*pp;\n        values[uVar39] = bVar12;\n        uVar10 = (ulong)*pbVar31;\n        uVar39 = uVar8;\n      } while ((0x3b < *pbVar31) || ((0x800100000000001U >> (uVar10 & 0x3f) & 1) == 0));\n    }" { (expression_statement "uVar38 = 10;" (assignment_expression "uVar38 = 10" identifier = number_literal) ;) (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" identifier = number_literal) ;) (do_statement "do {\n        bVar47 = (byte)uVar10;\n        pbVar26 = pbVar31;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar26 = pbVar26 + 1;\n          bVar47 = *pbVar26;\n        }\n        if (bVar47 == 0) {\n          bad_stab((char *)pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(values);\n          return (debug_type)0x0;\n        }\n        pcVar17 = savestring((char *)pbVar31,(int)pbVar26 - (int)pbVar31);\n        *pp = (char *)(pbVar26 + 1);\n        bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        if (**pp != ',') {\n          bad_stab((char *)pbVar40);\n          free(pcVar17);\n          goto LAB_00132cf2;\n        }\n        uVar8 = uVar39 + 1;\n        *pp = *pp + 1;\n        if ((uint)uVar38 <= uVar8) {\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          local_148 = (char **)xrealloc(local_148,uVar38 << 3);\n          values = (bfd_signed_vma *)xrealloc(values,uVar38 << 3);\n        }\n        uVar28 = (ulong)uVar8;\n        local_148[uVar39] = pcVar17;\n        pbVar31 = (byte *)*pp;\n        values[uVar39] = bVar12;\n        uVar10 = (ulong)*pbVar31;\n        uVar39 = uVar8;\n      } while ((0x3b < *pbVar31) || ((0x800100000000001U >> (uVar10 & 0x3f) & 1) == 0));" do (compound_statement "{\n        bVar47 = (byte)uVar10;\n        pbVar26 = pbVar31;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar26 = pbVar26 + 1;\n          bVar47 = *pbVar26;\n        }\n        if (bVar47 == 0) {\n          bad_stab((char *)pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(values);\n          return (debug_type)0x0;\n        }\n        pcVar17 = savestring((char *)pbVar31,(int)pbVar26 - (int)pbVar31);\n        *pp = (char *)(pbVar26 + 1);\n        bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        if (**pp != ',') {\n          bad_stab((char *)pbVar40);\n          free(pcVar17);\n          goto LAB_00132cf2;\n        }\n        uVar8 = uVar39 + 1;\n        *pp = *pp + 1;\n        if ((uint)uVar38 <= uVar8) {\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          local_148 = (char **)xrealloc(local_148,uVar38 << 3);\n          values = (bfd_signed_vma *)xrealloc(values,uVar38 << 3);\n        }\n        uVar28 = (ulong)uVar8;\n        local_148[uVar39] = pcVar17;\n        pbVar31 = (byte *)*pp;\n        values[uVar39] = bVar12;\n        uVar10 = (ulong)*pbVar31;\n        uVar39 = uVar8;\n      }" { (expression_statement "bVar47 = (byte)uVar10;" (assignment_expression "bVar47 = (byte)uVar10" identifier = (cast_expression "(byte)uVar10" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar26 = pbVar31;" (assignment_expression "pbVar26 = pbVar31" identifier = identifier) ;) (while_statement "while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar26 = pbVar26 + 1;\n          bVar47 = *pbVar26;\n        }" while (parenthesized_expression "((bVar47 != 0x3a && (bVar47 != 0)))" ( (parenthesized_expression "(bVar47 != 0x3a && (bVar47 != 0))" ( (binary_expression "bVar47 != 0x3a && (bVar47 != 0)" (binary_expression "bVar47 != 0x3a" identifier != number_literal) && (parenthesized_expression "(bVar47 != 0)" ( (binary_expression "bVar47 != 0" identifier != number_literal) ))) )) )) (compound_statement "{\n          pbVar26 = pbVar26 + 1;\n          bVar47 = *pbVar26;\n        }" { (expression_statement "pbVar26 = pbVar26 + 1;" (assignment_expression "pbVar26 = pbVar26 + 1" identifier = (binary_expression "pbVar26 + 1" identifier + number_literal)) ;) (expression_statement "bVar47 = *pbVar26;" (assignment_expression "bVar47 = *pbVar26" identifier = (pointer_expression "*pbVar26" * identifier)) ;) })) (if_statement "if (bVar47 == 0) {\n          bad_stab((char *)pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(values);\n          return (debug_type)0x0;\n        }" if (parenthesized_expression "(bVar47 == 0)" ( (binary_expression "bVar47 == 0" identifier == number_literal) )) (compound_statement "{\n          bad_stab((char *)pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(values);\n          return (debug_type)0x0;\n        }" { (expression_statement "bad_stab((char *)pbVar40);" (call_expression "bad_stab((char *)pbVar40)" identifier (argument_list "((char *)pbVar40)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (labeled_statement "LAB_00132cf2:\n          free(local_148);" statement_identifier : (expression_statement "free(local_148);" (call_expression "free(local_148)" identifier (argument_list "(local_148)" ( identifier ))) ;)) (expression_statement "free(values);" (call_expression "free(values)" identifier (argument_list "(values)" ( identifier ))) ;) (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "pcVar17 = savestring((char *)pbVar31,(int)pbVar26 - (int)pbVar31);" (assignment_expression "pcVar17 = savestring((char *)pbVar31,(int)pbVar26 - (int)pbVar31)" identifier = (call_expression "savestring((char *)pbVar31,(int)pbVar26 - (int)pbVar31)" identifier (argument_list "((char *)pbVar31,(int)pbVar26 - (int)pbVar31)" ( (cast_expression "(char *)pbVar31" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "(int)pbVar26 - (int)pbVar31" (cast_expression "(int)pbVar26" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*pp = (char *)(pbVar26 + 1);" (assignment_expression "*pp = (char *)(pbVar26 + 1)" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)(pbVar26 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 1)" ( (binary_expression "pbVar26 + 1" identifier + number_literal) )))) ;) (expression_statement "bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);" (assignment_expression "bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier = (call_expression "parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier (argument_list "(pp,(bfd_boolean *)0x0,p_end)" ( identifier , (cast_expression "(bfd_boolean *)0x0" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (if_statement "if (**pp != ',') {\n          bad_stab((char *)pbVar40);\n          free(pcVar17);\n          goto LAB_00132cf2;\n        }" if (parenthesized_expression "(**pp != ',')" ( (binary_expression "**pp != ','" (pointer_expression "**pp" * (pointer_expression "*pp" * identifier)) != (char_literal "','" ' character ')) )) (compound_statement "{\n          bad_stab((char *)pbVar40);\n          free(pcVar17);\n          goto LAB_00132cf2;\n        }" { (expression_statement "bad_stab((char *)pbVar40);" (call_expression "bad_stab((char *)pbVar40)" identifier (argument_list "((char *)pbVar40)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "free(pcVar17);" (call_expression "free(pcVar17)" identifier (argument_list "(pcVar17)" ( identifier ))) ;) (goto_statement "goto LAB_00132cf2;" goto statement_identifier ;) })) (expression_statement "uVar8 = uVar39 + 1;" (assignment_expression "uVar8 = uVar39 + 1" identifier = (binary_expression "uVar39 + 1" identifier + number_literal)) ;) (expression_statement "*pp = *pp + 1;" (assignment_expression "*pp = *pp + 1" (pointer_expression "*pp" * identifier) = (binary_expression "*pp + 1" (pointer_expression "*pp" * identifier) + number_literal)) ;) (if_statement "if ((uint)uVar38 <= uVar8) {\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          local_148 = (char **)xrealloc(local_148,uVar38 << 3);\n          values = (bfd_signed_vma *)xrealloc(values,uVar38 << 3);\n        }" if (parenthesized_expression "((uint)uVar38 <= uVar8)" ( (binary_expression "(uint)uVar38 <= uVar8" (cast_expression "(uint)uVar38" ( (type_descriptor "uint" type_identifier) ) identifier) <= identifier) )) (compound_statement "{\n          uVar38 = (ulong)((uint)uVar38 + 10);\n          local_148 = (char **)xrealloc(local_148,uVar38 << 3);\n          values = (bfd_signed_vma *)xrealloc(values,uVar38 << 3);\n        }" { (expression_statement "uVar38 = (ulong)((uint)uVar38 + 10);" (assignment_expression "uVar38 = (ulong)((uint)uVar38 + 10)" identifier = (call_expression "(ulong)((uint)uVar38 + 10)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((uint)uVar38 + 10)" ( (binary_expression "(uint)uVar38 + 10" (cast_expression "(uint)uVar38" ( (type_descriptor "uint" type_identifier) ) identifier) + number_literal) )))) ;) (expression_statement "local_148 = (char **)xrealloc(local_148,uVar38 << 3);" (assignment_expression "local_148 = (char **)xrealloc(local_148,uVar38 << 3)" identifier = (cast_expression "(char **)xrealloc(local_148,uVar38 << 3)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "xrealloc(local_148,uVar38 << 3)" identifier (argument_list "(local_148,uVar38 << 3)" ( identifier , (binary_expression "uVar38 << 3" identifier << number_literal) ))))) ;) (expression_statement "values = (bfd_signed_vma *)xrealloc(values,uVar38 << 3);" (assignment_expression "values = (bfd_signed_vma *)xrealloc(values,uVar38 << 3)" identifier = (cast_expression "(bfd_signed_vma *)xrealloc(values,uVar38 << 3)" ( (type_descriptor "bfd_signed_vma *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(values,uVar38 << 3)" identifier (argument_list "(values,uVar38 << 3)" ( identifier , (binary_expression "uVar38 << 3" identifier << number_literal) ))))) ;) })) (expression_statement "uVar28 = (ulong)uVar8;" (assignment_expression "uVar28 = (ulong)uVar8" identifier = (cast_expression "(ulong)uVar8" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "local_148[uVar39] = pcVar17;" (assignment_expression "local_148[uVar39] = pcVar17" (subscript_expression "local_148[uVar39]" identifier [ identifier ]) = identifier) ;) (expression_statement "pbVar31 = (byte *)*pp;" (assignment_expression "pbVar31 = (byte *)*pp" identifier = (cast_expression "(byte *)*pp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp" * identifier))) ;) (expression_statement "values[uVar39] = bVar12;" (assignment_expression "values[uVar39] = bVar12" (subscript_expression "values[uVar39]" identifier [ identifier ]) = identifier) ;) (expression_statement "uVar10 = (ulong)*pbVar31;" (assignment_expression "uVar10 = (ulong)*pbVar31" identifier = (binary_expression "(ulong)*pbVar31" (parenthesized_expression "(ulong)" ( identifier )) * identifier)) ;) (expression_statement "uVar39 = uVar8;" (assignment_expression "uVar39 = uVar8" identifier = identifier) ;) }) while (parenthesized_expression "((0x3b < *pbVar31) || ((0x800100000000001U >> (uVar10 & 0x3f) & 1) == 0))" ( (binary_expression "(0x3b < *pbVar31) || ((0x800100000000001U >> (uVar10 & 0x3f) & 1) == 0)" (parenthesized_expression "(0x3b < *pbVar31)" ( (binary_expression "0x3b < *pbVar31" number_literal < (pointer_expression "*pbVar31" * identifier)) )) || (parenthesized_expression "((0x800100000000001U >> (uVar10 & 0x3f) & 1) == 0)" ( (binary_expression "(0x800100000000001U >> (uVar10 & 0x3f) & 1) == 0" (parenthesized_expression "(0x800100000000001U >> (uVar10 & 0x3f) & 1)" ( (binary_expression "0x800100000000001U >> (uVar10 & 0x3f) & 1" (binary_expression "0x800100000000001U >> (uVar10 & 0x3f)" number_literal >> (parenthesized_expression "(uVar10 & 0x3f)" ( (binary_expression "uVar10 & 0x3f" identifier & number_literal) ))) & number_literal) )) == number_literal) ))) )) ;) }))) (expression_statement "local_148[uVar28] = (char *)0x0;" (assignment_expression "local_148[uVar28] = (char *)0x0" (subscript_expression "local_148[uVar28]" identifier [ identifier ]) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar17 = *pp;" (assignment_expression "pcVar17 = *pp" identifier = (pointer_expression "*pp" * identifier)) ;) (expression_statement "values[uVar28] = 0;" (assignment_expression "values[uVar28] = 0" (subscript_expression "values[uVar28]" identifier [ identifier ]) = number_literal) ;) (if_statement "if (*pcVar17 == ';') {\n      *pp = pcVar17 + 1;\n    }" if (parenthesized_expression "(*pcVar17 == ';')" ( (binary_expression "*pcVar17 == ';'" (pointer_expression "*pcVar17" * identifier) == (char_literal "';'" ' character ')) )) (compound_statement "{\n      *pp = pcVar17 + 1;\n    }" { (expression_statement "*pp = pcVar17 + 1;" (assignment_expression "*pp = pcVar17 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) })) (expression_statement "pdVar20 = debug_make_enum_type(dhandle,local_148,values);" (assignment_expression "pdVar20 = debug_make_enum_type(dhandle,local_148,values)" identifier = (call_expression "debug_make_enum_type(dhandle,local_148,values)" identifier (argument_list "(dhandle,local_148,values)" ( identifier , identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x66:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_function_type(dhandle,pdVar18,(debug_type_conflict *)0x0,0);\n    break;" case number_literal : (expression_statement "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);" (assignment_expression "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier = (call_expression "parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier (argument_list "(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(debug_type_conflict **)0x0" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , identifier )))) ;) (expression_statement "pdVar20 = debug_make_function_type(dhandle,pdVar18,(debug_type_conflict *)0x0,0);" (assignment_expression "pdVar20 = debug_make_function_type(dhandle,pdVar18,(debug_type_conflict *)0x0,0)" identifier = (call_expression "debug_make_function_type(dhandle,pdVar18,(debug_type_conflict *)0x0,0)" identifier (argument_list "(dhandle,pdVar18,(debug_type_conflict *)0x0,0)" ( identifier , identifier , (cast_expression "(debug_type_conflict *)0x0" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , number_literal )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x6b:\n    pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n    pdVar20 = debug_make_const_type(dhandle,pdVar18);\n    break;" case number_literal : (expression_statement "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);" (assignment_expression "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier = (call_expression "parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier (argument_list "(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(debug_type_conflict **)0x0" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , identifier )))) ;) (expression_statement "pdVar20 = debug_make_const_type(dhandle,pdVar18);" (assignment_expression "pdVar20 = debug_make_const_type(dhandle,pdVar18)" identifier = (call_expression "debug_make_const_type(dhandle,pdVar18)" identifier (argument_list "(dhandle,pdVar18)" ( identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x72:\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    bVar4 = parse_stab_type_number(pp,xtypenums,p_end);\n    if (bVar4 == 0) {\n      return (debug_type)0x0;\n    }\n    bVar43 = false;\n    if (xtypenums[0] == typenums[0]) {\n      bVar43 = xtypenums[1] == typenums[1];\n    }\n    pbVar31 = (byte *)*pp;\n    pdVar18 = (debug_type)0x0;\n    bVar37 = *pbVar31;\n    if (bVar37 == 0x3d) {\n      *pp = (char *)pbVar40;\n      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      pbVar31 = (byte *)*pp;\n      bVar37 = *pbVar31;\n    }\n    if (bVar37 == 0x3b) {\n      pbVar31 = pbVar31 + 1;\n      *pp = (char *)pbVar31;\n    }\n    bVar12 = parse_number(pp,&varargs_1,p_end);\n    if (**pp != ';') goto LAB_00132126;\n    pcVar17 = *pp + 1;\n    *pp = pcVar17;\n    bVar13 = parse_number(pp,(bfd_boolean *)&p,p_end);\n    bVar4 = varargs_1;\n    if (**pp != ';') goto LAB_00132126;\n    *pp = *pp + 1;\n    if (varargs_1 != 0 || (int)p != 0) {\n      bVar41 = false;\n      bVar44 = pdVar18 == (debug_type)0x0;\n      if (!bVar44) {\nLAB_00131960:\n        pcVar17 = (char *)dcgettext(0,"numeric overflow",5);\n        warn_stab((char *)pbVar40,pcVar17);\n        goto LAB_0013197e;\n      }\n      lVar11 = 0x18;\n      pbVar26 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar41 = *pbVar31 < *pbVar26;\n        bVar44 = *pbVar31 == *pbVar26;\n        pbVar31 = pbVar31 + (ulong)bVar47 * -2 + 1;\n        pbVar26 = pbVar26 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar7 = strncmp(pcVar17,"0777777777777777777777;",0x17), iVar7 != 0)) {\n        if ((bVar12 != 0) ||\n           ((bVar4 != 0 || (iVar7 = strncmp(pcVar17,"01777777777777777777777;",0x18), iVar7 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        pdVar20 = debug_make_int_type(dhandle,8,1);\n        break;\n      }\nLAB_0013373f:\n      pdVar20 = debug_make_int_type(dhandle,8,0);\n      break;\n    }\nLAB_0013197e:\n    if (pdVar18 == (debug_type)0x0) {\n      if ((bVar43) && (bVar12 == 0)) {\n        if (bVar13 == 0) goto LAB_00133358;\n        if (bVar13 == 0xffffffffffffffff) {\nLAB_00133395:\n          if (type_name != (char *)0x0) {\n            iVar7 = strcmp(type_name,"long long int");\n            if (iVar7 == 0) goto LAB_0013373f;\n            iVar7 = strcmp(type_name,"long long unsigned int");\n            if (iVar7 == 0) goto LAB_0013348a;\n          }\n        }\n        else {\n          if (bVar13 == 0x7f) {\nLAB_00133dee:\n            pdVar20 = debug_make_int_type(dhandle,1,0);\n            break;\n          }\nLAB_00133a66:\n          uVar39 = (uint)bVar13;\n          if ((long)bVar13 < 0) goto LAB_00133b55;\n          if (bVar13 == 0xff) {\n            pdVar20 = debug_make_int_type(dhandle,1,1);\n            break;\n          }\n          if (bVar13 == 0xffff) {\n            pdVar20 = debug_make_int_type(dhandle,2,1);\n            break;\n          }\n          if (bVar13 != 0xffffffff) goto LAB_00131987;\n        }\n        pdVar20 = debug_make_int_type(dhandle,4,1);\n        break;\n      }\n      bVar41 = bVar13 != 0;\n      uVar39 = (uint)bVar12;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)bVar12) && (!bVar41)) {\n          pdVar20 = debug_make_float_type(dhandle,uVar39);\n          break;\n        }\n        if ((bVar13 == 0xffffffffffffffff) && (bVar12 == 0)) goto LAB_00133395;\n        if (bVar12 == 0) goto LAB_00133a66;\n        if (((-1 < (long)bVar12) || (bVar41)) || ((bVar12 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)bVar12) {\n          pdVar20 = debug_make_complex_type(dhandle,uVar39);\n          break;\n        }\n        if (-1 < (long)bVar12) {\nLAB_001336f0:\n          if ((bVar12 == ~bVar13) || (bVar12 == bVar13 + 1)) {\n            if (bVar13 == 0x7f) goto LAB_00133dee;\n            if (bVar13 == 0x7fff) {\n              pdVar20 = debug_make_int_type(dhandle,2,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffff) {\n              pdVar20 = debug_make_int_type(dhandle,4,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\nLAB_00133b55:\n      pdVar20 = debug_make_int_type(dhandle,-uVar39,1);\n    }\n    else {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        bad_stab((char *)pbVar40);\n        return (debug_type)0x0;\n      }\n      pdVar20 = stab_find_type(dhandle,info,xtypenums);\n      if (pdVar20 == (debug_type)0x0) {\n        pcVar17 = (char *)dcgettext(0,"missing index type",5);\n        warn_stab((char *)pbVar40,pcVar17);\n        pdVar20 = debug_make_int_type(dhandle,4,0);\n      }\n      pdVar20 = debug_make_range_type(dhandle,pdVar20,bVar12,bVar13);\n    }\n    break;" case number_literal : (if_statement "if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }" if (parenthesized_expression "(p_end <= pbVar40)" ( (binary_expression "p_end <= pbVar40" identifier <= identifier) )) (compound_statement "{\n      return (debug_type)0x0;\n    }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "bVar4 = parse_stab_type_number(pp,xtypenums,p_end);" (assignment_expression "bVar4 = parse_stab_type_number(pp,xtypenums,p_end)" identifier = (call_expression "parse_stab_type_number(pp,xtypenums,p_end)" identifier (argument_list "(pp,xtypenums,p_end)" ( identifier , identifier , identifier )))) ;) (if_statement "if (bVar4 == 0) {\n      return (debug_type)0x0;\n    }" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (compound_statement "{\n      return (debug_type)0x0;\n    }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "bVar43 = false;" (assignment_expression "bVar43 = false" identifier = false) ;) (if_statement "if (xtypenums[0] == typenums[0]) {\n      bVar43 = xtypenums[1] == typenums[1];\n    }" if (parenthesized_expression "(xtypenums[0] == typenums[0])" ( (binary_expression "xtypenums[0] == typenums[0]" (subscript_expression "xtypenums[0]" identifier [ number_literal ]) == (subscript_expression "typenums[0]" identifier [ number_literal ])) )) (compound_statement "{\n      bVar43 = xtypenums[1] == typenums[1];\n    }" { (expression_statement "bVar43 = xtypenums[1] == typenums[1];" (assignment_expression "bVar43 = xtypenums[1] == typenums[1]" identifier = (binary_expression "xtypenums[1] == typenums[1]" (subscript_expression "xtypenums[1]" identifier [ number_literal ]) == (subscript_expression "typenums[1]" identifier [ number_literal ]))) ;) })) (expression_statement "pbVar31 = (byte *)*pp;" (assignment_expression "pbVar31 = (byte *)*pp" identifier = (cast_expression "(byte *)*pp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp" * identifier))) ;) (expression_statement "pdVar18 = (debug_type)0x0;" (assignment_expression "pdVar18 = (debug_type)0x0" identifier = (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) ;) (expression_statement "bVar37 = *pbVar31;" (assignment_expression "bVar37 = *pbVar31" identifier = (pointer_expression "*pbVar31" * identifier)) ;) (if_statement "if (bVar37 == 0x3d) {\n      *pp = (char *)pbVar40;\n      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      pbVar31 = (byte *)*pp;\n      bVar37 = *pbVar31;\n    }" if (parenthesized_expression "(bVar37 == 0x3d)" ( (binary_expression "bVar37 == 0x3d" identifier == number_literal) )) (compound_statement "{\n      *pp = (char *)pbVar40;\n      pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n      if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }\n      pbVar31 = (byte *)*pp;\n      bVar37 = *pbVar31;\n    }" { (expression_statement "*pp = (char *)pbVar40;" (assignment_expression "*pp = (char *)pbVar40" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);" (assignment_expression "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier = (call_expression "parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier (argument_list "(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(debug_type_conflict **)0x0" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , identifier )))) ;) (if_statement "if (pdVar18 == (debug_type)0x0) {\n        return (debug_type)0x0;\n      }" if (parenthesized_expression "(pdVar18 == (debug_type)0x0)" ( (binary_expression "pdVar18 == (debug_type)0x0" identifier == (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (compound_statement "{\n        return (debug_type)0x0;\n      }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "pbVar31 = (byte *)*pp;" (assignment_expression "pbVar31 = (byte *)*pp" identifier = (cast_expression "(byte *)*pp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp" * identifier))) ;) (expression_statement "bVar37 = *pbVar31;" (assignment_expression "bVar37 = *pbVar31" identifier = (pointer_expression "*pbVar31" * identifier)) ;) })) (if_statement "if (bVar37 == 0x3b) {\n      pbVar31 = pbVar31 + 1;\n      *pp = (char *)pbVar31;\n    }" if (parenthesized_expression "(bVar37 == 0x3b)" ( (binary_expression "bVar37 == 0x3b" identifier == number_literal) )) (compound_statement "{\n      pbVar31 = pbVar31 + 1;\n      *pp = (char *)pbVar31;\n    }" { (expression_statement "pbVar31 = pbVar31 + 1;" (assignment_expression "pbVar31 = pbVar31 + 1" identifier = (binary_expression "pbVar31 + 1" identifier + number_literal)) ;) (expression_statement "*pp = (char *)pbVar31;" (assignment_expression "*pp = (char *)pbVar31" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar31" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (expression_statement "bVar12 = parse_number(pp,&varargs_1,p_end);" (assignment_expression "bVar12 = parse_number(pp,&varargs_1,p_end)" identifier = (call_expression "parse_number(pp,&varargs_1,p_end)" identifier (argument_list "(pp,&varargs_1,p_end)" ( identifier , (pointer_expression "&varargs_1" & identifier) , identifier )))) ;) (if_statement "if (**pp != ';') goto LAB_00132126;" if (parenthesized_expression "(**pp != ';')" ( (binary_expression "**pp != ';'" (pointer_expression "**pp" * (pointer_expression "*pp" * identifier)) != (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "pcVar17 = *pp + 1;" (assignment_expression "pcVar17 = *pp + 1" identifier = (binary_expression "*pp + 1" (pointer_expression "*pp" * identifier) + number_literal)) ;) (expression_statement "*pp = pcVar17;" (assignment_expression "*pp = pcVar17" (pointer_expression "*pp" * identifier) = identifier) ;) (expression_statement "bVar13 = parse_number(pp,(bfd_boolean *)&p,p_end);" (assignment_expression "bVar13 = parse_number(pp,(bfd_boolean *)&p,p_end)" identifier = (call_expression "parse_number(pp,(bfd_boolean *)&p,p_end)" identifier (argument_list "(pp,(bfd_boolean *)&p,p_end)" ( identifier , (cast_expression "(bfd_boolean *)&p" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&p" & identifier)) , identifier )))) ;) (expression_statement "bVar4 = varargs_1;" (assignment_expression "bVar4 = varargs_1" identifier = identifier) ;) (if_statement "if (**pp != ';') goto LAB_00132126;" if (parenthesized_expression "(**pp != ';')" ( (binary_expression "**pp != ';'" (pointer_expression "**pp" * (pointer_expression "*pp" * identifier)) != (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "*pp = *pp + 1;" (assignment_expression "*pp = *pp + 1" (pointer_expression "*pp" * identifier) = (binary_expression "*pp + 1" (pointer_expression "*pp" * identifier) + number_literal)) ;) (if_statement "if (varargs_1 != 0 || (int)p != 0) {\n      bVar41 = false;\n      bVar44 = pdVar18 == (debug_type)0x0;\n      if (!bVar44) {\nLAB_00131960:\n        pcVar17 = (char *)dcgettext(0,"numeric overflow",5);\n        warn_stab((char *)pbVar40,pcVar17);\n        goto LAB_0013197e;\n      }\n      lVar11 = 0x18;\n      pbVar26 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar41 = *pbVar31 < *pbVar26;\n        bVar44 = *pbVar31 == *pbVar26;\n        pbVar31 = pbVar31 + (ulong)bVar47 * -2 + 1;\n        pbVar26 = pbVar26 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar7 = strncmp(pcVar17,"0777777777777777777777;",0x17), iVar7 != 0)) {\n        if ((bVar12 != 0) ||\n           ((bVar4 != 0 || (iVar7 = strncmp(pcVar17,"01777777777777777777777;",0x18), iVar7 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        pdVar20 = debug_make_int_type(dhandle,8,1);\n        break;\n      }\nLAB_0013373f:\n      pdVar20 = debug_make_int_type(dhandle,8,0);\n      break;\n    }" if (parenthesized_expression "(varargs_1 != 0 || (int)p != 0)" ( (binary_expression "varargs_1 != 0 || (int)p != 0" (binary_expression "varargs_1 != 0" identifier != number_literal) || (binary_expression "(int)p != 0" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal)) )) (compound_statement "{\n      bVar41 = false;\n      bVar44 = pdVar18 == (debug_type)0x0;\n      if (!bVar44) {\nLAB_00131960:\n        pcVar17 = (char *)dcgettext(0,"numeric overflow",5);\n        warn_stab((char *)pbVar40,pcVar17);\n        goto LAB_0013197e;\n      }\n      lVar11 = 0x18;\n      pbVar26 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar41 = *pbVar31 < *pbVar26;\n        bVar44 = *pbVar31 == *pbVar26;\n        pbVar31 = pbVar31 + (ulong)bVar47 * -2 + 1;\n        pbVar26 = pbVar26 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar7 = strncmp(pcVar17,"0777777777777777777777;",0x17), iVar7 != 0)) {\n        if ((bVar12 != 0) ||\n           ((bVar4 != 0 || (iVar7 = strncmp(pcVar17,"01777777777777777777777;",0x18), iVar7 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        pdVar20 = debug_make_int_type(dhandle,8,1);\n        break;\n      }\nLAB_0013373f:\n      pdVar20 = debug_make_int_type(dhandle,8,0);\n      break;\n    }" { (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (expression_statement "bVar44 = pdVar18 == (debug_type)0x0;" (assignment_expression "bVar44 = pdVar18 == (debug_type)0x0" identifier = (binary_expression "pdVar18 == (debug_type)0x0" identifier == (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal))) ;) (if_statement "if (!bVar44) {\nLAB_00131960:\n        pcVar17 = (char *)dcgettext(0,"numeric overflow",5);\n        warn_stab((char *)pbVar40,pcVar17);\n        goto LAB_0013197e;\n      }" if (parenthesized_expression "(!bVar44)" ( (unary_expression "!bVar44" ! identifier) )) (compound_statement "{\nLAB_00131960:\n        pcVar17 = (char *)dcgettext(0,"numeric overflow",5);\n        warn_stab((char *)pbVar40,pcVar17);\n        goto LAB_0013197e;\n      }" { (labeled_statement "LAB_00131960:\n        pcVar17 = (char *)dcgettext(0,"numeric overflow",5);" statement_identifier : (expression_statement "pcVar17 = (char *)dcgettext(0,"numeric overflow",5);" (assignment_expression "pcVar17 = (char *)dcgettext(0,"numeric overflow",5)" identifier = (cast_expression "(char *)dcgettext(0,"numeric overflow",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"numeric overflow",5)" identifier (argument_list "(0,"numeric overflow",5)" ( number_literal , (string_literal ""numeric overflow"" " string_content ") , number_literal ))))) ;)) (expression_statement "warn_stab((char *)pbVar40,pcVar17);" (call_expression "warn_stab((char *)pbVar40,pcVar17)" identifier (argument_list "((char *)pbVar40,pcVar17)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (goto_statement "goto LAB_0013197e;" goto statement_identifier ;) })) (expression_statement "lVar11 = 0x18;" (assignment_expression "lVar11 = 0x18" identifier = number_literal) ;) (expression_statement "pbVar26 = (byte *)"01000000000000000000000;";" (assignment_expression "pbVar26 = (byte *)"01000000000000000000000;"" identifier = (cast_expression "(byte *)"01000000000000000000000;"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""01000000000000000000000;"" " string_content "))) ;) (do_statement "do {\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar41 = *pbVar31 < *pbVar26;\n        bVar44 = *pbVar31 == *pbVar26;\n        pbVar31 = pbVar31 + (ulong)bVar47 * -2 + 1;\n        pbVar26 = pbVar26 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);" do (compound_statement "{\n        if (lVar11 == 0) break;\n        lVar11 = lVar11 + -1;\n        bVar41 = *pbVar31 < *pbVar26;\n        bVar44 = *pbVar31 == *pbVar26;\n        pbVar31 = pbVar31 + (ulong)bVar47 * -2 + 1;\n        pbVar26 = pbVar26 + (ulong)bVar47 * -2 + 1;\n      }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "bVar41 = *pbVar31 < *pbVar26;" (assignment_expression "bVar41 = *pbVar31 < *pbVar26" identifier = (binary_expression "*pbVar31 < *pbVar26" (pointer_expression "*pbVar31" * identifier) < (pointer_expression "*pbVar26" * identifier))) ;) (expression_statement "bVar44 = *pbVar31 == *pbVar26;" (assignment_expression "bVar44 = *pbVar31 == *pbVar26" identifier = (binary_expression "*pbVar31 == *pbVar26" (pointer_expression "*pbVar31" * identifier) == (pointer_expression "*pbVar26" * identifier))) ;) (expression_statement "pbVar31 = pbVar31 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pbVar31 = pbVar31 + (ulong)bVar47 * -2 + 1" identifier = (binary_expression "pbVar31 + (ulong)bVar47 * -2 + 1" (binary_expression "pbVar31 + (ulong)bVar47 * -2" identifier + (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar26 = pbVar26 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pbVar26 = pbVar26 + (ulong)bVar47 * -2 + 1" identifier = (binary_expression "pbVar26 + (ulong)bVar47 * -2 + 1" (binary_expression "pbVar26 + (ulong)bVar47 * -2" identifier + (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar44)" ( identifier )) ;) (if_statement "if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar7 = strncmp(pcVar17,"0777777777777777777777;",0x17), iVar7 != 0)) {\n        if ((bVar12 != 0) ||\n           ((bVar4 != 0 || (iVar7 = strncmp(pcVar17,"01777777777777777777777;",0x18), iVar7 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        pdVar20 = debug_make_int_type(dhandle,8,1);\n        break;\n      }" if (parenthesized_expression "(((!bVar41 && !bVar44) != bVar41) ||\n         (iVar7 = strncmp(pcVar17,"0777777777777777777777;",0x17), iVar7 != 0))" ( (binary_expression "((!bVar41 && !bVar44) != bVar41) ||\n         (iVar7 = strncmp(pcVar17,"0777777777777777777777;",0x17), iVar7 != 0)" (parenthesized_expression "((!bVar41 && !bVar44) != bVar41)" ( (binary_expression "(!bVar41 && !bVar44) != bVar41" (parenthesized_expression "(!bVar41 && !bVar44)" ( (binary_expression "!bVar41 && !bVar44" (unary_expression "!bVar41" ! identifier) && (unary_expression "!bVar44" ! identifier)) )) != identifier) )) || (parenthesized_expression "(iVar7 = strncmp(pcVar17,"0777777777777777777777;",0x17), iVar7 != 0)" ( (comma_expression "iVar7 = strncmp(pcVar17,"0777777777777777777777;",0x17), iVar7 != 0" (assignment_expression "iVar7 = strncmp(pcVar17,"0777777777777777777777;",0x17)" identifier = (call_expression "strncmp(pcVar17,"0777777777777777777777;",0x17)" identifier (argument_list "(pcVar17,"0777777777777777777777;",0x17)" ( identifier , (string_literal ""0777777777777777777777;"" " string_content ") , number_literal )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        if ((bVar12 != 0) ||\n           ((bVar4 != 0 || (iVar7 = strncmp(pcVar17,"01777777777777777777777;",0x18), iVar7 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        pdVar20 = debug_make_int_type(dhandle,8,1);\n        break;\n      }" { (if_statement "if ((bVar12 != 0) ||\n           ((bVar4 != 0 || (iVar7 = strncmp(pcVar17,"01777777777777777777777;",0x18), iVar7 != 0))))\n        goto LAB_00131960;" if (parenthesized_expression "((bVar12 != 0) ||\n           ((bVar4 != 0 || (iVar7 = strncmp(pcVar17,"01777777777777777777777;",0x18), iVar7 != 0))))" ( (binary_expression "(bVar12 != 0) ||\n           ((bVar4 != 0 || (iVar7 = strncmp(pcVar17,"01777777777777777777777;",0x18), iVar7 != 0)))" (parenthesized_expression "(bVar12 != 0)" ( (binary_expression "bVar12 != 0" identifier != number_literal) )) || (parenthesized_expression "((bVar4 != 0 || (iVar7 = strncmp(pcVar17,"01777777777777777777777;",0x18), iVar7 != 0)))" ( (parenthesized_expression "(bVar4 != 0 || (iVar7 = strncmp(pcVar17,"01777777777777777777777;",0x18), iVar7 != 0))" ( (binary_expression "bVar4 != 0 || (iVar7 = strncmp(pcVar17,"01777777777777777777777;",0x18), iVar7 != 0)" (binary_expression "bVar4 != 0" identifier != number_literal) || (parenthesized_expression "(iVar7 = strncmp(pcVar17,"01777777777777777777777;",0x18), iVar7 != 0)" ( (comma_expression "iVar7 = strncmp(pcVar17,"01777777777777777777777;",0x18), iVar7 != 0" (assignment_expression "iVar7 = strncmp(pcVar17,"01777777777777777777777;",0x18)" identifier = (call_expression "strncmp(pcVar17,"01777777777777777777777;",0x18)" identifier (argument_list "(pcVar17,"01777777777777777777777;",0x18)" ( identifier , (string_literal ""01777777777777777777777;"" " string_content ") , number_literal )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) ))) )) (goto_statement "goto LAB_00131960;" goto statement_identifier ;)) (labeled_statement "LAB_0013348a:\n        pdVar20 = debug_make_int_type(dhandle,8,1);" statement_identifier : (expression_statement "pdVar20 = debug_make_int_type(dhandle,8,1);" (assignment_expression "pdVar20 = debug_make_int_type(dhandle,8,1)" identifier = (call_expression "debug_make_int_type(dhandle,8,1)" identifier (argument_list "(dhandle,8,1)" ( identifier , number_literal , number_literal )))) ;)) (break_statement "break;" break ;) })) (labeled_statement "LAB_0013373f:\n      pdVar20 = debug_make_int_type(dhandle,8,0);" statement_identifier : (expression_statement "pdVar20 = debug_make_int_type(dhandle,8,0);" (assignment_expression "pdVar20 = debug_make_int_type(dhandle,8,0)" identifier = (call_expression "debug_make_int_type(dhandle,8,0)" identifier (argument_list "(dhandle,8,0)" ( identifier , number_literal , number_literal )))) ;)) (break_statement "break;" break ;) })) (labeled_statement "LAB_0013197e:\n    if (pdVar18 == (debug_type)0x0) {\n      if ((bVar43) && (bVar12 == 0)) {\n        if (bVar13 == 0) goto LAB_00133358;\n        if (bVar13 == 0xffffffffffffffff) {\nLAB_00133395:\n          if (type_name != (char *)0x0) {\n            iVar7 = strcmp(type_name,"long long int");\n            if (iVar7 == 0) goto LAB_0013373f;\n            iVar7 = strcmp(type_name,"long long unsigned int");\n            if (iVar7 == 0) goto LAB_0013348a;\n          }\n        }\n        else {\n          if (bVar13 == 0x7f) {\nLAB_00133dee:\n            pdVar20 = debug_make_int_type(dhandle,1,0);\n            break;\n          }\nLAB_00133a66:\n          uVar39 = (uint)bVar13;\n          if ((long)bVar13 < 0) goto LAB_00133b55;\n          if (bVar13 == 0xff) {\n            pdVar20 = debug_make_int_type(dhandle,1,1);\n            break;\n          }\n          if (bVar13 == 0xffff) {\n            pdVar20 = debug_make_int_type(dhandle,2,1);\n            break;\n          }\n          if (bVar13 != 0xffffffff) goto LAB_00131987;\n        }\n        pdVar20 = debug_make_int_type(dhandle,4,1);\n        break;\n      }\n      bVar41 = bVar13 != 0;\n      uVar39 = (uint)bVar12;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)bVar12) && (!bVar41)) {\n          pdVar20 = debug_make_float_type(dhandle,uVar39);\n          break;\n        }\n        if ((bVar13 == 0xffffffffffffffff) && (bVar12 == 0)) goto LAB_00133395;\n        if (bVar12 == 0) goto LAB_00133a66;\n        if (((-1 < (long)bVar12) || (bVar41)) || ((bVar12 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)bVar12) {\n          pdVar20 = debug_make_complex_type(dhandle,uVar39);\n          break;\n        }\n        if (-1 < (long)bVar12) {\nLAB_001336f0:\n          if ((bVar12 == ~bVar13) || (bVar12 == bVar13 + 1)) {\n            if (bVar13 == 0x7f) goto LAB_00133dee;\n            if (bVar13 == 0x7fff) {\n              pdVar20 = debug_make_int_type(dhandle,2,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffff) {\n              pdVar20 = debug_make_int_type(dhandle,4,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\nLAB_00133b55:\n      pdVar20 = debug_make_int_type(dhandle,-uVar39,1);\n    }\n    else {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        bad_stab((char *)pbVar40);\n        return (debug_type)0x0;\n      }\n      pdVar20 = stab_find_type(dhandle,info,xtypenums);\n      if (pdVar20 == (debug_type)0x0) {\n        pcVar17 = (char *)dcgettext(0,"missing index type",5);\n        warn_stab((char *)pbVar40,pcVar17);\n        pdVar20 = debug_make_int_type(dhandle,4,0);\n      }\n      pdVar20 = debug_make_range_type(dhandle,pdVar20,bVar12,bVar13);\n    }" statement_identifier : (if_statement "if (pdVar18 == (debug_type)0x0) {\n      if ((bVar43) && (bVar12 == 0)) {\n        if (bVar13 == 0) goto LAB_00133358;\n        if (bVar13 == 0xffffffffffffffff) {\nLAB_00133395:\n          if (type_name != (char *)0x0) {\n            iVar7 = strcmp(type_name,"long long int");\n            if (iVar7 == 0) goto LAB_0013373f;\n            iVar7 = strcmp(type_name,"long long unsigned int");\n            if (iVar7 == 0) goto LAB_0013348a;\n          }\n        }\n        else {\n          if (bVar13 == 0x7f) {\nLAB_00133dee:\n            pdVar20 = debug_make_int_type(dhandle,1,0);\n            break;\n          }\nLAB_00133a66:\n          uVar39 = (uint)bVar13;\n          if ((long)bVar13 < 0) goto LAB_00133b55;\n          if (bVar13 == 0xff) {\n            pdVar20 = debug_make_int_type(dhandle,1,1);\n            break;\n          }\n          if (bVar13 == 0xffff) {\n            pdVar20 = debug_make_int_type(dhandle,2,1);\n            break;\n          }\n          if (bVar13 != 0xffffffff) goto LAB_00131987;\n        }\n        pdVar20 = debug_make_int_type(dhandle,4,1);\n        break;\n      }\n      bVar41 = bVar13 != 0;\n      uVar39 = (uint)bVar12;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)bVar12) && (!bVar41)) {\n          pdVar20 = debug_make_float_type(dhandle,uVar39);\n          break;\n        }\n        if ((bVar13 == 0xffffffffffffffff) && (bVar12 == 0)) goto LAB_00133395;\n        if (bVar12 == 0) goto LAB_00133a66;\n        if (((-1 < (long)bVar12) || (bVar41)) || ((bVar12 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)bVar12) {\n          pdVar20 = debug_make_complex_type(dhandle,uVar39);\n          break;\n        }\n        if (-1 < (long)bVar12) {\nLAB_001336f0:\n          if ((bVar12 == ~bVar13) || (bVar12 == bVar13 + 1)) {\n            if (bVar13 == 0x7f) goto LAB_00133dee;\n            if (bVar13 == 0x7fff) {\n              pdVar20 = debug_make_int_type(dhandle,2,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffff) {\n              pdVar20 = debug_make_int_type(dhandle,4,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\nLAB_00133b55:\n      pdVar20 = debug_make_int_type(dhandle,-uVar39,1);\n    }\n    else {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        bad_stab((char *)pbVar40);\n        return (debug_type)0x0;\n      }\n      pdVar20 = stab_find_type(dhandle,info,xtypenums);\n      if (pdVar20 == (debug_type)0x0) {\n        pcVar17 = (char *)dcgettext(0,"missing index type",5);\n        warn_stab((char *)pbVar40,pcVar17);\n        pdVar20 = debug_make_int_type(dhandle,4,0);\n      }\n      pdVar20 = debug_make_range_type(dhandle,pdVar20,bVar12,bVar13);\n    }" if (parenthesized_expression "(pdVar18 == (debug_type)0x0)" ( (binary_expression "pdVar18 == (debug_type)0x0" identifier == (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (compound_statement "{\n      if ((bVar43) && (bVar12 == 0)) {\n        if (bVar13 == 0) goto LAB_00133358;\n        if (bVar13 == 0xffffffffffffffff) {\nLAB_00133395:\n          if (type_name != (char *)0x0) {\n            iVar7 = strcmp(type_name,"long long int");\n            if (iVar7 == 0) goto LAB_0013373f;\n            iVar7 = strcmp(type_name,"long long unsigned int");\n            if (iVar7 == 0) goto LAB_0013348a;\n          }\n        }\n        else {\n          if (bVar13 == 0x7f) {\nLAB_00133dee:\n            pdVar20 = debug_make_int_type(dhandle,1,0);\n            break;\n          }\nLAB_00133a66:\n          uVar39 = (uint)bVar13;\n          if ((long)bVar13 < 0) goto LAB_00133b55;\n          if (bVar13 == 0xff) {\n            pdVar20 = debug_make_int_type(dhandle,1,1);\n            break;\n          }\n          if (bVar13 == 0xffff) {\n            pdVar20 = debug_make_int_type(dhandle,2,1);\n            break;\n          }\n          if (bVar13 != 0xffffffff) goto LAB_00131987;\n        }\n        pdVar20 = debug_make_int_type(dhandle,4,1);\n        break;\n      }\n      bVar41 = bVar13 != 0;\n      uVar39 = (uint)bVar12;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)bVar12) && (!bVar41)) {\n          pdVar20 = debug_make_float_type(dhandle,uVar39);\n          break;\n        }\n        if ((bVar13 == 0xffffffffffffffff) && (bVar12 == 0)) goto LAB_00133395;\n        if (bVar12 == 0) goto LAB_00133a66;\n        if (((-1 < (long)bVar12) || (bVar41)) || ((bVar12 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)bVar12) {\n          pdVar20 = debug_make_complex_type(dhandle,uVar39);\n          break;\n        }\n        if (-1 < (long)bVar12) {\nLAB_001336f0:\n          if ((bVar12 == ~bVar13) || (bVar12 == bVar13 + 1)) {\n            if (bVar13 == 0x7f) goto LAB_00133dee;\n            if (bVar13 == 0x7fff) {\n              pdVar20 = debug_make_int_type(dhandle,2,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffff) {\n              pdVar20 = debug_make_int_type(dhandle,4,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\nLAB_00133b55:\n      pdVar20 = debug_make_int_type(dhandle,-uVar39,1);\n    }" { (if_statement "if ((bVar43) && (bVar12 == 0)) {\n        if (bVar13 == 0) goto LAB_00133358;\n        if (bVar13 == 0xffffffffffffffff) {\nLAB_00133395:\n          if (type_name != (char *)0x0) {\n            iVar7 = strcmp(type_name,"long long int");\n            if (iVar7 == 0) goto LAB_0013373f;\n            iVar7 = strcmp(type_name,"long long unsigned int");\n            if (iVar7 == 0) goto LAB_0013348a;\n          }\n        }\n        else {\n          if (bVar13 == 0x7f) {\nLAB_00133dee:\n            pdVar20 = debug_make_int_type(dhandle,1,0);\n            break;\n          }\nLAB_00133a66:\n          uVar39 = (uint)bVar13;\n          if ((long)bVar13 < 0) goto LAB_00133b55;\n          if (bVar13 == 0xff) {\n            pdVar20 = debug_make_int_type(dhandle,1,1);\n            break;\n          }\n          if (bVar13 == 0xffff) {\n            pdVar20 = debug_make_int_type(dhandle,2,1);\n            break;\n          }\n          if (bVar13 != 0xffffffff) goto LAB_00131987;\n        }\n        pdVar20 = debug_make_int_type(dhandle,4,1);\n        break;\n      }" if (parenthesized_expression "((bVar43) && (bVar12 == 0))" ( (binary_expression "(bVar43) && (bVar12 == 0)" (parenthesized_expression "(bVar43)" ( identifier )) && (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) ))) )) (compound_statement "{\n        if (bVar13 == 0) goto LAB_00133358;\n        if (bVar13 == 0xffffffffffffffff) {\nLAB_00133395:\n          if (type_name != (char *)0x0) {\n            iVar7 = strcmp(type_name,"long long int");\n            if (iVar7 == 0) goto LAB_0013373f;\n            iVar7 = strcmp(type_name,"long long unsigned int");\n            if (iVar7 == 0) goto LAB_0013348a;\n          }\n        }\n        else {\n          if (bVar13 == 0x7f) {\nLAB_00133dee:\n            pdVar20 = debug_make_int_type(dhandle,1,0);\n            break;\n          }\nLAB_00133a66:\n          uVar39 = (uint)bVar13;\n          if ((long)bVar13 < 0) goto LAB_00133b55;\n          if (bVar13 == 0xff) {\n            pdVar20 = debug_make_int_type(dhandle,1,1);\n            break;\n          }\n          if (bVar13 == 0xffff) {\n            pdVar20 = debug_make_int_type(dhandle,2,1);\n            break;\n          }\n          if (bVar13 != 0xffffffff) goto LAB_00131987;\n        }\n        pdVar20 = debug_make_int_type(dhandle,4,1);\n        break;\n      }" { (if_statement "if (bVar13 == 0) goto LAB_00133358;" if (parenthesized_expression "(bVar13 == 0)" ( (binary_expression "bVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00133358;" goto statement_identifier ;)) (if_statement "if (bVar13 == 0xffffffffffffffff) {\nLAB_00133395:\n          if (type_name != (char *)0x0) {\n            iVar7 = strcmp(type_name,"long long int");\n            if (iVar7 == 0) goto LAB_0013373f;\n            iVar7 = strcmp(type_name,"long long unsigned int");\n            if (iVar7 == 0) goto LAB_0013348a;\n          }\n        }\n        else {\n          if (bVar13 == 0x7f) {\nLAB_00133dee:\n            pdVar20 = debug_make_int_type(dhandle,1,0);\n            break;\n          }\nLAB_00133a66:\n          uVar39 = (uint)bVar13;\n          if ((long)bVar13 < 0) goto LAB_00133b55;\n          if (bVar13 == 0xff) {\n            pdVar20 = debug_make_int_type(dhandle,1,1);\n            break;\n          }\n          if (bVar13 == 0xffff) {\n            pdVar20 = debug_make_int_type(dhandle,2,1);\n            break;\n          }\n          if (bVar13 != 0xffffffff) goto LAB_00131987;\n        }" if (parenthesized_expression "(bVar13 == 0xffffffffffffffff)" ( (binary_expression "bVar13 == 0xffffffffffffffff" identifier == number_literal) )) (compound_statement "{\nLAB_00133395:\n          if (type_name != (char *)0x0) {\n            iVar7 = strcmp(type_name,"long long int");\n            if (iVar7 == 0) goto LAB_0013373f;\n            iVar7 = strcmp(type_name,"long long unsigned int");\n            if (iVar7 == 0) goto LAB_0013348a;\n          }\n        }" { (labeled_statement "LAB_00133395:\n          if (type_name != (char *)0x0) {\n            iVar7 = strcmp(type_name,"long long int");\n            if (iVar7 == 0) goto LAB_0013373f;\n            iVar7 = strcmp(type_name,"long long unsigned int");\n            if (iVar7 == 0) goto LAB_0013348a;\n          }" statement_identifier : (if_statement "if (type_name != (char *)0x0) {\n            iVar7 = strcmp(type_name,"long long int");\n            if (iVar7 == 0) goto LAB_0013373f;\n            iVar7 = strcmp(type_name,"long long unsigned int");\n            if (iVar7 == 0) goto LAB_0013348a;\n          }" if (parenthesized_expression "(type_name != (char *)0x0)" ( (binary_expression "type_name != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            iVar7 = strcmp(type_name,"long long int");\n            if (iVar7 == 0) goto LAB_0013373f;\n            iVar7 = strcmp(type_name,"long long unsigned int");\n            if (iVar7 == 0) goto LAB_0013348a;\n          }" { (expression_statement "iVar7 = strcmp(type_name,"long long int");" (assignment_expression "iVar7 = strcmp(type_name,"long long int")" identifier = (call_expression "strcmp(type_name,"long long int")" identifier (argument_list "(type_name,"long long int")" ( identifier , (string_literal ""long long int"" " string_content ") )))) ;) (if_statement "if (iVar7 == 0) goto LAB_0013373f;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013373f;" goto statement_identifier ;)) (expression_statement "iVar7 = strcmp(type_name,"long long unsigned int");" (assignment_expression "iVar7 = strcmp(type_name,"long long unsigned int")" identifier = (call_expression "strcmp(type_name,"long long unsigned int")" identifier (argument_list "(type_name,"long long unsigned int")" ( identifier , (string_literal ""long long unsigned int"" " string_content ") )))) ;) (if_statement "if (iVar7 == 0) goto LAB_0013348a;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013348a;" goto statement_identifier ;)) }))) }) (else_clause "else {\n          if (bVar13 == 0x7f) {\nLAB_00133dee:\n            pdVar20 = debug_make_int_type(dhandle,1,0);\n            break;\n          }\nLAB_00133a66:\n          uVar39 = (uint)bVar13;\n          if ((long)bVar13 < 0) goto LAB_00133b55;\n          if (bVar13 == 0xff) {\n            pdVar20 = debug_make_int_type(dhandle,1,1);\n            break;\n          }\n          if (bVar13 == 0xffff) {\n            pdVar20 = debug_make_int_type(dhandle,2,1);\n            break;\n          }\n          if (bVar13 != 0xffffffff) goto LAB_00131987;\n        }" else (compound_statement "{\n          if (bVar13 == 0x7f) {\nLAB_00133dee:\n            pdVar20 = debug_make_int_type(dhandle,1,0);\n            break;\n          }\nLAB_00133a66:\n          uVar39 = (uint)bVar13;\n          if ((long)bVar13 < 0) goto LAB_00133b55;\n          if (bVar13 == 0xff) {\n            pdVar20 = debug_make_int_type(dhandle,1,1);\n            break;\n          }\n          if (bVar13 == 0xffff) {\n            pdVar20 = debug_make_int_type(dhandle,2,1);\n            break;\n          }\n          if (bVar13 != 0xffffffff) goto LAB_00131987;\n        }" { (if_statement "if (bVar13 == 0x7f) {\nLAB_00133dee:\n            pdVar20 = debug_make_int_type(dhandle,1,0);\n            break;\n          }" if (parenthesized_expression "(bVar13 == 0x7f)" ( (binary_expression "bVar13 == 0x7f" identifier == number_literal) )) (compound_statement "{\nLAB_00133dee:\n            pdVar20 = debug_make_int_type(dhandle,1,0);\n            break;\n          }" { (labeled_statement "LAB_00133dee:\n            pdVar20 = debug_make_int_type(dhandle,1,0);" statement_identifier : (expression_statement "pdVar20 = debug_make_int_type(dhandle,1,0);" (assignment_expression "pdVar20 = debug_make_int_type(dhandle,1,0)" identifier = (call_expression "debug_make_int_type(dhandle,1,0)" identifier (argument_list "(dhandle,1,0)" ( identifier , number_literal , number_literal )))) ;)) (break_statement "break;" break ;) })) (labeled_statement "LAB_00133a66:\n          uVar39 = (uint)bVar13;" statement_identifier : (expression_statement "uVar39 = (uint)bVar13;" (assignment_expression "uVar39 = (uint)bVar13" identifier = (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier)) ;)) (if_statement "if ((long)bVar13 < 0) goto LAB_00133b55;" if (parenthesized_expression "((long)bVar13 < 0)" ( (binary_expression "(long)bVar13 < 0" (cast_expression "(long)bVar13" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (goto_statement "goto LAB_00133b55;" goto statement_identifier ;)) (if_statement "if (bVar13 == 0xff) {\n            pdVar20 = debug_make_int_type(dhandle,1,1);\n            break;\n          }" if (parenthesized_expression "(bVar13 == 0xff)" ( (binary_expression "bVar13 == 0xff" identifier == number_literal) )) (compound_statement "{\n            pdVar20 = debug_make_int_type(dhandle,1,1);\n            break;\n          }" { (expression_statement "pdVar20 = debug_make_int_type(dhandle,1,1);" (assignment_expression "pdVar20 = debug_make_int_type(dhandle,1,1)" identifier = (call_expression "debug_make_int_type(dhandle,1,1)" identifier (argument_list "(dhandle,1,1)" ( identifier , number_literal , number_literal )))) ;) (break_statement "break;" break ;) })) (if_statement "if (bVar13 == 0xffff) {\n            pdVar20 = debug_make_int_type(dhandle,2,1);\n            break;\n          }" if (parenthesized_expression "(bVar13 == 0xffff)" ( (binary_expression "bVar13 == 0xffff" identifier == number_literal) )) (compound_statement "{\n            pdVar20 = debug_make_int_type(dhandle,2,1);\n            break;\n          }" { (expression_statement "pdVar20 = debug_make_int_type(dhandle,2,1);" (assignment_expression "pdVar20 = debug_make_int_type(dhandle,2,1)" identifier = (call_expression "debug_make_int_type(dhandle,2,1)" identifier (argument_list "(dhandle,2,1)" ( identifier , number_literal , number_literal )))) ;) (break_statement "break;" break ;) })) (if_statement "if (bVar13 != 0xffffffff) goto LAB_00131987;" if (parenthesized_expression "(bVar13 != 0xffffffff)" ( (binary_expression "bVar13 != 0xffffffff" identifier != number_literal) )) (goto_statement "goto LAB_00131987;" goto statement_identifier ;)) }))) (expression_statement "pdVar20 = debug_make_int_type(dhandle,4,1);" (assignment_expression "pdVar20 = debug_make_int_type(dhandle,4,1)" identifier = (call_expression "debug_make_int_type(dhandle,4,1)" identifier (argument_list "(dhandle,4,1)" ( identifier , number_literal , number_literal )))) ;) (break_statement "break;" break ;) })) (expression_statement "bVar41 = bVar13 != 0;" (assignment_expression "bVar41 = bVar13 != 0" identifier = (binary_expression "bVar13 != 0" identifier != number_literal)) ;) (expression_statement "uVar39 = (uint)bVar12;" (assignment_expression "uVar39 = (uint)bVar12" identifier = (cast_expression "(uint)bVar12" ( (type_descriptor "uint" type_identifier) ) identifier)) ;) (if_statement "if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)bVar12) && (!bVar41)) {\n          pdVar20 = debug_make_float_type(dhandle,uVar39);\n          break;\n        }\n        if ((bVar13 == 0xffffffffffffffff) && (bVar12 == 0)) goto LAB_00133395;\n        if (bVar12 == 0) goto LAB_00133a66;\n        if (((-1 < (long)bVar12) || (bVar41)) || ((bVar12 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)bVar12) {\n          pdVar20 = debug_make_complex_type(dhandle,uVar39);\n          break;\n        }\n        if (-1 < (long)bVar12) {\nLAB_001336f0:\n          if ((bVar12 == ~bVar13) || (bVar12 == bVar13 + 1)) {\n            if (bVar13 == 0x7f) goto LAB_00133dee;\n            if (bVar13 == 0x7fff) {\n              pdVar20 = debug_make_int_type(dhandle,2,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffff) {\n              pdVar20 = debug_make_int_type(dhandle,4,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }" if (parenthesized_expression "((!bVar43) || (bVar41))" ( (binary_expression "(!bVar43) || (bVar41)" (parenthesized_expression "(!bVar43)" ( (unary_expression "!bVar43" ! identifier) )) || (parenthesized_expression "(bVar41)" ( identifier ))) )) (compound_statement "{\n        if ((0 < (long)bVar12) && (!bVar41)) {\n          pdVar20 = debug_make_float_type(dhandle,uVar39);\n          break;\n        }\n        if ((bVar13 == 0xffffffffffffffff) && (bVar12 == 0)) goto LAB_00133395;\n        if (bVar12 == 0) goto LAB_00133a66;\n        if (((-1 < (long)bVar12) || (bVar41)) || ((bVar12 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }" { (if_statement "if ((0 < (long)bVar12) && (!bVar41)) {\n          pdVar20 = debug_make_float_type(dhandle,uVar39);\n          break;\n        }" if (parenthesized_expression "((0 < (long)bVar12) && (!bVar41))" ( (binary_expression "(0 < (long)bVar12) && (!bVar41)" (parenthesized_expression "(0 < (long)bVar12)" ( (binary_expression "0 < (long)bVar12" number_literal < (cast_expression "(long)bVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) && (parenthesized_expression "(!bVar41)" ( (unary_expression "!bVar41" ! identifier) ))) )) (compound_statement "{\n          pdVar20 = debug_make_float_type(dhandle,uVar39);\n          break;\n        }" { (expression_statement "pdVar20 = debug_make_float_type(dhandle,uVar39);" (assignment_expression "pdVar20 = debug_make_float_type(dhandle,uVar39)" identifier = (call_expression "debug_make_float_type(dhandle,uVar39)" identifier (argument_list "(dhandle,uVar39)" ( identifier , identifier )))) ;) (break_statement "break;" break ;) })) (if_statement "if ((bVar13 == 0xffffffffffffffff) && (bVar12 == 0)) goto LAB_00133395;" if (parenthesized_expression "((bVar13 == 0xffffffffffffffff) && (bVar12 == 0))" ( (binary_expression "(bVar13 == 0xffffffffffffffff) && (bVar12 == 0)" (parenthesized_expression "(bVar13 == 0xffffffffffffffff)" ( (binary_expression "bVar13 == 0xffffffffffffffff" identifier == number_literal) )) && (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00133395;" goto statement_identifier ;)) (if_statement "if (bVar12 == 0) goto LAB_00133a66;" if (parenthesized_expression "(bVar12 == 0)" ( (binary_expression "bVar12 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00133a66;" goto statement_identifier ;)) (if_statement "if (((-1 < (long)bVar12) || (bVar41)) || ((bVar12 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;" if (parenthesized_expression "(((-1 < (long)bVar12) || (bVar41)) || ((bVar12 != 0xfffffffffffffff8 && (!bVar43))))" ( (binary_expression "((-1 < (long)bVar12) || (bVar41)) || ((bVar12 != 0xfffffffffffffff8 && (!bVar43)))" (parenthesized_expression "((-1 < (long)bVar12) || (bVar41))" ( (binary_expression "(-1 < (long)bVar12) || (bVar41)" (parenthesized_expression "(-1 < (long)bVar12)" ( (binary_expression "-1 < (long)bVar12" number_literal < (cast_expression "(long)bVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) || (parenthesized_expression "(bVar41)" ( identifier ))) )) || (parenthesized_expression "((bVar12 != 0xfffffffffffffff8 && (!bVar43)))" ( (parenthesized_expression "(bVar12 != 0xfffffffffffffff8 && (!bVar43))" ( (binary_expression "bVar12 != 0xfffffffffffffff8 && (!bVar43)" (binary_expression "bVar12 != 0xfffffffffffffff8" identifier != number_literal) && (parenthesized_expression "(!bVar43)" ( (unary_expression "!bVar43" ! identifier) ))) )) ))) )) (goto_statement "goto LAB_001336f0;" goto statement_identifier ;)) }) (else_clause "else {\n        if (0 < (long)bVar12) {\n          pdVar20 = debug_make_complex_type(dhandle,uVar39);\n          break;\n        }\n        if (-1 < (long)bVar12) {\nLAB_001336f0:\n          if ((bVar12 == ~bVar13) || (bVar12 == bVar13 + 1)) {\n            if (bVar13 == 0x7f) goto LAB_00133dee;\n            if (bVar13 == 0x7fff) {\n              pdVar20 = debug_make_int_type(dhandle,2,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffff) {\n              pdVar20 = debug_make_int_type(dhandle,4,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }" else (compound_statement "{\n        if (0 < (long)bVar12) {\n          pdVar20 = debug_make_complex_type(dhandle,uVar39);\n          break;\n        }\n        if (-1 < (long)bVar12) {\nLAB_001336f0:\n          if ((bVar12 == ~bVar13) || (bVar12 == bVar13 + 1)) {\n            if (bVar13 == 0x7f) goto LAB_00133dee;\n            if (bVar13 == 0x7fff) {\n              pdVar20 = debug_make_int_type(dhandle,2,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffff) {\n              pdVar20 = debug_make_int_type(dhandle,4,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }" { (if_statement "if (0 < (long)bVar12) {\n          pdVar20 = debug_make_complex_type(dhandle,uVar39);\n          break;\n        }" if (parenthesized_expression "(0 < (long)bVar12)" ( (binary_expression "0 < (long)bVar12" number_literal < (cast_expression "(long)bVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n          pdVar20 = debug_make_complex_type(dhandle,uVar39);\n          break;\n        }" { (expression_statement "pdVar20 = debug_make_complex_type(dhandle,uVar39);" (assignment_expression "pdVar20 = debug_make_complex_type(dhandle,uVar39)" identifier = (call_expression "debug_make_complex_type(dhandle,uVar39)" identifier (argument_list "(dhandle,uVar39)" ( identifier , identifier )))) ;) (break_statement "break;" break ;) })) (if_statement "if (-1 < (long)bVar12) {\nLAB_001336f0:\n          if ((bVar12 == ~bVar13) || (bVar12 == bVar13 + 1)) {\n            if (bVar13 == 0x7f) goto LAB_00133dee;\n            if (bVar13 == 0x7fff) {\n              pdVar20 = debug_make_int_type(dhandle,2,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffff) {\n              pdVar20 = debug_make_int_type(dhandle,4,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }" if (parenthesized_expression "(-1 < (long)bVar12)" ( (binary_expression "-1 < (long)bVar12" number_literal < (cast_expression "(long)bVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\nLAB_001336f0:\n          if ((bVar12 == ~bVar13) || (bVar12 == bVar13 + 1)) {\n            if (bVar13 == 0x7f) goto LAB_00133dee;\n            if (bVar13 == 0x7fff) {\n              pdVar20 = debug_make_int_type(dhandle,2,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffff) {\n              pdVar20 = debug_make_int_type(dhandle,4,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }" { (labeled_statement "LAB_001336f0:\n          if ((bVar12 == ~bVar13) || (bVar12 == bVar13 + 1)) {\n            if (bVar13 == 0x7f) goto LAB_00133dee;\n            if (bVar13 == 0x7fff) {\n              pdVar20 = debug_make_int_type(dhandle,2,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffff) {\n              pdVar20 = debug_make_int_type(dhandle,4,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }" statement_identifier : (if_statement "if ((bVar12 == ~bVar13) || (bVar12 == bVar13 + 1)) {\n            if (bVar13 == 0x7f) goto LAB_00133dee;\n            if (bVar13 == 0x7fff) {\n              pdVar20 = debug_make_int_type(dhandle,2,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffff) {\n              pdVar20 = debug_make_int_type(dhandle,4,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }" if (parenthesized_expression "((bVar12 == ~bVar13) || (bVar12 == bVar13 + 1))" ( (binary_expression "(bVar12 == ~bVar13) || (bVar12 == bVar13 + 1)" (parenthesized_expression "(bVar12 == ~bVar13)" ( (binary_expression "bVar12 == ~bVar13" identifier == (unary_expression "~bVar13" ~ identifier)) )) || (parenthesized_expression "(bVar12 == bVar13 + 1)" ( (binary_expression "bVar12 == bVar13 + 1" identifier == (binary_expression "bVar13 + 1" identifier + number_literal)) ))) )) (compound_statement "{\n            if (bVar13 == 0x7f) goto LAB_00133dee;\n            if (bVar13 == 0x7fff) {\n              pdVar20 = debug_make_int_type(dhandle,2,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffff) {\n              pdVar20 = debug_make_int_type(dhandle,4,0);\n              break;\n            }\n            if (bVar13 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }" { (if_statement "if (bVar13 == 0x7f) goto LAB_00133dee;" if (parenthesized_expression "(bVar13 == 0x7f)" ( (binary_expression "bVar13 == 0x7f" identifier == number_literal) )) (goto_statement "goto LAB_00133dee;" goto statement_identifier ;)) (if_statement "if (bVar13 == 0x7fff) {\n              pdVar20 = debug_make_int_type(dhandle,2,0);\n              break;\n            }" if (parenthesized_expression "(bVar13 == 0x7fff)" ( (binary_expression "bVar13 == 0x7fff" identifier == number_literal) )) (compound_statement "{\n              pdVar20 = debug_make_int_type(dhandle,2,0);\n              break;\n            }" { (expression_statement "pdVar20 = debug_make_int_type(dhandle,2,0);" (assignment_expression "pdVar20 = debug_make_int_type(dhandle,2,0)" identifier = (call_expression "debug_make_int_type(dhandle,2,0)" identifier (argument_list "(dhandle,2,0)" ( identifier , number_literal , number_literal )))) ;) (break_statement "break;" break ;) })) (if_statement "if (bVar13 == 0x7fffffff) {\n              pdVar20 = debug_make_int_type(dhandle,4,0);\n              break;\n            }" if (parenthesized_expression "(bVar13 == 0x7fffffff)" ( (binary_expression "bVar13 == 0x7fffffff" identifier == number_literal) )) (compound_statement "{\n              pdVar20 = debug_make_int_type(dhandle,4,0);\n              break;\n            }" { (expression_statement "pdVar20 = debug_make_int_type(dhandle,4,0);" (assignment_expression "pdVar20 = debug_make_int_type(dhandle,4,0)" identifier = (call_expression "debug_make_int_type(dhandle,4,0)" identifier (argument_list "(dhandle,4,0)" ( identifier , number_literal , number_literal )))) ;) (break_statement "break;" break ;) })) (if_statement "if (bVar13 == 0x7fffffffffffffff) goto LAB_0013373f;" if (parenthesized_expression "(bVar13 == 0x7fffffffffffffff)" ( (binary_expression "bVar13 == 0x7fffffffffffffff" identifier == number_literal) )) (goto_statement "goto LAB_0013373f;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_00131987;" goto statement_identifier ;) })) }))) (labeled_statement "LAB_00133b55:\n      pdVar20 = debug_make_int_type(dhandle,-uVar39,1);" statement_identifier : (expression_statement "pdVar20 = debug_make_int_type(dhandle,-uVar39,1);" (assignment_expression "pdVar20 = debug_make_int_type(dhandle,-uVar39,1)" identifier = (call_expression "debug_make_int_type(dhandle,-uVar39,1)" identifier (argument_list "(dhandle,-uVar39,1)" ( identifier , (unary_expression "-uVar39" - identifier) , number_literal )))) ;)) }) (else_clause "else {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        bad_stab((char *)pbVar40);\n        return (debug_type)0x0;\n      }\n      pdVar20 = stab_find_type(dhandle,info,xtypenums);\n      if (pdVar20 == (debug_type)0x0) {\n        pcVar17 = (char *)dcgettext(0,"missing index type",5);\n        warn_stab((char *)pbVar40,pcVar17);\n        pdVar20 = debug_make_int_type(dhandle,4,0);\n      }\n      pdVar20 = debug_make_range_type(dhandle,pdVar20,bVar12,bVar13);\n    }" else (compound_statement "{\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        bad_stab((char *)pbVar40);\n        return (debug_type)0x0;\n      }\n      pdVar20 = stab_find_type(dhandle,info,xtypenums);\n      if (pdVar20 == (debug_type)0x0) {\n        pcVar17 = (char *)dcgettext(0,"missing index type",5);\n        warn_stab((char *)pbVar40,pcVar17);\n        pdVar20 = debug_make_int_type(dhandle,4,0);\n      }\n      pdVar20 = debug_make_range_type(dhandle,pdVar20,bVar12,bVar13);\n    }" { (labeled_statement "LAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        bad_stab((char *)pbVar40);\n        return (debug_type)0x0;\n      }" statement_identifier : (if_statement "if (bVar43) {\nLAB_00132126:\n        bad_stab((char *)pbVar40);\n        return (debug_type)0x0;\n      }" if (parenthesized_expression "(bVar43)" ( identifier )) (compound_statement "{\nLAB_00132126:\n        bad_stab((char *)pbVar40);\n        return (debug_type)0x0;\n      }" { (labeled_statement "LAB_00132126:\n        bad_stab((char *)pbVar40);" statement_identifier : (expression_statement "bad_stab((char *)pbVar40);" (call_expression "bad_stab((char *)pbVar40)" identifier (argument_list "((char *)pbVar40)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) }))) (expression_statement "pdVar20 = stab_find_type(dhandle,info,xtypenums);" (assignment_expression "pdVar20 = stab_find_type(dhandle,info,xtypenums)" identifier = (call_expression "stab_find_type(dhandle,info,xtypenums)" identifier (argument_list "(dhandle,info,xtypenums)" ( identifier , identifier , identifier )))) ;) (if_statement "if (pdVar20 == (debug_type)0x0) {\n        pcVar17 = (char *)dcgettext(0,"missing index type",5);\n        warn_stab((char *)pbVar40,pcVar17);\n        pdVar20 = debug_make_int_type(dhandle,4,0);\n      }" if (parenthesized_expression "(pdVar20 == (debug_type)0x0)" ( (binary_expression "pdVar20 == (debug_type)0x0" identifier == (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (compound_statement "{\n        pcVar17 = (char *)dcgettext(0,"missing index type",5);\n        warn_stab((char *)pbVar40,pcVar17);\n        pdVar20 = debug_make_int_type(dhandle,4,0);\n      }" { (expression_statement "pcVar17 = (char *)dcgettext(0,"missing index type",5);" (assignment_expression "pcVar17 = (char *)dcgettext(0,"missing index type",5)" identifier = (cast_expression "(char *)dcgettext(0,"missing index type",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"missing index type",5)" identifier (argument_list "(0,"missing index type",5)" ( number_literal , (string_literal ""missing index type"" " string_content ") , number_literal ))))) ;) (expression_statement "warn_stab((char *)pbVar40,pcVar17);" (call_expression "warn_stab((char *)pbVar40,pcVar17)" identifier (argument_list "((char *)pbVar40,pcVar17)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "pdVar20 = debug_make_int_type(dhandle,4,0);" (assignment_expression "pdVar20 = debug_make_int_type(dhandle,4,0)" identifier = (call_expression "debug_make_int_type(dhandle,4,0)" identifier (argument_list "(dhandle,4,0)" ( identifier , number_literal , number_literal )))) ;) })) (expression_statement "pdVar20 = debug_make_range_type(dhandle,pdVar20,bVar12,bVar13);" (assignment_expression "pdVar20 = debug_make_range_type(dhandle,pdVar20,bVar12,bVar13)" identifier = (call_expression "debug_make_range_type(dhandle,pdVar20,bVar12,bVar13)" identifier (argument_list "(dhandle,pdVar20,bVar12,bVar13)" ( identifier , identifier , identifier , identifier )))) ;) })))) (break_statement "break;" break ;)) (case_statement "case 0x73:" case number_literal :) (case_statement "case 0x75:\n    bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n    pbVar40 = (byte *)*pp;\n    if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }\n    local_f8 = (debug_baseclass *)0x0;\n    if (*pbVar40 == 0x21) {\n      *pp = (char *)(pbVar40 + 1);\n      bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n      if (**pp != ',') goto LAB_00132126;\n      iVar7 = (int)bVar13;\n      uVar10 = bVar13 & 0xffffffff;\n      *pp = *pp + 1;\n      local_f8 = (debug_baseclass *)xmalloc((ulong)(iVar7 + 1) << 3);\n      if (iVar7 != 0) {\n        uVar38 = 0;\n        cVar3 = **pp;\n        if (cVar3 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar28 = uVar38;\n        if (cVar3 == '1') {\n          bVar4 = 1;\n        }\n        else {\n          if (cVar3 == '\0') goto LAB_00132126;\n          bVar4 = 0;\n          pcVar17 = (char *)dcgettext(0,"unknown virtual character for baseclass",5);\n          warn_stab((char *)pbVar40,pcVar17);\n        }\n        do {\n          pcVar17 = *pp;\n          *pp = pcVar17 + 1;\n          cVar3 = pcVar17[1];\n          if (cVar3 == '0') {\n            dVar36 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto LAB_00132126;\n            }\n            else {\n              dVar36 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (dVar36 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00132a81;\n            }\n            dVar36 = DEBUG_VISIBILITY_PUBLIC;\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for baseclass",5);\n            warn_stab((char *)pbVar40,pcVar17);\n          }\nLAB_00132a81:\n          *pp = *pp + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132126;\n          *pp = *pp + 1;\n          pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n          if (pdVar18 == (debug_type)0x0) {\n            return (debug_type)0x0;\n          }\n          pdVar24 = debug_make_baseclass(dhandle,pdVar18,bVar13,bVar4,dVar36);\n          local_f8[uVar28] = pdVar24;\n          if (pdVar24 == (debug_baseclass)0x0) {\n            return (debug_type)0x0;\n          }\n          if (**pp != ';') {\n            return (debug_type)0x0;\n          }\n          pcVar17 = *pp + 1;\n          uVar10 = (ulong)((int)uVar28 + 1);\n          uVar38 = uVar28 + 1;\n          *pp = pcVar17;\n          if (uVar28 == iVar7 - 1) break;\n          cVar3 = *pcVar17;\n          if (cVar3 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          bVar4 = 0;\n          uVar28 = uVar38;\n        } while( true );\n      }\n      pbVar40 = (byte *)*pp;\n      local_f8[uVar10] = (debug_baseclass)0x0;\n      if (p_end <= pbVar40) {\n        return (debug_type)0x0;\n      }\n    }\n    uVar10 = 0;\n    local_130 = (debug_field *)xmalloc(0x50);\n    pbVar31 = (byte *)*pp;\n    bVar43 = false;\n    bVar2 = *pbVar31;\n    local_138._0_4_ = 10;\n    while (bVar2 != 0x3b) {\n      uVar39 = (int)uVar10 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (debug_field *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar2 = *pbVar31;\n      }\n      if (((bVar2 == 0x24) || (bVar2 == 0x2e)) && (pbVar31[1] != 0x5f)) {\n        pcVar17 = *pp;\n        pbVar31 = (byte *)(pcVar17 + 1);\n        *pp = (char *)pbVar31;\n        local_130[uVar10] = (debug_field)0x0;\n        if (p_end <= pbVar31) goto LAB_00131328;\n        if (pcVar17[1] != 'v') goto LAB_00132740;\n        *pp = pcVar17 + 2;\n        cVar3 = pcVar17[2];\n        if (cVar3 == '\0') goto LAB_00132740;\n        *pp = pcVar17 + 3;\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (pdVar18 == (debug_type)0x0) goto LAB_00131328;\n        if (cVar3 == 'b') {\n          pcVar17 = debug_get_type_name(dhandle,pdVar18);\n          if (pcVar17 == (char *)0x0) {\n            pcVar17 = (char *)dcgettext(0,"unnamed $vb type",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar17 = "FOO";\n          }\n          pcVar17 = (char *)concat(&DAT_00146a0b,pcVar17,0);\n        }\n        else {\n          pcVar17 = "_vptr$";\n          if (cVar3 != 'f') {\n            pcVar16 = (char *)dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar17 = "INVALID_CPLUSPLUS_ABBREV";\n            warn_stab((char *)pbVar31,pcVar16);\n          }\n        }\n        if (**pp != ':') goto LAB_00132740;\n        *pp = *pp + 1;\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (**pp != ',') goto LAB_00132740;\n        *pp = *pp + 1;\n        bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        if (**pp != ';') goto LAB_00132740;\n        *pp = *pp + 1;\n        pdVar15 = debug_make_field(dhandle,pcVar17,pdVar18,bVar13,0,DEBUG_VISIBILITY_PRIVATE);\n        local_130[uVar10] = pdVar15;\n        if (pdVar15 == (debug_field)0x0) goto LAB_00131328;\n      }\n      else {\n        pcVar17 = strchr((char *)pbVar31,0x3a);\n        if (pcVar17 == (char *)0x0) {\n          bad_stab((char *)pbVar40);\n          free(local_130);\n          return (debug_type)0x0;\n        }\n        pbVar31 = (byte *)*pp;\n        if (pcVar17[1] == ':') break;\n        if (p_end <= pbVar31) {\n          return (debug_type)0x0;\n        }\n        pcVar16 = savestring((char *)pbVar31,(int)pcVar17 - (int)pbVar31);\n        *pp = pcVar17 + 1;\n        if (pcVar17[1] == '/') {\n          pcVar25 = pcVar17 + 2;\n          *pp = pcVar25;\n          cVar3 = pcVar17[2];\n          if (cVar3 == '0') {\n            local_120 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (local_120 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00131b6d;\n            }\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for field",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar25 = *pp;\n            local_120 = DEBUG_VISIBILITY_PUBLIC;\n          }\nLAB_00131b6d:\n          *pp = pcVar25 + 1;\n        }\n        else {\n          local_120 = DEBUG_VISIBILITY_PUBLIC;\n        }\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (pdVar18 == (debug_type)0x0) {\n          free(pcVar16);\n          return (debug_type)0x0;\n        }\n        pcVar17 = *pp;\n        if (*pcVar17 == ':') {\n          pcVar17 = pcVar17 + 1;\n          *pp = pcVar17;\n          pcVar25 = strchr(pcVar17,0x3b);\n          if (pcVar25 == (char *)0x0) goto LAB_00132614;\n          pcVar17 = savestring(pcVar17,(int)pcVar25 - (int)pcVar17);\n          *pp = pcVar25 + 1;\n          pdVar15 = debug_make_static_member(dhandle,pcVar16,pdVar18,pcVar17,local_120);\n          bVar43 = true;\n          local_130[uVar10] = pdVar15;\n        }\n        else {\n          if (*pcVar17 != ',') {\nLAB_00132614:\n            bad_stab((char *)pbVar31);\n            free(pcVar16);\n            return (debug_type)0x0;\n          }\n          *pp = pcVar17 + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132614;\n          *pp = *pp + 1;\n          bVar14 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ';') goto LAB_00132614;\n          *pp = *pp + 1;\n          dVar36 = DEBUG_VISIBILITY_IGNORE;\n          if (bVar13 != 0 || bVar14 != 0) {\n            dVar36 = local_120;\n          }\n          pdVar15 = debug_make_field(dhandle,pcVar16,pdVar18,bVar13,bVar14,dVar36);\n          local_130[uVar10] = pdVar15;\n        }\n      }\n      pbVar31 = (byte *)*pp;\n      uVar10 = (ulong)uVar39;\n      bVar2 = *pbVar31;\n    }\n    local_130[uVar10] = (debug_field)0x0;\n    if (p_end <= pbVar31) goto LAB_00131328;\n    bVar2 = *pbVar31;\n    if (bVar2 == 0x3b) {\n      local_108 = (debug_method *)0x0;\nLAB_001334bc:\n      pbVar26 = pbVar31 + 1;\n      *pp = (char *)pbVar26;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (debug_method_variant *)0x0;\n      local_108 = (debug_method *)0x0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar26 = pbVar31;\n      do {\n        pcVar17 = strchr((char *)pbVar26,0x3a);\n        if ((pcVar17 == (char *)0x0) || (pcVar17[1] != ':')) break;\n        pcVar16 = pcVar17 + 2;\n        if ((bVar2 == 0x6f) && ((pbVar26[1] == 0x70 && (pbVar26[2] == 0x24)))) {\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          pcVar17 = pcVar16;\n          while ((cVar3 != '.' && (cVar3 != '\0'))) {\n            pcVar17 = pcVar17 + 1;\n            cVar3 = *pcVar17;\n          }\n          if (cVar3 != '.') {\n            bad_stab((char *)pbVar31);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (debug_method_variant *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = savestring(pcVar16,(int)pcVar17 - (int)pcVar16);\n          *pp = pcVar17 + 1;\n        }\n        else {\n          local_138 = savestring((char *)pbVar26,(int)pcVar17 - (int)pbVar26);\n          *pp = pcVar16;\n        }\n        local_128 = (debug_method_variant *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        pdVar18 = (debug_type)0x0;\n        do {\n          if (pdVar18 == (debug_type)0x0) {\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 != (debug_type)0x0) {\n              pcVar17 = *pp;\n              if (*pcVar17 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar17 = *pp;\nLAB_00131d3f:\n          *pp = pcVar17 + 1;\n          pcVar17 = strchr(pcVar17 + 1,0x3b);\n          if (pcVar17 == (char *)0x0) {\nLAB_00132781:\n            bad_stab((char *)pbVar31);\n            goto LAB_00132793;\n          }\n          dVar6 = debug_get_type_kind(dhandle,pdVar18);\n          bVar41 = false;\n          if (dVar6 == DEBUG_KIND_METHOD) {\n            ppdVar9 = debug_get_parameter_types(dhandle,pdVar18,&varargs);\n            bVar41 = ppdVar9 == (debug_type_conflict *)0x0;\n          }\n          pbVar40 = (byte *)savestring(*pp,(int)pcVar17 - (int)*pp);\n          *pp = pcVar17 + 1;\n          cVar3 = pcVar17[1];\n          if (cVar3 == '0') {\n            local_e4 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else if (cVar3 == '1') {\n            local_e4 = DEBUG_VISIBILITY_PROTECTED;\n          }\n          else {\n            if (cVar3 == '\0') goto LAB_00132781;\n            local_e4 = DEBUG_VISIBILITY_PUBLIC;\n          }\n          pcVar16 = pcVar17 + 2;\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          switch(cVar3) {\n          case '*':\n          case '.':\n          case '?':\n            local_118 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            pcVar17 = (char *)dcgettext(0,"const/volatile indicator missing",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar16 = *pp;\n            local_118 = 0;\n            local_f0 = 0;\n            cVar3 = *pcVar16;\n            break;\n          case 'A':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            local_f0 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n          }\n          pbVar26 = pbVar40;\n          if (cVar3 == '.') {\n            bVar44 = false;\n            pdVar19 = (debug_type)0x0;\n            *pp = pcVar16 + 1;\n            local_100 = (debug_type)0x0;\n            local_e0 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar3 != '?') {\n              if (cVar3 == '*') {\n                *pp = pcVar16 + 1;\n                bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n                pcVar17 = *pp;\n                if (*pcVar17 != ';') goto LAB_00132781;\n                local_e0 = (ulong)((uint)bVar13 & 0x7fffffff);\n                *pp = pcVar17 + 1;\n                if ((pcVar17[1] == ';') || (pcVar17[1] == '\0')) {\n                  local_100 = (debug_type)0x0;\n                  pdVar19 = (debug_type)0x0;\n                  bVar44 = false;\n                }\n                else {\n                  pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end);\n                  cVar3 = **pp;\n                  if (cVar3 == ':') {\n                    local_100 = (debug_type)0x0;\n                    bVar44 = false;\n                    pdVar19 = pdVar23;\n                  }\n                  else {\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }\n                }\n              }\n              else {\n                warn_stab((char *)pbVar31,"member function type missing");\n                bVar44 = false;\n                local_100 = (debug_type)0x0;\n                local_e0 = 0;\n                pdVar19 = (debug_type)0x0;\n              }\n              goto LAB_001322ba;\n            }\n            *pp = pcVar16 + 1;\n            sVar32 = strlen(local_138);\n            iVar7 = strncmp((char *)pbVar40,local_138,sVar32);\n            if (iVar7 == 0) {\n              local_100 = (debug_type)0x0;\n              pdVar19 = (debug_type)0x0;\n              local_e0 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = (debug_type)0x0;\n            pdVar19 = (debug_type)0x0;\n            local_e0 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            pdVar23 = stab_find_type(dhandle,info,typenums);\n            if (pdVar23 == (debug_type)0x0) goto LAB_00132793;\n            pdVar20 = debug_get_return_type(dhandle,pdVar18);\n            if (pdVar20 == (debug_type_conflict)0x0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar7 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar7 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (type_name != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar2 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) && (bVar2 != 0x51 && bVar2 != 0x74))\n                 && (iVar7 = strncmp((char *)pbVar40,"__ct",4), iVar7 != 0)) {\n                if (type_name != (char *)0x0) {\nLAB_001338f6:\n                  iVar7 = strcmp(local_138,type_name);\n                  bVar45 = iVar7 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar40;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\nLAB_0013360b:\n              pcVar16 = p;\n              local_40 = 0;\n              pcVar17 = p;\n              do {\n                pcVar25 = strchr(pcVar17,0x5f);\n                if (pcVar25 == (char *)0x0) goto LAB_00133635;\n                pcVar17 = pcVar25 + 1;\n              } while (pcVar25[1] != '_');\n              if (pcVar17 != (char *)0x0) {\n                sVar32 = strspn(pcVar25,"_");\n                if (2 < (uint)sVar32) {\n                  pcVar25 = pcVar25 + ((uint)sVar32 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              stab_bad_demangle(pcVar16);\nLAB_0013323f:\n              if (local_48 != (stab_demangle_typestring *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a76;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar41 = *pbVar34 < *pbVar35;\n              bVar45 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (type_name == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar7 = strcmp(local_138,type_name);\n              bVar45 = iVar7 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a4b;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar42 = *pbVar34 < *pbVar35;\n              bVar46 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              arg_types = (stab_demangle_typestring *)xmalloc(8);\n              arg_types->typestring = (char *)0x0;\n              bVar4 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (type_name != (char *)0x0) {\n                sVar32 = strlen(type_name);\n                local_d8 = sVar32 & 0xffffffff;\n              }\n              pcVar16 = "C";\n              pcVar17 = "V";\n              if (local_f0 == 0) {\n                pcVar16 = "";\n              }\n              if (local_118 == 0) {\n                pcVar17 = "";\n              }\n              local_c0 = type_name;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)xtypenums,"__%s%s");\n              }\n              else if ((type_name == (char *)0x0) ||\n                      (pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0)) {\n                sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8);\n              }\n              else {\n                sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)xtypenums;\n              do {\n                puVar29 = puVar30;\n                uVar8 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar39 = uVar8 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar39 == 0);\n              bVar41 = (uVar8 & 0x8080) == 0;\n              if (bVar41) {\n                uVar39 = uVar39 >> 0x10;\n              }\n              cVar3 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar7 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar39,(byte)uVar39)) -\n                      (int)xtypenums;\n              sVar32 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar7 = iVar7 + (int)local_d8 + 1 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar26 = (byte *)xmalloc(iVar7);\n                *pbVar26 = 0;\n              }\n              else {\n                lVar11 = -1;\n                pcVar17 = local_138;\n                do {\n                  if (lVar11 == 0) break;\n                  lVar11 = lVar11 + -1;\n                  cVar1 = *pcVar17;\n                  pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar7 = ((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar17 == (char *)0x0) {\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar11 = -1;\n                  pcVar16 = pcVar17;\n                  do {\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar3 != '\0');\n                  pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);\n                  strncpy((char *)pbVar26,local_138,3);\n                  strcpy((char *)(pbVar26 + 3),pcVar17);\n                }\n                else {\n                  pbVar26 = (byte *)xmalloc(iVar7);\n                  strcpy((char *)pbVar26,local_138);\n                }\n              }\n              sVar32 = strlen((char *)pbVar26);\n              local_d8 = sVar32 & 0xffffffff;\n              pcVar17 = stpcpy((char *)(pbVar26 + sVar32),(char *)xtypenums);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar17,local_c0);\n              }\n              strcat((char *)pbVar26,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar26 == 0x5f) && (pbVar26[1] == 0x5a)) {\nLAB_00133b71:\n                p = (char *)pbVar26;\n                pdVar27 = cplus_demangle_v3_components((char *)pbVar26,3,(void **)xtypenums);\n                if (pdVar27 == (demangle_component *)0x0) {\n                  stab_bad_demangle((char *)pbVar26);\n                }\n                else {\n                  if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }\n                  pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar17);\n                  free((void *)xtypenums);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar26;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pcVar25 = p + local_d8;\n              pcVar16 = p;\nLAB_001330d0:\n              bVar2 = pcVar25[2];\n              if (pcVar16 == pcVar25) {\n                if (((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) &&\n                   (pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74)) {\n                  for (; *pcVar17 == '_'; pcVar17 = pcVar17 + 1) {\n                  }\n                  pcVar17 = strstr(pcVar17,"__");\n                  if ((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')) {\n                    stab_bad_demangle(pcVar25);\n                    goto LAB_0013323f;\n                  }\n                  iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17);\n                  goto LAB_001330fd;\n                }\n                p = pcVar25 + 2;\n              }\n              else {\n                if (bVar2 == 0) goto LAB_00133635;\n                iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25);\nLAB_001330fd:\n                if (iVar7 == 0) goto LAB_0013323f;\n              }\n              pcVar17 = p;\n              cVar3 = *p;\n              if (cVar3 != '\0') {\n                pcVar16 = (char *)0x0;\n                bVar41 = false;\n                pstart = (char **)0x0;\n                do {\n                  pcVar25 = p;\n                  switch(cVar3) {\n                  case '0':\n                  case '1':\n                  case '2':\n                  case '3':\n                  case '4':\n                  case '5':\n                  case '6':\n                  case '7':\n                  case '8':\n                  case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;\n                  default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'C':\n                  case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;\n                  case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;\n                  case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar41) {\nLAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    pstart = (char **)0x1;\n                  }\n                  cVar3 = *p;\n                } while (cVar3 != '\0');\n                if (((int)pstart == 0) &&\n                   (bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (stab_demangle_typestring *)0x0;\n              if (local_58 == (stab_demangle_typestring *)0x0) {\n                pcVar17 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar17);\n              }\n              varargs_1 = local_50[0];\n              arg_types = local_58;\nLAB_00133211:\n              bVar4 = varargs_1;\n              if (arg_types == (stab_demangle_typestring *)0x0) goto LAB_00132793;\n            }\n            pdVar18 = debug_make_method_type\n                                (dhandle,pdVar20,pdVar23,(debug_type_conflict *)arg_types,bVar4);\n            if (pdVar18 == (debug_type_conflict)0x0) goto LAB_00132793;\n          }\n          uVar39 = local_ec + 1;\n          if (local_e8 <= uVar39) {\n            local_e8 = local_e8 + 10;\n            local_128 = (debug_method_variant *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          if (bVar44) {\n            pdVar21 = debug_make_static_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118);\n            local_128[local_ec] = pdVar21;\n          }\n          else {\n            pdVar21 = debug_make_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118,\n                                 local_e0,local_100);\n            local_128[local_ec] = pdVar21;\n          }\n          if (pdVar21 == (debug_method_variant)0x0) goto LAB_00132793;\n          pcVar17 = *pp;\n        } while ((*pcVar17 != ';') && (pdVar18 = pdVar19, local_ec = uVar39, *pcVar17 != '\0'));\n        local_128[uVar39] = (debug_method_variant)0x0;\n        if (*pcVar17 != '\0') {\n          *pp = pcVar17 + 1;\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = (debug_method *)xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        pdVar22 = debug_make_method(dhandle,local_138,local_128);\n        local_108[local_c8] = pdVar22;\n        pbVar26 = (byte *)*pp;\n        bVar2 = *pbVar26;\n        local_c8 = uVar39;\n      } while (bVar2 != 0x3b);\n      if (local_108 != (debug_method *)0x0) {\n        local_108[local_c8] = (debug_method)0x0;\n      }\n      if (p_end <= pbVar26) goto LAB_00131328;\n      pbVar31 = pbVar26;\n      if (*pbVar26 == 0x3b) goto LAB_001334bc;\n    }\n    if (*pbVar26 == 0x7e) {\n      pbVar40 = pbVar26 + 1;\n      *pp = (char *)pbVar40;\n      if (((pbVar26[1] & 0xef) == 0x2d) || (pbVar26[1] == 0x2b)) {\n        pbVar40 = pbVar26 + 2;\n        *pp = (char *)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *pp = (char *)(pbVar40 + 1);\n      bVar4 = parse_stab_type_number(pp,xtypenums,p_end);\n      if (bVar4 == 0) goto LAB_00131328;\n      if (xtypenums[0] != typenums[0]) {\nLAB_00132596:\n        *pp = (char *)(pbVar40 + 1);\n        pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        pcVar17 = *pp;\n        cVar3 = *pcVar17;\n        while ((cVar3 != ';' && (cVar3 != '\0'))) {\n          pcVar17 = pcVar17 + 1;\n          cVar3 = *pcVar17;\n        }\n        if (cVar3 != ';') {\nLAB_00132740:\n          bad_stab((char *)pbVar31);\nLAB_00131328:\n          free(local_130);\n          return (debug_type)0x0;\n        }\n        *pp = pcVar17 + 1;\n        goto LAB_0013244c;\n      }\n      if (xtypenums[1] != typenums[1]) goto LAB_00132596;\n      bVar4 = 1;\n      pdVar20 = (debug_type_conflict)0x0;\n    }\n    else {\nLAB_0013244a:\n      pdVar20 = (debug_type_conflict)0x0;\nLAB_0013244c:\n      if (((local_108 == (debug_method *)0x0 && local_f8 == (debug_baseclass *)0x0) &&\n           pdVar20 == (debug_type_conflict)0x0) && (!bVar43)) {\n        pdVar20 = debug_make_struct_type(dhandle,(uint)(bVar37 == 0x73),bVar12,local_130);\n        break;\n      }\n      bVar4 = 0;\n    }\n    pdVar20 = debug_make_object_type\n                        (dhandle,(uint)(bVar37 == 0x73),bVar12,local_130,local_f8,local_108,pdVar20,\n                         bVar4);\n    break;" case number_literal : (expression_statement "bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end);" (assignment_expression "bVar12 = parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier = (call_expression "parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier (argument_list "(pp,(bfd_boolean *)0x0,p_end)" ( identifier , (cast_expression "(bfd_boolean *)0x0" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (expression_statement "pbVar40 = (byte *)*pp;" (assignment_expression "pbVar40 = (byte *)*pp" identifier = (cast_expression "(byte *)*pp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp" * identifier))) ;) (if_statement "if (p_end <= pbVar40) {\n      return (debug_type)0x0;\n    }" if (parenthesized_expression "(p_end <= pbVar40)" ( (binary_expression "p_end <= pbVar40" identifier <= identifier) )) (compound_statement "{\n      return (debug_type)0x0;\n    }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "local_f8 = (debug_baseclass *)0x0;" (assignment_expression "local_f8 = (debug_baseclass *)0x0" identifier = (cast_expression "(debug_baseclass *)0x0" ( (type_descriptor "debug_baseclass *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (*pbVar40 == 0x21) {\n      *pp = (char *)(pbVar40 + 1);\n      bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n      if (**pp != ',') goto LAB_00132126;\n      iVar7 = (int)bVar13;\n      uVar10 = bVar13 & 0xffffffff;\n      *pp = *pp + 1;\n      local_f8 = (debug_baseclass *)xmalloc((ulong)(iVar7 + 1) << 3);\n      if (iVar7 != 0) {\n        uVar38 = 0;\n        cVar3 = **pp;\n        if (cVar3 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar28 = uVar38;\n        if (cVar3 == '1') {\n          bVar4 = 1;\n        }\n        else {\n          if (cVar3 == '\0') goto LAB_00132126;\n          bVar4 = 0;\n          pcVar17 = (char *)dcgettext(0,"unknown virtual character for baseclass",5);\n          warn_stab((char *)pbVar40,pcVar17);\n        }\n        do {\n          pcVar17 = *pp;\n          *pp = pcVar17 + 1;\n          cVar3 = pcVar17[1];\n          if (cVar3 == '0') {\n            dVar36 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto LAB_00132126;\n            }\n            else {\n              dVar36 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (dVar36 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00132a81;\n            }\n            dVar36 = DEBUG_VISIBILITY_PUBLIC;\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for baseclass",5);\n            warn_stab((char *)pbVar40,pcVar17);\n          }\nLAB_00132a81:\n          *pp = *pp + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132126;\n          *pp = *pp + 1;\n          pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n          if (pdVar18 == (debug_type)0x0) {\n            return (debug_type)0x0;\n          }\n          pdVar24 = debug_make_baseclass(dhandle,pdVar18,bVar13,bVar4,dVar36);\n          local_f8[uVar28] = pdVar24;\n          if (pdVar24 == (debug_baseclass)0x0) {\n            return (debug_type)0x0;\n          }\n          if (**pp != ';') {\n            return (debug_type)0x0;\n          }\n          pcVar17 = *pp + 1;\n          uVar10 = (ulong)((int)uVar28 + 1);\n          uVar38 = uVar28 + 1;\n          *pp = pcVar17;\n          if (uVar28 == iVar7 - 1) break;\n          cVar3 = *pcVar17;\n          if (cVar3 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          bVar4 = 0;\n          uVar28 = uVar38;\n        } while( true );\n      }\n      pbVar40 = (byte *)*pp;\n      local_f8[uVar10] = (debug_baseclass)0x0;\n      if (p_end <= pbVar40) {\n        return (debug_type)0x0;\n      }\n    }" if (parenthesized_expression "(*pbVar40 == 0x21)" ( (binary_expression "*pbVar40 == 0x21" (pointer_expression "*pbVar40" * identifier) == number_literal) )) (compound_statement "{\n      *pp = (char *)(pbVar40 + 1);\n      bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n      if (**pp != ',') goto LAB_00132126;\n      iVar7 = (int)bVar13;\n      uVar10 = bVar13 & 0xffffffff;\n      *pp = *pp + 1;\n      local_f8 = (debug_baseclass *)xmalloc((ulong)(iVar7 + 1) << 3);\n      if (iVar7 != 0) {\n        uVar38 = 0;\n        cVar3 = **pp;\n        if (cVar3 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar28 = uVar38;\n        if (cVar3 == '1') {\n          bVar4 = 1;\n        }\n        else {\n          if (cVar3 == '\0') goto LAB_00132126;\n          bVar4 = 0;\n          pcVar17 = (char *)dcgettext(0,"unknown virtual character for baseclass",5);\n          warn_stab((char *)pbVar40,pcVar17);\n        }\n        do {\n          pcVar17 = *pp;\n          *pp = pcVar17 + 1;\n          cVar3 = pcVar17[1];\n          if (cVar3 == '0') {\n            dVar36 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto LAB_00132126;\n            }\n            else {\n              dVar36 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (dVar36 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00132a81;\n            }\n            dVar36 = DEBUG_VISIBILITY_PUBLIC;\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for baseclass",5);\n            warn_stab((char *)pbVar40,pcVar17);\n          }\nLAB_00132a81:\n          *pp = *pp + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132126;\n          *pp = *pp + 1;\n          pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n          if (pdVar18 == (debug_type)0x0) {\n            return (debug_type)0x0;\n          }\n          pdVar24 = debug_make_baseclass(dhandle,pdVar18,bVar13,bVar4,dVar36);\n          local_f8[uVar28] = pdVar24;\n          if (pdVar24 == (debug_baseclass)0x0) {\n            return (debug_type)0x0;\n          }\n          if (**pp != ';') {\n            return (debug_type)0x0;\n          }\n          pcVar17 = *pp + 1;\n          uVar10 = (ulong)((int)uVar28 + 1);\n          uVar38 = uVar28 + 1;\n          *pp = pcVar17;\n          if (uVar28 == iVar7 - 1) break;\n          cVar3 = *pcVar17;\n          if (cVar3 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          bVar4 = 0;\n          uVar28 = uVar38;\n        } while( true );\n      }\n      pbVar40 = (byte *)*pp;\n      local_f8[uVar10] = (debug_baseclass)0x0;\n      if (p_end <= pbVar40) {\n        return (debug_type)0x0;\n      }\n    }" { (expression_statement "*pp = (char *)(pbVar40 + 1);" (assignment_expression "*pp = (char *)(pbVar40 + 1)" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)(pbVar40 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar40 + 1)" ( (binary_expression "pbVar40 + 1" identifier + number_literal) )))) ;) (expression_statement "bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);" (assignment_expression "bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier = (call_expression "parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier (argument_list "(pp,(bfd_boolean *)0x0,p_end)" ( identifier , (cast_expression "(bfd_boolean *)0x0" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (if_statement "if (**pp != ',') goto LAB_00132126;" if (parenthesized_expression "(**pp != ',')" ( (binary_expression "**pp != ','" (pointer_expression "**pp" * (pointer_expression "*pp" * identifier)) != (char_literal "','" ' character ')) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "iVar7 = (int)bVar13;" (assignment_expression "iVar7 = (int)bVar13" identifier = (cast_expression "(int)bVar13" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (expression_statement "uVar10 = bVar13 & 0xffffffff;" (assignment_expression "uVar10 = bVar13 & 0xffffffff" identifier = (binary_expression "bVar13 & 0xffffffff" identifier & number_literal)) ;) (expression_statement "*pp = *pp + 1;" (assignment_expression "*pp = *pp + 1" (pointer_expression "*pp" * identifier) = (binary_expression "*pp + 1" (pointer_expression "*pp" * identifier) + number_literal)) ;) (expression_statement "local_f8 = (debug_baseclass *)xmalloc((ulong)(iVar7 + 1) << 3);" (assignment_expression "local_f8 = (debug_baseclass *)xmalloc((ulong)(iVar7 + 1) << 3)" identifier = (cast_expression "(debug_baseclass *)xmalloc((ulong)(iVar7 + 1) << 3)" ( (type_descriptor "debug_baseclass *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc((ulong)(iVar7 + 1) << 3)" identifier (argument_list "((ulong)(iVar7 + 1) << 3)" ( (binary_expression "(ulong)(iVar7 + 1) << 3" (call_expression "(ulong)(iVar7 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar7 + 1)" ( (binary_expression "iVar7 + 1" identifier + number_literal) ))) << number_literal) ))))) ;) (if_statement "if (iVar7 != 0) {\n        uVar38 = 0;\n        cVar3 = **pp;\n        if (cVar3 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar28 = uVar38;\n        if (cVar3 == '1') {\n          bVar4 = 1;\n        }\n        else {\n          if (cVar3 == '\0') goto LAB_00132126;\n          bVar4 = 0;\n          pcVar17 = (char *)dcgettext(0,"unknown virtual character for baseclass",5);\n          warn_stab((char *)pbVar40,pcVar17);\n        }\n        do {\n          pcVar17 = *pp;\n          *pp = pcVar17 + 1;\n          cVar3 = pcVar17[1];\n          if (cVar3 == '0') {\n            dVar36 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto LAB_00132126;\n            }\n            else {\n              dVar36 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (dVar36 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00132a81;\n            }\n            dVar36 = DEBUG_VISIBILITY_PUBLIC;\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for baseclass",5);\n            warn_stab((char *)pbVar40,pcVar17);\n          }\nLAB_00132a81:\n          *pp = *pp + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132126;\n          *pp = *pp + 1;\n          pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n          if (pdVar18 == (debug_type)0x0) {\n            return (debug_type)0x0;\n          }\n          pdVar24 = debug_make_baseclass(dhandle,pdVar18,bVar13,bVar4,dVar36);\n          local_f8[uVar28] = pdVar24;\n          if (pdVar24 == (debug_baseclass)0x0) {\n            return (debug_type)0x0;\n          }\n          if (**pp != ';') {\n            return (debug_type)0x0;\n          }\n          pcVar17 = *pp + 1;\n          uVar10 = (ulong)((int)uVar28 + 1);\n          uVar38 = uVar28 + 1;\n          *pp = pcVar17;\n          if (uVar28 == iVar7 - 1) break;\n          cVar3 = *pcVar17;\n          if (cVar3 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          bVar4 = 0;\n          uVar28 = uVar38;\n        } while( true );\n      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar38 = 0;\n        cVar3 = **pp;\n        if (cVar3 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar28 = uVar38;\n        if (cVar3 == '1') {\n          bVar4 = 1;\n        }\n        else {\n          if (cVar3 == '\0') goto LAB_00132126;\n          bVar4 = 0;\n          pcVar17 = (char *)dcgettext(0,"unknown virtual character for baseclass",5);\n          warn_stab((char *)pbVar40,pcVar17);\n        }\n        do {\n          pcVar17 = *pp;\n          *pp = pcVar17 + 1;\n          cVar3 = pcVar17[1];\n          if (cVar3 == '0') {\n            dVar36 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto LAB_00132126;\n            }\n            else {\n              dVar36 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (dVar36 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00132a81;\n            }\n            dVar36 = DEBUG_VISIBILITY_PUBLIC;\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for baseclass",5);\n            warn_stab((char *)pbVar40,pcVar17);\n          }\nLAB_00132a81:\n          *pp = *pp + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132126;\n          *pp = *pp + 1;\n          pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n          if (pdVar18 == (debug_type)0x0) {\n            return (debug_type)0x0;\n          }\n          pdVar24 = debug_make_baseclass(dhandle,pdVar18,bVar13,bVar4,dVar36);\n          local_f8[uVar28] = pdVar24;\n          if (pdVar24 == (debug_baseclass)0x0) {\n            return (debug_type)0x0;\n          }\n          if (**pp != ';') {\n            return (debug_type)0x0;\n          }\n          pcVar17 = *pp + 1;\n          uVar10 = (ulong)((int)uVar28 + 1);\n          uVar38 = uVar28 + 1;\n          *pp = pcVar17;\n          if (uVar28 == iVar7 - 1) break;\n          cVar3 = *pcVar17;\n          if (cVar3 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          bVar4 = 0;\n          uVar28 = uVar38;\n        } while( true );\n      }" { (expression_statement "uVar38 = 0;" (assignment_expression "uVar38 = 0" identifier = number_literal) ;) (expression_statement "cVar3 = **pp;" (assignment_expression "cVar3 = **pp" identifier = (pointer_expression "**pp" * (pointer_expression "*pp" * identifier))) ;) (if_statement "if (cVar3 == '0') goto LAB_00132b2f;" if (parenthesized_expression "(cVar3 == '0')" ( (binary_expression "cVar3 == '0'" identifier == (char_literal "'0'" ' character ')) )) (goto_statement "goto LAB_00132b2f;" goto statement_identifier ;)) (labeled_statement "LAB_00132a1e:\n        uVar28 = uVar38;" statement_identifier : (expression_statement "uVar28 = uVar38;" (assignment_expression "uVar28 = uVar38" identifier = identifier) ;)) (if_statement "if (cVar3 == '1') {\n          bVar4 = 1;\n        }\n        else {\n          if (cVar3 == '\0') goto LAB_00132126;\n          bVar4 = 0;\n          pcVar17 = (char *)dcgettext(0,"unknown virtual character for baseclass",5);\n          warn_stab((char *)pbVar40,pcVar17);\n        }" if (parenthesized_expression "(cVar3 == '1')" ( (binary_expression "cVar3 == '1'" identifier == (char_literal "'1'" ' character ')) )) (compound_statement "{\n          bVar4 = 1;\n        }" { (expression_statement "bVar4 = 1;" (assignment_expression "bVar4 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          if (cVar3 == '\0') goto LAB_00132126;\n          bVar4 = 0;\n          pcVar17 = (char *)dcgettext(0,"unknown virtual character for baseclass",5);\n          warn_stab((char *)pbVar40,pcVar17);\n        }" else (compound_statement "{\n          if (cVar3 == '\0') goto LAB_00132126;\n          bVar4 = 0;\n          pcVar17 = (char *)dcgettext(0,"unknown virtual character for baseclass",5);\n          warn_stab((char *)pbVar40,pcVar17);\n        }" { (if_statement "if (cVar3 == '\0') goto LAB_00132126;" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "bVar4 = 0;" (assignment_expression "bVar4 = 0" identifier = number_literal) ;) (expression_statement "pcVar17 = (char *)dcgettext(0,"unknown virtual character for baseclass",5);" (assignment_expression "pcVar17 = (char *)dcgettext(0,"unknown virtual character for baseclass",5)" identifier = (cast_expression "(char *)dcgettext(0,"unknown virtual character for baseclass",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"unknown virtual character for baseclass",5)" identifier (argument_list "(0,"unknown virtual character for baseclass",5)" ( number_literal , (string_literal ""unknown virtual character for baseclass"" " string_content ") , number_literal ))))) ;) (expression_statement "warn_stab((char *)pbVar40,pcVar17);" (call_expression "warn_stab((char *)pbVar40,pcVar17)" identifier (argument_list "((char *)pbVar40,pcVar17)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) }))) (do_statement "do {\n          pcVar17 = *pp;\n          *pp = pcVar17 + 1;\n          cVar3 = pcVar17[1];\n          if (cVar3 == '0') {\n            dVar36 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto LAB_00132126;\n            }\n            else {\n              dVar36 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (dVar36 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00132a81;\n            }\n            dVar36 = DEBUG_VISIBILITY_PUBLIC;\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for baseclass",5);\n            warn_stab((char *)pbVar40,pcVar17);\n          }\nLAB_00132a81:\n          *pp = *pp + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132126;\n          *pp = *pp + 1;\n          pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n          if (pdVar18 == (debug_type)0x0) {\n            return (debug_type)0x0;\n          }\n          pdVar24 = debug_make_baseclass(dhandle,pdVar18,bVar13,bVar4,dVar36);\n          local_f8[uVar28] = pdVar24;\n          if (pdVar24 == (debug_baseclass)0x0) {\n            return (debug_type)0x0;\n          }\n          if (**pp != ';') {\n            return (debug_type)0x0;\n          }\n          pcVar17 = *pp + 1;\n          uVar10 = (ulong)((int)uVar28 + 1);\n          uVar38 = uVar28 + 1;\n          *pp = pcVar17;\n          if (uVar28 == iVar7 - 1) break;\n          cVar3 = *pcVar17;\n          if (cVar3 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          bVar4 = 0;\n          uVar28 = uVar38;\n        } while( true );" do (compound_statement "{\n          pcVar17 = *pp;\n          *pp = pcVar17 + 1;\n          cVar3 = pcVar17[1];\n          if (cVar3 == '0') {\n            dVar36 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto LAB_00132126;\n            }\n            else {\n              dVar36 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (dVar36 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00132a81;\n            }\n            dVar36 = DEBUG_VISIBILITY_PUBLIC;\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for baseclass",5);\n            warn_stab((char *)pbVar40,pcVar17);\n          }\nLAB_00132a81:\n          *pp = *pp + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132126;\n          *pp = *pp + 1;\n          pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n          if (pdVar18 == (debug_type)0x0) {\n            return (debug_type)0x0;\n          }\n          pdVar24 = debug_make_baseclass(dhandle,pdVar18,bVar13,bVar4,dVar36);\n          local_f8[uVar28] = pdVar24;\n          if (pdVar24 == (debug_baseclass)0x0) {\n            return (debug_type)0x0;\n          }\n          if (**pp != ';') {\n            return (debug_type)0x0;\n          }\n          pcVar17 = *pp + 1;\n          uVar10 = (ulong)((int)uVar28 + 1);\n          uVar38 = uVar28 + 1;\n          *pp = pcVar17;\n          if (uVar28 == iVar7 - 1) break;\n          cVar3 = *pcVar17;\n          if (cVar3 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          bVar4 = 0;\n          uVar28 = uVar38;\n        }" { (expression_statement "pcVar17 = *pp;" (assignment_expression "pcVar17 = *pp" identifier = (pointer_expression "*pp" * identifier)) ;) (expression_statement "*pp = pcVar17 + 1;" (assignment_expression "*pp = pcVar17 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (expression_statement "cVar3 = pcVar17[1];" (assignment_expression "cVar3 = pcVar17[1]" identifier = (subscript_expression "pcVar17[1]" identifier [ number_literal ])) ;) (if_statement "if (cVar3 == '0') {\n            dVar36 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto LAB_00132126;\n            }\n            else {\n              dVar36 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (dVar36 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00132a81;\n            }\n            dVar36 = DEBUG_VISIBILITY_PUBLIC;\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for baseclass",5);\n            warn_stab((char *)pbVar40,pcVar17);\n          }" if (parenthesized_expression "(cVar3 == '0')" ( (binary_expression "cVar3 == '0'" identifier == (char_literal "'0'" ' character ')) )) (compound_statement "{\n            dVar36 = DEBUG_VISIBILITY_PRIVATE;\n          }" { (expression_statement "dVar36 = DEBUG_VISIBILITY_PRIVATE;" (assignment_expression "dVar36 = DEBUG_VISIBILITY_PRIVATE" identifier = identifier) ;) }) (else_clause "else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto LAB_00132126;\n            }\n            else {\n              dVar36 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (dVar36 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00132a81;\n            }\n            dVar36 = DEBUG_VISIBILITY_PUBLIC;\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for baseclass",5);\n            warn_stab((char *)pbVar40,pcVar17);\n          }" else (compound_statement "{\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto LAB_00132126;\n            }\n            else {\n              dVar36 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (dVar36 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00132a81;\n            }\n            dVar36 = DEBUG_VISIBILITY_PUBLIC;\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for baseclass",5);\n            warn_stab((char *)pbVar40,pcVar17);\n          }" { (if_statement "if (cVar3 < '1') {\n              if (cVar3 == '\0') goto LAB_00132126;\n            }\n            else {\n              dVar36 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (dVar36 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00132a81;\n            }" if (parenthesized_expression "(cVar3 < '1')" ( (binary_expression "cVar3 < '1'" identifier < (char_literal "'1'" ' character ')) )) (compound_statement "{\n              if (cVar3 == '\0') goto LAB_00132126;\n            }" { (if_statement "if (cVar3 == '\0') goto LAB_00132126;" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) }) (else_clause "else {\n              dVar36 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (dVar36 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00132a81;\n            }" else (compound_statement "{\n              dVar36 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (dVar36 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00132a81;\n            }" { (expression_statement "dVar36 = DEBUG_VISIBILITY_PROTECTED;" (assignment_expression "dVar36 = DEBUG_VISIBILITY_PROTECTED" identifier = identifier) ;) (if_statement "if ((cVar3 == '1') || (dVar36 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00132a81;" if (parenthesized_expression "((cVar3 == '1') || (dVar36 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))" ( (binary_expression "(cVar3 == '1') || (dVar36 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2')" (parenthesized_expression "(cVar3 == '1')" ( (binary_expression "cVar3 == '1'" identifier == (char_literal "'1'" ' character ')) )) || (parenthesized_expression "(dVar36 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2')" ( (comma_expression "dVar36 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'" (assignment_expression "dVar36 = DEBUG_VISIBILITY_PUBLIC" identifier = identifier) , (binary_expression "cVar3 == '2'" identifier == (char_literal "'2'" ' character '))) ))) )) (goto_statement "goto LAB_00132a81;" goto statement_identifier ;)) }))) (expression_statement "dVar36 = DEBUG_VISIBILITY_PUBLIC;" (assignment_expression "dVar36 = DEBUG_VISIBILITY_PUBLIC" identifier = identifier) ;) (expression_statement "pcVar17 = (char *)dcgettext(0,"unknown visibility character for baseclass",5);" (assignment_expression "pcVar17 = (char *)dcgettext(0,"unknown visibility character for baseclass",5)" identifier = (cast_expression "(char *)dcgettext(0,"unknown visibility character for baseclass",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"unknown visibility character for baseclass",5)" identifier (argument_list "(0,"unknown visibility character for baseclass",5)" ( number_literal , (string_literal ""unknown visibility character for baseclass"" " string_content ") , number_literal ))))) ;) (expression_statement "warn_stab((char *)pbVar40,pcVar17);" (call_expression "warn_stab((char *)pbVar40,pcVar17)" identifier (argument_list "((char *)pbVar40,pcVar17)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) }))) (labeled_statement "LAB_00132a81:\n          *pp = *pp + 1;" statement_identifier : (expression_statement "*pp = *pp + 1;" (assignment_expression "*pp = *pp + 1" (pointer_expression "*pp" * identifier) = (binary_expression "*pp + 1" (pointer_expression "*pp" * identifier) + number_literal)) ;)) (expression_statement "bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);" (assignment_expression "bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier = (call_expression "parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier (argument_list "(pp,(bfd_boolean *)0x0,p_end)" ( identifier , (cast_expression "(bfd_boolean *)0x0" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (if_statement "if (**pp != ',') goto LAB_00132126;" if (parenthesized_expression "(**pp != ',')" ( (binary_expression "**pp != ','" (pointer_expression "**pp" * (pointer_expression "*pp" * identifier)) != (char_literal "','" ' character ')) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "*pp = *pp + 1;" (assignment_expression "*pp = *pp + 1" (pointer_expression "*pp" * identifier) = (binary_expression "*pp + 1" (pointer_expression "*pp" * identifier) + number_literal)) ;) (expression_statement "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);" (assignment_expression "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier = (call_expression "parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier (argument_list "(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(debug_type_conflict **)0x0" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , identifier )))) ;) (if_statement "if (pdVar18 == (debug_type)0x0) {\n            return (debug_type)0x0;\n          }" if (parenthesized_expression "(pdVar18 == (debug_type)0x0)" ( (binary_expression "pdVar18 == (debug_type)0x0" identifier == (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (compound_statement "{\n            return (debug_type)0x0;\n          }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "pdVar24 = debug_make_baseclass(dhandle,pdVar18,bVar13,bVar4,dVar36);" (assignment_expression "pdVar24 = debug_make_baseclass(dhandle,pdVar18,bVar13,bVar4,dVar36)" identifier = (call_expression "debug_make_baseclass(dhandle,pdVar18,bVar13,bVar4,dVar36)" identifier (argument_list "(dhandle,pdVar18,bVar13,bVar4,dVar36)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "local_f8[uVar28] = pdVar24;" (assignment_expression "local_f8[uVar28] = pdVar24" (subscript_expression "local_f8[uVar28]" identifier [ identifier ]) = identifier) ;) (if_statement "if (pdVar24 == (debug_baseclass)0x0) {\n            return (debug_type)0x0;\n          }" if (parenthesized_expression "(pdVar24 == (debug_baseclass)0x0)" ( (binary_expression "pdVar24 == (debug_baseclass)0x0" identifier == (cast_expression "(debug_baseclass)0x0" ( (type_descriptor "debug_baseclass" type_identifier) ) number_literal)) )) (compound_statement "{\n            return (debug_type)0x0;\n          }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (if_statement "if (**pp != ';') {\n            return (debug_type)0x0;\n          }" if (parenthesized_expression "(**pp != ';')" ( (binary_expression "**pp != ';'" (pointer_expression "**pp" * (pointer_expression "*pp" * identifier)) != (char_literal "';'" ' character ')) )) (compound_statement "{\n            return (debug_type)0x0;\n          }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "pcVar17 = *pp + 1;" (assignment_expression "pcVar17 = *pp + 1" identifier = (binary_expression "*pp + 1" (pointer_expression "*pp" * identifier) + number_literal)) ;) (expression_statement "uVar10 = (ulong)((int)uVar28 + 1);" (assignment_expression "uVar10 = (ulong)((int)uVar28 + 1)" identifier = (call_expression "(ulong)((int)uVar28 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((int)uVar28 + 1)" ( (binary_expression "(int)uVar28 + 1" (cast_expression "(int)uVar28" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;) (expression_statement "uVar38 = uVar28 + 1;" (assignment_expression "uVar38 = uVar28 + 1" identifier = (binary_expression "uVar28 + 1" identifier + number_literal)) ;) (expression_statement "*pp = pcVar17;" (assignment_expression "*pp = pcVar17" (pointer_expression "*pp" * identifier) = identifier) ;) (if_statement "if (uVar28 == iVar7 - 1) break;" if (parenthesized_expression "(uVar28 == iVar7 - 1)" ( (binary_expression "uVar28 == iVar7 - 1" identifier == (binary_expression "iVar7 - 1" identifier - number_literal)) )) (break_statement "break;" break ;)) (expression_statement "cVar3 = *pcVar17;" (assignment_expression "cVar3 = *pcVar17" identifier = (pointer_expression "*pcVar17" * identifier)) ;) (if_statement "if (cVar3 != '0') goto LAB_00132a1e;" if (parenthesized_expression "(cVar3 != '0')" ( (binary_expression "cVar3 != '0'" identifier != (char_literal "'0'" ' character ')) )) (goto_statement "goto LAB_00132a1e;" goto statement_identifier ;)) (labeled_statement "LAB_00132b2f:\n          bVar4 = 0;" statement_identifier : (expression_statement "bVar4 = 0;" (assignment_expression "bVar4 = 0" identifier = number_literal) ;)) (expression_statement "uVar28 = uVar38;" (assignment_expression "uVar28 = uVar38" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "pbVar40 = (byte *)*pp;" (assignment_expression "pbVar40 = (byte *)*pp" identifier = (cast_expression "(byte *)*pp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp" * identifier))) ;) (expression_statement "local_f8[uVar10] = (debug_baseclass)0x0;" (assignment_expression "local_f8[uVar10] = (debug_baseclass)0x0" (subscript_expression "local_f8[uVar10]" identifier [ identifier ]) = (cast_expression "(debug_baseclass)0x0" ( (type_descriptor "debug_baseclass" type_identifier) ) number_literal)) ;) (if_statement "if (p_end <= pbVar40) {\n        return (debug_type)0x0;\n      }" if (parenthesized_expression "(p_end <= pbVar40)" ( (binary_expression "p_end <= pbVar40" identifier <= identifier) )) (compound_statement "{\n        return (debug_type)0x0;\n      }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) })) (expression_statement "uVar10 = 0;" (assignment_expression "uVar10 = 0" identifier = number_literal) ;) (expression_statement "local_130 = (debug_field *)xmalloc(0x50);" (assignment_expression "local_130 = (debug_field *)xmalloc(0x50)" identifier = (cast_expression "(debug_field *)xmalloc(0x50)" ( (type_descriptor "debug_field *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "pbVar31 = (byte *)*pp;" (assignment_expression "pbVar31 = (byte *)*pp" identifier = (cast_expression "(byte *)*pp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp" * identifier))) ;) (expression_statement "bVar43 = false;" (assignment_expression "bVar43 = false" identifier = false) ;) (expression_statement "bVar2 = *pbVar31;" (assignment_expression "bVar2 = *pbVar31" identifier = (pointer_expression "*pbVar31" * identifier)) ;) (expression_statement "local_138._0_4_ = 10;" (assignment_expression "local_138._0_4_ = 10" (field_expression "local_138._0_4_" identifier . field_identifier) = number_literal) ;) (while_statement "while (bVar2 != 0x3b) {\n      uVar39 = (int)uVar10 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (debug_field *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar2 = *pbVar31;\n      }\n      if (((bVar2 == 0x24) || (bVar2 == 0x2e)) && (pbVar31[1] != 0x5f)) {\n        pcVar17 = *pp;\n        pbVar31 = (byte *)(pcVar17 + 1);\n        *pp = (char *)pbVar31;\n        local_130[uVar10] = (debug_field)0x0;\n        if (p_end <= pbVar31) goto LAB_00131328;\n        if (pcVar17[1] != 'v') goto LAB_00132740;\n        *pp = pcVar17 + 2;\n        cVar3 = pcVar17[2];\n        if (cVar3 == '\0') goto LAB_00132740;\n        *pp = pcVar17 + 3;\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (pdVar18 == (debug_type)0x0) goto LAB_00131328;\n        if (cVar3 == 'b') {\n          pcVar17 = debug_get_type_name(dhandle,pdVar18);\n          if (pcVar17 == (char *)0x0) {\n            pcVar17 = (char *)dcgettext(0,"unnamed $vb type",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar17 = "FOO";\n          }\n          pcVar17 = (char *)concat(&DAT_00146a0b,pcVar17,0);\n        }\n        else {\n          pcVar17 = "_vptr$";\n          if (cVar3 != 'f') {\n            pcVar16 = (char *)dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar17 = "INVALID_CPLUSPLUS_ABBREV";\n            warn_stab((char *)pbVar31,pcVar16);\n          }\n        }\n        if (**pp != ':') goto LAB_00132740;\n        *pp = *pp + 1;\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (**pp != ',') goto LAB_00132740;\n        *pp = *pp + 1;\n        bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        if (**pp != ';') goto LAB_00132740;\n        *pp = *pp + 1;\n        pdVar15 = debug_make_field(dhandle,pcVar17,pdVar18,bVar13,0,DEBUG_VISIBILITY_PRIVATE);\n        local_130[uVar10] = pdVar15;\n        if (pdVar15 == (debug_field)0x0) goto LAB_00131328;\n      }\n      else {\n        pcVar17 = strchr((char *)pbVar31,0x3a);\n        if (pcVar17 == (char *)0x0) {\n          bad_stab((char *)pbVar40);\n          free(local_130);\n          return (debug_type)0x0;\n        }\n        pbVar31 = (byte *)*pp;\n        if (pcVar17[1] == ':') break;\n        if (p_end <= pbVar31) {\n          return (debug_type)0x0;\n        }\n        pcVar16 = savestring((char *)pbVar31,(int)pcVar17 - (int)pbVar31);\n        *pp = pcVar17 + 1;\n        if (pcVar17[1] == '/') {\n          pcVar25 = pcVar17 + 2;\n          *pp = pcVar25;\n          cVar3 = pcVar17[2];\n          if (cVar3 == '0') {\n            local_120 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (local_120 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00131b6d;\n            }\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for field",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar25 = *pp;\n            local_120 = DEBUG_VISIBILITY_PUBLIC;\n          }\nLAB_00131b6d:\n          *pp = pcVar25 + 1;\n        }\n        else {\n          local_120 = DEBUG_VISIBILITY_PUBLIC;\n        }\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (pdVar18 == (debug_type)0x0) {\n          free(pcVar16);\n          return (debug_type)0x0;\n        }\n        pcVar17 = *pp;\n        if (*pcVar17 == ':') {\n          pcVar17 = pcVar17 + 1;\n          *pp = pcVar17;\n          pcVar25 = strchr(pcVar17,0x3b);\n          if (pcVar25 == (char *)0x0) goto LAB_00132614;\n          pcVar17 = savestring(pcVar17,(int)pcVar25 - (int)pcVar17);\n          *pp = pcVar25 + 1;\n          pdVar15 = debug_make_static_member(dhandle,pcVar16,pdVar18,pcVar17,local_120);\n          bVar43 = true;\n          local_130[uVar10] = pdVar15;\n        }\n        else {\n          if (*pcVar17 != ',') {\nLAB_00132614:\n            bad_stab((char *)pbVar31);\n            free(pcVar16);\n            return (debug_type)0x0;\n          }\n          *pp = pcVar17 + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132614;\n          *pp = *pp + 1;\n          bVar14 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ';') goto LAB_00132614;\n          *pp = *pp + 1;\n          dVar36 = DEBUG_VISIBILITY_IGNORE;\n          if (bVar13 != 0 || bVar14 != 0) {\n            dVar36 = local_120;\n          }\n          pdVar15 = debug_make_field(dhandle,pcVar16,pdVar18,bVar13,bVar14,dVar36);\n          local_130[uVar10] = pdVar15;\n        }\n      }\n      pbVar31 = (byte *)*pp;\n      uVar10 = (ulong)uVar39;\n      bVar2 = *pbVar31;\n    }" while (parenthesized_expression "(bVar2 != 0x3b)" ( (binary_expression "bVar2 != 0x3b" identifier != number_literal) )) (compound_statement "{\n      uVar39 = (int)uVar10 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (debug_field *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar2 = *pbVar31;\n      }\n      if (((bVar2 == 0x24) || (bVar2 == 0x2e)) && (pbVar31[1] != 0x5f)) {\n        pcVar17 = *pp;\n        pbVar31 = (byte *)(pcVar17 + 1);\n        *pp = (char *)pbVar31;\n        local_130[uVar10] = (debug_field)0x0;\n        if (p_end <= pbVar31) goto LAB_00131328;\n        if (pcVar17[1] != 'v') goto LAB_00132740;\n        *pp = pcVar17 + 2;\n        cVar3 = pcVar17[2];\n        if (cVar3 == '\0') goto LAB_00132740;\n        *pp = pcVar17 + 3;\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (pdVar18 == (debug_type)0x0) goto LAB_00131328;\n        if (cVar3 == 'b') {\n          pcVar17 = debug_get_type_name(dhandle,pdVar18);\n          if (pcVar17 == (char *)0x0) {\n            pcVar17 = (char *)dcgettext(0,"unnamed $vb type",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar17 = "FOO";\n          }\n          pcVar17 = (char *)concat(&DAT_00146a0b,pcVar17,0);\n        }\n        else {\n          pcVar17 = "_vptr$";\n          if (cVar3 != 'f') {\n            pcVar16 = (char *)dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar17 = "INVALID_CPLUSPLUS_ABBREV";\n            warn_stab((char *)pbVar31,pcVar16);\n          }\n        }\n        if (**pp != ':') goto LAB_00132740;\n        *pp = *pp + 1;\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (**pp != ',') goto LAB_00132740;\n        *pp = *pp + 1;\n        bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        if (**pp != ';') goto LAB_00132740;\n        *pp = *pp + 1;\n        pdVar15 = debug_make_field(dhandle,pcVar17,pdVar18,bVar13,0,DEBUG_VISIBILITY_PRIVATE);\n        local_130[uVar10] = pdVar15;\n        if (pdVar15 == (debug_field)0x0) goto LAB_00131328;\n      }\n      else {\n        pcVar17 = strchr((char *)pbVar31,0x3a);\n        if (pcVar17 == (char *)0x0) {\n          bad_stab((char *)pbVar40);\n          free(local_130);\n          return (debug_type)0x0;\n        }\n        pbVar31 = (byte *)*pp;\n        if (pcVar17[1] == ':') break;\n        if (p_end <= pbVar31) {\n          return (debug_type)0x0;\n        }\n        pcVar16 = savestring((char *)pbVar31,(int)pcVar17 - (int)pbVar31);\n        *pp = pcVar17 + 1;\n        if (pcVar17[1] == '/') {\n          pcVar25 = pcVar17 + 2;\n          *pp = pcVar25;\n          cVar3 = pcVar17[2];\n          if (cVar3 == '0') {\n            local_120 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (local_120 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00131b6d;\n            }\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for field",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar25 = *pp;\n            local_120 = DEBUG_VISIBILITY_PUBLIC;\n          }\nLAB_00131b6d:\n          *pp = pcVar25 + 1;\n        }\n        else {\n          local_120 = DEBUG_VISIBILITY_PUBLIC;\n        }\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (pdVar18 == (debug_type)0x0) {\n          free(pcVar16);\n          return (debug_type)0x0;\n        }\n        pcVar17 = *pp;\n        if (*pcVar17 == ':') {\n          pcVar17 = pcVar17 + 1;\n          *pp = pcVar17;\n          pcVar25 = strchr(pcVar17,0x3b);\n          if (pcVar25 == (char *)0x0) goto LAB_00132614;\n          pcVar17 = savestring(pcVar17,(int)pcVar25 - (int)pcVar17);\n          *pp = pcVar25 + 1;\n          pdVar15 = debug_make_static_member(dhandle,pcVar16,pdVar18,pcVar17,local_120);\n          bVar43 = true;\n          local_130[uVar10] = pdVar15;\n        }\n        else {\n          if (*pcVar17 != ',') {\nLAB_00132614:\n            bad_stab((char *)pbVar31);\n            free(pcVar16);\n            return (debug_type)0x0;\n          }\n          *pp = pcVar17 + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132614;\n          *pp = *pp + 1;\n          bVar14 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ';') goto LAB_00132614;\n          *pp = *pp + 1;\n          dVar36 = DEBUG_VISIBILITY_IGNORE;\n          if (bVar13 != 0 || bVar14 != 0) {\n            dVar36 = local_120;\n          }\n          pdVar15 = debug_make_field(dhandle,pcVar16,pdVar18,bVar13,bVar14,dVar36);\n          local_130[uVar10] = pdVar15;\n        }\n      }\n      pbVar31 = (byte *)*pp;\n      uVar10 = (ulong)uVar39;\n      bVar2 = *pbVar31;\n    }" { (expression_statement "uVar39 = (int)uVar10 + 1;" (assignment_expression "uVar39 = (int)uVar10 + 1" identifier = (binary_expression "(int)uVar10 + 1" (cast_expression "(int)uVar10" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (debug_field *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar2 = *pbVar31;\n      }" if (parenthesized_expression "((uint)local_138 <= uVar39)" ( (binary_expression "(uint)local_138 <= uVar39" (cast_expression "(uint)local_138" ( (type_descriptor "uint" type_identifier) ) identifier) <= identifier) )) (compound_statement "{\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (debug_field *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar2 = *pbVar31;\n      }" { (expression_statement "local_138._0_4_ = (uint)local_138 + 10;" (assignment_expression "local_138._0_4_ = (uint)local_138 + 10" (field_expression "local_138._0_4_" identifier . field_identifier) = (binary_expression "(uint)local_138 + 10" (cast_expression "(uint)local_138" ( (type_descriptor "uint" type_identifier) ) identifier) + number_literal)) ;) (expression_statement "local_130 = (debug_field *)xrealloc(local_130,(ulong)(uint)local_138 << 3);" (assignment_expression "local_130 = (debug_field *)xrealloc(local_130,(ulong)(uint)local_138 << 3)" identifier = (cast_expression "(debug_field *)xrealloc(local_130,(ulong)(uint)local_138 << 3)" ( (type_descriptor "debug_field *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(local_130,(ulong)(uint)local_138 << 3)" identifier (argument_list "(local_130,(ulong)(uint)local_138 << 3)" ( identifier , (binary_expression "(ulong)(uint)local_138 << 3" (cast_expression "(ulong)(uint)local_138" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)local_138" ( (type_descriptor "uint" type_identifier) ) identifier)) << number_literal) ))))) ;) (expression_statement "bVar2 = *pbVar31;" (assignment_expression "bVar2 = *pbVar31" identifier = (pointer_expression "*pbVar31" * identifier)) ;) })) (if_statement "if (((bVar2 == 0x24) || (bVar2 == 0x2e)) && (pbVar31[1] != 0x5f)) {\n        pcVar17 = *pp;\n        pbVar31 = (byte *)(pcVar17 + 1);\n        *pp = (char *)pbVar31;\n        local_130[uVar10] = (debug_field)0x0;\n        if (p_end <= pbVar31) goto LAB_00131328;\n        if (pcVar17[1] != 'v') goto LAB_00132740;\n        *pp = pcVar17 + 2;\n        cVar3 = pcVar17[2];\n        if (cVar3 == '\0') goto LAB_00132740;\n        *pp = pcVar17 + 3;\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (pdVar18 == (debug_type)0x0) goto LAB_00131328;\n        if (cVar3 == 'b') {\n          pcVar17 = debug_get_type_name(dhandle,pdVar18);\n          if (pcVar17 == (char *)0x0) {\n            pcVar17 = (char *)dcgettext(0,"unnamed $vb type",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar17 = "FOO";\n          }\n          pcVar17 = (char *)concat(&DAT_00146a0b,pcVar17,0);\n        }\n        else {\n          pcVar17 = "_vptr$";\n          if (cVar3 != 'f') {\n            pcVar16 = (char *)dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar17 = "INVALID_CPLUSPLUS_ABBREV";\n            warn_stab((char *)pbVar31,pcVar16);\n          }\n        }\n        if (**pp != ':') goto LAB_00132740;\n        *pp = *pp + 1;\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (**pp != ',') goto LAB_00132740;\n        *pp = *pp + 1;\n        bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        if (**pp != ';') goto LAB_00132740;\n        *pp = *pp + 1;\n        pdVar15 = debug_make_field(dhandle,pcVar17,pdVar18,bVar13,0,DEBUG_VISIBILITY_PRIVATE);\n        local_130[uVar10] = pdVar15;\n        if (pdVar15 == (debug_field)0x0) goto LAB_00131328;\n      }\n      else {\n        pcVar17 = strchr((char *)pbVar31,0x3a);\n        if (pcVar17 == (char *)0x0) {\n          bad_stab((char *)pbVar40);\n          free(local_130);\n          return (debug_type)0x0;\n        }\n        pbVar31 = (byte *)*pp;\n        if (pcVar17[1] == ':') break;\n        if (p_end <= pbVar31) {\n          return (debug_type)0x0;\n        }\n        pcVar16 = savestring((char *)pbVar31,(int)pcVar17 - (int)pbVar31);\n        *pp = pcVar17 + 1;\n        if (pcVar17[1] == '/') {\n          pcVar25 = pcVar17 + 2;\n          *pp = pcVar25;\n          cVar3 = pcVar17[2];\n          if (cVar3 == '0') {\n            local_120 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (local_120 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00131b6d;\n            }\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for field",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar25 = *pp;\n            local_120 = DEBUG_VISIBILITY_PUBLIC;\n          }\nLAB_00131b6d:\n          *pp = pcVar25 + 1;\n        }\n        else {\n          local_120 = DEBUG_VISIBILITY_PUBLIC;\n        }\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (pdVar18 == (debug_type)0x0) {\n          free(pcVar16);\n          return (debug_type)0x0;\n        }\n        pcVar17 = *pp;\n        if (*pcVar17 == ':') {\n          pcVar17 = pcVar17 + 1;\n          *pp = pcVar17;\n          pcVar25 = strchr(pcVar17,0x3b);\n          if (pcVar25 == (char *)0x0) goto LAB_00132614;\n          pcVar17 = savestring(pcVar17,(int)pcVar25 - (int)pcVar17);\n          *pp = pcVar25 + 1;\n          pdVar15 = debug_make_static_member(dhandle,pcVar16,pdVar18,pcVar17,local_120);\n          bVar43 = true;\n          local_130[uVar10] = pdVar15;\n        }\n        else {\n          if (*pcVar17 != ',') {\nLAB_00132614:\n            bad_stab((char *)pbVar31);\n            free(pcVar16);\n            return (debug_type)0x0;\n          }\n          *pp = pcVar17 + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132614;\n          *pp = *pp + 1;\n          bVar14 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ';') goto LAB_00132614;\n          *pp = *pp + 1;\n          dVar36 = DEBUG_VISIBILITY_IGNORE;\n          if (bVar13 != 0 || bVar14 != 0) {\n            dVar36 = local_120;\n          }\n          pdVar15 = debug_make_field(dhandle,pcVar16,pdVar18,bVar13,bVar14,dVar36);\n          local_130[uVar10] = pdVar15;\n        }\n      }" if (parenthesized_expression "(((bVar2 == 0x24) || (bVar2 == 0x2e)) && (pbVar31[1] != 0x5f))" ( (binary_expression "((bVar2 == 0x24) || (bVar2 == 0x2e)) && (pbVar31[1] != 0x5f)" (parenthesized_expression "((bVar2 == 0x24) || (bVar2 == 0x2e))" ( (binary_expression "(bVar2 == 0x24) || (bVar2 == 0x2e)" (parenthesized_expression "(bVar2 == 0x24)" ( (binary_expression "bVar2 == 0x24" identifier == number_literal) )) || (parenthesized_expression "(bVar2 == 0x2e)" ( (binary_expression "bVar2 == 0x2e" identifier == number_literal) ))) )) && (parenthesized_expression "(pbVar31[1] != 0x5f)" ( (binary_expression "pbVar31[1] != 0x5f" (subscript_expression "pbVar31[1]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n        pcVar17 = *pp;\n        pbVar31 = (byte *)(pcVar17 + 1);\n        *pp = (char *)pbVar31;\n        local_130[uVar10] = (debug_field)0x0;\n        if (p_end <= pbVar31) goto LAB_00131328;\n        if (pcVar17[1] != 'v') goto LAB_00132740;\n        *pp = pcVar17 + 2;\n        cVar3 = pcVar17[2];\n        if (cVar3 == '\0') goto LAB_00132740;\n        *pp = pcVar17 + 3;\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (pdVar18 == (debug_type)0x0) goto LAB_00131328;\n        if (cVar3 == 'b') {\n          pcVar17 = debug_get_type_name(dhandle,pdVar18);\n          if (pcVar17 == (char *)0x0) {\n            pcVar17 = (char *)dcgettext(0,"unnamed $vb type",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar17 = "FOO";\n          }\n          pcVar17 = (char *)concat(&DAT_00146a0b,pcVar17,0);\n        }\n        else {\n          pcVar17 = "_vptr$";\n          if (cVar3 != 'f') {\n            pcVar16 = (char *)dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar17 = "INVALID_CPLUSPLUS_ABBREV";\n            warn_stab((char *)pbVar31,pcVar16);\n          }\n        }\n        if (**pp != ':') goto LAB_00132740;\n        *pp = *pp + 1;\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (**pp != ',') goto LAB_00132740;\n        *pp = *pp + 1;\n        bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n        if (**pp != ';') goto LAB_00132740;\n        *pp = *pp + 1;\n        pdVar15 = debug_make_field(dhandle,pcVar17,pdVar18,bVar13,0,DEBUG_VISIBILITY_PRIVATE);\n        local_130[uVar10] = pdVar15;\n        if (pdVar15 == (debug_field)0x0) goto LAB_00131328;\n      }" { (expression_statement "pcVar17 = *pp;" (assignment_expression "pcVar17 = *pp" identifier = (pointer_expression "*pp" * identifier)) ;) (expression_statement "pbVar31 = (byte *)(pcVar17 + 1);" (assignment_expression "pbVar31 = (byte *)(pcVar17 + 1)" identifier = (cast_expression "(byte *)(pcVar17 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar17 + 1)" ( (binary_expression "pcVar17 + 1" identifier + number_literal) )))) ;) (expression_statement "*pp = (char *)pbVar31;" (assignment_expression "*pp = (char *)pbVar31" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar31" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_130[uVar10] = (debug_field)0x0;" (assignment_expression "local_130[uVar10] = (debug_field)0x0" (subscript_expression "local_130[uVar10]" identifier [ identifier ]) = (cast_expression "(debug_field)0x0" ( (type_descriptor "debug_field" type_identifier) ) number_literal)) ;) (if_statement "if (p_end <= pbVar31) goto LAB_00131328;" if (parenthesized_expression "(p_end <= pbVar31)" ( (binary_expression "p_end <= pbVar31" identifier <= identifier) )) (goto_statement "goto LAB_00131328;" goto statement_identifier ;)) (if_statement "if (pcVar17[1] != 'v') goto LAB_00132740;" if (parenthesized_expression "(pcVar17[1] != 'v')" ( (binary_expression "pcVar17[1] != 'v'" (subscript_expression "pcVar17[1]" identifier [ number_literal ]) != (char_literal "'v'" ' character ')) )) (goto_statement "goto LAB_00132740;" goto statement_identifier ;)) (expression_statement "*pp = pcVar17 + 2;" (assignment_expression "*pp = pcVar17 + 2" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar17 + 2" identifier + number_literal)) ;) (expression_statement "cVar3 = pcVar17[2];" (assignment_expression "cVar3 = pcVar17[2]" identifier = (subscript_expression "pcVar17[2]" identifier [ number_literal ])) ;) (if_statement "if (cVar3 == '\0') goto LAB_00132740;" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00132740;" goto statement_identifier ;)) (expression_statement "*pp = pcVar17 + 3;" (assignment_expression "*pp = pcVar17 + 3" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar17 + 3" identifier + number_literal)) ;) (expression_statement "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);" (assignment_expression "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier = (call_expression "parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier (argument_list "(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(debug_type_conflict **)0x0" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , identifier )))) ;) (if_statement "if (pdVar18 == (debug_type)0x0) goto LAB_00131328;" if (parenthesized_expression "(pdVar18 == (debug_type)0x0)" ( (binary_expression "pdVar18 == (debug_type)0x0" identifier == (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_00131328;" goto statement_identifier ;)) (if_statement "if (cVar3 == 'b') {\n          pcVar17 = debug_get_type_name(dhandle,pdVar18);\n          if (pcVar17 == (char *)0x0) {\n            pcVar17 = (char *)dcgettext(0,"unnamed $vb type",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar17 = "FOO";\n          }\n          pcVar17 = (char *)concat(&DAT_00146a0b,pcVar17,0);\n        }\n        else {\n          pcVar17 = "_vptr$";\n          if (cVar3 != 'f') {\n            pcVar16 = (char *)dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar17 = "INVALID_CPLUSPLUS_ABBREV";\n            warn_stab((char *)pbVar31,pcVar16);\n          }\n        }" if (parenthesized_expression "(cVar3 == 'b')" ( (binary_expression "cVar3 == 'b'" identifier == (char_literal "'b'" ' character ')) )) (compound_statement "{\n          pcVar17 = debug_get_type_name(dhandle,pdVar18);\n          if (pcVar17 == (char *)0x0) {\n            pcVar17 = (char *)dcgettext(0,"unnamed $vb type",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar17 = "FOO";\n          }\n          pcVar17 = (char *)concat(&DAT_00146a0b,pcVar17,0);\n        }" { (expression_statement "pcVar17 = debug_get_type_name(dhandle,pdVar18);" (assignment_expression "pcVar17 = debug_get_type_name(dhandle,pdVar18)" identifier = (call_expression "debug_get_type_name(dhandle,pdVar18)" identifier (argument_list "(dhandle,pdVar18)" ( identifier , identifier )))) ;) (if_statement "if (pcVar17 == (char *)0x0) {\n            pcVar17 = (char *)dcgettext(0,"unnamed $vb type",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar17 = "FOO";\n          }" if (parenthesized_expression "(pcVar17 == (char *)0x0)" ( (binary_expression "pcVar17 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            pcVar17 = (char *)dcgettext(0,"unnamed $vb type",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar17 = "FOO";\n          }" { (expression_statement "pcVar17 = (char *)dcgettext(0,"unnamed $vb type",5);" (assignment_expression "pcVar17 = (char *)dcgettext(0,"unnamed $vb type",5)" identifier = (cast_expression "(char *)dcgettext(0,"unnamed $vb type",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"unnamed $vb type",5)" identifier (argument_list "(0,"unnamed $vb type",5)" ( number_literal , (string_literal ""unnamed $vb type"" " string_content ") , number_literal ))))) ;) (expression_statement "warn_stab((char *)pbVar31,pcVar17);" (call_expression "warn_stab((char *)pbVar31,pcVar17)" identifier (argument_list "((char *)pbVar31,pcVar17)" ( (cast_expression "(char *)pbVar31" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "pcVar17 = "FOO";" (assignment_expression "pcVar17 = "FOO"" identifier = (string_literal ""FOO"" " string_content ")) ;) })) (expression_statement "pcVar17 = (char *)concat(&DAT_00146a0b,pcVar17,0);" (assignment_expression "pcVar17 = (char *)concat(&DAT_00146a0b,pcVar17,0)" identifier = (cast_expression "(char *)concat(&DAT_00146a0b,pcVar17,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "concat(&DAT_00146a0b,pcVar17,0)" identifier (argument_list "(&DAT_00146a0b,pcVar17,0)" ( (pointer_expression "&DAT_00146a0b" & identifier) , identifier , number_literal ))))) ;) }) (else_clause "else {\n          pcVar17 = "_vptr$";\n          if (cVar3 != 'f') {\n            pcVar16 = (char *)dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar17 = "INVALID_CPLUSPLUS_ABBREV";\n            warn_stab((char *)pbVar31,pcVar16);\n          }\n        }" else (compound_statement "{\n          pcVar17 = "_vptr$";\n          if (cVar3 != 'f') {\n            pcVar16 = (char *)dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar17 = "INVALID_CPLUSPLUS_ABBREV";\n            warn_stab((char *)pbVar31,pcVar16);\n          }\n        }" { (expression_statement "pcVar17 = "_vptr$";" (assignment_expression "pcVar17 = "_vptr$"" identifier = (string_literal ""_vptr$"" " string_content ")) ;) (if_statement "if (cVar3 != 'f') {\n            pcVar16 = (char *)dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar17 = "INVALID_CPLUSPLUS_ABBREV";\n            warn_stab((char *)pbVar31,pcVar16);\n          }" if (parenthesized_expression "(cVar3 != 'f')" ( (binary_expression "cVar3 != 'f'" identifier != (char_literal "'f'" ' character ')) )) (compound_statement "{\n            pcVar16 = (char *)dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar17 = "INVALID_CPLUSPLUS_ABBREV";\n            warn_stab((char *)pbVar31,pcVar16);\n          }" { (expression_statement "pcVar16 = (char *)dcgettext(0,"unrecognized C++ abbreviation",5);" (assignment_expression "pcVar16 = (char *)dcgettext(0,"unrecognized C++ abbreviation",5)" identifier = (cast_expression "(char *)dcgettext(0,"unrecognized C++ abbreviation",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"unrecognized C++ abbreviation",5)" identifier (argument_list "(0,"unrecognized C++ abbreviation",5)" ( number_literal , (string_literal ""unrecognized C++ abbreviation"" " string_content ") , number_literal ))))) ;) (expression_statement "pcVar17 = "INVALID_CPLUSPLUS_ABBREV";" (assignment_expression "pcVar17 = "INVALID_CPLUSPLUS_ABBREV"" identifier = (string_literal ""INVALID_CPLUSPLUS_ABBREV"" " string_content ")) ;) (expression_statement "warn_stab((char *)pbVar31,pcVar16);" (call_expression "warn_stab((char *)pbVar31,pcVar16)" identifier (argument_list "((char *)pbVar31,pcVar16)" ( (cast_expression "(char *)pbVar31" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) })) }))) (if_statement "if (**pp != ':') goto LAB_00132740;" if (parenthesized_expression "(**pp != ':')" ( (binary_expression "**pp != ':'" (pointer_expression "**pp" * (pointer_expression "*pp" * identifier)) != (char_literal "':'" ' character ')) )) (goto_statement "goto LAB_00132740;" goto statement_identifier ;)) (expression_statement "*pp = *pp + 1;" (assignment_expression "*pp = *pp + 1" (pointer_expression "*pp" * identifier) = (binary_expression "*pp + 1" (pointer_expression "*pp" * identifier) + number_literal)) ;) (expression_statement "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);" (assignment_expression "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier = (call_expression "parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier (argument_list "(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(debug_type_conflict **)0x0" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , identifier )))) ;) (if_statement "if (**pp != ',') goto LAB_00132740;" if (parenthesized_expression "(**pp != ',')" ( (binary_expression "**pp != ','" (pointer_expression "**pp" * (pointer_expression "*pp" * identifier)) != (char_literal "','" ' character ')) )) (goto_statement "goto LAB_00132740;" goto statement_identifier ;)) (expression_statement "*pp = *pp + 1;" (assignment_expression "*pp = *pp + 1" (pointer_expression "*pp" * identifier) = (binary_expression "*pp + 1" (pointer_expression "*pp" * identifier) + number_literal)) ;) (expression_statement "bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);" (assignment_expression "bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier = (call_expression "parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier (argument_list "(pp,(bfd_boolean *)0x0,p_end)" ( identifier , (cast_expression "(bfd_boolean *)0x0" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (if_statement "if (**pp != ';') goto LAB_00132740;" if (parenthesized_expression "(**pp != ';')" ( (binary_expression "**pp != ';'" (pointer_expression "**pp" * (pointer_expression "*pp" * identifier)) != (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_00132740;" goto statement_identifier ;)) (expression_statement "*pp = *pp + 1;" (assignment_expression "*pp = *pp + 1" (pointer_expression "*pp" * identifier) = (binary_expression "*pp + 1" (pointer_expression "*pp" * identifier) + number_literal)) ;) (expression_statement "pdVar15 = debug_make_field(dhandle,pcVar17,pdVar18,bVar13,0,DEBUG_VISIBILITY_PRIVATE);" (assignment_expression "pdVar15 = debug_make_field(dhandle,pcVar17,pdVar18,bVar13,0,DEBUG_VISIBILITY_PRIVATE)" identifier = (call_expression "debug_make_field(dhandle,pcVar17,pdVar18,bVar13,0,DEBUG_VISIBILITY_PRIVATE)" identifier (argument_list "(dhandle,pcVar17,pdVar18,bVar13,0,DEBUG_VISIBILITY_PRIVATE)" ( identifier , identifier , identifier , identifier , number_literal , identifier )))) ;) (expression_statement "local_130[uVar10] = pdVar15;" (assignment_expression "local_130[uVar10] = pdVar15" (subscript_expression "local_130[uVar10]" identifier [ identifier ]) = identifier) ;) (if_statement "if (pdVar15 == (debug_field)0x0) goto LAB_00131328;" if (parenthesized_expression "(pdVar15 == (debug_field)0x0)" ( (binary_expression "pdVar15 == (debug_field)0x0" identifier == (cast_expression "(debug_field)0x0" ( (type_descriptor "debug_field" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_00131328;" goto statement_identifier ;)) }) (else_clause "else {\n        pcVar17 = strchr((char *)pbVar31,0x3a);\n        if (pcVar17 == (char *)0x0) {\n          bad_stab((char *)pbVar40);\n          free(local_130);\n          return (debug_type)0x0;\n        }\n        pbVar31 = (byte *)*pp;\n        if (pcVar17[1] == ':') break;\n        if (p_end <= pbVar31) {\n          return (debug_type)0x0;\n        }\n        pcVar16 = savestring((char *)pbVar31,(int)pcVar17 - (int)pbVar31);\n        *pp = pcVar17 + 1;\n        if (pcVar17[1] == '/') {\n          pcVar25 = pcVar17 + 2;\n          *pp = pcVar25;\n          cVar3 = pcVar17[2];\n          if (cVar3 == '0') {\n            local_120 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (local_120 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00131b6d;\n            }\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for field",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar25 = *pp;\n            local_120 = DEBUG_VISIBILITY_PUBLIC;\n          }\nLAB_00131b6d:\n          *pp = pcVar25 + 1;\n        }\n        else {\n          local_120 = DEBUG_VISIBILITY_PUBLIC;\n        }\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (pdVar18 == (debug_type)0x0) {\n          free(pcVar16);\n          return (debug_type)0x0;\n        }\n        pcVar17 = *pp;\n        if (*pcVar17 == ':') {\n          pcVar17 = pcVar17 + 1;\n          *pp = pcVar17;\n          pcVar25 = strchr(pcVar17,0x3b);\n          if (pcVar25 == (char *)0x0) goto LAB_00132614;\n          pcVar17 = savestring(pcVar17,(int)pcVar25 - (int)pcVar17);\n          *pp = pcVar25 + 1;\n          pdVar15 = debug_make_static_member(dhandle,pcVar16,pdVar18,pcVar17,local_120);\n          bVar43 = true;\n          local_130[uVar10] = pdVar15;\n        }\n        else {\n          if (*pcVar17 != ',') {\nLAB_00132614:\n            bad_stab((char *)pbVar31);\n            free(pcVar16);\n            return (debug_type)0x0;\n          }\n          *pp = pcVar17 + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132614;\n          *pp = *pp + 1;\n          bVar14 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ';') goto LAB_00132614;\n          *pp = *pp + 1;\n          dVar36 = DEBUG_VISIBILITY_IGNORE;\n          if (bVar13 != 0 || bVar14 != 0) {\n            dVar36 = local_120;\n          }\n          pdVar15 = debug_make_field(dhandle,pcVar16,pdVar18,bVar13,bVar14,dVar36);\n          local_130[uVar10] = pdVar15;\n        }\n      }" else (compound_statement "{\n        pcVar17 = strchr((char *)pbVar31,0x3a);\n        if (pcVar17 == (char *)0x0) {\n          bad_stab((char *)pbVar40);\n          free(local_130);\n          return (debug_type)0x0;\n        }\n        pbVar31 = (byte *)*pp;\n        if (pcVar17[1] == ':') break;\n        if (p_end <= pbVar31) {\n          return (debug_type)0x0;\n        }\n        pcVar16 = savestring((char *)pbVar31,(int)pcVar17 - (int)pbVar31);\n        *pp = pcVar17 + 1;\n        if (pcVar17[1] == '/') {\n          pcVar25 = pcVar17 + 2;\n          *pp = pcVar25;\n          cVar3 = pcVar17[2];\n          if (cVar3 == '0') {\n            local_120 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (local_120 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00131b6d;\n            }\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for field",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar25 = *pp;\n            local_120 = DEBUG_VISIBILITY_PUBLIC;\n          }\nLAB_00131b6d:\n          *pp = pcVar25 + 1;\n        }\n        else {\n          local_120 = DEBUG_VISIBILITY_PUBLIC;\n        }\n        pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        if (pdVar18 == (debug_type)0x0) {\n          free(pcVar16);\n          return (debug_type)0x0;\n        }\n        pcVar17 = *pp;\n        if (*pcVar17 == ':') {\n          pcVar17 = pcVar17 + 1;\n          *pp = pcVar17;\n          pcVar25 = strchr(pcVar17,0x3b);\n          if (pcVar25 == (char *)0x0) goto LAB_00132614;\n          pcVar17 = savestring(pcVar17,(int)pcVar25 - (int)pcVar17);\n          *pp = pcVar25 + 1;\n          pdVar15 = debug_make_static_member(dhandle,pcVar16,pdVar18,pcVar17,local_120);\n          bVar43 = true;\n          local_130[uVar10] = pdVar15;\n        }\n        else {\n          if (*pcVar17 != ',') {\nLAB_00132614:\n            bad_stab((char *)pbVar31);\n            free(pcVar16);\n            return (debug_type)0x0;\n          }\n          *pp = pcVar17 + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132614;\n          *pp = *pp + 1;\n          bVar14 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ';') goto LAB_00132614;\n          *pp = *pp + 1;\n          dVar36 = DEBUG_VISIBILITY_IGNORE;\n          if (bVar13 != 0 || bVar14 != 0) {\n            dVar36 = local_120;\n          }\n          pdVar15 = debug_make_field(dhandle,pcVar16,pdVar18,bVar13,bVar14,dVar36);\n          local_130[uVar10] = pdVar15;\n        }\n      }" { (expression_statement "pcVar17 = strchr((char *)pbVar31,0x3a);" (assignment_expression "pcVar17 = strchr((char *)pbVar31,0x3a)" identifier = (call_expression "strchr((char *)pbVar31,0x3a)" identifier (argument_list "((char *)pbVar31,0x3a)" ( (cast_expression "(char *)pbVar31" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar17 == (char *)0x0) {\n          bad_stab((char *)pbVar40);\n          free(local_130);\n          return (debug_type)0x0;\n        }" if (parenthesized_expression "(pcVar17 == (char *)0x0)" ( (binary_expression "pcVar17 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          bad_stab((char *)pbVar40);\n          free(local_130);\n          return (debug_type)0x0;\n        }" { (expression_statement "bad_stab((char *)pbVar40);" (call_expression "bad_stab((char *)pbVar40)" identifier (argument_list "((char *)pbVar40)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "free(local_130);" (call_expression "free(local_130)" identifier (argument_list "(local_130)" ( identifier ))) ;) (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "pbVar31 = (byte *)*pp;" (assignment_expression "pbVar31 = (byte *)*pp" identifier = (cast_expression "(byte *)*pp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp" * identifier))) ;) (if_statement "if (pcVar17[1] == ':') break;" if (parenthesized_expression "(pcVar17[1] == ':')" ( (binary_expression "pcVar17[1] == ':'" (subscript_expression "pcVar17[1]" identifier [ number_literal ]) == (char_literal "':'" ' character ')) )) (break_statement "break;" break ;)) (if_statement "if (p_end <= pbVar31) {\n          return (debug_type)0x0;\n        }" if (parenthesized_expression "(p_end <= pbVar31)" ( (binary_expression "p_end <= pbVar31" identifier <= identifier) )) (compound_statement "{\n          return (debug_type)0x0;\n        }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "pcVar16 = savestring((char *)pbVar31,(int)pcVar17 - (int)pbVar31);" (assignment_expression "pcVar16 = savestring((char *)pbVar31,(int)pcVar17 - (int)pbVar31)" identifier = (call_expression "savestring((char *)pbVar31,(int)pcVar17 - (int)pbVar31)" identifier (argument_list "((char *)pbVar31,(int)pcVar17 - (int)pbVar31)" ( (cast_expression "(char *)pbVar31" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "(int)pcVar17 - (int)pbVar31" (cast_expression "(int)pcVar17" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar31" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*pp = pcVar17 + 1;" (assignment_expression "*pp = pcVar17 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (if_statement "if (pcVar17[1] == '/') {\n          pcVar25 = pcVar17 + 2;\n          *pp = pcVar25;\n          cVar3 = pcVar17[2];\n          if (cVar3 == '0') {\n            local_120 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (local_120 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00131b6d;\n            }\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for field",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar25 = *pp;\n            local_120 = DEBUG_VISIBILITY_PUBLIC;\n          }\nLAB_00131b6d:\n          *pp = pcVar25 + 1;\n        }\n        else {\n          local_120 = DEBUG_VISIBILITY_PUBLIC;\n        }" if (parenthesized_expression "(pcVar17[1] == '/')" ( (binary_expression "pcVar17[1] == '/'" (subscript_expression "pcVar17[1]" identifier [ number_literal ]) == (char_literal "'/'" ' character ')) )) (compound_statement "{\n          pcVar25 = pcVar17 + 2;\n          *pp = pcVar25;\n          cVar3 = pcVar17[2];\n          if (cVar3 == '0') {\n            local_120 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (local_120 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00131b6d;\n            }\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for field",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar25 = *pp;\n            local_120 = DEBUG_VISIBILITY_PUBLIC;\n          }\nLAB_00131b6d:\n          *pp = pcVar25 + 1;\n        }" { (expression_statement "pcVar25 = pcVar17 + 2;" (assignment_expression "pcVar25 = pcVar17 + 2" identifier = (binary_expression "pcVar17 + 2" identifier + number_literal)) ;) (expression_statement "*pp = pcVar25;" (assignment_expression "*pp = pcVar25" (pointer_expression "*pp" * identifier) = identifier) ;) (expression_statement "cVar3 = pcVar17[2];" (assignment_expression "cVar3 = pcVar17[2]" identifier = (subscript_expression "pcVar17[2]" identifier [ number_literal ])) ;) (if_statement "if (cVar3 == '0') {\n            local_120 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (local_120 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00131b6d;\n            }\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for field",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar25 = *pp;\n            local_120 = DEBUG_VISIBILITY_PUBLIC;\n          }" if (parenthesized_expression "(cVar3 == '0')" ( (binary_expression "cVar3 == '0'" identifier == (char_literal "'0'" ' character ')) )) (compound_statement "{\n            local_120 = DEBUG_VISIBILITY_PRIVATE;\n          }" { (expression_statement "local_120 = DEBUG_VISIBILITY_PRIVATE;" (assignment_expression "local_120 = DEBUG_VISIBILITY_PRIVATE" identifier = identifier) ;) }) (else_clause "else {\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (local_120 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00131b6d;\n            }\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for field",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar25 = *pp;\n            local_120 = DEBUG_VISIBILITY_PUBLIC;\n          }" else (compound_statement "{\n            if (cVar3 < '1') {\n              if (cVar3 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (local_120 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00131b6d;\n            }\n            pcVar17 = (char *)dcgettext(0,"unknown visibility character for field",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar25 = *pp;\n            local_120 = DEBUG_VISIBILITY_PUBLIC;\n          }" { (if_statement "if (cVar3 < '1') {\n              if (cVar3 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (local_120 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00131b6d;\n            }" if (parenthesized_expression "(cVar3 < '1')" ( (binary_expression "cVar3 < '1'" identifier < (char_literal "'1'" ' character ')) )) (compound_statement "{\n              if (cVar3 == '\0') goto switchD_001311d2_caseD_24;\n            }" { (if_statement "if (cVar3 == '\0') goto switchD_001311d2_caseD_24;" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;)) }) (else_clause "else {\n              local_120 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (local_120 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00131b6d;\n            }" else (compound_statement "{\n              local_120 = DEBUG_VISIBILITY_PROTECTED;\n              if ((cVar3 == '1') || (local_120 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00131b6d;\n            }" { (expression_statement "local_120 = DEBUG_VISIBILITY_PROTECTED;" (assignment_expression "local_120 = DEBUG_VISIBILITY_PROTECTED" identifier = identifier) ;) (if_statement "if ((cVar3 == '1') || (local_120 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))\n              goto LAB_00131b6d;" if (parenthesized_expression "((cVar3 == '1') || (local_120 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'))" ( (binary_expression "(cVar3 == '1') || (local_120 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2')" (parenthesized_expression "(cVar3 == '1')" ( (binary_expression "cVar3 == '1'" identifier == (char_literal "'1'" ' character ')) )) || (parenthesized_expression "(local_120 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2')" ( (comma_expression "local_120 = DEBUG_VISIBILITY_PUBLIC, cVar3 == '2'" (assignment_expression "local_120 = DEBUG_VISIBILITY_PUBLIC" identifier = identifier) , (binary_expression "cVar3 == '2'" identifier == (char_literal "'2'" ' character '))) ))) )) (goto_statement "goto LAB_00131b6d;" goto statement_identifier ;)) }))) (expression_statement "pcVar17 = (char *)dcgettext(0,"unknown visibility character for field",5);" (assignment_expression "pcVar17 = (char *)dcgettext(0,"unknown visibility character for field",5)" identifier = (cast_expression "(char *)dcgettext(0,"unknown visibility character for field",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"unknown visibility character for field",5)" identifier (argument_list "(0,"unknown visibility character for field",5)" ( number_literal , (string_literal ""unknown visibility character for field"" " string_content ") , number_literal ))))) ;) (expression_statement "warn_stab((char *)pbVar31,pcVar17);" (call_expression "warn_stab((char *)pbVar31,pcVar17)" identifier (argument_list "((char *)pbVar31,pcVar17)" ( (cast_expression "(char *)pbVar31" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "pcVar25 = *pp;" (assignment_expression "pcVar25 = *pp" identifier = (pointer_expression "*pp" * identifier)) ;) (expression_statement "local_120 = DEBUG_VISIBILITY_PUBLIC;" (assignment_expression "local_120 = DEBUG_VISIBILITY_PUBLIC" identifier = identifier) ;) }))) (labeled_statement "LAB_00131b6d:\n          *pp = pcVar25 + 1;" statement_identifier : (expression_statement "*pp = pcVar25 + 1;" (assignment_expression "*pp = pcVar25 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar25 + 1" identifier + number_literal)) ;)) }) (else_clause "else {\n          local_120 = DEBUG_VISIBILITY_PUBLIC;\n        }" else (compound_statement "{\n          local_120 = DEBUG_VISIBILITY_PUBLIC;\n        }" { (expression_statement "local_120 = DEBUG_VISIBILITY_PUBLIC;" (assignment_expression "local_120 = DEBUG_VISIBILITY_PUBLIC" identifier = identifier) ;) }))) (expression_statement "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);" (assignment_expression "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier = (call_expression "parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier (argument_list "(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(debug_type_conflict **)0x0" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , identifier )))) ;) (if_statement "if (pdVar18 == (debug_type)0x0) {\n          free(pcVar16);\n          return (debug_type)0x0;\n        }" if (parenthesized_expression "(pdVar18 == (debug_type)0x0)" ( (binary_expression "pdVar18 == (debug_type)0x0" identifier == (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (compound_statement "{\n          free(pcVar16);\n          return (debug_type)0x0;\n        }" { (expression_statement "free(pcVar16);" (call_expression "free(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "pcVar17 = *pp;" (assignment_expression "pcVar17 = *pp" identifier = (pointer_expression "*pp" * identifier)) ;) (if_statement "if (*pcVar17 == ':') {\n          pcVar17 = pcVar17 + 1;\n          *pp = pcVar17;\n          pcVar25 = strchr(pcVar17,0x3b);\n          if (pcVar25 == (char *)0x0) goto LAB_00132614;\n          pcVar17 = savestring(pcVar17,(int)pcVar25 - (int)pcVar17);\n          *pp = pcVar25 + 1;\n          pdVar15 = debug_make_static_member(dhandle,pcVar16,pdVar18,pcVar17,local_120);\n          bVar43 = true;\n          local_130[uVar10] = pdVar15;\n        }\n        else {\n          if (*pcVar17 != ',') {\nLAB_00132614:\n            bad_stab((char *)pbVar31);\n            free(pcVar16);\n            return (debug_type)0x0;\n          }\n          *pp = pcVar17 + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132614;\n          *pp = *pp + 1;\n          bVar14 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ';') goto LAB_00132614;\n          *pp = *pp + 1;\n          dVar36 = DEBUG_VISIBILITY_IGNORE;\n          if (bVar13 != 0 || bVar14 != 0) {\n            dVar36 = local_120;\n          }\n          pdVar15 = debug_make_field(dhandle,pcVar16,pdVar18,bVar13,bVar14,dVar36);\n          local_130[uVar10] = pdVar15;\n        }" if (parenthesized_expression "(*pcVar17 == ':')" ( (binary_expression "*pcVar17 == ':'" (pointer_expression "*pcVar17" * identifier) == (char_literal "':'" ' character ')) )) (compound_statement "{\n          pcVar17 = pcVar17 + 1;\n          *pp = pcVar17;\n          pcVar25 = strchr(pcVar17,0x3b);\n          if (pcVar25 == (char *)0x0) goto LAB_00132614;\n          pcVar17 = savestring(pcVar17,(int)pcVar25 - (int)pcVar17);\n          *pp = pcVar25 + 1;\n          pdVar15 = debug_make_static_member(dhandle,pcVar16,pdVar18,pcVar17,local_120);\n          bVar43 = true;\n          local_130[uVar10] = pdVar15;\n        }" { (expression_statement "pcVar17 = pcVar17 + 1;" (assignment_expression "pcVar17 = pcVar17 + 1" identifier = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (expression_statement "*pp = pcVar17;" (assignment_expression "*pp = pcVar17" (pointer_expression "*pp" * identifier) = identifier) ;) (expression_statement "pcVar25 = strchr(pcVar17,0x3b);" (assignment_expression "pcVar25 = strchr(pcVar17,0x3b)" identifier = (call_expression "strchr(pcVar17,0x3b)" identifier (argument_list "(pcVar17,0x3b)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar25 == (char *)0x0) goto LAB_00132614;" if (parenthesized_expression "(pcVar25 == (char *)0x0)" ( (binary_expression "pcVar25 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00132614;" goto statement_identifier ;)) (expression_statement "pcVar17 = savestring(pcVar17,(int)pcVar25 - (int)pcVar17);" (assignment_expression "pcVar17 = savestring(pcVar17,(int)pcVar25 - (int)pcVar17)" identifier = (call_expression "savestring(pcVar17,(int)pcVar25 - (int)pcVar17)" identifier (argument_list "(pcVar17,(int)pcVar25 - (int)pcVar17)" ( identifier , (binary_expression "(int)pcVar25 - (int)pcVar17" (cast_expression "(int)pcVar25" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*pp = pcVar25 + 1;" (assignment_expression "*pp = pcVar25 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar25 + 1" identifier + number_literal)) ;) (expression_statement "pdVar15 = debug_make_static_member(dhandle,pcVar16,pdVar18,pcVar17,local_120);" (assignment_expression "pdVar15 = debug_make_static_member(dhandle,pcVar16,pdVar18,pcVar17,local_120)" identifier = (call_expression "debug_make_static_member(dhandle,pcVar16,pdVar18,pcVar17,local_120)" identifier (argument_list "(dhandle,pcVar16,pdVar18,pcVar17,local_120)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "bVar43 = true;" (assignment_expression "bVar43 = true" identifier = true) ;) (expression_statement "local_130[uVar10] = pdVar15;" (assignment_expression "local_130[uVar10] = pdVar15" (subscript_expression "local_130[uVar10]" identifier [ identifier ]) = identifier) ;) }) (else_clause "else {\n          if (*pcVar17 != ',') {\nLAB_00132614:\n            bad_stab((char *)pbVar31);\n            free(pcVar16);\n            return (debug_type)0x0;\n          }\n          *pp = pcVar17 + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132614;\n          *pp = *pp + 1;\n          bVar14 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ';') goto LAB_00132614;\n          *pp = *pp + 1;\n          dVar36 = DEBUG_VISIBILITY_IGNORE;\n          if (bVar13 != 0 || bVar14 != 0) {\n            dVar36 = local_120;\n          }\n          pdVar15 = debug_make_field(dhandle,pcVar16,pdVar18,bVar13,bVar14,dVar36);\n          local_130[uVar10] = pdVar15;\n        }" else (compound_statement "{\n          if (*pcVar17 != ',') {\nLAB_00132614:\n            bad_stab((char *)pbVar31);\n            free(pcVar16);\n            return (debug_type)0x0;\n          }\n          *pp = pcVar17 + 1;\n          bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ',') goto LAB_00132614;\n          *pp = *pp + 1;\n          bVar14 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n          if (**pp != ';') goto LAB_00132614;\n          *pp = *pp + 1;\n          dVar36 = DEBUG_VISIBILITY_IGNORE;\n          if (bVar13 != 0 || bVar14 != 0) {\n            dVar36 = local_120;\n          }\n          pdVar15 = debug_make_field(dhandle,pcVar16,pdVar18,bVar13,bVar14,dVar36);\n          local_130[uVar10] = pdVar15;\n        }" { (if_statement "if (*pcVar17 != ',') {\nLAB_00132614:\n            bad_stab((char *)pbVar31);\n            free(pcVar16);\n            return (debug_type)0x0;\n          }" if (parenthesized_expression "(*pcVar17 != ',')" ( (binary_expression "*pcVar17 != ','" (pointer_expression "*pcVar17" * identifier) != (char_literal "','" ' character ')) )) (compound_statement "{\nLAB_00132614:\n            bad_stab((char *)pbVar31);\n            free(pcVar16);\n            return (debug_type)0x0;\n          }" { (labeled_statement "LAB_00132614:\n            bad_stab((char *)pbVar31);" statement_identifier : (expression_statement "bad_stab((char *)pbVar31);" (call_expression "bad_stab((char *)pbVar31)" identifier (argument_list "((char *)pbVar31)" ( (cast_expression "(char *)pbVar31" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (expression_statement "free(pcVar16);" (call_expression "free(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "*pp = pcVar17 + 1;" (assignment_expression "*pp = pcVar17 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (expression_statement "bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);" (assignment_expression "bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier = (call_expression "parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier (argument_list "(pp,(bfd_boolean *)0x0,p_end)" ( identifier , (cast_expression "(bfd_boolean *)0x0" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (if_statement "if (**pp != ',') goto LAB_00132614;" if (parenthesized_expression "(**pp != ',')" ( (binary_expression "**pp != ','" (pointer_expression "**pp" * (pointer_expression "*pp" * identifier)) != (char_literal "','" ' character ')) )) (goto_statement "goto LAB_00132614;" goto statement_identifier ;)) (expression_statement "*pp = *pp + 1;" (assignment_expression "*pp = *pp + 1" (pointer_expression "*pp" * identifier) = (binary_expression "*pp + 1" (pointer_expression "*pp" * identifier) + number_literal)) ;) (expression_statement "bVar14 = parse_number(pp,(bfd_boolean *)0x0,p_end);" (assignment_expression "bVar14 = parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier = (call_expression "parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier (argument_list "(pp,(bfd_boolean *)0x0,p_end)" ( identifier , (cast_expression "(bfd_boolean *)0x0" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (if_statement "if (**pp != ';') goto LAB_00132614;" if (parenthesized_expression "(**pp != ';')" ( (binary_expression "**pp != ';'" (pointer_expression "**pp" * (pointer_expression "*pp" * identifier)) != (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_00132614;" goto statement_identifier ;)) (expression_statement "*pp = *pp + 1;" (assignment_expression "*pp = *pp + 1" (pointer_expression "*pp" * identifier) = (binary_expression "*pp + 1" (pointer_expression "*pp" * identifier) + number_literal)) ;) (expression_statement "dVar36 = DEBUG_VISIBILITY_IGNORE;" (assignment_expression "dVar36 = DEBUG_VISIBILITY_IGNORE" identifier = identifier) ;) (if_statement "if (bVar13 != 0 || bVar14 != 0) {\n            dVar36 = local_120;\n          }" if (parenthesized_expression "(bVar13 != 0 || bVar14 != 0)" ( (binary_expression "bVar13 != 0 || bVar14 != 0" (binary_expression "bVar13 != 0" identifier != number_literal) || (binary_expression "bVar14 != 0" identifier != number_literal)) )) (compound_statement "{\n            dVar36 = local_120;\n          }" { (expression_statement "dVar36 = local_120;" (assignment_expression "dVar36 = local_120" identifier = identifier) ;) })) (expression_statement "pdVar15 = debug_make_field(dhandle,pcVar16,pdVar18,bVar13,bVar14,dVar36);" (assignment_expression "pdVar15 = debug_make_field(dhandle,pcVar16,pdVar18,bVar13,bVar14,dVar36)" identifier = (call_expression "debug_make_field(dhandle,pcVar16,pdVar18,bVar13,bVar14,dVar36)" identifier (argument_list "(dhandle,pcVar16,pdVar18,bVar13,bVar14,dVar36)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "local_130[uVar10] = pdVar15;" (assignment_expression "local_130[uVar10] = pdVar15" (subscript_expression "local_130[uVar10]" identifier [ identifier ]) = identifier) ;) }))) }))) (expression_statement "pbVar31 = (byte *)*pp;" (assignment_expression "pbVar31 = (byte *)*pp" identifier = (cast_expression "(byte *)*pp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp" * identifier))) ;) (expression_statement "uVar10 = (ulong)uVar39;" (assignment_expression "uVar10 = (ulong)uVar39" identifier = (cast_expression "(ulong)uVar39" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "bVar2 = *pbVar31;" (assignment_expression "bVar2 = *pbVar31" identifier = (pointer_expression "*pbVar31" * identifier)) ;) })) (expression_statement "local_130[uVar10] = (debug_field)0x0;" (assignment_expression "local_130[uVar10] = (debug_field)0x0" (subscript_expression "local_130[uVar10]" identifier [ identifier ]) = (cast_expression "(debug_field)0x0" ( (type_descriptor "debug_field" type_identifier) ) number_literal)) ;) (if_statement "if (p_end <= pbVar31) goto LAB_00131328;" if (parenthesized_expression "(p_end <= pbVar31)" ( (binary_expression "p_end <= pbVar31" identifier <= identifier) )) (goto_statement "goto LAB_00131328;" goto statement_identifier ;)) (expression_statement "bVar2 = *pbVar31;" (assignment_expression "bVar2 = *pbVar31" identifier = (pointer_expression "*pbVar31" * identifier)) ;) (if_statement "if (bVar2 == 0x3b) {\n      local_108 = (debug_method *)0x0;\nLAB_001334bc:\n      pbVar26 = pbVar31 + 1;\n      *pp = (char *)pbVar26;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (debug_method_variant *)0x0;\n      local_108 = (debug_method *)0x0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar26 = pbVar31;\n      do {\n        pcVar17 = strchr((char *)pbVar26,0x3a);\n        if ((pcVar17 == (char *)0x0) || (pcVar17[1] != ':')) break;\n        pcVar16 = pcVar17 + 2;\n        if ((bVar2 == 0x6f) && ((pbVar26[1] == 0x70 && (pbVar26[2] == 0x24)))) {\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          pcVar17 = pcVar16;\n          while ((cVar3 != '.' && (cVar3 != '\0'))) {\n            pcVar17 = pcVar17 + 1;\n            cVar3 = *pcVar17;\n          }\n          if (cVar3 != '.') {\n            bad_stab((char *)pbVar31);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (debug_method_variant *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = savestring(pcVar16,(int)pcVar17 - (int)pcVar16);\n          *pp = pcVar17 + 1;\n        }\n        else {\n          local_138 = savestring((char *)pbVar26,(int)pcVar17 - (int)pbVar26);\n          *pp = pcVar16;\n        }\n        local_128 = (debug_method_variant *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        pdVar18 = (debug_type)0x0;\n        do {\n          if (pdVar18 == (debug_type)0x0) {\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 != (debug_type)0x0) {\n              pcVar17 = *pp;\n              if (*pcVar17 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar17 = *pp;\nLAB_00131d3f:\n          *pp = pcVar17 + 1;\n          pcVar17 = strchr(pcVar17 + 1,0x3b);\n          if (pcVar17 == (char *)0x0) {\nLAB_00132781:\n            bad_stab((char *)pbVar31);\n            goto LAB_00132793;\n          }\n          dVar6 = debug_get_type_kind(dhandle,pdVar18);\n          bVar41 = false;\n          if (dVar6 == DEBUG_KIND_METHOD) {\n            ppdVar9 = debug_get_parameter_types(dhandle,pdVar18,&varargs);\n            bVar41 = ppdVar9 == (debug_type_conflict *)0x0;\n          }\n          pbVar40 = (byte *)savestring(*pp,(int)pcVar17 - (int)*pp);\n          *pp = pcVar17 + 1;\n          cVar3 = pcVar17[1];\n          if (cVar3 == '0') {\n            local_e4 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else if (cVar3 == '1') {\n            local_e4 = DEBUG_VISIBILITY_PROTECTED;\n          }\n          else {\n            if (cVar3 == '\0') goto LAB_00132781;\n            local_e4 = DEBUG_VISIBILITY_PUBLIC;\n          }\n          pcVar16 = pcVar17 + 2;\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          switch(cVar3) {\n          case '*':\n          case '.':\n          case '?':\n            local_118 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            pcVar17 = (char *)dcgettext(0,"const/volatile indicator missing",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar16 = *pp;\n            local_118 = 0;\n            local_f0 = 0;\n            cVar3 = *pcVar16;\n            break;\n          case 'A':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            local_f0 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n          }\n          pbVar26 = pbVar40;\n          if (cVar3 == '.') {\n            bVar44 = false;\n            pdVar19 = (debug_type)0x0;\n            *pp = pcVar16 + 1;\n            local_100 = (debug_type)0x0;\n            local_e0 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar3 != '?') {\n              if (cVar3 == '*') {\n                *pp = pcVar16 + 1;\n                bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n                pcVar17 = *pp;\n                if (*pcVar17 != ';') goto LAB_00132781;\n                local_e0 = (ulong)((uint)bVar13 & 0x7fffffff);\n                *pp = pcVar17 + 1;\n                if ((pcVar17[1] == ';') || (pcVar17[1] == '\0')) {\n                  local_100 = (debug_type)0x0;\n                  pdVar19 = (debug_type)0x0;\n                  bVar44 = false;\n                }\n                else {\n                  pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end);\n                  cVar3 = **pp;\n                  if (cVar3 == ':') {\n                    local_100 = (debug_type)0x0;\n                    bVar44 = false;\n                    pdVar19 = pdVar23;\n                  }\n                  else {\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }\n                }\n              }\n              else {\n                warn_stab((char *)pbVar31,"member function type missing");\n                bVar44 = false;\n                local_100 = (debug_type)0x0;\n                local_e0 = 0;\n                pdVar19 = (debug_type)0x0;\n              }\n              goto LAB_001322ba;\n            }\n            *pp = pcVar16 + 1;\n            sVar32 = strlen(local_138);\n            iVar7 = strncmp((char *)pbVar40,local_138,sVar32);\n            if (iVar7 == 0) {\n              local_100 = (debug_type)0x0;\n              pdVar19 = (debug_type)0x0;\n              local_e0 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = (debug_type)0x0;\n            pdVar19 = (debug_type)0x0;\n            local_e0 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            pdVar23 = stab_find_type(dhandle,info,typenums);\n            if (pdVar23 == (debug_type)0x0) goto LAB_00132793;\n            pdVar20 = debug_get_return_type(dhandle,pdVar18);\n            if (pdVar20 == (debug_type_conflict)0x0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar7 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar7 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (type_name != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar2 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) && (bVar2 != 0x51 && bVar2 != 0x74))\n                 && (iVar7 = strncmp((char *)pbVar40,"__ct",4), iVar7 != 0)) {\n                if (type_name != (char *)0x0) {\nLAB_001338f6:\n                  iVar7 = strcmp(local_138,type_name);\n                  bVar45 = iVar7 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar40;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\nLAB_0013360b:\n              pcVar16 = p;\n              local_40 = 0;\n              pcVar17 = p;\n              do {\n                pcVar25 = strchr(pcVar17,0x5f);\n                if (pcVar25 == (char *)0x0) goto LAB_00133635;\n                pcVar17 = pcVar25 + 1;\n              } while (pcVar25[1] != '_');\n              if (pcVar17 != (char *)0x0) {\n                sVar32 = strspn(pcVar25,"_");\n                if (2 < (uint)sVar32) {\n                  pcVar25 = pcVar25 + ((uint)sVar32 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              stab_bad_demangle(pcVar16);\nLAB_0013323f:\n              if (local_48 != (stab_demangle_typestring *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a76;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar41 = *pbVar34 < *pbVar35;\n              bVar45 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (type_name == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar7 = strcmp(local_138,type_name);\n              bVar45 = iVar7 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a4b;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar42 = *pbVar34 < *pbVar35;\n              bVar46 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              arg_types = (stab_demangle_typestring *)xmalloc(8);\n              arg_types->typestring = (char *)0x0;\n              bVar4 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (type_name != (char *)0x0) {\n                sVar32 = strlen(type_name);\n                local_d8 = sVar32 & 0xffffffff;\n              }\n              pcVar16 = "C";\n              pcVar17 = "V";\n              if (local_f0 == 0) {\n                pcVar16 = "";\n              }\n              if (local_118 == 0) {\n                pcVar17 = "";\n              }\n              local_c0 = type_name;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)xtypenums,"__%s%s");\n              }\n              else if ((type_name == (char *)0x0) ||\n                      (pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0)) {\n                sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8);\n              }\n              else {\n                sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)xtypenums;\n              do {\n                puVar29 = puVar30;\n                uVar8 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar39 = uVar8 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar39 == 0);\n              bVar41 = (uVar8 & 0x8080) == 0;\n              if (bVar41) {\n                uVar39 = uVar39 >> 0x10;\n              }\n              cVar3 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar7 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar39,(byte)uVar39)) -\n                      (int)xtypenums;\n              sVar32 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar7 = iVar7 + (int)local_d8 + 1 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar26 = (byte *)xmalloc(iVar7);\n                *pbVar26 = 0;\n              }\n              else {\n                lVar11 = -1;\n                pcVar17 = local_138;\n                do {\n                  if (lVar11 == 0) break;\n                  lVar11 = lVar11 + -1;\n                  cVar1 = *pcVar17;\n                  pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar7 = ((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar17 == (char *)0x0) {\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar11 = -1;\n                  pcVar16 = pcVar17;\n                  do {\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar3 != '\0');\n                  pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);\n                  strncpy((char *)pbVar26,local_138,3);\n                  strcpy((char *)(pbVar26 + 3),pcVar17);\n                }\n                else {\n                  pbVar26 = (byte *)xmalloc(iVar7);\n                  strcpy((char *)pbVar26,local_138);\n                }\n              }\n              sVar32 = strlen((char *)pbVar26);\n              local_d8 = sVar32 & 0xffffffff;\n              pcVar17 = stpcpy((char *)(pbVar26 + sVar32),(char *)xtypenums);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar17,local_c0);\n              }\n              strcat((char *)pbVar26,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar26 == 0x5f) && (pbVar26[1] == 0x5a)) {\nLAB_00133b71:\n                p = (char *)pbVar26;\n                pdVar27 = cplus_demangle_v3_components((char *)pbVar26,3,(void **)xtypenums);\n                if (pdVar27 == (demangle_component *)0x0) {\n                  stab_bad_demangle((char *)pbVar26);\n                }\n                else {\n                  if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }\n                  pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar17);\n                  free((void *)xtypenums);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar26;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pcVar25 = p + local_d8;\n              pcVar16 = p;\nLAB_001330d0:\n              bVar2 = pcVar25[2];\n              if (pcVar16 == pcVar25) {\n                if (((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) &&\n                   (pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74)) {\n                  for (; *pcVar17 == '_'; pcVar17 = pcVar17 + 1) {\n                  }\n                  pcVar17 = strstr(pcVar17,"__");\n                  if ((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')) {\n                    stab_bad_demangle(pcVar25);\n                    goto LAB_0013323f;\n                  }\n                  iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17);\n                  goto LAB_001330fd;\n                }\n                p = pcVar25 + 2;\n              }\n              else {\n                if (bVar2 == 0) goto LAB_00133635;\n                iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25);\nLAB_001330fd:\n                if (iVar7 == 0) goto LAB_0013323f;\n              }\n              pcVar17 = p;\n              cVar3 = *p;\n              if (cVar3 != '\0') {\n                pcVar16 = (char *)0x0;\n                bVar41 = false;\n                pstart = (char **)0x0;\n                do {\n                  pcVar25 = p;\n                  switch(cVar3) {\n                  case '0':\n                  case '1':\n                  case '2':\n                  case '3':\n                  case '4':\n                  case '5':\n                  case '6':\n                  case '7':\n                  case '8':\n                  case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;\n                  default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'C':\n                  case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;\n                  case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;\n                  case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar41) {\nLAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    pstart = (char **)0x1;\n                  }\n                  cVar3 = *p;\n                } while (cVar3 != '\0');\n                if (((int)pstart == 0) &&\n                   (bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (stab_demangle_typestring *)0x0;\n              if (local_58 == (stab_demangle_typestring *)0x0) {\n                pcVar17 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar17);\n              }\n              varargs_1 = local_50[0];\n              arg_types = local_58;\nLAB_00133211:\n              bVar4 = varargs_1;\n              if (arg_types == (stab_demangle_typestring *)0x0) goto LAB_00132793;\n            }\n            pdVar18 = debug_make_method_type\n                                (dhandle,pdVar20,pdVar23,(debug_type_conflict *)arg_types,bVar4);\n            if (pdVar18 == (debug_type_conflict)0x0) goto LAB_00132793;\n          }\n          uVar39 = local_ec + 1;\n          if (local_e8 <= uVar39) {\n            local_e8 = local_e8 + 10;\n            local_128 = (debug_method_variant *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          if (bVar44) {\n            pdVar21 = debug_make_static_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118);\n            local_128[local_ec] = pdVar21;\n          }\n          else {\n            pdVar21 = debug_make_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118,\n                                 local_e0,local_100);\n            local_128[local_ec] = pdVar21;\n          }\n          if (pdVar21 == (debug_method_variant)0x0) goto LAB_00132793;\n          pcVar17 = *pp;\n        } while ((*pcVar17 != ';') && (pdVar18 = pdVar19, local_ec = uVar39, *pcVar17 != '\0'));\n        local_128[uVar39] = (debug_method_variant)0x0;\n        if (*pcVar17 != '\0') {\n          *pp = pcVar17 + 1;\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = (debug_method *)xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        pdVar22 = debug_make_method(dhandle,local_138,local_128);\n        local_108[local_c8] = pdVar22;\n        pbVar26 = (byte *)*pp;\n        bVar2 = *pbVar26;\n        local_c8 = uVar39;\n      } while (bVar2 != 0x3b);\n      if (local_108 != (debug_method *)0x0) {\n        local_108[local_c8] = (debug_method)0x0;\n      }\n      if (p_end <= pbVar26) goto LAB_00131328;\n      pbVar31 = pbVar26;\n      if (*pbVar26 == 0x3b) goto LAB_001334bc;\n    }" if (parenthesized_expression "(bVar2 == 0x3b)" ( (binary_expression "bVar2 == 0x3b" identifier == number_literal) )) (compound_statement "{\n      local_108 = (debug_method *)0x0;\nLAB_001334bc:\n      pbVar26 = pbVar31 + 1;\n      *pp = (char *)pbVar26;\n    }" { (expression_statement "local_108 = (debug_method *)0x0;" (assignment_expression "local_108 = (debug_method *)0x0" identifier = (cast_expression "(debug_method *)0x0" ( (type_descriptor "debug_method *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (labeled_statement "LAB_001334bc:\n      pbVar26 = pbVar31 + 1;" statement_identifier : (expression_statement "pbVar26 = pbVar31 + 1;" (assignment_expression "pbVar26 = pbVar31 + 1" identifier = (binary_expression "pbVar31 + 1" identifier + number_literal)) ;)) (expression_statement "*pp = (char *)pbVar26;" (assignment_expression "*pp = (char *)pbVar26" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar26" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) }) (else_clause "else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (debug_method_variant *)0x0;\n      local_108 = (debug_method *)0x0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar26 = pbVar31;\n      do {\n        pcVar17 = strchr((char *)pbVar26,0x3a);\n        if ((pcVar17 == (char *)0x0) || (pcVar17[1] != ':')) break;\n        pcVar16 = pcVar17 + 2;\n        if ((bVar2 == 0x6f) && ((pbVar26[1] == 0x70 && (pbVar26[2] == 0x24)))) {\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          pcVar17 = pcVar16;\n          while ((cVar3 != '.' && (cVar3 != '\0'))) {\n            pcVar17 = pcVar17 + 1;\n            cVar3 = *pcVar17;\n          }\n          if (cVar3 != '.') {\n            bad_stab((char *)pbVar31);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (debug_method_variant *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = savestring(pcVar16,(int)pcVar17 - (int)pcVar16);\n          *pp = pcVar17 + 1;\n        }\n        else {\n          local_138 = savestring((char *)pbVar26,(int)pcVar17 - (int)pbVar26);\n          *pp = pcVar16;\n        }\n        local_128 = (debug_method_variant *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        pdVar18 = (debug_type)0x0;\n        do {\n          if (pdVar18 == (debug_type)0x0) {\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 != (debug_type)0x0) {\n              pcVar17 = *pp;\n              if (*pcVar17 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar17 = *pp;\nLAB_00131d3f:\n          *pp = pcVar17 + 1;\n          pcVar17 = strchr(pcVar17 + 1,0x3b);\n          if (pcVar17 == (char *)0x0) {\nLAB_00132781:\n            bad_stab((char *)pbVar31);\n            goto LAB_00132793;\n          }\n          dVar6 = debug_get_type_kind(dhandle,pdVar18);\n          bVar41 = false;\n          if (dVar6 == DEBUG_KIND_METHOD) {\n            ppdVar9 = debug_get_parameter_types(dhandle,pdVar18,&varargs);\n            bVar41 = ppdVar9 == (debug_type_conflict *)0x0;\n          }\n          pbVar40 = (byte *)savestring(*pp,(int)pcVar17 - (int)*pp);\n          *pp = pcVar17 + 1;\n          cVar3 = pcVar17[1];\n          if (cVar3 == '0') {\n            local_e4 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else if (cVar3 == '1') {\n            local_e4 = DEBUG_VISIBILITY_PROTECTED;\n          }\n          else {\n            if (cVar3 == '\0') goto LAB_00132781;\n            local_e4 = DEBUG_VISIBILITY_PUBLIC;\n          }\n          pcVar16 = pcVar17 + 2;\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          switch(cVar3) {\n          case '*':\n          case '.':\n          case '?':\n            local_118 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            pcVar17 = (char *)dcgettext(0,"const/volatile indicator missing",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar16 = *pp;\n            local_118 = 0;\n            local_f0 = 0;\n            cVar3 = *pcVar16;\n            break;\n          case 'A':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            local_f0 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n          }\n          pbVar26 = pbVar40;\n          if (cVar3 == '.') {\n            bVar44 = false;\n            pdVar19 = (debug_type)0x0;\n            *pp = pcVar16 + 1;\n            local_100 = (debug_type)0x0;\n            local_e0 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar3 != '?') {\n              if (cVar3 == '*') {\n                *pp = pcVar16 + 1;\n                bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n                pcVar17 = *pp;\n                if (*pcVar17 != ';') goto LAB_00132781;\n                local_e0 = (ulong)((uint)bVar13 & 0x7fffffff);\n                *pp = pcVar17 + 1;\n                if ((pcVar17[1] == ';') || (pcVar17[1] == '\0')) {\n                  local_100 = (debug_type)0x0;\n                  pdVar19 = (debug_type)0x0;\n                  bVar44 = false;\n                }\n                else {\n                  pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end);\n                  cVar3 = **pp;\n                  if (cVar3 == ':') {\n                    local_100 = (debug_type)0x0;\n                    bVar44 = false;\n                    pdVar19 = pdVar23;\n                  }\n                  else {\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }\n                }\n              }\n              else {\n                warn_stab((char *)pbVar31,"member function type missing");\n                bVar44 = false;\n                local_100 = (debug_type)0x0;\n                local_e0 = 0;\n                pdVar19 = (debug_type)0x0;\n              }\n              goto LAB_001322ba;\n            }\n            *pp = pcVar16 + 1;\n            sVar32 = strlen(local_138);\n            iVar7 = strncmp((char *)pbVar40,local_138,sVar32);\n            if (iVar7 == 0) {\n              local_100 = (debug_type)0x0;\n              pdVar19 = (debug_type)0x0;\n              local_e0 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = (debug_type)0x0;\n            pdVar19 = (debug_type)0x0;\n            local_e0 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            pdVar23 = stab_find_type(dhandle,info,typenums);\n            if (pdVar23 == (debug_type)0x0) goto LAB_00132793;\n            pdVar20 = debug_get_return_type(dhandle,pdVar18);\n            if (pdVar20 == (debug_type_conflict)0x0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar7 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar7 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (type_name != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar2 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) && (bVar2 != 0x51 && bVar2 != 0x74))\n                 && (iVar7 = strncmp((char *)pbVar40,"__ct",4), iVar7 != 0)) {\n                if (type_name != (char *)0x0) {\nLAB_001338f6:\n                  iVar7 = strcmp(local_138,type_name);\n                  bVar45 = iVar7 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar40;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\nLAB_0013360b:\n              pcVar16 = p;\n              local_40 = 0;\n              pcVar17 = p;\n              do {\n                pcVar25 = strchr(pcVar17,0x5f);\n                if (pcVar25 == (char *)0x0) goto LAB_00133635;\n                pcVar17 = pcVar25 + 1;\n              } while (pcVar25[1] != '_');\n              if (pcVar17 != (char *)0x0) {\n                sVar32 = strspn(pcVar25,"_");\n                if (2 < (uint)sVar32) {\n                  pcVar25 = pcVar25 + ((uint)sVar32 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              stab_bad_demangle(pcVar16);\nLAB_0013323f:\n              if (local_48 != (stab_demangle_typestring *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a76;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar41 = *pbVar34 < *pbVar35;\n              bVar45 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (type_name == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar7 = strcmp(local_138,type_name);\n              bVar45 = iVar7 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a4b;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar42 = *pbVar34 < *pbVar35;\n              bVar46 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              arg_types = (stab_demangle_typestring *)xmalloc(8);\n              arg_types->typestring = (char *)0x0;\n              bVar4 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (type_name != (char *)0x0) {\n                sVar32 = strlen(type_name);\n                local_d8 = sVar32 & 0xffffffff;\n              }\n              pcVar16 = "C";\n              pcVar17 = "V";\n              if (local_f0 == 0) {\n                pcVar16 = "";\n              }\n              if (local_118 == 0) {\n                pcVar17 = "";\n              }\n              local_c0 = type_name;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)xtypenums,"__%s%s");\n              }\n              else if ((type_name == (char *)0x0) ||\n                      (pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0)) {\n                sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8);\n              }\n              else {\n                sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)xtypenums;\n              do {\n                puVar29 = puVar30;\n                uVar8 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar39 = uVar8 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar39 == 0);\n              bVar41 = (uVar8 & 0x8080) == 0;\n              if (bVar41) {\n                uVar39 = uVar39 >> 0x10;\n              }\n              cVar3 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar7 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar39,(byte)uVar39)) -\n                      (int)xtypenums;\n              sVar32 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar7 = iVar7 + (int)local_d8 + 1 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar26 = (byte *)xmalloc(iVar7);\n                *pbVar26 = 0;\n              }\n              else {\n                lVar11 = -1;\n                pcVar17 = local_138;\n                do {\n                  if (lVar11 == 0) break;\n                  lVar11 = lVar11 + -1;\n                  cVar1 = *pcVar17;\n                  pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar7 = ((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar17 == (char *)0x0) {\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar11 = -1;\n                  pcVar16 = pcVar17;\n                  do {\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar3 != '\0');\n                  pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);\n                  strncpy((char *)pbVar26,local_138,3);\n                  strcpy((char *)(pbVar26 + 3),pcVar17);\n                }\n                else {\n                  pbVar26 = (byte *)xmalloc(iVar7);\n                  strcpy((char *)pbVar26,local_138);\n                }\n              }\n              sVar32 = strlen((char *)pbVar26);\n              local_d8 = sVar32 & 0xffffffff;\n              pcVar17 = stpcpy((char *)(pbVar26 + sVar32),(char *)xtypenums);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar17,local_c0);\n              }\n              strcat((char *)pbVar26,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar26 == 0x5f) && (pbVar26[1] == 0x5a)) {\nLAB_00133b71:\n                p = (char *)pbVar26;\n                pdVar27 = cplus_demangle_v3_components((char *)pbVar26,3,(void **)xtypenums);\n                if (pdVar27 == (demangle_component *)0x0) {\n                  stab_bad_demangle((char *)pbVar26);\n                }\n                else {\n                  if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }\n                  pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar17);\n                  free((void *)xtypenums);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar26;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pcVar25 = p + local_d8;\n              pcVar16 = p;\nLAB_001330d0:\n              bVar2 = pcVar25[2];\n              if (pcVar16 == pcVar25) {\n                if (((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) &&\n                   (pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74)) {\n                  for (; *pcVar17 == '_'; pcVar17 = pcVar17 + 1) {\n                  }\n                  pcVar17 = strstr(pcVar17,"__");\n                  if ((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')) {\n                    stab_bad_demangle(pcVar25);\n                    goto LAB_0013323f;\n                  }\n                  iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17);\n                  goto LAB_001330fd;\n                }\n                p = pcVar25 + 2;\n              }\n              else {\n                if (bVar2 == 0) goto LAB_00133635;\n                iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25);\nLAB_001330fd:\n                if (iVar7 == 0) goto LAB_0013323f;\n              }\n              pcVar17 = p;\n              cVar3 = *p;\n              if (cVar3 != '\0') {\n                pcVar16 = (char *)0x0;\n                bVar41 = false;\n                pstart = (char **)0x0;\n                do {\n                  pcVar25 = p;\n                  switch(cVar3) {\n                  case '0':\n                  case '1':\n                  case '2':\n                  case '3':\n                  case '4':\n                  case '5':\n                  case '6':\n                  case '7':\n                  case '8':\n                  case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;\n                  default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'C':\n                  case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;\n                  case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;\n                  case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar41) {\nLAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    pstart = (char **)0x1;\n                  }\n                  cVar3 = *p;\n                } while (cVar3 != '\0');\n                if (((int)pstart == 0) &&\n                   (bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (stab_demangle_typestring *)0x0;\n              if (local_58 == (stab_demangle_typestring *)0x0) {\n                pcVar17 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar17);\n              }\n              varargs_1 = local_50[0];\n              arg_types = local_58;\nLAB_00133211:\n              bVar4 = varargs_1;\n              if (arg_types == (stab_demangle_typestring *)0x0) goto LAB_00132793;\n            }\n            pdVar18 = debug_make_method_type\n                                (dhandle,pdVar20,pdVar23,(debug_type_conflict *)arg_types,bVar4);\n            if (pdVar18 == (debug_type_conflict)0x0) goto LAB_00132793;\n          }\n          uVar39 = local_ec + 1;\n          if (local_e8 <= uVar39) {\n            local_e8 = local_e8 + 10;\n            local_128 = (debug_method_variant *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          if (bVar44) {\n            pdVar21 = debug_make_static_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118);\n            local_128[local_ec] = pdVar21;\n          }\n          else {\n            pdVar21 = debug_make_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118,\n                                 local_e0,local_100);\n            local_128[local_ec] = pdVar21;\n          }\n          if (pdVar21 == (debug_method_variant)0x0) goto LAB_00132793;\n          pcVar17 = *pp;\n        } while ((*pcVar17 != ';') && (pdVar18 = pdVar19, local_ec = uVar39, *pcVar17 != '\0'));\n        local_128[uVar39] = (debug_method_variant)0x0;\n        if (*pcVar17 != '\0') {\n          *pp = pcVar17 + 1;\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = (debug_method *)xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        pdVar22 = debug_make_method(dhandle,local_138,local_128);\n        local_108[local_c8] = pdVar22;\n        pbVar26 = (byte *)*pp;\n        bVar2 = *pbVar26;\n        local_c8 = uVar39;\n      } while (bVar2 != 0x3b);\n      if (local_108 != (debug_method *)0x0) {\n        local_108[local_c8] = (debug_method)0x0;\n      }\n      if (p_end <= pbVar26) goto LAB_00131328;\n      pbVar31 = pbVar26;\n      if (*pbVar26 == 0x3b) goto LAB_001334bc;\n    }" else (compound_statement "{\n      pbVar40 = (byte *)0x0;\n      local_128 = (debug_method_variant *)0x0;\n      local_108 = (debug_method *)0x0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar26 = pbVar31;\n      do {\n        pcVar17 = strchr((char *)pbVar26,0x3a);\n        if ((pcVar17 == (char *)0x0) || (pcVar17[1] != ':')) break;\n        pcVar16 = pcVar17 + 2;\n        if ((bVar2 == 0x6f) && ((pbVar26[1] == 0x70 && (pbVar26[2] == 0x24)))) {\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          pcVar17 = pcVar16;\n          while ((cVar3 != '.' && (cVar3 != '\0'))) {\n            pcVar17 = pcVar17 + 1;\n            cVar3 = *pcVar17;\n          }\n          if (cVar3 != '.') {\n            bad_stab((char *)pbVar31);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (debug_method_variant *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = savestring(pcVar16,(int)pcVar17 - (int)pcVar16);\n          *pp = pcVar17 + 1;\n        }\n        else {\n          local_138 = savestring((char *)pbVar26,(int)pcVar17 - (int)pbVar26);\n          *pp = pcVar16;\n        }\n        local_128 = (debug_method_variant *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        pdVar18 = (debug_type)0x0;\n        do {\n          if (pdVar18 == (debug_type)0x0) {\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 != (debug_type)0x0) {\n              pcVar17 = *pp;\n              if (*pcVar17 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar17 = *pp;\nLAB_00131d3f:\n          *pp = pcVar17 + 1;\n          pcVar17 = strchr(pcVar17 + 1,0x3b);\n          if (pcVar17 == (char *)0x0) {\nLAB_00132781:\n            bad_stab((char *)pbVar31);\n            goto LAB_00132793;\n          }\n          dVar6 = debug_get_type_kind(dhandle,pdVar18);\n          bVar41 = false;\n          if (dVar6 == DEBUG_KIND_METHOD) {\n            ppdVar9 = debug_get_parameter_types(dhandle,pdVar18,&varargs);\n            bVar41 = ppdVar9 == (debug_type_conflict *)0x0;\n          }\n          pbVar40 = (byte *)savestring(*pp,(int)pcVar17 - (int)*pp);\n          *pp = pcVar17 + 1;\n          cVar3 = pcVar17[1];\n          if (cVar3 == '0') {\n            local_e4 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else if (cVar3 == '1') {\n            local_e4 = DEBUG_VISIBILITY_PROTECTED;\n          }\n          else {\n            if (cVar3 == '\0') goto LAB_00132781;\n            local_e4 = DEBUG_VISIBILITY_PUBLIC;\n          }\n          pcVar16 = pcVar17 + 2;\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          switch(cVar3) {\n          case '*':\n          case '.':\n          case '?':\n            local_118 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            pcVar17 = (char *)dcgettext(0,"const/volatile indicator missing",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar16 = *pp;\n            local_118 = 0;\n            local_f0 = 0;\n            cVar3 = *pcVar16;\n            break;\n          case 'A':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            local_f0 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n          }\n          pbVar26 = pbVar40;\n          if (cVar3 == '.') {\n            bVar44 = false;\n            pdVar19 = (debug_type)0x0;\n            *pp = pcVar16 + 1;\n            local_100 = (debug_type)0x0;\n            local_e0 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar3 != '?') {\n              if (cVar3 == '*') {\n                *pp = pcVar16 + 1;\n                bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n                pcVar17 = *pp;\n                if (*pcVar17 != ';') goto LAB_00132781;\n                local_e0 = (ulong)((uint)bVar13 & 0x7fffffff);\n                *pp = pcVar17 + 1;\n                if ((pcVar17[1] == ';') || (pcVar17[1] == '\0')) {\n                  local_100 = (debug_type)0x0;\n                  pdVar19 = (debug_type)0x0;\n                  bVar44 = false;\n                }\n                else {\n                  pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end);\n                  cVar3 = **pp;\n                  if (cVar3 == ':') {\n                    local_100 = (debug_type)0x0;\n                    bVar44 = false;\n                    pdVar19 = pdVar23;\n                  }\n                  else {\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }\n                }\n              }\n              else {\n                warn_stab((char *)pbVar31,"member function type missing");\n                bVar44 = false;\n                local_100 = (debug_type)0x0;\n                local_e0 = 0;\n                pdVar19 = (debug_type)0x0;\n              }\n              goto LAB_001322ba;\n            }\n            *pp = pcVar16 + 1;\n            sVar32 = strlen(local_138);\n            iVar7 = strncmp((char *)pbVar40,local_138,sVar32);\n            if (iVar7 == 0) {\n              local_100 = (debug_type)0x0;\n              pdVar19 = (debug_type)0x0;\n              local_e0 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = (debug_type)0x0;\n            pdVar19 = (debug_type)0x0;\n            local_e0 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            pdVar23 = stab_find_type(dhandle,info,typenums);\n            if (pdVar23 == (debug_type)0x0) goto LAB_00132793;\n            pdVar20 = debug_get_return_type(dhandle,pdVar18);\n            if (pdVar20 == (debug_type_conflict)0x0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar7 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar7 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (type_name != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar2 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) && (bVar2 != 0x51 && bVar2 != 0x74))\n                 && (iVar7 = strncmp((char *)pbVar40,"__ct",4), iVar7 != 0)) {\n                if (type_name != (char *)0x0) {\nLAB_001338f6:\n                  iVar7 = strcmp(local_138,type_name);\n                  bVar45 = iVar7 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar40;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\nLAB_0013360b:\n              pcVar16 = p;\n              local_40 = 0;\n              pcVar17 = p;\n              do {\n                pcVar25 = strchr(pcVar17,0x5f);\n                if (pcVar25 == (char *)0x0) goto LAB_00133635;\n                pcVar17 = pcVar25 + 1;\n              } while (pcVar25[1] != '_');\n              if (pcVar17 != (char *)0x0) {\n                sVar32 = strspn(pcVar25,"_");\n                if (2 < (uint)sVar32) {\n                  pcVar25 = pcVar25 + ((uint)sVar32 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              stab_bad_demangle(pcVar16);\nLAB_0013323f:\n              if (local_48 != (stab_demangle_typestring *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a76;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar41 = *pbVar34 < *pbVar35;\n              bVar45 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (type_name == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar7 = strcmp(local_138,type_name);\n              bVar45 = iVar7 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a4b;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar42 = *pbVar34 < *pbVar35;\n              bVar46 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              arg_types = (stab_demangle_typestring *)xmalloc(8);\n              arg_types->typestring = (char *)0x0;\n              bVar4 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (type_name != (char *)0x0) {\n                sVar32 = strlen(type_name);\n                local_d8 = sVar32 & 0xffffffff;\n              }\n              pcVar16 = "C";\n              pcVar17 = "V";\n              if (local_f0 == 0) {\n                pcVar16 = "";\n              }\n              if (local_118 == 0) {\n                pcVar17 = "";\n              }\n              local_c0 = type_name;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)xtypenums,"__%s%s");\n              }\n              else if ((type_name == (char *)0x0) ||\n                      (pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0)) {\n                sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8);\n              }\n              else {\n                sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)xtypenums;\n              do {\n                puVar29 = puVar30;\n                uVar8 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar39 = uVar8 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar39 == 0);\n              bVar41 = (uVar8 & 0x8080) == 0;\n              if (bVar41) {\n                uVar39 = uVar39 >> 0x10;\n              }\n              cVar3 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar7 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar39,(byte)uVar39)) -\n                      (int)xtypenums;\n              sVar32 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar7 = iVar7 + (int)local_d8 + 1 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar26 = (byte *)xmalloc(iVar7);\n                *pbVar26 = 0;\n              }\n              else {\n                lVar11 = -1;\n                pcVar17 = local_138;\n                do {\n                  if (lVar11 == 0) break;\n                  lVar11 = lVar11 + -1;\n                  cVar1 = *pcVar17;\n                  pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar7 = ((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar17 == (char *)0x0) {\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar11 = -1;\n                  pcVar16 = pcVar17;\n                  do {\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar3 != '\0');\n                  pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);\n                  strncpy((char *)pbVar26,local_138,3);\n                  strcpy((char *)(pbVar26 + 3),pcVar17);\n                }\n                else {\n                  pbVar26 = (byte *)xmalloc(iVar7);\n                  strcpy((char *)pbVar26,local_138);\n                }\n              }\n              sVar32 = strlen((char *)pbVar26);\n              local_d8 = sVar32 & 0xffffffff;\n              pcVar17 = stpcpy((char *)(pbVar26 + sVar32),(char *)xtypenums);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar17,local_c0);\n              }\n              strcat((char *)pbVar26,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar26 == 0x5f) && (pbVar26[1] == 0x5a)) {\nLAB_00133b71:\n                p = (char *)pbVar26;\n                pdVar27 = cplus_demangle_v3_components((char *)pbVar26,3,(void **)xtypenums);\n                if (pdVar27 == (demangle_component *)0x0) {\n                  stab_bad_demangle((char *)pbVar26);\n                }\n                else {\n                  if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }\n                  pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar17);\n                  free((void *)xtypenums);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar26;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pcVar25 = p + local_d8;\n              pcVar16 = p;\nLAB_001330d0:\n              bVar2 = pcVar25[2];\n              if (pcVar16 == pcVar25) {\n                if (((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) &&\n                   (pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74)) {\n                  for (; *pcVar17 == '_'; pcVar17 = pcVar17 + 1) {\n                  }\n                  pcVar17 = strstr(pcVar17,"__");\n                  if ((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')) {\n                    stab_bad_demangle(pcVar25);\n                    goto LAB_0013323f;\n                  }\n                  iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17);\n                  goto LAB_001330fd;\n                }\n                p = pcVar25 + 2;\n              }\n              else {\n                if (bVar2 == 0) goto LAB_00133635;\n                iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25);\nLAB_001330fd:\n                if (iVar7 == 0) goto LAB_0013323f;\n              }\n              pcVar17 = p;\n              cVar3 = *p;\n              if (cVar3 != '\0') {\n                pcVar16 = (char *)0x0;\n                bVar41 = false;\n                pstart = (char **)0x0;\n                do {\n                  pcVar25 = p;\n                  switch(cVar3) {\n                  case '0':\n                  case '1':\n                  case '2':\n                  case '3':\n                  case '4':\n                  case '5':\n                  case '6':\n                  case '7':\n                  case '8':\n                  case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;\n                  default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'C':\n                  case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;\n                  case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;\n                  case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar41) {\nLAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    pstart = (char **)0x1;\n                  }\n                  cVar3 = *p;\n                } while (cVar3 != '\0');\n                if (((int)pstart == 0) &&\n                   (bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (stab_demangle_typestring *)0x0;\n              if (local_58 == (stab_demangle_typestring *)0x0) {\n                pcVar17 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar17);\n              }\n              varargs_1 = local_50[0];\n              arg_types = local_58;\nLAB_00133211:\n              bVar4 = varargs_1;\n              if (arg_types == (stab_demangle_typestring *)0x0) goto LAB_00132793;\n            }\n            pdVar18 = debug_make_method_type\n                                (dhandle,pdVar20,pdVar23,(debug_type_conflict *)arg_types,bVar4);\n            if (pdVar18 == (debug_type_conflict)0x0) goto LAB_00132793;\n          }\n          uVar39 = local_ec + 1;\n          if (local_e8 <= uVar39) {\n            local_e8 = local_e8 + 10;\n            local_128 = (debug_method_variant *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          if (bVar44) {\n            pdVar21 = debug_make_static_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118);\n            local_128[local_ec] = pdVar21;\n          }\n          else {\n            pdVar21 = debug_make_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118,\n                                 local_e0,local_100);\n            local_128[local_ec] = pdVar21;\n          }\n          if (pdVar21 == (debug_method_variant)0x0) goto LAB_00132793;\n          pcVar17 = *pp;\n        } while ((*pcVar17 != ';') && (pdVar18 = pdVar19, local_ec = uVar39, *pcVar17 != '\0'));\n        local_128[uVar39] = (debug_method_variant)0x0;\n        if (*pcVar17 != '\0') {\n          *pp = pcVar17 + 1;\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = (debug_method *)xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        pdVar22 = debug_make_method(dhandle,local_138,local_128);\n        local_108[local_c8] = pdVar22;\n        pbVar26 = (byte *)*pp;\n        bVar2 = *pbVar26;\n        local_c8 = uVar39;\n      } while (bVar2 != 0x3b);\n      if (local_108 != (debug_method *)0x0) {\n        local_108[local_c8] = (debug_method)0x0;\n      }\n      if (p_end <= pbVar26) goto LAB_00131328;\n      pbVar31 = pbVar26;\n      if (*pbVar26 == 0x3b) goto LAB_001334bc;\n    }" { (expression_statement "pbVar40 = (byte *)0x0;" (assignment_expression "pbVar40 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_128 = (debug_method_variant *)0x0;" (assignment_expression "local_128 = (debug_method_variant *)0x0" identifier = (cast_expression "(debug_method_variant *)0x0" ( (type_descriptor "debug_method_variant *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_108 = (debug_method *)0x0;" (assignment_expression "local_108 = (debug_method *)0x0" identifier = (cast_expression "(debug_method *)0x0" ( (type_descriptor "debug_method *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" identifier = number_literal) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) (expression_statement "local_138 = (char *)0x0;" (assignment_expression "local_138 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar26 = pbVar31;" (assignment_expression "pbVar26 = pbVar31" identifier = identifier) ;) (do_statement "do {\n        pcVar17 = strchr((char *)pbVar26,0x3a);\n        if ((pcVar17 == (char *)0x0) || (pcVar17[1] != ':')) break;\n        pcVar16 = pcVar17 + 2;\n        if ((bVar2 == 0x6f) && ((pbVar26[1] == 0x70 && (pbVar26[2] == 0x24)))) {\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          pcVar17 = pcVar16;\n          while ((cVar3 != '.' && (cVar3 != '\0'))) {\n            pcVar17 = pcVar17 + 1;\n            cVar3 = *pcVar17;\n          }\n          if (cVar3 != '.') {\n            bad_stab((char *)pbVar31);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (debug_method_variant *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = savestring(pcVar16,(int)pcVar17 - (int)pcVar16);\n          *pp = pcVar17 + 1;\n        }\n        else {\n          local_138 = savestring((char *)pbVar26,(int)pcVar17 - (int)pbVar26);\n          *pp = pcVar16;\n        }\n        local_128 = (debug_method_variant *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        pdVar18 = (debug_type)0x0;\n        do {\n          if (pdVar18 == (debug_type)0x0) {\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 != (debug_type)0x0) {\n              pcVar17 = *pp;\n              if (*pcVar17 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar17 = *pp;\nLAB_00131d3f:\n          *pp = pcVar17 + 1;\n          pcVar17 = strchr(pcVar17 + 1,0x3b);\n          if (pcVar17 == (char *)0x0) {\nLAB_00132781:\n            bad_stab((char *)pbVar31);\n            goto LAB_00132793;\n          }\n          dVar6 = debug_get_type_kind(dhandle,pdVar18);\n          bVar41 = false;\n          if (dVar6 == DEBUG_KIND_METHOD) {\n            ppdVar9 = debug_get_parameter_types(dhandle,pdVar18,&varargs);\n            bVar41 = ppdVar9 == (debug_type_conflict *)0x0;\n          }\n          pbVar40 = (byte *)savestring(*pp,(int)pcVar17 - (int)*pp);\n          *pp = pcVar17 + 1;\n          cVar3 = pcVar17[1];\n          if (cVar3 == '0') {\n            local_e4 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else if (cVar3 == '1') {\n            local_e4 = DEBUG_VISIBILITY_PROTECTED;\n          }\n          else {\n            if (cVar3 == '\0') goto LAB_00132781;\n            local_e4 = DEBUG_VISIBILITY_PUBLIC;\n          }\n          pcVar16 = pcVar17 + 2;\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          switch(cVar3) {\n          case '*':\n          case '.':\n          case '?':\n            local_118 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            pcVar17 = (char *)dcgettext(0,"const/volatile indicator missing",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar16 = *pp;\n            local_118 = 0;\n            local_f0 = 0;\n            cVar3 = *pcVar16;\n            break;\n          case 'A':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            local_f0 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n          }\n          pbVar26 = pbVar40;\n          if (cVar3 == '.') {\n            bVar44 = false;\n            pdVar19 = (debug_type)0x0;\n            *pp = pcVar16 + 1;\n            local_100 = (debug_type)0x0;\n            local_e0 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar3 != '?') {\n              if (cVar3 == '*') {\n                *pp = pcVar16 + 1;\n                bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n                pcVar17 = *pp;\n                if (*pcVar17 != ';') goto LAB_00132781;\n                local_e0 = (ulong)((uint)bVar13 & 0x7fffffff);\n                *pp = pcVar17 + 1;\n                if ((pcVar17[1] == ';') || (pcVar17[1] == '\0')) {\n                  local_100 = (debug_type)0x0;\n                  pdVar19 = (debug_type)0x0;\n                  bVar44 = false;\n                }\n                else {\n                  pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end);\n                  cVar3 = **pp;\n                  if (cVar3 == ':') {\n                    local_100 = (debug_type)0x0;\n                    bVar44 = false;\n                    pdVar19 = pdVar23;\n                  }\n                  else {\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }\n                }\n              }\n              else {\n                warn_stab((char *)pbVar31,"member function type missing");\n                bVar44 = false;\n                local_100 = (debug_type)0x0;\n                local_e0 = 0;\n                pdVar19 = (debug_type)0x0;\n              }\n              goto LAB_001322ba;\n            }\n            *pp = pcVar16 + 1;\n            sVar32 = strlen(local_138);\n            iVar7 = strncmp((char *)pbVar40,local_138,sVar32);\n            if (iVar7 == 0) {\n              local_100 = (debug_type)0x0;\n              pdVar19 = (debug_type)0x0;\n              local_e0 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = (debug_type)0x0;\n            pdVar19 = (debug_type)0x0;\n            local_e0 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            pdVar23 = stab_find_type(dhandle,info,typenums);\n            if (pdVar23 == (debug_type)0x0) goto LAB_00132793;\n            pdVar20 = debug_get_return_type(dhandle,pdVar18);\n            if (pdVar20 == (debug_type_conflict)0x0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar7 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar7 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (type_name != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar2 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) && (bVar2 != 0x51 && bVar2 != 0x74))\n                 && (iVar7 = strncmp((char *)pbVar40,"__ct",4), iVar7 != 0)) {\n                if (type_name != (char *)0x0) {\nLAB_001338f6:\n                  iVar7 = strcmp(local_138,type_name);\n                  bVar45 = iVar7 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar40;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\nLAB_0013360b:\n              pcVar16 = p;\n              local_40 = 0;\n              pcVar17 = p;\n              do {\n                pcVar25 = strchr(pcVar17,0x5f);\n                if (pcVar25 == (char *)0x0) goto LAB_00133635;\n                pcVar17 = pcVar25 + 1;\n              } while (pcVar25[1] != '_');\n              if (pcVar17 != (char *)0x0) {\n                sVar32 = strspn(pcVar25,"_");\n                if (2 < (uint)sVar32) {\n                  pcVar25 = pcVar25 + ((uint)sVar32 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              stab_bad_demangle(pcVar16);\nLAB_0013323f:\n              if (local_48 != (stab_demangle_typestring *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a76;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar41 = *pbVar34 < *pbVar35;\n              bVar45 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (type_name == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar7 = strcmp(local_138,type_name);\n              bVar45 = iVar7 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a4b;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar42 = *pbVar34 < *pbVar35;\n              bVar46 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              arg_types = (stab_demangle_typestring *)xmalloc(8);\n              arg_types->typestring = (char *)0x0;\n              bVar4 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (type_name != (char *)0x0) {\n                sVar32 = strlen(type_name);\n                local_d8 = sVar32 & 0xffffffff;\n              }\n              pcVar16 = "C";\n              pcVar17 = "V";\n              if (local_f0 == 0) {\n                pcVar16 = "";\n              }\n              if (local_118 == 0) {\n                pcVar17 = "";\n              }\n              local_c0 = type_name;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)xtypenums,"__%s%s");\n              }\n              else if ((type_name == (char *)0x0) ||\n                      (pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0)) {\n                sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8);\n              }\n              else {\n                sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)xtypenums;\n              do {\n                puVar29 = puVar30;\n                uVar8 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar39 = uVar8 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar39 == 0);\n              bVar41 = (uVar8 & 0x8080) == 0;\n              if (bVar41) {\n                uVar39 = uVar39 >> 0x10;\n              }\n              cVar3 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar7 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar39,(byte)uVar39)) -\n                      (int)xtypenums;\n              sVar32 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar7 = iVar7 + (int)local_d8 + 1 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar26 = (byte *)xmalloc(iVar7);\n                *pbVar26 = 0;\n              }\n              else {\n                lVar11 = -1;\n                pcVar17 = local_138;\n                do {\n                  if (lVar11 == 0) break;\n                  lVar11 = lVar11 + -1;\n                  cVar1 = *pcVar17;\n                  pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar7 = ((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar17 == (char *)0x0) {\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar11 = -1;\n                  pcVar16 = pcVar17;\n                  do {\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar3 != '\0');\n                  pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);\n                  strncpy((char *)pbVar26,local_138,3);\n                  strcpy((char *)(pbVar26 + 3),pcVar17);\n                }\n                else {\n                  pbVar26 = (byte *)xmalloc(iVar7);\n                  strcpy((char *)pbVar26,local_138);\n                }\n              }\n              sVar32 = strlen((char *)pbVar26);\n              local_d8 = sVar32 & 0xffffffff;\n              pcVar17 = stpcpy((char *)(pbVar26 + sVar32),(char *)xtypenums);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar17,local_c0);\n              }\n              strcat((char *)pbVar26,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar26 == 0x5f) && (pbVar26[1] == 0x5a)) {\nLAB_00133b71:\n                p = (char *)pbVar26;\n                pdVar27 = cplus_demangle_v3_components((char *)pbVar26,3,(void **)xtypenums);\n                if (pdVar27 == (demangle_component *)0x0) {\n                  stab_bad_demangle((char *)pbVar26);\n                }\n                else {\n                  if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }\n                  pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar17);\n                  free((void *)xtypenums);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar26;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pcVar25 = p + local_d8;\n              pcVar16 = p;\nLAB_001330d0:\n              bVar2 = pcVar25[2];\n              if (pcVar16 == pcVar25) {\n                if (((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) &&\n                   (pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74)) {\n                  for (; *pcVar17 == '_'; pcVar17 = pcVar17 + 1) {\n                  }\n                  pcVar17 = strstr(pcVar17,"__");\n                  if ((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')) {\n                    stab_bad_demangle(pcVar25);\n                    goto LAB_0013323f;\n                  }\n                  iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17);\n                  goto LAB_001330fd;\n                }\n                p = pcVar25 + 2;\n              }\n              else {\n                if (bVar2 == 0) goto LAB_00133635;\n                iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25);\nLAB_001330fd:\n                if (iVar7 == 0) goto LAB_0013323f;\n              }\n              pcVar17 = p;\n              cVar3 = *p;\n              if (cVar3 != '\0') {\n                pcVar16 = (char *)0x0;\n                bVar41 = false;\n                pstart = (char **)0x0;\n                do {\n                  pcVar25 = p;\n                  switch(cVar3) {\n                  case '0':\n                  case '1':\n                  case '2':\n                  case '3':\n                  case '4':\n                  case '5':\n                  case '6':\n                  case '7':\n                  case '8':\n                  case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;\n                  default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'C':\n                  case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;\n                  case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;\n                  case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar41) {\nLAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    pstart = (char **)0x1;\n                  }\n                  cVar3 = *p;\n                } while (cVar3 != '\0');\n                if (((int)pstart == 0) &&\n                   (bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (stab_demangle_typestring *)0x0;\n              if (local_58 == (stab_demangle_typestring *)0x0) {\n                pcVar17 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar17);\n              }\n              varargs_1 = local_50[0];\n              arg_types = local_58;\nLAB_00133211:\n              bVar4 = varargs_1;\n              if (arg_types == (stab_demangle_typestring *)0x0) goto LAB_00132793;\n            }\n            pdVar18 = debug_make_method_type\n                                (dhandle,pdVar20,pdVar23,(debug_type_conflict *)arg_types,bVar4);\n            if (pdVar18 == (debug_type_conflict)0x0) goto LAB_00132793;\n          }\n          uVar39 = local_ec + 1;\n          if (local_e8 <= uVar39) {\n            local_e8 = local_e8 + 10;\n            local_128 = (debug_method_variant *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          if (bVar44) {\n            pdVar21 = debug_make_static_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118);\n            local_128[local_ec] = pdVar21;\n          }\n          else {\n            pdVar21 = debug_make_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118,\n                                 local_e0,local_100);\n            local_128[local_ec] = pdVar21;\n          }\n          if (pdVar21 == (debug_method_variant)0x0) goto LAB_00132793;\n          pcVar17 = *pp;\n        } while ((*pcVar17 != ';') && (pdVar18 = pdVar19, local_ec = uVar39, *pcVar17 != '\0'));\n        local_128[uVar39] = (debug_method_variant)0x0;\n        if (*pcVar17 != '\0') {\n          *pp = pcVar17 + 1;\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = (debug_method *)xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        pdVar22 = debug_make_method(dhandle,local_138,local_128);\n        local_108[local_c8] = pdVar22;\n        pbVar26 = (byte *)*pp;\n        bVar2 = *pbVar26;\n        local_c8 = uVar39;\n      } while (bVar2 != 0x3b);" do (compound_statement "{\n        pcVar17 = strchr((char *)pbVar26,0x3a);\n        if ((pcVar17 == (char *)0x0) || (pcVar17[1] != ':')) break;\n        pcVar16 = pcVar17 + 2;\n        if ((bVar2 == 0x6f) && ((pbVar26[1] == 0x70 && (pbVar26[2] == 0x24)))) {\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          pcVar17 = pcVar16;\n          while ((cVar3 != '.' && (cVar3 != '\0'))) {\n            pcVar17 = pcVar17 + 1;\n            cVar3 = *pcVar17;\n          }\n          if (cVar3 != '.') {\n            bad_stab((char *)pbVar31);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (debug_method_variant *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = savestring(pcVar16,(int)pcVar17 - (int)pcVar16);\n          *pp = pcVar17 + 1;\n        }\n        else {\n          local_138 = savestring((char *)pbVar26,(int)pcVar17 - (int)pbVar26);\n          *pp = pcVar16;\n        }\n        local_128 = (debug_method_variant *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        pdVar18 = (debug_type)0x0;\n        do {\n          if (pdVar18 == (debug_type)0x0) {\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 != (debug_type)0x0) {\n              pcVar17 = *pp;\n              if (*pcVar17 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar17 = *pp;\nLAB_00131d3f:\n          *pp = pcVar17 + 1;\n          pcVar17 = strchr(pcVar17 + 1,0x3b);\n          if (pcVar17 == (char *)0x0) {\nLAB_00132781:\n            bad_stab((char *)pbVar31);\n            goto LAB_00132793;\n          }\n          dVar6 = debug_get_type_kind(dhandle,pdVar18);\n          bVar41 = false;\n          if (dVar6 == DEBUG_KIND_METHOD) {\n            ppdVar9 = debug_get_parameter_types(dhandle,pdVar18,&varargs);\n            bVar41 = ppdVar9 == (debug_type_conflict *)0x0;\n          }\n          pbVar40 = (byte *)savestring(*pp,(int)pcVar17 - (int)*pp);\n          *pp = pcVar17 + 1;\n          cVar3 = pcVar17[1];\n          if (cVar3 == '0') {\n            local_e4 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else if (cVar3 == '1') {\n            local_e4 = DEBUG_VISIBILITY_PROTECTED;\n          }\n          else {\n            if (cVar3 == '\0') goto LAB_00132781;\n            local_e4 = DEBUG_VISIBILITY_PUBLIC;\n          }\n          pcVar16 = pcVar17 + 2;\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          switch(cVar3) {\n          case '*':\n          case '.':\n          case '?':\n            local_118 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            pcVar17 = (char *)dcgettext(0,"const/volatile indicator missing",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar16 = *pp;\n            local_118 = 0;\n            local_f0 = 0;\n            cVar3 = *pcVar16;\n            break;\n          case 'A':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            local_f0 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n          }\n          pbVar26 = pbVar40;\n          if (cVar3 == '.') {\n            bVar44 = false;\n            pdVar19 = (debug_type)0x0;\n            *pp = pcVar16 + 1;\n            local_100 = (debug_type)0x0;\n            local_e0 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar3 != '?') {\n              if (cVar3 == '*') {\n                *pp = pcVar16 + 1;\n                bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n                pcVar17 = *pp;\n                if (*pcVar17 != ';') goto LAB_00132781;\n                local_e0 = (ulong)((uint)bVar13 & 0x7fffffff);\n                *pp = pcVar17 + 1;\n                if ((pcVar17[1] == ';') || (pcVar17[1] == '\0')) {\n                  local_100 = (debug_type)0x0;\n                  pdVar19 = (debug_type)0x0;\n                  bVar44 = false;\n                }\n                else {\n                  pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end);\n                  cVar3 = **pp;\n                  if (cVar3 == ':') {\n                    local_100 = (debug_type)0x0;\n                    bVar44 = false;\n                    pdVar19 = pdVar23;\n                  }\n                  else {\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }\n                }\n              }\n              else {\n                warn_stab((char *)pbVar31,"member function type missing");\n                bVar44 = false;\n                local_100 = (debug_type)0x0;\n                local_e0 = 0;\n                pdVar19 = (debug_type)0x0;\n              }\n              goto LAB_001322ba;\n            }\n            *pp = pcVar16 + 1;\n            sVar32 = strlen(local_138);\n            iVar7 = strncmp((char *)pbVar40,local_138,sVar32);\n            if (iVar7 == 0) {\n              local_100 = (debug_type)0x0;\n              pdVar19 = (debug_type)0x0;\n              local_e0 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = (debug_type)0x0;\n            pdVar19 = (debug_type)0x0;\n            local_e0 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            pdVar23 = stab_find_type(dhandle,info,typenums);\n            if (pdVar23 == (debug_type)0x0) goto LAB_00132793;\n            pdVar20 = debug_get_return_type(dhandle,pdVar18);\n            if (pdVar20 == (debug_type_conflict)0x0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar7 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar7 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (type_name != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar2 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) && (bVar2 != 0x51 && bVar2 != 0x74))\n                 && (iVar7 = strncmp((char *)pbVar40,"__ct",4), iVar7 != 0)) {\n                if (type_name != (char *)0x0) {\nLAB_001338f6:\n                  iVar7 = strcmp(local_138,type_name);\n                  bVar45 = iVar7 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar40;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\nLAB_0013360b:\n              pcVar16 = p;\n              local_40 = 0;\n              pcVar17 = p;\n              do {\n                pcVar25 = strchr(pcVar17,0x5f);\n                if (pcVar25 == (char *)0x0) goto LAB_00133635;\n                pcVar17 = pcVar25 + 1;\n              } while (pcVar25[1] != '_');\n              if (pcVar17 != (char *)0x0) {\n                sVar32 = strspn(pcVar25,"_");\n                if (2 < (uint)sVar32) {\n                  pcVar25 = pcVar25 + ((uint)sVar32 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              stab_bad_demangle(pcVar16);\nLAB_0013323f:\n              if (local_48 != (stab_demangle_typestring *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a76;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar41 = *pbVar34 < *pbVar35;\n              bVar45 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (type_name == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar7 = strcmp(local_138,type_name);\n              bVar45 = iVar7 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a4b;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar42 = *pbVar34 < *pbVar35;\n              bVar46 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              arg_types = (stab_demangle_typestring *)xmalloc(8);\n              arg_types->typestring = (char *)0x0;\n              bVar4 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (type_name != (char *)0x0) {\n                sVar32 = strlen(type_name);\n                local_d8 = sVar32 & 0xffffffff;\n              }\n              pcVar16 = "C";\n              pcVar17 = "V";\n              if (local_f0 == 0) {\n                pcVar16 = "";\n              }\n              if (local_118 == 0) {\n                pcVar17 = "";\n              }\n              local_c0 = type_name;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)xtypenums,"__%s%s");\n              }\n              else if ((type_name == (char *)0x0) ||\n                      (pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0)) {\n                sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8);\n              }\n              else {\n                sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)xtypenums;\n              do {\n                puVar29 = puVar30;\n                uVar8 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar39 = uVar8 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar39 == 0);\n              bVar41 = (uVar8 & 0x8080) == 0;\n              if (bVar41) {\n                uVar39 = uVar39 >> 0x10;\n              }\n              cVar3 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar7 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar39,(byte)uVar39)) -\n                      (int)xtypenums;\n              sVar32 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar7 = iVar7 + (int)local_d8 + 1 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar26 = (byte *)xmalloc(iVar7);\n                *pbVar26 = 0;\n              }\n              else {\n                lVar11 = -1;\n                pcVar17 = local_138;\n                do {\n                  if (lVar11 == 0) break;\n                  lVar11 = lVar11 + -1;\n                  cVar1 = *pcVar17;\n                  pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar7 = ((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar17 == (char *)0x0) {\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar11 = -1;\n                  pcVar16 = pcVar17;\n                  do {\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar3 != '\0');\n                  pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);\n                  strncpy((char *)pbVar26,local_138,3);\n                  strcpy((char *)(pbVar26 + 3),pcVar17);\n                }\n                else {\n                  pbVar26 = (byte *)xmalloc(iVar7);\n                  strcpy((char *)pbVar26,local_138);\n                }\n              }\n              sVar32 = strlen((char *)pbVar26);\n              local_d8 = sVar32 & 0xffffffff;\n              pcVar17 = stpcpy((char *)(pbVar26 + sVar32),(char *)xtypenums);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar17,local_c0);\n              }\n              strcat((char *)pbVar26,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar26 == 0x5f) && (pbVar26[1] == 0x5a)) {\nLAB_00133b71:\n                p = (char *)pbVar26;\n                pdVar27 = cplus_demangle_v3_components((char *)pbVar26,3,(void **)xtypenums);\n                if (pdVar27 == (demangle_component *)0x0) {\n                  stab_bad_demangle((char *)pbVar26);\n                }\n                else {\n                  if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }\n                  pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar17);\n                  free((void *)xtypenums);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar26;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pcVar25 = p + local_d8;\n              pcVar16 = p;\nLAB_001330d0:\n              bVar2 = pcVar25[2];\n              if (pcVar16 == pcVar25) {\n                if (((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) &&\n                   (pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74)) {\n                  for (; *pcVar17 == '_'; pcVar17 = pcVar17 + 1) {\n                  }\n                  pcVar17 = strstr(pcVar17,"__");\n                  if ((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')) {\n                    stab_bad_demangle(pcVar25);\n                    goto LAB_0013323f;\n                  }\n                  iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17);\n                  goto LAB_001330fd;\n                }\n                p = pcVar25 + 2;\n              }\n              else {\n                if (bVar2 == 0) goto LAB_00133635;\n                iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25);\nLAB_001330fd:\n                if (iVar7 == 0) goto LAB_0013323f;\n              }\n              pcVar17 = p;\n              cVar3 = *p;\n              if (cVar3 != '\0') {\n                pcVar16 = (char *)0x0;\n                bVar41 = false;\n                pstart = (char **)0x0;\n                do {\n                  pcVar25 = p;\n                  switch(cVar3) {\n                  case '0':\n                  case '1':\n                  case '2':\n                  case '3':\n                  case '4':\n                  case '5':\n                  case '6':\n                  case '7':\n                  case '8':\n                  case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;\n                  default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'C':\n                  case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;\n                  case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;\n                  case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar41) {\nLAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    pstart = (char **)0x1;\n                  }\n                  cVar3 = *p;\n                } while (cVar3 != '\0');\n                if (((int)pstart == 0) &&\n                   (bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (stab_demangle_typestring *)0x0;\n              if (local_58 == (stab_demangle_typestring *)0x0) {\n                pcVar17 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar17);\n              }\n              varargs_1 = local_50[0];\n              arg_types = local_58;\nLAB_00133211:\n              bVar4 = varargs_1;\n              if (arg_types == (stab_demangle_typestring *)0x0) goto LAB_00132793;\n            }\n            pdVar18 = debug_make_method_type\n                                (dhandle,pdVar20,pdVar23,(debug_type_conflict *)arg_types,bVar4);\n            if (pdVar18 == (debug_type_conflict)0x0) goto LAB_00132793;\n          }\n          uVar39 = local_ec + 1;\n          if (local_e8 <= uVar39) {\n            local_e8 = local_e8 + 10;\n            local_128 = (debug_method_variant *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          if (bVar44) {\n            pdVar21 = debug_make_static_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118);\n            local_128[local_ec] = pdVar21;\n          }\n          else {\n            pdVar21 = debug_make_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118,\n                                 local_e0,local_100);\n            local_128[local_ec] = pdVar21;\n          }\n          if (pdVar21 == (debug_method_variant)0x0) goto LAB_00132793;\n          pcVar17 = *pp;\n        } while ((*pcVar17 != ';') && (pdVar18 = pdVar19, local_ec = uVar39, *pcVar17 != '\0'));\n        local_128[uVar39] = (debug_method_variant)0x0;\n        if (*pcVar17 != '\0') {\n          *pp = pcVar17 + 1;\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = (debug_method *)xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        pdVar22 = debug_make_method(dhandle,local_138,local_128);\n        local_108[local_c8] = pdVar22;\n        pbVar26 = (byte *)*pp;\n        bVar2 = *pbVar26;\n        local_c8 = uVar39;\n      }" { (expression_statement "pcVar17 = strchr((char *)pbVar26,0x3a);" (assignment_expression "pcVar17 = strchr((char *)pbVar26,0x3a)" identifier = (call_expression "strchr((char *)pbVar26,0x3a)" identifier (argument_list "((char *)pbVar26,0x3a)" ( (cast_expression "(char *)pbVar26" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if ((pcVar17 == (char *)0x0) || (pcVar17[1] != ':')) break;" if (parenthesized_expression "((pcVar17 == (char *)0x0) || (pcVar17[1] != ':'))" ( (binary_expression "(pcVar17 == (char *)0x0) || (pcVar17[1] != ':')" (parenthesized_expression "(pcVar17 == (char *)0x0)" ( (binary_expression "pcVar17 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar17[1] != ':')" ( (binary_expression "pcVar17[1] != ':'" (subscript_expression "pcVar17[1]" identifier [ number_literal ]) != (char_literal "':'" ' character ')) ))) )) (break_statement "break;" break ;)) (expression_statement "pcVar16 = pcVar17 + 2;" (assignment_expression "pcVar16 = pcVar17 + 2" identifier = (binary_expression "pcVar17 + 2" identifier + number_literal)) ;) (if_statement "if ((bVar2 == 0x6f) && ((pbVar26[1] == 0x70 && (pbVar26[2] == 0x24)))) {\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          pcVar17 = pcVar16;\n          while ((cVar3 != '.' && (cVar3 != '\0'))) {\n            pcVar17 = pcVar17 + 1;\n            cVar3 = *pcVar17;\n          }\n          if (cVar3 != '.') {\n            bad_stab((char *)pbVar31);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (debug_method_variant *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = savestring(pcVar16,(int)pcVar17 - (int)pcVar16);\n          *pp = pcVar17 + 1;\n        }\n        else {\n          local_138 = savestring((char *)pbVar26,(int)pcVar17 - (int)pbVar26);\n          *pp = pcVar16;\n        }" if (parenthesized_expression "((bVar2 == 0x6f) && ((pbVar26[1] == 0x70 && (pbVar26[2] == 0x24))))" ( (binary_expression "(bVar2 == 0x6f) && ((pbVar26[1] == 0x70 && (pbVar26[2] == 0x24)))" (parenthesized_expression "(bVar2 == 0x6f)" ( (binary_expression "bVar2 == 0x6f" identifier == number_literal) )) && (parenthesized_expression "((pbVar26[1] == 0x70 && (pbVar26[2] == 0x24)))" ( (parenthesized_expression "(pbVar26[1] == 0x70 && (pbVar26[2] == 0x24))" ( (binary_expression "pbVar26[1] == 0x70 && (pbVar26[2] == 0x24)" (binary_expression "pbVar26[1] == 0x70" (subscript_expression "pbVar26[1]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(pbVar26[2] == 0x24)" ( (binary_expression "pbVar26[2] == 0x24" (subscript_expression "pbVar26[2]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          pcVar17 = pcVar16;\n          while ((cVar3 != '.' && (cVar3 != '\0'))) {\n            pcVar17 = pcVar17 + 1;\n            cVar3 = *pcVar17;\n          }\n          if (cVar3 != '.') {\n            bad_stab((char *)pbVar31);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (debug_method_variant *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = savestring(pcVar16,(int)pcVar17 - (int)pcVar16);\n          *pp = pcVar17 + 1;\n        }" { (expression_statement "*pp = pcVar16;" (assignment_expression "*pp = pcVar16" (pointer_expression "*pp" * identifier) = identifier) ;) (expression_statement "cVar3 = pcVar17[2];" (assignment_expression "cVar3 = pcVar17[2]" identifier = (subscript_expression "pcVar17[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar17 = pcVar16;" (assignment_expression "pcVar17 = pcVar16" identifier = identifier) ;) (while_statement "while ((cVar3 != '.' && (cVar3 != '\0'))) {\n            pcVar17 = pcVar17 + 1;\n            cVar3 = *pcVar17;\n          }" while (parenthesized_expression "((cVar3 != '.' && (cVar3 != '\0')))" ( (parenthesized_expression "(cVar3 != '.' && (cVar3 != '\0'))" ( (binary_expression "cVar3 != '.' && (cVar3 != '\0')" (binary_expression "cVar3 != '.'" identifier != (char_literal "'.'" ' character ')) && (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) )) (compound_statement "{\n            pcVar17 = pcVar17 + 1;\n            cVar3 = *pcVar17;\n          }" { (expression_statement "pcVar17 = pcVar17 + 1;" (assignment_expression "pcVar17 = pcVar17 + 1" identifier = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (expression_statement "cVar3 = *pcVar17;" (assignment_expression "cVar3 = *pcVar17" identifier = (pointer_expression "*pcVar17" * identifier)) ;) })) (if_statement "if (cVar3 != '.') {\n            bad_stab((char *)pbVar31);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (debug_method_variant *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }" if (parenthesized_expression "(cVar3 != '.')" ( (binary_expression "cVar3 != '.'" identifier != (char_literal "'.'" ' character ')) )) (compound_statement "{\n            bad_stab((char *)pbVar31);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (debug_method_variant *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }" { (expression_statement "bad_stab((char *)pbVar31);" (call_expression "bad_stab((char *)pbVar31)" identifier (argument_list "((char *)pbVar31)" ( (cast_expression "(char *)pbVar31" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (if_statement "if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }" if (parenthesized_expression "(local_138 != (char *)0x0)" ( (binary_expression "local_138 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0013279c:\n              free(local_138);\n            }" { (labeled_statement "LAB_0013279c:\n              free(local_138);" statement_identifier : (expression_statement "free(local_138);" (call_expression "free(local_138)" identifier (argument_list "(local_138)" ( identifier ))) ;)) })) (if_statement "if (local_128 != (debug_method_variant *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }" if (parenthesized_expression "(local_128 != (debug_method_variant *)0x0)" ( (binary_expression "local_128 != (debug_method_variant *)0x0" identifier != (cast_expression "(debug_method_variant *)0x0" ( (type_descriptor "debug_method_variant *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00132d1b:\n              free(local_128);\n            }" { (labeled_statement "LAB_00132d1b:\n              free(local_128);" statement_identifier : (expression_statement "free(local_128);" (call_expression "free(local_128)" identifier (argument_list "(local_128)" ( identifier ))) ;)) })) (if_statement "if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }" if (parenthesized_expression "(pbVar40 != (byte *)0x0)" ( (binary_expression "pbVar40 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              free(pbVar40);\n            }" { (expression_statement "free(pbVar40);" (call_expression "free(pbVar40)" identifier (argument_list "(pbVar40)" ( identifier ))) ;) })) (goto_statement "goto LAB_00131328;" goto statement_identifier ;) })) (expression_statement "local_138 = savestring(pcVar16,(int)pcVar17 - (int)pcVar16);" (assignment_expression "local_138 = savestring(pcVar16,(int)pcVar17 - (int)pcVar16)" identifier = (call_expression "savestring(pcVar16,(int)pcVar17 - (int)pcVar16)" identifier (argument_list "(pcVar16,(int)pcVar17 - (int)pcVar16)" ( identifier , (binary_expression "(int)pcVar17 - (int)pcVar16" (cast_expression "(int)pcVar17" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*pp = pcVar17 + 1;" (assignment_expression "*pp = pcVar17 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n          local_138 = savestring((char *)pbVar26,(int)pcVar17 - (int)pbVar26);\n          *pp = pcVar16;\n        }" else (compound_statement "{\n          local_138 = savestring((char *)pbVar26,(int)pcVar17 - (int)pbVar26);\n          *pp = pcVar16;\n        }" { (expression_statement "local_138 = savestring((char *)pbVar26,(int)pcVar17 - (int)pbVar26);" (assignment_expression "local_138 = savestring((char *)pbVar26,(int)pcVar17 - (int)pbVar26)" identifier = (call_expression "savestring((char *)pbVar26,(int)pcVar17 - (int)pbVar26)" identifier (argument_list "((char *)pbVar26,(int)pcVar17 - (int)pbVar26)" ( (cast_expression "(char *)pbVar26" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (binary_expression "(int)pcVar17 - (int)pbVar26" (cast_expression "(int)pcVar17" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "*pp = pcVar16;" (assignment_expression "*pp = pcVar16" (pointer_expression "*pp" * identifier) = identifier) ;) }))) (expression_statement "local_128 = (debug_method_variant *)xmalloc(0x50);" (assignment_expression "local_128 = (debug_method_variant *)xmalloc(0x50)" identifier = (cast_expression "(debug_method_variant *)xmalloc(0x50)" ( (type_descriptor "debug_method_variant *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;) (expression_statement "local_e8 = 10;" (assignment_expression "local_e8 = 10" identifier = number_literal) ;) (expression_statement "pdVar18 = (debug_type)0x0;" (assignment_expression "pdVar18 = (debug_type)0x0" identifier = (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) ;) (do_statement "do {\n          if (pdVar18 == (debug_type)0x0) {\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 != (debug_type)0x0) {\n              pcVar17 = *pp;\n              if (*pcVar17 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar17 = *pp;\nLAB_00131d3f:\n          *pp = pcVar17 + 1;\n          pcVar17 = strchr(pcVar17 + 1,0x3b);\n          if (pcVar17 == (char *)0x0) {\nLAB_00132781:\n            bad_stab((char *)pbVar31);\n            goto LAB_00132793;\n          }\n          dVar6 = debug_get_type_kind(dhandle,pdVar18);\n          bVar41 = false;\n          if (dVar6 == DEBUG_KIND_METHOD) {\n            ppdVar9 = debug_get_parameter_types(dhandle,pdVar18,&varargs);\n            bVar41 = ppdVar9 == (debug_type_conflict *)0x0;\n          }\n          pbVar40 = (byte *)savestring(*pp,(int)pcVar17 - (int)*pp);\n          *pp = pcVar17 + 1;\n          cVar3 = pcVar17[1];\n          if (cVar3 == '0') {\n            local_e4 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else if (cVar3 == '1') {\n            local_e4 = DEBUG_VISIBILITY_PROTECTED;\n          }\n          else {\n            if (cVar3 == '\0') goto LAB_00132781;\n            local_e4 = DEBUG_VISIBILITY_PUBLIC;\n          }\n          pcVar16 = pcVar17 + 2;\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          switch(cVar3) {\n          case '*':\n          case '.':\n          case '?':\n            local_118 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            pcVar17 = (char *)dcgettext(0,"const/volatile indicator missing",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar16 = *pp;\n            local_118 = 0;\n            local_f0 = 0;\n            cVar3 = *pcVar16;\n            break;\n          case 'A':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            local_f0 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n          }\n          pbVar26 = pbVar40;\n          if (cVar3 == '.') {\n            bVar44 = false;\n            pdVar19 = (debug_type)0x0;\n            *pp = pcVar16 + 1;\n            local_100 = (debug_type)0x0;\n            local_e0 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar3 != '?') {\n              if (cVar3 == '*') {\n                *pp = pcVar16 + 1;\n                bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n                pcVar17 = *pp;\n                if (*pcVar17 != ';') goto LAB_00132781;\n                local_e0 = (ulong)((uint)bVar13 & 0x7fffffff);\n                *pp = pcVar17 + 1;\n                if ((pcVar17[1] == ';') || (pcVar17[1] == '\0')) {\n                  local_100 = (debug_type)0x0;\n                  pdVar19 = (debug_type)0x0;\n                  bVar44 = false;\n                }\n                else {\n                  pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end);\n                  cVar3 = **pp;\n                  if (cVar3 == ':') {\n                    local_100 = (debug_type)0x0;\n                    bVar44 = false;\n                    pdVar19 = pdVar23;\n                  }\n                  else {\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }\n                }\n              }\n              else {\n                warn_stab((char *)pbVar31,"member function type missing");\n                bVar44 = false;\n                local_100 = (debug_type)0x0;\n                local_e0 = 0;\n                pdVar19 = (debug_type)0x0;\n              }\n              goto LAB_001322ba;\n            }\n            *pp = pcVar16 + 1;\n            sVar32 = strlen(local_138);\n            iVar7 = strncmp((char *)pbVar40,local_138,sVar32);\n            if (iVar7 == 0) {\n              local_100 = (debug_type)0x0;\n              pdVar19 = (debug_type)0x0;\n              local_e0 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = (debug_type)0x0;\n            pdVar19 = (debug_type)0x0;\n            local_e0 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            pdVar23 = stab_find_type(dhandle,info,typenums);\n            if (pdVar23 == (debug_type)0x0) goto LAB_00132793;\n            pdVar20 = debug_get_return_type(dhandle,pdVar18);\n            if (pdVar20 == (debug_type_conflict)0x0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar7 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar7 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (type_name != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar2 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) && (bVar2 != 0x51 && bVar2 != 0x74))\n                 && (iVar7 = strncmp((char *)pbVar40,"__ct",4), iVar7 != 0)) {\n                if (type_name != (char *)0x0) {\nLAB_001338f6:\n                  iVar7 = strcmp(local_138,type_name);\n                  bVar45 = iVar7 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar40;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\nLAB_0013360b:\n              pcVar16 = p;\n              local_40 = 0;\n              pcVar17 = p;\n              do {\n                pcVar25 = strchr(pcVar17,0x5f);\n                if (pcVar25 == (char *)0x0) goto LAB_00133635;\n                pcVar17 = pcVar25 + 1;\n              } while (pcVar25[1] != '_');\n              if (pcVar17 != (char *)0x0) {\n                sVar32 = strspn(pcVar25,"_");\n                if (2 < (uint)sVar32) {\n                  pcVar25 = pcVar25 + ((uint)sVar32 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              stab_bad_demangle(pcVar16);\nLAB_0013323f:\n              if (local_48 != (stab_demangle_typestring *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a76;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar41 = *pbVar34 < *pbVar35;\n              bVar45 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (type_name == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar7 = strcmp(local_138,type_name);\n              bVar45 = iVar7 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a4b;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar42 = *pbVar34 < *pbVar35;\n              bVar46 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              arg_types = (stab_demangle_typestring *)xmalloc(8);\n              arg_types->typestring = (char *)0x0;\n              bVar4 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (type_name != (char *)0x0) {\n                sVar32 = strlen(type_name);\n                local_d8 = sVar32 & 0xffffffff;\n              }\n              pcVar16 = "C";\n              pcVar17 = "V";\n              if (local_f0 == 0) {\n                pcVar16 = "";\n              }\n              if (local_118 == 0) {\n                pcVar17 = "";\n              }\n              local_c0 = type_name;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)xtypenums,"__%s%s");\n              }\n              else if ((type_name == (char *)0x0) ||\n                      (pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0)) {\n                sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8);\n              }\n              else {\n                sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)xtypenums;\n              do {\n                puVar29 = puVar30;\n                uVar8 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar39 = uVar8 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar39 == 0);\n              bVar41 = (uVar8 & 0x8080) == 0;\n              if (bVar41) {\n                uVar39 = uVar39 >> 0x10;\n              }\n              cVar3 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar7 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar39,(byte)uVar39)) -\n                      (int)xtypenums;\n              sVar32 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar7 = iVar7 + (int)local_d8 + 1 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar26 = (byte *)xmalloc(iVar7);\n                *pbVar26 = 0;\n              }\n              else {\n                lVar11 = -1;\n                pcVar17 = local_138;\n                do {\n                  if (lVar11 == 0) break;\n                  lVar11 = lVar11 + -1;\n                  cVar1 = *pcVar17;\n                  pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar7 = ((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar17 == (char *)0x0) {\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar11 = -1;\n                  pcVar16 = pcVar17;\n                  do {\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar3 != '\0');\n                  pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);\n                  strncpy((char *)pbVar26,local_138,3);\n                  strcpy((char *)(pbVar26 + 3),pcVar17);\n                }\n                else {\n                  pbVar26 = (byte *)xmalloc(iVar7);\n                  strcpy((char *)pbVar26,local_138);\n                }\n              }\n              sVar32 = strlen((char *)pbVar26);\n              local_d8 = sVar32 & 0xffffffff;\n              pcVar17 = stpcpy((char *)(pbVar26 + sVar32),(char *)xtypenums);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar17,local_c0);\n              }\n              strcat((char *)pbVar26,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar26 == 0x5f) && (pbVar26[1] == 0x5a)) {\nLAB_00133b71:\n                p = (char *)pbVar26;\n                pdVar27 = cplus_demangle_v3_components((char *)pbVar26,3,(void **)xtypenums);\n                if (pdVar27 == (demangle_component *)0x0) {\n                  stab_bad_demangle((char *)pbVar26);\n                }\n                else {\n                  if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }\n                  pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar17);\n                  free((void *)xtypenums);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar26;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pcVar25 = p + local_d8;\n              pcVar16 = p;\nLAB_001330d0:\n              bVar2 = pcVar25[2];\n              if (pcVar16 == pcVar25) {\n                if (((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) &&\n                   (pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74)) {\n                  for (; *pcVar17 == '_'; pcVar17 = pcVar17 + 1) {\n                  }\n                  pcVar17 = strstr(pcVar17,"__");\n                  if ((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')) {\n                    stab_bad_demangle(pcVar25);\n                    goto LAB_0013323f;\n                  }\n                  iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17);\n                  goto LAB_001330fd;\n                }\n                p = pcVar25 + 2;\n              }\n              else {\n                if (bVar2 == 0) goto LAB_00133635;\n                iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25);\nLAB_001330fd:\n                if (iVar7 == 0) goto LAB_0013323f;\n              }\n              pcVar17 = p;\n              cVar3 = *p;\n              if (cVar3 != '\0') {\n                pcVar16 = (char *)0x0;\n                bVar41 = false;\n                pstart = (char **)0x0;\n                do {\n                  pcVar25 = p;\n                  switch(cVar3) {\n                  case '0':\n                  case '1':\n                  case '2':\n                  case '3':\n                  case '4':\n                  case '5':\n                  case '6':\n                  case '7':\n                  case '8':\n                  case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;\n                  default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'C':\n                  case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;\n                  case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;\n                  case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar41) {\nLAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    pstart = (char **)0x1;\n                  }\n                  cVar3 = *p;\n                } while (cVar3 != '\0');\n                if (((int)pstart == 0) &&\n                   (bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (stab_demangle_typestring *)0x0;\n              if (local_58 == (stab_demangle_typestring *)0x0) {\n                pcVar17 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar17);\n              }\n              varargs_1 = local_50[0];\n              arg_types = local_58;\nLAB_00133211:\n              bVar4 = varargs_1;\n              if (arg_types == (stab_demangle_typestring *)0x0) goto LAB_00132793;\n            }\n            pdVar18 = debug_make_method_type\n                                (dhandle,pdVar20,pdVar23,(debug_type_conflict *)arg_types,bVar4);\n            if (pdVar18 == (debug_type_conflict)0x0) goto LAB_00132793;\n          }\n          uVar39 = local_ec + 1;\n          if (local_e8 <= uVar39) {\n            local_e8 = local_e8 + 10;\n            local_128 = (debug_method_variant *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          if (bVar44) {\n            pdVar21 = debug_make_static_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118);\n            local_128[local_ec] = pdVar21;\n          }\n          else {\n            pdVar21 = debug_make_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118,\n                                 local_e0,local_100);\n            local_128[local_ec] = pdVar21;\n          }\n          if (pdVar21 == (debug_method_variant)0x0) goto LAB_00132793;\n          pcVar17 = *pp;\n        } while ((*pcVar17 != ';') && (pdVar18 = pdVar19, local_ec = uVar39, *pcVar17 != '\0'));" do (compound_statement "{\n          if (pdVar18 == (debug_type)0x0) {\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 != (debug_type)0x0) {\n              pcVar17 = *pp;\n              if (*pcVar17 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar17 = *pp;\nLAB_00131d3f:\n          *pp = pcVar17 + 1;\n          pcVar17 = strchr(pcVar17 + 1,0x3b);\n          if (pcVar17 == (char *)0x0) {\nLAB_00132781:\n            bad_stab((char *)pbVar31);\n            goto LAB_00132793;\n          }\n          dVar6 = debug_get_type_kind(dhandle,pdVar18);\n          bVar41 = false;\n          if (dVar6 == DEBUG_KIND_METHOD) {\n            ppdVar9 = debug_get_parameter_types(dhandle,pdVar18,&varargs);\n            bVar41 = ppdVar9 == (debug_type_conflict *)0x0;\n          }\n          pbVar40 = (byte *)savestring(*pp,(int)pcVar17 - (int)*pp);\n          *pp = pcVar17 + 1;\n          cVar3 = pcVar17[1];\n          if (cVar3 == '0') {\n            local_e4 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else if (cVar3 == '1') {\n            local_e4 = DEBUG_VISIBILITY_PROTECTED;\n          }\n          else {\n            if (cVar3 == '\0') goto LAB_00132781;\n            local_e4 = DEBUG_VISIBILITY_PUBLIC;\n          }\n          pcVar16 = pcVar17 + 2;\n          *pp = pcVar16;\n          cVar3 = pcVar17[2];\n          switch(cVar3) {\n          case '*':\n          case '.':\n          case '?':\n            local_118 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            pcVar17 = (char *)dcgettext(0,"const/volatile indicator missing",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar16 = *pp;\n            local_118 = 0;\n            local_f0 = 0;\n            cVar3 = *pcVar16;\n            break;\n          case 'A':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            local_f0 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n          }\n          pbVar26 = pbVar40;\n          if (cVar3 == '.') {\n            bVar44 = false;\n            pdVar19 = (debug_type)0x0;\n            *pp = pcVar16 + 1;\n            local_100 = (debug_type)0x0;\n            local_e0 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar3 != '?') {\n              if (cVar3 == '*') {\n                *pp = pcVar16 + 1;\n                bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n                pcVar17 = *pp;\n                if (*pcVar17 != ';') goto LAB_00132781;\n                local_e0 = (ulong)((uint)bVar13 & 0x7fffffff);\n                *pp = pcVar17 + 1;\n                if ((pcVar17[1] == ';') || (pcVar17[1] == '\0')) {\n                  local_100 = (debug_type)0x0;\n                  pdVar19 = (debug_type)0x0;\n                  bVar44 = false;\n                }\n                else {\n                  pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end);\n                  cVar3 = **pp;\n                  if (cVar3 == ':') {\n                    local_100 = (debug_type)0x0;\n                    bVar44 = false;\n                    pdVar19 = pdVar23;\n                  }\n                  else {\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }\n                }\n              }\n              else {\n                warn_stab((char *)pbVar31,"member function type missing");\n                bVar44 = false;\n                local_100 = (debug_type)0x0;\n                local_e0 = 0;\n                pdVar19 = (debug_type)0x0;\n              }\n              goto LAB_001322ba;\n            }\n            *pp = pcVar16 + 1;\n            sVar32 = strlen(local_138);\n            iVar7 = strncmp((char *)pbVar40,local_138,sVar32);\n            if (iVar7 == 0) {\n              local_100 = (debug_type)0x0;\n              pdVar19 = (debug_type)0x0;\n              local_e0 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = (debug_type)0x0;\n            pdVar19 = (debug_type)0x0;\n            local_e0 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            pdVar23 = stab_find_type(dhandle,info,typenums);\n            if (pdVar23 == (debug_type)0x0) goto LAB_00132793;\n            pdVar20 = debug_get_return_type(dhandle,pdVar18);\n            if (pdVar20 == (debug_type_conflict)0x0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar7 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar7 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (type_name != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar2 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) && (bVar2 != 0x51 && bVar2 != 0x74))\n                 && (iVar7 = strncmp((char *)pbVar40,"__ct",4), iVar7 != 0)) {\n                if (type_name != (char *)0x0) {\nLAB_001338f6:\n                  iVar7 = strcmp(local_138,type_name);\n                  bVar45 = iVar7 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar40;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\nLAB_0013360b:\n              pcVar16 = p;\n              local_40 = 0;\n              pcVar17 = p;\n              do {\n                pcVar25 = strchr(pcVar17,0x5f);\n                if (pcVar25 == (char *)0x0) goto LAB_00133635;\n                pcVar17 = pcVar25 + 1;\n              } while (pcVar25[1] != '_');\n              if (pcVar17 != (char *)0x0) {\n                sVar32 = strspn(pcVar25,"_");\n                if (2 < (uint)sVar32) {\n                  pcVar25 = pcVar25 + ((uint)sVar32 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              stab_bad_demangle(pcVar16);\nLAB_0013323f:\n              if (local_48 != (stab_demangle_typestring *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a76;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar41 = *pbVar34 < *pbVar35;\n              bVar45 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (type_name == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar7 = strcmp(local_138,type_name);\n              bVar45 = iVar7 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a4b;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar42 = *pbVar34 < *pbVar35;\n              bVar46 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              arg_types = (stab_demangle_typestring *)xmalloc(8);\n              arg_types->typestring = (char *)0x0;\n              bVar4 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (type_name != (char *)0x0) {\n                sVar32 = strlen(type_name);\n                local_d8 = sVar32 & 0xffffffff;\n              }\n              pcVar16 = "C";\n              pcVar17 = "V";\n              if (local_f0 == 0) {\n                pcVar16 = "";\n              }\n              if (local_118 == 0) {\n                pcVar17 = "";\n              }\n              local_c0 = type_name;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)xtypenums,"__%s%s");\n              }\n              else if ((type_name == (char *)0x0) ||\n                      (pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0)) {\n                sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8);\n              }\n              else {\n                sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)xtypenums;\n              do {\n                puVar29 = puVar30;\n                uVar8 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar39 = uVar8 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar39 == 0);\n              bVar41 = (uVar8 & 0x8080) == 0;\n              if (bVar41) {\n                uVar39 = uVar39 >> 0x10;\n              }\n              cVar3 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar7 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar39,(byte)uVar39)) -\n                      (int)xtypenums;\n              sVar32 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar7 = iVar7 + (int)local_d8 + 1 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar26 = (byte *)xmalloc(iVar7);\n                *pbVar26 = 0;\n              }\n              else {\n                lVar11 = -1;\n                pcVar17 = local_138;\n                do {\n                  if (lVar11 == 0) break;\n                  lVar11 = lVar11 + -1;\n                  cVar1 = *pcVar17;\n                  pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar7 = ((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar17 == (char *)0x0) {\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar11 = -1;\n                  pcVar16 = pcVar17;\n                  do {\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar3 != '\0');\n                  pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);\n                  strncpy((char *)pbVar26,local_138,3);\n                  strcpy((char *)(pbVar26 + 3),pcVar17);\n                }\n                else {\n                  pbVar26 = (byte *)xmalloc(iVar7);\n                  strcpy((char *)pbVar26,local_138);\n                }\n              }\n              sVar32 = strlen((char *)pbVar26);\n              local_d8 = sVar32 & 0xffffffff;\n              pcVar17 = stpcpy((char *)(pbVar26 + sVar32),(char *)xtypenums);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar17,local_c0);\n              }\n              strcat((char *)pbVar26,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar26 == 0x5f) && (pbVar26[1] == 0x5a)) {\nLAB_00133b71:\n                p = (char *)pbVar26;\n                pdVar27 = cplus_demangle_v3_components((char *)pbVar26,3,(void **)xtypenums);\n                if (pdVar27 == (demangle_component *)0x0) {\n                  stab_bad_demangle((char *)pbVar26);\n                }\n                else {\n                  if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }\n                  pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar17);\n                  free((void *)xtypenums);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar26;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pcVar25 = p + local_d8;\n              pcVar16 = p;\nLAB_001330d0:\n              bVar2 = pcVar25[2];\n              if (pcVar16 == pcVar25) {\n                if (((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) &&\n                   (pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74)) {\n                  for (; *pcVar17 == '_'; pcVar17 = pcVar17 + 1) {\n                  }\n                  pcVar17 = strstr(pcVar17,"__");\n                  if ((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')) {\n                    stab_bad_demangle(pcVar25);\n                    goto LAB_0013323f;\n                  }\n                  iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17);\n                  goto LAB_001330fd;\n                }\n                p = pcVar25 + 2;\n              }\n              else {\n                if (bVar2 == 0) goto LAB_00133635;\n                iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25);\nLAB_001330fd:\n                if (iVar7 == 0) goto LAB_0013323f;\n              }\n              pcVar17 = p;\n              cVar3 = *p;\n              if (cVar3 != '\0') {\n                pcVar16 = (char *)0x0;\n                bVar41 = false;\n                pstart = (char **)0x0;\n                do {\n                  pcVar25 = p;\n                  switch(cVar3) {\n                  case '0':\n                  case '1':\n                  case '2':\n                  case '3':\n                  case '4':\n                  case '5':\n                  case '6':\n                  case '7':\n                  case '8':\n                  case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;\n                  default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'C':\n                  case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;\n                  case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;\n                  case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar41) {\nLAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    pstart = (char **)0x1;\n                  }\n                  cVar3 = *p;\n                } while (cVar3 != '\0');\n                if (((int)pstart == 0) &&\n                   (bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (stab_demangle_typestring *)0x0;\n              if (local_58 == (stab_demangle_typestring *)0x0) {\n                pcVar17 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar17);\n              }\n              varargs_1 = local_50[0];\n              arg_types = local_58;\nLAB_00133211:\n              bVar4 = varargs_1;\n              if (arg_types == (stab_demangle_typestring *)0x0) goto LAB_00132793;\n            }\n            pdVar18 = debug_make_method_type\n                                (dhandle,pdVar20,pdVar23,(debug_type_conflict *)arg_types,bVar4);\n            if (pdVar18 == (debug_type_conflict)0x0) goto LAB_00132793;\n          }\n          uVar39 = local_ec + 1;\n          if (local_e8 <= uVar39) {\n            local_e8 = local_e8 + 10;\n            local_128 = (debug_method_variant *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          if (bVar44) {\n            pdVar21 = debug_make_static_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118);\n            local_128[local_ec] = pdVar21;\n          }\n          else {\n            pdVar21 = debug_make_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118,\n                                 local_e0,local_100);\n            local_128[local_ec] = pdVar21;\n          }\n          if (pdVar21 == (debug_method_variant)0x0) goto LAB_00132793;\n          pcVar17 = *pp;\n        }" { (if_statement "if (pdVar18 == (debug_type)0x0) {\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 != (debug_type)0x0) {\n              pcVar17 = *pp;\n              if (*pcVar17 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }" if (parenthesized_expression "(pdVar18 == (debug_type)0x0)" ( (binary_expression "pdVar18 == (debug_type)0x0" identifier == (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (compound_statement "{\n            pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;\n            if (pdVar18 != (debug_type)0x0) {\n              pcVar17 = *pp;\n              if (*pcVar17 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }" { (expression_statement "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)\n            ;" (assignment_expression "pdVar18 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier = (call_expression "parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier (argument_list "(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(debug_type_conflict **)0x0" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , identifier )))) ;) (if_statement "if (pdVar18 != (debug_type)0x0) {\n              pcVar17 = *pp;\n              if (*pcVar17 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }" if (parenthesized_expression "(pdVar18 != (debug_type)0x0)" ( (binary_expression "pdVar18 != (debug_type)0x0" identifier != (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (compound_statement "{\n              pcVar17 = *pp;\n              if (*pcVar17 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }" { (expression_statement "pcVar17 = *pp;" (assignment_expression "pcVar17 = *pp" identifier = (pointer_expression "*pp" * identifier)) ;) (if_statement "if (*pcVar17 == ':') goto LAB_00131d3f;" if (parenthesized_expression "(*pcVar17 == ':')" ( (binary_expression "*pcVar17 == ':'" (pointer_expression "*pcVar17" * identifier) == (char_literal "':'" ' character ')) )) (goto_statement "goto LAB_00131d3f;" goto statement_identifier ;)) (goto_statement "goto LAB_00132781;" goto statement_identifier ;) })) (labeled_statement "LAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;" statement_identifier : (if_statement "if (local_138 == (char *)0x0) goto LAB_00132d1b;" if (parenthesized_expression "(local_138 == (char *)0x0)" ( (binary_expression "local_138 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00132d1b;" goto statement_identifier ;))) (goto_statement "goto LAB_0013279c;" goto statement_identifier ;) })) (expression_statement "pcVar17 = *pp;" (assignment_expression "pcVar17 = *pp" identifier = (pointer_expression "*pp" * identifier)) ;) (labeled_statement "LAB_00131d3f:\n          *pp = pcVar17 + 1;" statement_identifier : (expression_statement "*pp = pcVar17 + 1;" (assignment_expression "*pp = pcVar17 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;)) (expression_statement "pcVar17 = strchr(pcVar17 + 1,0x3b);" (assignment_expression "pcVar17 = strchr(pcVar17 + 1,0x3b)" identifier = (call_expression "strchr(pcVar17 + 1,0x3b)" identifier (argument_list "(pcVar17 + 1,0x3b)" ( (binary_expression "pcVar17 + 1" identifier + number_literal) , number_literal )))) ;) (if_statement "if (pcVar17 == (char *)0x0) {\nLAB_00132781:\n            bad_stab((char *)pbVar31);\n            goto LAB_00132793;\n          }" if (parenthesized_expression "(pcVar17 == (char *)0x0)" ( (binary_expression "pcVar17 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00132781:\n            bad_stab((char *)pbVar31);\n            goto LAB_00132793;\n          }" { (labeled_statement "LAB_00132781:\n            bad_stab((char *)pbVar31);" statement_identifier : (expression_statement "bad_stab((char *)pbVar31);" (call_expression "bad_stab((char *)pbVar31)" identifier (argument_list "((char *)pbVar31)" ( (cast_expression "(char *)pbVar31" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (goto_statement "goto LAB_00132793;" goto statement_identifier ;) })) (expression_statement "dVar6 = debug_get_type_kind(dhandle,pdVar18);" (assignment_expression "dVar6 = debug_get_type_kind(dhandle,pdVar18)" identifier = (call_expression "debug_get_type_kind(dhandle,pdVar18)" identifier (argument_list "(dhandle,pdVar18)" ( identifier , identifier )))) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (if_statement "if (dVar6 == DEBUG_KIND_METHOD) {\n            ppdVar9 = debug_get_parameter_types(dhandle,pdVar18,&varargs);\n            bVar41 = ppdVar9 == (debug_type_conflict *)0x0;\n          }" if (parenthesized_expression "(dVar6 == DEBUG_KIND_METHOD)" ( (binary_expression "dVar6 == DEBUG_KIND_METHOD" identifier == identifier) )) (compound_statement "{\n            ppdVar9 = debug_get_parameter_types(dhandle,pdVar18,&varargs);\n            bVar41 = ppdVar9 == (debug_type_conflict *)0x0;\n          }" { (expression_statement "ppdVar9 = debug_get_parameter_types(dhandle,pdVar18,&varargs);" (assignment_expression "ppdVar9 = debug_get_parameter_types(dhandle,pdVar18,&varargs)" identifier = (call_expression "debug_get_parameter_types(dhandle,pdVar18,&varargs)" identifier (argument_list "(dhandle,pdVar18,&varargs)" ( identifier , identifier , (pointer_expression "&varargs" & identifier) )))) ;) (expression_statement "bVar41 = ppdVar9 == (debug_type_conflict *)0x0;" (assignment_expression "bVar41 = ppdVar9 == (debug_type_conflict *)0x0" identifier = (binary_expression "ppdVar9 == (debug_type_conflict *)0x0" identifier == (cast_expression "(debug_type_conflict *)0x0" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) ;) })) (expression_statement "pbVar40 = (byte *)savestring(*pp,(int)pcVar17 - (int)*pp);" (assignment_expression "pbVar40 = (byte *)savestring(*pp,(int)pcVar17 - (int)*pp)" identifier = (cast_expression "(byte *)savestring(*pp,(int)pcVar17 - (int)*pp)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "savestring(*pp,(int)pcVar17 - (int)*pp)" identifier (argument_list "(*pp,(int)pcVar17 - (int)*pp)" ( (pointer_expression "*pp" * identifier) , (binary_expression "(int)pcVar17 - (int)*pp" (cast_expression "(int)pcVar17" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)*pp" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pp" * identifier))) ))))) ;) (expression_statement "*pp = pcVar17 + 1;" (assignment_expression "*pp = pcVar17 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (expression_statement "cVar3 = pcVar17[1];" (assignment_expression "cVar3 = pcVar17[1]" identifier = (subscript_expression "pcVar17[1]" identifier [ number_literal ])) ;) (if_statement "if (cVar3 == '0') {\n            local_e4 = DEBUG_VISIBILITY_PRIVATE;\n          }\n          else if (cVar3 == '1') {\n            local_e4 = DEBUG_VISIBILITY_PROTECTED;\n          }\n          else {\n            if (cVar3 == '\0') goto LAB_00132781;\n            local_e4 = DEBUG_VISIBILITY_PUBLIC;\n          }" if (parenthesized_expression "(cVar3 == '0')" ( (binary_expression "cVar3 == '0'" identifier == (char_literal "'0'" ' character ')) )) (compound_statement "{\n            local_e4 = DEBUG_VISIBILITY_PRIVATE;\n          }" { (expression_statement "local_e4 = DEBUG_VISIBILITY_PRIVATE;" (assignment_expression "local_e4 = DEBUG_VISIBILITY_PRIVATE" identifier = identifier) ;) }) (else_clause "else if (cVar3 == '1') {\n            local_e4 = DEBUG_VISIBILITY_PROTECTED;\n          }\n          else {\n            if (cVar3 == '\0') goto LAB_00132781;\n            local_e4 = DEBUG_VISIBILITY_PUBLIC;\n          }" else (if_statement "if (cVar3 == '1') {\n            local_e4 = DEBUG_VISIBILITY_PROTECTED;\n          }\n          else {\n            if (cVar3 == '\0') goto LAB_00132781;\n            local_e4 = DEBUG_VISIBILITY_PUBLIC;\n          }" if (parenthesized_expression "(cVar3 == '1')" ( (binary_expression "cVar3 == '1'" identifier == (char_literal "'1'" ' character ')) )) (compound_statement "{\n            local_e4 = DEBUG_VISIBILITY_PROTECTED;\n          }" { (expression_statement "local_e4 = DEBUG_VISIBILITY_PROTECTED;" (assignment_expression "local_e4 = DEBUG_VISIBILITY_PROTECTED" identifier = identifier) ;) }) (else_clause "else {\n            if (cVar3 == '\0') goto LAB_00132781;\n            local_e4 = DEBUG_VISIBILITY_PUBLIC;\n          }" else (compound_statement "{\n            if (cVar3 == '\0') goto LAB_00132781;\n            local_e4 = DEBUG_VISIBILITY_PUBLIC;\n          }" { (if_statement "if (cVar3 == '\0') goto LAB_00132781;" if (parenthesized_expression "(cVar3 == '\0')" ( (binary_expression "cVar3 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00132781;" goto statement_identifier ;)) (expression_statement "local_e4 = DEBUG_VISIBILITY_PUBLIC;" (assignment_expression "local_e4 = DEBUG_VISIBILITY_PUBLIC" identifier = identifier) ;) }))))) (expression_statement "pcVar16 = pcVar17 + 2;" (assignment_expression "pcVar16 = pcVar17 + 2" identifier = (binary_expression "pcVar17 + 2" identifier + number_literal)) ;) (expression_statement "*pp = pcVar16;" (assignment_expression "*pp = pcVar16" (pointer_expression "*pp" * identifier) = identifier) ;) (expression_statement "cVar3 = pcVar17[2];" (assignment_expression "cVar3 = pcVar17[2]" identifier = (subscript_expression "pcVar17[2]" identifier [ number_literal ])) ;) (switch_statement "switch(cVar3) {\n          case '*':\n          case '.':\n          case '?':\n            local_118 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            pcVar17 = (char *)dcgettext(0,"const/volatile indicator missing",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar16 = *pp;\n            local_118 = 0;\n            local_f0 = 0;\n            cVar3 = *pcVar16;\n            break;\n          case 'A':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            local_f0 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n          }" switch (parenthesized_expression "(cVar3)" ( identifier )) (compound_statement "{\n          case '*':\n          case '.':\n          case '?':\n            local_118 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            pcVar17 = (char *)dcgettext(0,"const/volatile indicator missing",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar16 = *pp;\n            local_118 = 0;\n            local_f0 = 0;\n            cVar3 = *pcVar16;\n            break;\n          case 'A':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            local_f0 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n          }" { (case_statement "case '*':" case (char_literal "'*'" ' character ') :) (case_statement "case '.':" case (char_literal "'.'" ' character ') :) (case_statement "case '?':\n            local_118 = 0;\n            local_f0 = 0;\n            break;" case (char_literal "'?'" ' character ') : (expression_statement "local_118 = 0;" (assignment_expression "local_118 = 0" identifier = number_literal) ;) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n            pcVar17 = (char *)dcgettext(0,"const/volatile indicator missing",5);\n            warn_stab((char *)pbVar31,pcVar17);\n            pcVar16 = *pp;\n            local_118 = 0;\n            local_f0 = 0;\n            cVar3 = *pcVar16;\n            break;" default : (expression_statement "pcVar17 = (char *)dcgettext(0,"const/volatile indicator missing",5);" (assignment_expression "pcVar17 = (char *)dcgettext(0,"const/volatile indicator missing",5)" identifier = (cast_expression "(char *)dcgettext(0,"const/volatile indicator missing",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"const/volatile indicator missing",5)" identifier (argument_list "(0,"const/volatile indicator missing",5)" ( number_literal , (string_literal ""const/volatile indicator missing"" " string_content ") , number_literal ))))) ;) (expression_statement "warn_stab((char *)pbVar31,pcVar17);" (call_expression "warn_stab((char *)pbVar31,pcVar17)" identifier (argument_list "((char *)pbVar31,pcVar17)" ( (cast_expression "(char *)pbVar31" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "pcVar16 = *pp;" (assignment_expression "pcVar16 = *pp" identifier = (pointer_expression "*pp" * identifier)) ;) (expression_statement "local_118 = 0;" (assignment_expression "local_118 = 0" identifier = number_literal) ;) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (expression_statement "cVar3 = *pcVar16;" (assignment_expression "cVar3 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 'A':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;" case (char_literal "'A'" ' character ') : (expression_statement "pcVar16 = pcVar17 + 3;" (assignment_expression "pcVar16 = pcVar17 + 3" identifier = (binary_expression "pcVar17 + 3" identifier + number_literal)) ;) (expression_statement "local_118 = 0;" (assignment_expression "local_118 = 0" identifier = number_literal) ;) (expression_statement "*pp = pcVar16;" (assignment_expression "*pp = pcVar16" (pointer_expression "*pp" * identifier) = identifier) ;) (expression_statement "cVar3 = pcVar17[3];" (assignment_expression "cVar3 = pcVar17[3]" identifier = (subscript_expression "pcVar17[3]" identifier [ number_literal ])) ;) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'B':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 0;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 1;\n            break;" case (char_literal "'B'" ' character ') : (expression_statement "pcVar16 = pcVar17 + 3;" (assignment_expression "pcVar16 = pcVar17 + 3" identifier = (binary_expression "pcVar17 + 3" identifier + number_literal)) ;) (expression_statement "local_118 = 0;" (assignment_expression "local_118 = 0" identifier = number_literal) ;) (expression_statement "*pp = pcVar16;" (assignment_expression "*pp = pcVar16" (pointer_expression "*pp" * identifier) = identifier) ;) (expression_statement "cVar3 = pcVar17[3];" (assignment_expression "cVar3 = pcVar17[3]" identifier = (subscript_expression "pcVar17[3]" identifier [ number_literal ])) ;) (expression_statement "local_f0 = 1;" (assignment_expression "local_f0 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'C':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];\n            local_f0 = 0;\n            break;" case (char_literal "'C'" ' character ') : (expression_statement "pcVar16 = pcVar17 + 3;" (assignment_expression "pcVar16 = pcVar17 + 3" identifier = (binary_expression "pcVar17 + 3" identifier + number_literal)) ;) (expression_statement "local_118 = 1;" (assignment_expression "local_118 = 1" identifier = number_literal) ;) (expression_statement "*pp = pcVar16;" (assignment_expression "*pp = pcVar16" (pointer_expression "*pp" * identifier) = identifier) ;) (expression_statement "cVar3 = pcVar17[3];" (assignment_expression "cVar3 = pcVar17[3]" identifier = (subscript_expression "pcVar17[3]" identifier [ number_literal ])) ;) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'D':\n            pcVar16 = pcVar17 + 3;\n            local_118 = 1;\n            local_f0 = 1;\n            *pp = pcVar16;\n            cVar3 = pcVar17[3];" case (char_literal "'D'" ' character ') : (expression_statement "pcVar16 = pcVar17 + 3;" (assignment_expression "pcVar16 = pcVar17 + 3" identifier = (binary_expression "pcVar17 + 3" identifier + number_literal)) ;) (expression_statement "local_118 = 1;" (assignment_expression "local_118 = 1" identifier = number_literal) ;) (expression_statement "local_f0 = 1;" (assignment_expression "local_f0 = 1" identifier = number_literal) ;) (expression_statement "*pp = pcVar16;" (assignment_expression "*pp = pcVar16" (pointer_expression "*pp" * identifier) = identifier) ;) (expression_statement "cVar3 = pcVar17[3];" (assignment_expression "cVar3 = pcVar17[3]" identifier = (subscript_expression "pcVar17[3]" identifier [ number_literal ])) ;)) })) (expression_statement "pbVar26 = pbVar40;" (assignment_expression "pbVar26 = pbVar40" identifier = identifier) ;) (if_statement "if (cVar3 == '.') {\n            bVar44 = false;\n            pdVar19 = (debug_type)0x0;\n            *pp = pcVar16 + 1;\n            local_100 = (debug_type)0x0;\n            local_e0 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar3 != '?') {\n              if (cVar3 == '*') {\n                *pp = pcVar16 + 1;\n                bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n                pcVar17 = *pp;\n                if (*pcVar17 != ';') goto LAB_00132781;\n                local_e0 = (ulong)((uint)bVar13 & 0x7fffffff);\n                *pp = pcVar17 + 1;\n                if ((pcVar17[1] == ';') || (pcVar17[1] == '\0')) {\n                  local_100 = (debug_type)0x0;\n                  pdVar19 = (debug_type)0x0;\n                  bVar44 = false;\n                }\n                else {\n                  pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end);\n                  cVar3 = **pp;\n                  if (cVar3 == ':') {\n                    local_100 = (debug_type)0x0;\n                    bVar44 = false;\n                    pdVar19 = pdVar23;\n                  }\n                  else {\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }\n                }\n              }\n              else {\n                warn_stab((char *)pbVar31,"member function type missing");\n                bVar44 = false;\n                local_100 = (debug_type)0x0;\n                local_e0 = 0;\n                pdVar19 = (debug_type)0x0;\n              }\n              goto LAB_001322ba;\n            }\n            *pp = pcVar16 + 1;\n            sVar32 = strlen(local_138);\n            iVar7 = strncmp((char *)pbVar40,local_138,sVar32);\n            if (iVar7 == 0) {\n              local_100 = (debug_type)0x0;\n              pdVar19 = (debug_type)0x0;\n              local_e0 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = (debug_type)0x0;\n            pdVar19 = (debug_type)0x0;\n            local_e0 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            pdVar23 = stab_find_type(dhandle,info,typenums);\n            if (pdVar23 == (debug_type)0x0) goto LAB_00132793;\n            pdVar20 = debug_get_return_type(dhandle,pdVar18);\n            if (pdVar20 == (debug_type_conflict)0x0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar7 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar7 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (type_name != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar2 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) && (bVar2 != 0x51 && bVar2 != 0x74))\n                 && (iVar7 = strncmp((char *)pbVar40,"__ct",4), iVar7 != 0)) {\n                if (type_name != (char *)0x0) {\nLAB_001338f6:\n                  iVar7 = strcmp(local_138,type_name);\n                  bVar45 = iVar7 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar40;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\nLAB_0013360b:\n              pcVar16 = p;\n              local_40 = 0;\n              pcVar17 = p;\n              do {\n                pcVar25 = strchr(pcVar17,0x5f);\n                if (pcVar25 == (char *)0x0) goto LAB_00133635;\n                pcVar17 = pcVar25 + 1;\n              } while (pcVar25[1] != '_');\n              if (pcVar17 != (char *)0x0) {\n                sVar32 = strspn(pcVar25,"_");\n                if (2 < (uint)sVar32) {\n                  pcVar25 = pcVar25 + ((uint)sVar32 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              stab_bad_demangle(pcVar16);\nLAB_0013323f:\n              if (local_48 != (stab_demangle_typestring *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a76;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar41 = *pbVar34 < *pbVar35;\n              bVar45 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (type_name == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar7 = strcmp(local_138,type_name);\n              bVar45 = iVar7 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a4b;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar42 = *pbVar34 < *pbVar35;\n              bVar46 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              arg_types = (stab_demangle_typestring *)xmalloc(8);\n              arg_types->typestring = (char *)0x0;\n              bVar4 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (type_name != (char *)0x0) {\n                sVar32 = strlen(type_name);\n                local_d8 = sVar32 & 0xffffffff;\n              }\n              pcVar16 = "C";\n              pcVar17 = "V";\n              if (local_f0 == 0) {\n                pcVar16 = "";\n              }\n              if (local_118 == 0) {\n                pcVar17 = "";\n              }\n              local_c0 = type_name;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)xtypenums,"__%s%s");\n              }\n              else if ((type_name == (char *)0x0) ||\n                      (pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0)) {\n                sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8);\n              }\n              else {\n                sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)xtypenums;\n              do {\n                puVar29 = puVar30;\n                uVar8 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar39 = uVar8 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar39 == 0);\n              bVar41 = (uVar8 & 0x8080) == 0;\n              if (bVar41) {\n                uVar39 = uVar39 >> 0x10;\n              }\n              cVar3 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar7 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar39,(byte)uVar39)) -\n                      (int)xtypenums;\n              sVar32 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar7 = iVar7 + (int)local_d8 + 1 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar26 = (byte *)xmalloc(iVar7);\n                *pbVar26 = 0;\n              }\n              else {\n                lVar11 = -1;\n                pcVar17 = local_138;\n                do {\n                  if (lVar11 == 0) break;\n                  lVar11 = lVar11 + -1;\n                  cVar1 = *pcVar17;\n                  pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar7 = ((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar17 == (char *)0x0) {\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar11 = -1;\n                  pcVar16 = pcVar17;\n                  do {\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar3 != '\0');\n                  pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);\n                  strncpy((char *)pbVar26,local_138,3);\n                  strcpy((char *)(pbVar26 + 3),pcVar17);\n                }\n                else {\n                  pbVar26 = (byte *)xmalloc(iVar7);\n                  strcpy((char *)pbVar26,local_138);\n                }\n              }\n              sVar32 = strlen((char *)pbVar26);\n              local_d8 = sVar32 & 0xffffffff;\n              pcVar17 = stpcpy((char *)(pbVar26 + sVar32),(char *)xtypenums);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar17,local_c0);\n              }\n              strcat((char *)pbVar26,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar26 == 0x5f) && (pbVar26[1] == 0x5a)) {\nLAB_00133b71:\n                p = (char *)pbVar26;\n                pdVar27 = cplus_demangle_v3_components((char *)pbVar26,3,(void **)xtypenums);\n                if (pdVar27 == (demangle_component *)0x0) {\n                  stab_bad_demangle((char *)pbVar26);\n                }\n                else {\n                  if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }\n                  pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar17);\n                  free((void *)xtypenums);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar26;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pcVar25 = p + local_d8;\n              pcVar16 = p;\nLAB_001330d0:\n              bVar2 = pcVar25[2];\n              if (pcVar16 == pcVar25) {\n                if (((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) &&\n                   (pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74)) {\n                  for (; *pcVar17 == '_'; pcVar17 = pcVar17 + 1) {\n                  }\n                  pcVar17 = strstr(pcVar17,"__");\n                  if ((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')) {\n                    stab_bad_demangle(pcVar25);\n                    goto LAB_0013323f;\n                  }\n                  iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17);\n                  goto LAB_001330fd;\n                }\n                p = pcVar25 + 2;\n              }\n              else {\n                if (bVar2 == 0) goto LAB_00133635;\n                iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25);\nLAB_001330fd:\n                if (iVar7 == 0) goto LAB_0013323f;\n              }\n              pcVar17 = p;\n              cVar3 = *p;\n              if (cVar3 != '\0') {\n                pcVar16 = (char *)0x0;\n                bVar41 = false;\n                pstart = (char **)0x0;\n                do {\n                  pcVar25 = p;\n                  switch(cVar3) {\n                  case '0':\n                  case '1':\n                  case '2':\n                  case '3':\n                  case '4':\n                  case '5':\n                  case '6':\n                  case '7':\n                  case '8':\n                  case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;\n                  default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'C':\n                  case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;\n                  case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;\n                  case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar41) {\nLAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    pstart = (char **)0x1;\n                  }\n                  cVar3 = *p;\n                } while (cVar3 != '\0');\n                if (((int)pstart == 0) &&\n                   (bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (stab_demangle_typestring *)0x0;\n              if (local_58 == (stab_demangle_typestring *)0x0) {\n                pcVar17 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar17);\n              }\n              varargs_1 = local_50[0];\n              arg_types = local_58;\nLAB_00133211:\n              bVar4 = varargs_1;\n              if (arg_types == (stab_demangle_typestring *)0x0) goto LAB_00132793;\n            }\n            pdVar18 = debug_make_method_type\n                                (dhandle,pdVar20,pdVar23,(debug_type_conflict *)arg_types,bVar4);\n            if (pdVar18 == (debug_type_conflict)0x0) goto LAB_00132793;\n          }" if (parenthesized_expression "(cVar3 == '.')" ( (binary_expression "cVar3 == '.'" identifier == (char_literal "'.'" ' character ')) )) (compound_statement "{\n            bVar44 = false;\n            pdVar19 = (debug_type)0x0;\n            *pp = pcVar16 + 1;\n            local_100 = (debug_type)0x0;\n            local_e0 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }" { (expression_statement "bVar44 = false;" (assignment_expression "bVar44 = false" identifier = false) ;) (expression_statement "pdVar19 = (debug_type)0x0;" (assignment_expression "pdVar19 = (debug_type)0x0" identifier = (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) ;) (expression_statement "*pp = pcVar16 + 1;" (assignment_expression "*pp = pcVar16 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar16 + 1" identifier + number_literal)) ;) (expression_statement "local_100 = (debug_type)0x0;" (assignment_expression "local_100 = (debug_type)0x0" identifier = (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) ;) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (labeled_statement "LAB_001322ba:\n            if (bVar41) goto LAB_0013282f;" statement_identifier : (if_statement "if (bVar41) goto LAB_0013282f;" if (parenthesized_expression "(bVar41)" ( identifier )) (goto_statement "goto LAB_0013282f;" goto statement_identifier ;))) }) (else_clause "else {\n            if (cVar3 != '?') {\n              if (cVar3 == '*') {\n                *pp = pcVar16 + 1;\n                bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n                pcVar17 = *pp;\n                if (*pcVar17 != ';') goto LAB_00132781;\n                local_e0 = (ulong)((uint)bVar13 & 0x7fffffff);\n                *pp = pcVar17 + 1;\n                if ((pcVar17[1] == ';') || (pcVar17[1] == '\0')) {\n                  local_100 = (debug_type)0x0;\n                  pdVar19 = (debug_type)0x0;\n                  bVar44 = false;\n                }\n                else {\n                  pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end);\n                  cVar3 = **pp;\n                  if (cVar3 == ':') {\n                    local_100 = (debug_type)0x0;\n                    bVar44 = false;\n                    pdVar19 = pdVar23;\n                  }\n                  else {\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }\n                }\n              }\n              else {\n                warn_stab((char *)pbVar31,"member function type missing");\n                bVar44 = false;\n                local_100 = (debug_type)0x0;\n                local_e0 = 0;\n                pdVar19 = (debug_type)0x0;\n              }\n              goto LAB_001322ba;\n            }\n            *pp = pcVar16 + 1;\n            sVar32 = strlen(local_138);\n            iVar7 = strncmp((char *)pbVar40,local_138,sVar32);\n            if (iVar7 == 0) {\n              local_100 = (debug_type)0x0;\n              pdVar19 = (debug_type)0x0;\n              local_e0 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = (debug_type)0x0;\n            pdVar19 = (debug_type)0x0;\n            local_e0 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            pdVar23 = stab_find_type(dhandle,info,typenums);\n            if (pdVar23 == (debug_type)0x0) goto LAB_00132793;\n            pdVar20 = debug_get_return_type(dhandle,pdVar18);\n            if (pdVar20 == (debug_type_conflict)0x0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar7 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar7 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (type_name != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar2 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) && (bVar2 != 0x51 && bVar2 != 0x74))\n                 && (iVar7 = strncmp((char *)pbVar40,"__ct",4), iVar7 != 0)) {\n                if (type_name != (char *)0x0) {\nLAB_001338f6:\n                  iVar7 = strcmp(local_138,type_name);\n                  bVar45 = iVar7 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar40;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\nLAB_0013360b:\n              pcVar16 = p;\n              local_40 = 0;\n              pcVar17 = p;\n              do {\n                pcVar25 = strchr(pcVar17,0x5f);\n                if (pcVar25 == (char *)0x0) goto LAB_00133635;\n                pcVar17 = pcVar25 + 1;\n              } while (pcVar25[1] != '_');\n              if (pcVar17 != (char *)0x0) {\n                sVar32 = strspn(pcVar25,"_");\n                if (2 < (uint)sVar32) {\n                  pcVar25 = pcVar25 + ((uint)sVar32 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              stab_bad_demangle(pcVar16);\nLAB_0013323f:\n              if (local_48 != (stab_demangle_typestring *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a76;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar41 = *pbVar34 < *pbVar35;\n              bVar45 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (type_name == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar7 = strcmp(local_138,type_name);\n              bVar45 = iVar7 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a4b;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar42 = *pbVar34 < *pbVar35;\n              bVar46 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              arg_types = (stab_demangle_typestring *)xmalloc(8);\n              arg_types->typestring = (char *)0x0;\n              bVar4 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (type_name != (char *)0x0) {\n                sVar32 = strlen(type_name);\n                local_d8 = sVar32 & 0xffffffff;\n              }\n              pcVar16 = "C";\n              pcVar17 = "V";\n              if (local_f0 == 0) {\n                pcVar16 = "";\n              }\n              if (local_118 == 0) {\n                pcVar17 = "";\n              }\n              local_c0 = type_name;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)xtypenums,"__%s%s");\n              }\n              else if ((type_name == (char *)0x0) ||\n                      (pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0)) {\n                sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8);\n              }\n              else {\n                sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)xtypenums;\n              do {\n                puVar29 = puVar30;\n                uVar8 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar39 = uVar8 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar39 == 0);\n              bVar41 = (uVar8 & 0x8080) == 0;\n              if (bVar41) {\n                uVar39 = uVar39 >> 0x10;\n              }\n              cVar3 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar7 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar39,(byte)uVar39)) -\n                      (int)xtypenums;\n              sVar32 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar7 = iVar7 + (int)local_d8 + 1 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar26 = (byte *)xmalloc(iVar7);\n                *pbVar26 = 0;\n              }\n              else {\n                lVar11 = -1;\n                pcVar17 = local_138;\n                do {\n                  if (lVar11 == 0) break;\n                  lVar11 = lVar11 + -1;\n                  cVar1 = *pcVar17;\n                  pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar7 = ((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar17 == (char *)0x0) {\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar11 = -1;\n                  pcVar16 = pcVar17;\n                  do {\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar3 != '\0');\n                  pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);\n                  strncpy((char *)pbVar26,local_138,3);\n                  strcpy((char *)(pbVar26 + 3),pcVar17);\n                }\n                else {\n                  pbVar26 = (byte *)xmalloc(iVar7);\n                  strcpy((char *)pbVar26,local_138);\n                }\n              }\n              sVar32 = strlen((char *)pbVar26);\n              local_d8 = sVar32 & 0xffffffff;\n              pcVar17 = stpcpy((char *)(pbVar26 + sVar32),(char *)xtypenums);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar17,local_c0);\n              }\n              strcat((char *)pbVar26,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar26 == 0x5f) && (pbVar26[1] == 0x5a)) {\nLAB_00133b71:\n                p = (char *)pbVar26;\n                pdVar27 = cplus_demangle_v3_components((char *)pbVar26,3,(void **)xtypenums);\n                if (pdVar27 == (demangle_component *)0x0) {\n                  stab_bad_demangle((char *)pbVar26);\n                }\n                else {\n                  if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }\n                  pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar17);\n                  free((void *)xtypenums);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar26;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pcVar25 = p + local_d8;\n              pcVar16 = p;\nLAB_001330d0:\n              bVar2 = pcVar25[2];\n              if (pcVar16 == pcVar25) {\n                if (((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) &&\n                   (pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74)) {\n                  for (; *pcVar17 == '_'; pcVar17 = pcVar17 + 1) {\n                  }\n                  pcVar17 = strstr(pcVar17,"__");\n                  if ((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')) {\n                    stab_bad_demangle(pcVar25);\n                    goto LAB_0013323f;\n                  }\n                  iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17);\n                  goto LAB_001330fd;\n                }\n                p = pcVar25 + 2;\n              }\n              else {\n                if (bVar2 == 0) goto LAB_00133635;\n                iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25);\nLAB_001330fd:\n                if (iVar7 == 0) goto LAB_0013323f;\n              }\n              pcVar17 = p;\n              cVar3 = *p;\n              if (cVar3 != '\0') {\n                pcVar16 = (char *)0x0;\n                bVar41 = false;\n                pstart = (char **)0x0;\n                do {\n                  pcVar25 = p;\n                  switch(cVar3) {\n                  case '0':\n                  case '1':\n                  case '2':\n                  case '3':\n                  case '4':\n                  case '5':\n                  case '6':\n                  case '7':\n                  case '8':\n                  case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;\n                  default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'C':\n                  case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;\n                  case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;\n                  case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar41) {\nLAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    pstart = (char **)0x1;\n                  }\n                  cVar3 = *p;\n                } while (cVar3 != '\0');\n                if (((int)pstart == 0) &&\n                   (bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (stab_demangle_typestring *)0x0;\n              if (local_58 == (stab_demangle_typestring *)0x0) {\n                pcVar17 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar17);\n              }\n              varargs_1 = local_50[0];\n              arg_types = local_58;\nLAB_00133211:\n              bVar4 = varargs_1;\n              if (arg_types == (stab_demangle_typestring *)0x0) goto LAB_00132793;\n            }\n            pdVar18 = debug_make_method_type\n                                (dhandle,pdVar20,pdVar23,(debug_type_conflict *)arg_types,bVar4);\n            if (pdVar18 == (debug_type_conflict)0x0) goto LAB_00132793;\n          }" else (compound_statement "{\n            if (cVar3 != '?') {\n              if (cVar3 == '*') {\n                *pp = pcVar16 + 1;\n                bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n                pcVar17 = *pp;\n                if (*pcVar17 != ';') goto LAB_00132781;\n                local_e0 = (ulong)((uint)bVar13 & 0x7fffffff);\n                *pp = pcVar17 + 1;\n                if ((pcVar17[1] == ';') || (pcVar17[1] == '\0')) {\n                  local_100 = (debug_type)0x0;\n                  pdVar19 = (debug_type)0x0;\n                  bVar44 = false;\n                }\n                else {\n                  pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end);\n                  cVar3 = **pp;\n                  if (cVar3 == ':') {\n                    local_100 = (debug_type)0x0;\n                    bVar44 = false;\n                    pdVar19 = pdVar23;\n                  }\n                  else {\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }\n                }\n              }\n              else {\n                warn_stab((char *)pbVar31,"member function type missing");\n                bVar44 = false;\n                local_100 = (debug_type)0x0;\n                local_e0 = 0;\n                pdVar19 = (debug_type)0x0;\n              }\n              goto LAB_001322ba;\n            }\n            *pp = pcVar16 + 1;\n            sVar32 = strlen(local_138);\n            iVar7 = strncmp((char *)pbVar40,local_138,sVar32);\n            if (iVar7 == 0) {\n              local_100 = (debug_type)0x0;\n              pdVar19 = (debug_type)0x0;\n              local_e0 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = (debug_type)0x0;\n            pdVar19 = (debug_type)0x0;\n            local_e0 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            pdVar23 = stab_find_type(dhandle,info,typenums);\n            if (pdVar23 == (debug_type)0x0) goto LAB_00132793;\n            pdVar20 = debug_get_return_type(dhandle,pdVar18);\n            if (pdVar20 == (debug_type_conflict)0x0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar7 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar7 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (type_name != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar2 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) && (bVar2 != 0x51 && bVar2 != 0x74))\n                 && (iVar7 = strncmp((char *)pbVar40,"__ct",4), iVar7 != 0)) {\n                if (type_name != (char *)0x0) {\nLAB_001338f6:\n                  iVar7 = strcmp(local_138,type_name);\n                  bVar45 = iVar7 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar40;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\nLAB_0013360b:\n              pcVar16 = p;\n              local_40 = 0;\n              pcVar17 = p;\n              do {\n                pcVar25 = strchr(pcVar17,0x5f);\n                if (pcVar25 == (char *)0x0) goto LAB_00133635;\n                pcVar17 = pcVar25 + 1;\n              } while (pcVar25[1] != '_');\n              if (pcVar17 != (char *)0x0) {\n                sVar32 = strspn(pcVar25,"_");\n                if (2 < (uint)sVar32) {\n                  pcVar25 = pcVar25 + ((uint)sVar32 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              stab_bad_demangle(pcVar16);\nLAB_0013323f:\n              if (local_48 != (stab_demangle_typestring *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a76;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar41 = *pbVar34 < *pbVar35;\n              bVar45 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (type_name == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar7 = strcmp(local_138,type_name);\n              bVar45 = iVar7 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar11 = 4;\n            pbVar34 = pbVar40;\n            pbVar35 = &DAT_00146a4b;\n            do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar42 = *pbVar34 < *pbVar35;\n              bVar46 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              arg_types = (stab_demangle_typestring *)xmalloc(8);\n              arg_types->typestring = (char *)0x0;\n              bVar4 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (type_name != (char *)0x0) {\n                sVar32 = strlen(type_name);\n                local_d8 = sVar32 & 0xffffffff;\n              }\n              pcVar16 = "C";\n              pcVar17 = "V";\n              if (local_f0 == 0) {\n                pcVar16 = "";\n              }\n              if (local_118 == 0) {\n                pcVar17 = "";\n              }\n              local_c0 = type_name;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)xtypenums,"__%s%s");\n              }\n              else if ((type_name == (char *)0x0) ||\n                      (pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0)) {\n                sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8);\n              }\n              else {\n                sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)xtypenums;\n              do {\n                puVar29 = puVar30;\n                uVar8 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar39 = uVar8 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar39 == 0);\n              bVar41 = (uVar8 & 0x8080) == 0;\n              if (bVar41) {\n                uVar39 = uVar39 >> 0x10;\n              }\n              cVar3 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar7 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar39,(byte)uVar39)) -\n                      (int)xtypenums;\n              sVar32 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar7 = iVar7 + (int)local_d8 + 1 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar26 = (byte *)xmalloc(iVar7);\n                *pbVar26 = 0;\n              }\n              else {\n                lVar11 = -1;\n                pcVar17 = local_138;\n                do {\n                  if (lVar11 == 0) break;\n                  lVar11 = lVar11 + -1;\n                  cVar1 = *pcVar17;\n                  pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar7 = ((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar17 == (char *)0x0) {\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar11 = -1;\n                  pcVar16 = pcVar17;\n                  do {\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar3 != '\0');\n                  pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);\n                  strncpy((char *)pbVar26,local_138,3);\n                  strcpy((char *)(pbVar26 + 3),pcVar17);\n                }\n                else {\n                  pbVar26 = (byte *)xmalloc(iVar7);\n                  strcpy((char *)pbVar26,local_138);\n                }\n              }\n              sVar32 = strlen((char *)pbVar26);\n              local_d8 = sVar32 & 0xffffffff;\n              pcVar17 = stpcpy((char *)(pbVar26 + sVar32),(char *)xtypenums);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar17,local_c0);\n              }\n              strcat((char *)pbVar26,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar26 == 0x5f) && (pbVar26[1] == 0x5a)) {\nLAB_00133b71:\n                p = (char *)pbVar26;\n                pdVar27 = cplus_demangle_v3_components((char *)pbVar26,3,(void **)xtypenums);\n                if (pdVar27 == (demangle_component *)0x0) {\n                  stab_bad_demangle((char *)pbVar26);\n                }\n                else {\n                  if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }\n                  pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar17);\n                  free((void *)xtypenums);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar26;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pcVar25 = p + local_d8;\n              pcVar16 = p;\nLAB_001330d0:\n              bVar2 = pcVar25[2];\n              if (pcVar16 == pcVar25) {\n                if (((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) &&\n                   (pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74)) {\n                  for (; *pcVar17 == '_'; pcVar17 = pcVar17 + 1) {\n                  }\n                  pcVar17 = strstr(pcVar17,"__");\n                  if ((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')) {\n                    stab_bad_demangle(pcVar25);\n                    goto LAB_0013323f;\n                  }\n                  iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17);\n                  goto LAB_001330fd;\n                }\n                p = pcVar25 + 2;\n              }\n              else {\n                if (bVar2 == 0) goto LAB_00133635;\n                iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25);\nLAB_001330fd:\n                if (iVar7 == 0) goto LAB_0013323f;\n              }\n              pcVar17 = p;\n              cVar3 = *p;\n              if (cVar3 != '\0') {\n                pcVar16 = (char *)0x0;\n                bVar41 = false;\n                pstart = (char **)0x0;\n                do {\n                  pcVar25 = p;\n                  switch(cVar3) {\n                  case '0':\n                  case '1':\n                  case '2':\n                  case '3':\n                  case '4':\n                  case '5':\n                  case '6':\n                  case '7':\n                  case '8':\n                  case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;\n                  default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'C':\n                  case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;\n                  case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;\n                  case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar41) {\nLAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    pstart = (char **)0x1;\n                  }\n                  cVar3 = *p;\n                } while (cVar3 != '\0');\n                if (((int)pstart == 0) &&\n                   (bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (stab_demangle_typestring *)0x0;\n              if (local_58 == (stab_demangle_typestring *)0x0) {\n                pcVar17 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar17);\n              }\n              varargs_1 = local_50[0];\n              arg_types = local_58;\nLAB_00133211:\n              bVar4 = varargs_1;\n              if (arg_types == (stab_demangle_typestring *)0x0) goto LAB_00132793;\n            }\n            pdVar18 = debug_make_method_type\n                                (dhandle,pdVar20,pdVar23,(debug_type_conflict *)arg_types,bVar4);\n            if (pdVar18 == (debug_type_conflict)0x0) goto LAB_00132793;\n          }" { (if_statement "if (cVar3 != '?') {\n              if (cVar3 == '*') {\n                *pp = pcVar16 + 1;\n                bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n                pcVar17 = *pp;\n                if (*pcVar17 != ';') goto LAB_00132781;\n                local_e0 = (ulong)((uint)bVar13 & 0x7fffffff);\n                *pp = pcVar17 + 1;\n                if ((pcVar17[1] == ';') || (pcVar17[1] == '\0')) {\n                  local_100 = (debug_type)0x0;\n                  pdVar19 = (debug_type)0x0;\n                  bVar44 = false;\n                }\n                else {\n                  pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end);\n                  cVar3 = **pp;\n                  if (cVar3 == ':') {\n                    local_100 = (debug_type)0x0;\n                    bVar44 = false;\n                    pdVar19 = pdVar23;\n                  }\n                  else {\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }\n                }\n              }\n              else {\n                warn_stab((char *)pbVar31,"member function type missing");\n                bVar44 = false;\n                local_100 = (debug_type)0x0;\n                local_e0 = 0;\n                pdVar19 = (debug_type)0x0;\n              }\n              goto LAB_001322ba;\n            }" if (parenthesized_expression "(cVar3 != '?')" ( (binary_expression "cVar3 != '?'" identifier != (char_literal "'?'" ' character ')) )) (compound_statement "{\n              if (cVar3 == '*') {\n                *pp = pcVar16 + 1;\n                bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n                pcVar17 = *pp;\n                if (*pcVar17 != ';') goto LAB_00132781;\n                local_e0 = (ulong)((uint)bVar13 & 0x7fffffff);\n                *pp = pcVar17 + 1;\n                if ((pcVar17[1] == ';') || (pcVar17[1] == '\0')) {\n                  local_100 = (debug_type)0x0;\n                  pdVar19 = (debug_type)0x0;\n                  bVar44 = false;\n                }\n                else {\n                  pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end);\n                  cVar3 = **pp;\n                  if (cVar3 == ':') {\n                    local_100 = (debug_type)0x0;\n                    bVar44 = false;\n                    pdVar19 = pdVar23;\n                  }\n                  else {\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }\n                }\n              }\n              else {\n                warn_stab((char *)pbVar31,"member function type missing");\n                bVar44 = false;\n                local_100 = (debug_type)0x0;\n                local_e0 = 0;\n                pdVar19 = (debug_type)0x0;\n              }\n              goto LAB_001322ba;\n            }" { (if_statement "if (cVar3 == '*') {\n                *pp = pcVar16 + 1;\n                bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n                pcVar17 = *pp;\n                if (*pcVar17 != ';') goto LAB_00132781;\n                local_e0 = (ulong)((uint)bVar13 & 0x7fffffff);\n                *pp = pcVar17 + 1;\n                if ((pcVar17[1] == ';') || (pcVar17[1] == '\0')) {\n                  local_100 = (debug_type)0x0;\n                  pdVar19 = (debug_type)0x0;\n                  bVar44 = false;\n                }\n                else {\n                  pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end);\n                  cVar3 = **pp;\n                  if (cVar3 == ':') {\n                    local_100 = (debug_type)0x0;\n                    bVar44 = false;\n                    pdVar19 = pdVar23;\n                  }\n                  else {\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }\n                }\n              }\n              else {\n                warn_stab((char *)pbVar31,"member function type missing");\n                bVar44 = false;\n                local_100 = (debug_type)0x0;\n                local_e0 = 0;\n                pdVar19 = (debug_type)0x0;\n              }" if (parenthesized_expression "(cVar3 == '*')" ( (binary_expression "cVar3 == '*'" identifier == (char_literal "'*'" ' character ')) )) (compound_statement "{\n                *pp = pcVar16 + 1;\n                bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);\n                pcVar17 = *pp;\n                if (*pcVar17 != ';') goto LAB_00132781;\n                local_e0 = (ulong)((uint)bVar13 & 0x7fffffff);\n                *pp = pcVar17 + 1;\n                if ((pcVar17[1] == ';') || (pcVar17[1] == '\0')) {\n                  local_100 = (debug_type)0x0;\n                  pdVar19 = (debug_type)0x0;\n                  bVar44 = false;\n                }\n                else {\n                  pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end);\n                  cVar3 = **pp;\n                  if (cVar3 == ':') {\n                    local_100 = (debug_type)0x0;\n                    bVar44 = false;\n                    pdVar19 = pdVar23;\n                  }\n                  else {\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }\n                }\n              }" { (expression_statement "*pp = pcVar16 + 1;" (assignment_expression "*pp = pcVar16 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar16 + 1" identifier + number_literal)) ;) (expression_statement "bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end);" (assignment_expression "bVar13 = parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier = (call_expression "parse_number(pp,(bfd_boolean *)0x0,p_end)" identifier (argument_list "(pp,(bfd_boolean *)0x0,p_end)" ( identifier , (cast_expression "(bfd_boolean *)0x0" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) , identifier )))) ;) (expression_statement "pcVar17 = *pp;" (assignment_expression "pcVar17 = *pp" identifier = (pointer_expression "*pp" * identifier)) ;) (if_statement "if (*pcVar17 != ';') goto LAB_00132781;" if (parenthesized_expression "(*pcVar17 != ';')" ( (binary_expression "*pcVar17 != ';'" (pointer_expression "*pcVar17" * identifier) != (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_00132781;" goto statement_identifier ;)) (expression_statement "local_e0 = (ulong)((uint)bVar13 & 0x7fffffff);" (assignment_expression "local_e0 = (ulong)((uint)bVar13 & 0x7fffffff)" identifier = (call_expression "(ulong)((uint)bVar13 & 0x7fffffff)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((uint)bVar13 & 0x7fffffff)" ( (binary_expression "(uint)bVar13 & 0x7fffffff" (cast_expression "(uint)bVar13" ( (type_descriptor "uint" type_identifier) ) identifier) & number_literal) )))) ;) (expression_statement "*pp = pcVar17 + 1;" (assignment_expression "*pp = pcVar17 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (if_statement "if ((pcVar17[1] == ';') || (pcVar17[1] == '\0')) {\n                  local_100 = (debug_type)0x0;\n                  pdVar19 = (debug_type)0x0;\n                  bVar44 = false;\n                }\n                else {\n                  pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end);\n                  cVar3 = **pp;\n                  if (cVar3 == ':') {\n                    local_100 = (debug_type)0x0;\n                    bVar44 = false;\n                    pdVar19 = pdVar23;\n                  }\n                  else {\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }\n                }" if (parenthesized_expression "((pcVar17[1] == ';') || (pcVar17[1] == '\0'))" ( (binary_expression "(pcVar17[1] == ';') || (pcVar17[1] == '\0')" (parenthesized_expression "(pcVar17[1] == ';')" ( (binary_expression "pcVar17[1] == ';'" (subscript_expression "pcVar17[1]" identifier [ number_literal ]) == (char_literal "';'" ' character ')) )) || (parenthesized_expression "(pcVar17[1] == '\0')" ( (binary_expression "pcVar17[1] == '\0'" (subscript_expression "pcVar17[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                  local_100 = (debug_type)0x0;\n                  pdVar19 = (debug_type)0x0;\n                  bVar44 = false;\n                }" { (expression_statement "local_100 = (debug_type)0x0;" (assignment_expression "local_100 = (debug_type)0x0" identifier = (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) ;) (expression_statement "pdVar19 = (debug_type)0x0;" (assignment_expression "pdVar19 = (debug_type)0x0" identifier = (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) ;) (expression_statement "bVar44 = false;" (assignment_expression "bVar44 = false" identifier = false) ;) }) (else_clause "else {\n                  pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end);\n                  cVar3 = **pp;\n                  if (cVar3 == ':') {\n                    local_100 = (debug_type)0x0;\n                    bVar44 = false;\n                    pdVar19 = pdVar23;\n                  }\n                  else {\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }\n                }" else (compound_statement "{\n                  pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end);\n                  cVar3 = **pp;\n                  if (cVar3 == ':') {\n                    local_100 = (debug_type)0x0;\n                    bVar44 = false;\n                    pdVar19 = pdVar23;\n                  }\n                  else {\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }\n                }" { (expression_statement "pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end);" (assignment_expression "pdVar23 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end)" identifier = (call_expression "parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end)" identifier (argument_list "(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,\n                                            p_end)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(debug_type_conflict **)0x0" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , identifier )))) ;) (expression_statement "cVar3 = **pp;" (assignment_expression "cVar3 = **pp" identifier = (pointer_expression "**pp" * (pointer_expression "*pp" * identifier))) ;) (if_statement "if (cVar3 == ':') {\n                    local_100 = (debug_type)0x0;\n                    bVar44 = false;\n                    pdVar19 = pdVar23;\n                  }\n                  else {\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }" if (parenthesized_expression "(cVar3 == ':')" ( (binary_expression "cVar3 == ':'" identifier == (char_literal "':'" ' character ')) )) (compound_statement "{\n                    local_100 = (debug_type)0x0;\n                    bVar44 = false;\n                    pdVar19 = pdVar23;\n                  }" { (expression_statement "local_100 = (debug_type)0x0;" (assignment_expression "local_100 = (debug_type)0x0" identifier = (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) ;) (expression_statement "bVar44 = false;" (assignment_expression "bVar44 = false" identifier = false) ;) (expression_statement "pdVar19 = pdVar23;" (assignment_expression "pdVar19 = pdVar23" identifier = identifier) ;) }) (else_clause "else {\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }" else (compound_statement "{\n                    if (cVar3 != ';') goto LAB_00132781;\n                    *pp = *pp + 1;\n                    bVar44 = false;\n                    pdVar19 = (debug_type)0x0;\n                    local_100 = pdVar23;\n                  }" { (if_statement "if (cVar3 != ';') goto LAB_00132781;" if (parenthesized_expression "(cVar3 != ';')" ( (binary_expression "cVar3 != ';'" identifier != (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_00132781;" goto statement_identifier ;)) (expression_statement "*pp = *pp + 1;" (assignment_expression "*pp = *pp + 1" (pointer_expression "*pp" * identifier) = (binary_expression "*pp + 1" (pointer_expression "*pp" * identifier) + number_literal)) ;) (expression_statement "bVar44 = false;" (assignment_expression "bVar44 = false" identifier = false) ;) (expression_statement "pdVar19 = (debug_type)0x0;" (assignment_expression "pdVar19 = (debug_type)0x0" identifier = (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) ;) (expression_statement "local_100 = pdVar23;" (assignment_expression "local_100 = pdVar23" identifier = identifier) ;) }))) }))) }) (else_clause "else {\n                warn_stab((char *)pbVar31,"member function type missing");\n                bVar44 = false;\n                local_100 = (debug_type)0x0;\n                local_e0 = 0;\n                pdVar19 = (debug_type)0x0;\n              }" else (compound_statement "{\n                warn_stab((char *)pbVar31,"member function type missing");\n                bVar44 = false;\n                local_100 = (debug_type)0x0;\n                local_e0 = 0;\n                pdVar19 = (debug_type)0x0;\n              }" { (expression_statement "warn_stab((char *)pbVar31,"member function type missing");" (call_expression "warn_stab((char *)pbVar31,"member function type missing")" identifier (argument_list "((char *)pbVar31,"member function type missing")" ( (cast_expression "(char *)pbVar31" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""member function type missing"" " string_content ") ))) ;) (expression_statement "bVar44 = false;" (assignment_expression "bVar44 = false" identifier = false) ;) (expression_statement "local_100 = (debug_type)0x0;" (assignment_expression "local_100 = (debug_type)0x0" identifier = (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) ;) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (expression_statement "pdVar19 = (debug_type)0x0;" (assignment_expression "pdVar19 = (debug_type)0x0" identifier = (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) ;) }))) (goto_statement "goto LAB_001322ba;" goto statement_identifier ;) })) (expression_statement "*pp = pcVar16 + 1;" (assignment_expression "*pp = pcVar16 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar16 + 1" identifier + number_literal)) ;) (expression_statement "sVar32 = strlen(local_138);" (assignment_expression "sVar32 = strlen(local_138)" identifier = (call_expression "strlen(local_138)" identifier (argument_list "(local_138)" ( identifier )))) ;) (expression_statement "iVar7 = strncmp((char *)pbVar40,local_138,sVar32);" (assignment_expression "iVar7 = strncmp((char *)pbVar40,local_138,sVar32)" identifier = (call_expression "strncmp((char *)pbVar40,local_138,sVar32)" identifier (argument_list "((char *)pbVar40,local_138,sVar32)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier )))) ;) (if_statement "if (iVar7 == 0) {\n              local_100 = (debug_type)0x0;\n              pdVar19 = (debug_type)0x0;\n              local_e0 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n              local_100 = (debug_type)0x0;\n              pdVar19 = (debug_type)0x0;\n              local_e0 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }" { (expression_statement "local_100 = (debug_type)0x0;" (assignment_expression "local_100 = (debug_type)0x0" identifier = (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) ;) (expression_statement "pdVar19 = (debug_type)0x0;" (assignment_expression "pdVar19 = (debug_type)0x0" identifier = (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) ;) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (expression_statement "bVar44 = true;" (assignment_expression "bVar44 = true" identifier = true) ;) (goto_statement "goto LAB_001322ba;" goto statement_identifier ;) })) (expression_statement "local_100 = (debug_type)0x0;" (assignment_expression "local_100 = (debug_type)0x0" identifier = (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) ;) (expression_statement "pdVar19 = (debug_type)0x0;" (assignment_expression "pdVar19 = (debug_type)0x0" identifier = (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) ;) (expression_statement "local_e0 = 0;" (assignment_expression "local_e0 = 0" identifier = number_literal) ;) (expression_statement "bVar44 = true;" (assignment_expression "bVar44 = true" identifier = true) ;) (labeled_statement "LAB_0013282f:\n            pdVar23 = stab_find_type(dhandle,info,typenums);" statement_identifier : (expression_statement "pdVar23 = stab_find_type(dhandle,info,typenums);" (assignment_expression "pdVar23 = stab_find_type(dhandle,info,typenums)" identifier = (call_expression "stab_find_type(dhandle,info,typenums)" identifier (argument_list "(dhandle,info,typenums)" ( identifier , identifier , identifier )))) ;)) (if_statement "if (pdVar23 == (debug_type)0x0) goto LAB_00132793;" if (parenthesized_expression "(pdVar23 == (debug_type)0x0)" ( (binary_expression "pdVar23 == (debug_type)0x0" identifier == (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_00132793;" goto statement_identifier ;)) (expression_statement "pdVar20 = debug_get_return_type(dhandle,pdVar18);" (assignment_expression "pdVar20 = debug_get_return_type(dhandle,pdVar18)" identifier = (call_expression "debug_get_return_type(dhandle,pdVar18)" identifier (argument_list "(dhandle,pdVar18)" ( identifier , identifier )))) ;) (if_statement "if (pdVar20 == (debug_type_conflict)0x0) goto LAB_00132781;" if (parenthesized_expression "(pdVar20 == (debug_type_conflict)0x0)" ( (binary_expression "pdVar20 == (debug_type_conflict)0x0" identifier == (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_00132781;" goto statement_identifier ;)) (expression_statement "bVar41 = *pbVar40 < 0x5f;" (assignment_expression "bVar41 = *pbVar40 < 0x5f" identifier = (binary_expression "*pbVar40 < 0x5f" (pointer_expression "*pbVar40" * identifier) < number_literal)) ;) (expression_statement "bVar45 = *pbVar40 == 0x5f;" (assignment_expression "bVar45 = *pbVar40 == 0x5f" identifier = (binary_expression "*pbVar40 == 0x5f" (pointer_expression "*pbVar40" * identifier) == number_literal)) ;) (if_statement "if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar7 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar7 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (type_name != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar2 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) && (bVar2 != 0x51 && bVar2 != 0x74))\n                 && (iVar7 = strncmp((char *)pbVar40,"__ct",4), iVar7 != 0)) {\n                if (type_name != (char *)0x0) {\nLAB_001338f6:\n                  iVar7 = strcmp(local_138,type_name);\n                  bVar45 = iVar7 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar40;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\nLAB_0013360b:\n              pcVar16 = p;\n              local_40 = 0;\n              pcVar17 = p;\n              do {\n                pcVar25 = strchr(pcVar17,0x5f);\n                if (pcVar25 == (char *)0x0) goto LAB_00133635;\n                pcVar17 = pcVar25 + 1;\n              } while (pcVar25[1] != '_');\n              if (pcVar17 != (char *)0x0) {\n                sVar32 = strspn(pcVar25,"_");\n                if (2 < (uint)sVar32) {\n                  pcVar25 = pcVar25 + ((uint)sVar32 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              stab_bad_demangle(pcVar16);\nLAB_0013323f:\n              if (local_48 != (stab_demangle_typestring *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }" if (parenthesized_expression "(bVar45)" ( identifier )) (compound_statement "{\n              if (pbVar40[1] != 0x5f) {\n                iVar7 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar7 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (type_name != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar2 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) && (bVar2 != 0x51 && bVar2 != 0x74))\n                 && (iVar7 = strncmp((char *)pbVar40,"__ct",4), iVar7 != 0)) {\n                if (type_name != (char *)0x0) {\nLAB_001338f6:\n                  iVar7 = strcmp(local_138,type_name);\n                  bVar45 = iVar7 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar40;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\nLAB_0013360b:\n              pcVar16 = p;\n              local_40 = 0;\n              pcVar17 = p;\n              do {\n                pcVar25 = strchr(pcVar17,0x5f);\n                if (pcVar25 == (char *)0x0) goto LAB_00133635;\n                pcVar17 = pcVar25 + 1;\n              } while (pcVar25[1] != '_');\n              if (pcVar17 != (char *)0x0) {\n                sVar32 = strspn(pcVar25,"_");\n                if (2 < (uint)sVar32) {\n                  pcVar25 = pcVar25 + ((uint)sVar32 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              stab_bad_demangle(pcVar16);\nLAB_0013323f:\n              if (local_48 != (stab_demangle_typestring *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }" { (if_statement "if (pbVar40[1] != 0x5f) {\n                iVar7 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar7 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (type_name != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }" if (parenthesized_expression "(pbVar40[1] != 0x5f)" ( (binary_expression "pbVar40[1] != 0x5f" (subscript_expression "pbVar40[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                iVar7 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar7 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (type_name != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }" { (expression_statement "iVar7 = strncmp((char *)pbVar40,"__ct",4);" (assignment_expression "iVar7 = strncmp((char *)pbVar40,"__ct",4)" identifier = (call_expression "strncmp((char *)pbVar40,"__ct",4)" identifier (argument_list "((char *)pbVar40,"__ct",4)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""__ct"" " string_content ") , number_literal )))) ;) (if_statement "if (iVar7 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (type_name != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n                  bVar45 = true;\n                  bVar41 = true;\n                }" { (expression_statement "bVar45 = true;" (assignment_expression "bVar45 = true" identifier = true) ;) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" identifier = true) ;) }) (else_clause "else {\n                  if (type_name != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }" else (compound_statement "{\n                  if (type_name != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }" { (if_statement "if (type_name != (char *)0x0) goto LAB_001338f6;" if (parenthesized_expression "(type_name != (char *)0x0)" ( (binary_expression "type_name != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001338f6;" goto statement_identifier ;)) (expression_statement "bVar45 = false;" (assignment_expression "bVar45 = false" identifier = false) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) }))) (labeled_statement "LAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0)) goto LAB_0013358b;" statement_identifier : (if_statement "if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0)) goto LAB_0013358b;" if (parenthesized_expression "((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0))" ( (binary_expression "(((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0)" (parenthesized_expression "(((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f))" ( (binary_expression "((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)" (parenthesized_expression "((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e))" ( (binary_expression "(pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)" (parenthesized_expression "(pbVar40[1] != 0x24)" ( (binary_expression "pbVar40[1] != 0x24" (subscript_expression "pbVar40[1]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(pbVar40[1] != 0x2e)" ( (binary_expression "pbVar40[1] != 0x2e" (subscript_expression "pbVar40[1]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "(pbVar40[2] != 0x5f)" ( (binary_expression "pbVar40[2] != 0x5f" (subscript_expression "pbVar40[2]" identifier [ number_literal ]) != number_literal) ))) )) && (parenthesized_expression "(iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0)" ( (comma_expression "iVar7 = strncmp((char *)pbVar40,"__dt",4), iVar7 != 0" (assignment_expression "iVar7 = strncmp((char *)pbVar40,"__dt",4)" identifier = (call_expression "strncmp((char *)pbVar40,"__dt",4)" identifier (argument_list "((char *)pbVar40,"__dt",4)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""__dt"" " string_content ") , number_literal )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0013358b;" goto statement_identifier ;))) (labeled_statement "LAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;" statement_identifier : (if_statement "if (pbVar40[1] == 0x5a) goto LAB_001328ca;" if (parenthesized_expression "(pbVar40[1] == 0x5a)" ( (binary_expression "pbVar40[1] == 0x5a" (subscript_expression "pbVar40[1]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_001328ca;" goto statement_identifier ;))) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" identifier = true) ;) (labeled_statement "LAB_001336b5:\n                local_d8 = 0;" statement_identifier : (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_0013302f;" goto statement_identifier ;) })) (expression_statement "bVar2 = pbVar40[2];" (assignment_expression "bVar2 = pbVar40[2]" identifier = (subscript_expression "pbVar40[2]" identifier [ number_literal ])) ;) (if_statement "if ((((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) && (bVar2 != 0x51 && bVar2 != 0x74))\n                 && (iVar7 = strncmp((char *)pbVar40,"__ct",4), iVar7 != 0)) {\n                if (type_name != (char *)0x0) {\nLAB_001338f6:\n                  iVar7 = strcmp(local_138,type_name);\n                  bVar45 = iVar7 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }" if (parenthesized_expression "((((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) && (bVar2 != 0x51 && bVar2 != 0x74))\n                 && (iVar7 = strncmp((char *)pbVar40,"__ct",4), iVar7 != 0))" ( (binary_expression "(((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) && (bVar2 != 0x51 && bVar2 != 0x74))\n                 && (iVar7 = strncmp((char *)pbVar40,"__ct",4), iVar7 != 0)" (parenthesized_expression "(((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) && (bVar2 != 0x51 && bVar2 != 0x74))" ( (binary_expression "((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) && (bVar2 != 0x51 && bVar2 != 0x74)" (parenthesized_expression "((_sch_istable[(ulong)bVar2 * 2] & 4) == 0)" ( (binary_expression "(_sch_istable[(ulong)bVar2 * 2] & 4) == 0" (parenthesized_expression "(_sch_istable[(ulong)bVar2 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)bVar2 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar2 * 2]" identifier [ (binary_expression "(ulong)bVar2 * 2" (cast_expression "(ulong)bVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "(bVar2 != 0x51 && bVar2 != 0x74)" ( (binary_expression "bVar2 != 0x51 && bVar2 != 0x74" (binary_expression "bVar2 != 0x51" identifier != number_literal) && (binary_expression "bVar2 != 0x74" identifier != number_literal)) ))) )) && (parenthesized_expression "(iVar7 = strncmp((char *)pbVar40,"__ct",4), iVar7 != 0)" ( (comma_expression "iVar7 = strncmp((char *)pbVar40,"__ct",4), iVar7 != 0" (assignment_expression "iVar7 = strncmp((char *)pbVar40,"__ct",4)" identifier = (call_expression "strncmp((char *)pbVar40,"__ct",4)" identifier (argument_list "((char *)pbVar40,"__ct",4)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""__ct"" " string_content ") , number_literal )))) , (binary_expression "iVar7 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                if (type_name != (char *)0x0) {\nLAB_001338f6:\n                  iVar7 = strcmp(local_138,type_name);\n                  bVar45 = iVar7 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }" { (if_statement "if (type_name != (char *)0x0) {\nLAB_001338f6:\n                  iVar7 = strcmp(local_138,type_name);\n                  bVar45 = iVar7 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }" if (parenthesized_expression "(type_name != (char *)0x0)" ( (binary_expression "type_name != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_001338f6:\n                  iVar7 = strcmp(local_138,type_name);\n                  bVar45 = iVar7 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }" { (labeled_statement "LAB_001338f6:\n                  iVar7 = strcmp(local_138,type_name);" statement_identifier : (expression_statement "iVar7 = strcmp(local_138,type_name);" (assignment_expression "iVar7 = strcmp(local_138,type_name)" identifier = (call_expression "strcmp(local_138,type_name)" identifier (argument_list "(local_138,type_name)" ( identifier , identifier )))) ;)) (expression_statement "bVar45 = iVar7 == 0;" (assignment_expression "bVar45 = iVar7 == 0" identifier = (binary_expression "iVar7 == 0" identifier == number_literal)) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (goto_statement "goto LAB_00133557;" goto statement_identifier ;) })) (expression_statement "iVar7 = strncmp((char *)pbVar40,"__dt",4);" (assignment_expression "iVar7 = strncmp((char *)pbVar40,"__dt",4)" identifier = (call_expression "strncmp((char *)pbVar40,"__dt",4)" identifier (argument_list "((char *)pbVar40,"__dt",4)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""__dt"" " string_content ") , number_literal )))) ;) (if_statement "if (iVar7 == 0) goto LAB_001336a5;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001336a5;" goto statement_identifier ;)) (expression_statement "bVar45 = false;" (assignment_expression "bVar45 = false" identifier = false) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) }) (else_clause "else {\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }" else (compound_statement "{\n                iVar7 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar7 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }" { (expression_statement "iVar7 = strncmp((char *)pbVar40,"__dt",4);" (assignment_expression "iVar7 = strncmp((char *)pbVar40,"__dt",4)" identifier = (call_expression "strncmp((char *)pbVar40,"__dt",4)" identifier (argument_list "((char *)pbVar40,"__dt",4)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""__dt"" " string_content ") , number_literal )))) ;) (if_statement "if (iVar7 == 0) goto LAB_001336a5;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001336a5;" goto statement_identifier ;)) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" identifier = true) ;) (expression_statement "bVar45 = true;" (assignment_expression "bVar45 = true" identifier = true) ;) }))) (labeled_statement "LAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;" statement_identifier : (if_statement "if (pbVar40[1] != 0x5a) goto LAB_00132deb;" if (parenthesized_expression "(pbVar40[1] != 0x5a)" ( (binary_expression "pbVar40[1] != 0x5a" (subscript_expression "pbVar40[1]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00132deb;" goto statement_identifier ;))) (if_statement "if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;" if (parenthesized_expression "((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a))" ( (binary_expression "(*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)" (parenthesized_expression "(*pbVar40 == 0x5f)" ( (binary_expression "*pbVar40 == 0x5f" (pointer_expression "*pbVar40" * identifier) == number_literal) )) && (parenthesized_expression "(pbVar40[1] == 0x5a)" ( (binary_expression "pbVar40[1] == 0x5a" (subscript_expression "pbVar40[1]" identifier [ number_literal ]) == number_literal) ))) )) (goto_statement "goto LAB_00133b71;" goto statement_identifier ;)) (expression_statement "local_58 = (stab_demangle_typestring *)0x0;" (assignment_expression "local_58 = (stab_demangle_typestring *)0x0" identifier = (cast_expression "(stab_demangle_typestring *)0x0" ( (type_descriptor "stab_demangle_typestring *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50[0] = 0;" (assignment_expression "local_50[0] = 0" (subscript_expression "local_50[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_3c = 10;" (assignment_expression "local_3c = 10" identifier = number_literal) ;) (expression_statement "p = (char *)pbVar40;" (assignment_expression "p = (char *)pbVar40" identifier = (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "xtypenums = (int  [2])dhandle;" (assignment_expression "xtypenums = (int  [2])dhandle" identifier = (cast_expression "(int  [2])dhandle" ( (type_descriptor "int  [2]" primitive_type (abstract_array_declarator "[2]" [ number_literal ])) ) identifier)) ;) (expression_statement "local_48 = (stab_demangle_typestring *)xmalloc(0xa0);" (assignment_expression "local_48 = (stab_demangle_typestring *)xmalloc(0xa0)" identifier = (cast_expression "(stab_demangle_typestring *)xmalloc(0xa0)" ( (type_descriptor "stab_demangle_typestring *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0xa0)" identifier (argument_list "(0xa0)" ( number_literal ))))) ;) (labeled_statement "LAB_0013360b:\n              pcVar16 = p;" statement_identifier : (expression_statement "pcVar16 = p;" (assignment_expression "pcVar16 = p" identifier = identifier) ;)) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "pcVar17 = p;" (assignment_expression "pcVar17 = p" identifier = identifier) ;) (do_statement "do {\n                pcVar25 = strchr(pcVar17,0x5f);\n                if (pcVar25 == (char *)0x0) goto LAB_00133635;\n                pcVar17 = pcVar25 + 1;\n              } while (pcVar25[1] != '_');" do (compound_statement "{\n                pcVar25 = strchr(pcVar17,0x5f);\n                if (pcVar25 == (char *)0x0) goto LAB_00133635;\n                pcVar17 = pcVar25 + 1;\n              }" { (expression_statement "pcVar25 = strchr(pcVar17,0x5f);" (assignment_expression "pcVar25 = strchr(pcVar17,0x5f)" identifier = (call_expression "strchr(pcVar17,0x5f)" identifier (argument_list "(pcVar17,0x5f)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar25 == (char *)0x0) goto LAB_00133635;" if (parenthesized_expression "(pcVar25 == (char *)0x0)" ( (binary_expression "pcVar25 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00133635;" goto statement_identifier ;)) (expression_statement "pcVar17 = pcVar25 + 1;" (assignment_expression "pcVar17 = pcVar25 + 1" identifier = (binary_expression "pcVar25 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pcVar25[1] != '_')" ( (binary_expression "pcVar25[1] != '_'" (subscript_expression "pcVar25[1]" identifier [ number_literal ]) != (char_literal "'_'" ' character ')) )) ;) (if_statement "if (pcVar17 != (char *)0x0) {\n                sVar32 = strspn(pcVar25,"_");\n                if (2 < (uint)sVar32) {\n                  pcVar25 = pcVar25 + ((uint)sVar32 - 2);\n                }\n                goto LAB_001330d0;\n              }" if (parenthesized_expression "(pcVar17 != (char *)0x0)" ( (binary_expression "pcVar17 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                sVar32 = strspn(pcVar25,"_");\n                if (2 < (uint)sVar32) {\n                  pcVar25 = pcVar25 + ((uint)sVar32 - 2);\n                }\n                goto LAB_001330d0;\n              }" { (expression_statement "sVar32 = strspn(pcVar25,"_");" (assignment_expression "sVar32 = strspn(pcVar25,"_")" identifier = (call_expression "strspn(pcVar25,"_")" identifier (argument_list "(pcVar25,"_")" ( identifier , (string_literal ""_"" " string_content ") )))) ;) (if_statement "if (2 < (uint)sVar32) {\n                  pcVar25 = pcVar25 + ((uint)sVar32 - 2);\n                }" if (parenthesized_expression "(2 < (uint)sVar32)" ( (binary_expression "2 < (uint)sVar32" number_literal < (cast_expression "(uint)sVar32" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n                  pcVar25 = pcVar25 + ((uint)sVar32 - 2);\n                }" { (expression_statement "pcVar25 = pcVar25 + ((uint)sVar32 - 2);" (assignment_expression "pcVar25 = pcVar25 + ((uint)sVar32 - 2)" identifier = (binary_expression "pcVar25 + ((uint)sVar32 - 2)" identifier + (parenthesized_expression "((uint)sVar32 - 2)" ( (binary_expression "(uint)sVar32 - 2" (cast_expression "(uint)sVar32" ( (type_descriptor "uint" type_identifier) ) identifier) - number_literal) )))) ;) })) (goto_statement "goto LAB_001330d0;" goto statement_identifier ;) })) (labeled_statement "LAB_00133635:\n              stab_bad_demangle(pcVar16);" statement_identifier : (expression_statement "stab_bad_demangle(pcVar16);" (call_expression "stab_bad_demangle(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;)) (labeled_statement "LAB_0013323f:\n              if (local_48 != (stab_demangle_typestring *)0x0) {\n                free(local_48);\n              }" statement_identifier : (if_statement "if (local_48 != (stab_demangle_typestring *)0x0) {\n                free(local_48);\n              }" if (parenthesized_expression "(local_48 != (stab_demangle_typestring *)0x0)" ( (binary_expression "local_48 != (stab_demangle_typestring *)0x0" identifier != (cast_expression "(stab_demangle_typestring *)0x0" ( (type_descriptor "stab_demangle_typestring *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                free(local_48);\n              }" { (expression_statement "free(local_48);" (call_expression "free(local_48)" identifier (argument_list "(local_48)" ( identifier ))) ;) }))) (goto_statement "goto LAB_00132793;" goto statement_identifier ;) })) (expression_statement "lVar11 = 4;" (assignment_expression "lVar11 = 4" identifier = number_literal) ;) (expression_statement "pbVar34 = pbVar40;" (assignment_expression "pbVar34 = pbVar40" identifier = identifier) ;) (expression_statement "pbVar35 = &DAT_00146a76;" (assignment_expression "pbVar35 = &DAT_00146a76" identifier = (pointer_expression "&DAT_00146a76" & identifier)) ;) (do_statement "do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar41 = *pbVar34 < *pbVar35;\n              bVar45 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);" do (compound_statement "{\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar41 = *pbVar34 < *pbVar35;\n              bVar45 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "bVar41 = *pbVar34 < *pbVar35;" (assignment_expression "bVar41 = *pbVar34 < *pbVar35" identifier = (binary_expression "*pbVar34 < *pbVar35" (pointer_expression "*pbVar34" * identifier) < (pointer_expression "*pbVar35" * identifier))) ;) (expression_statement "bVar45 = *pbVar34 == *pbVar35;" (assignment_expression "bVar45 = *pbVar34 == *pbVar35" identifier = (binary_expression "*pbVar34 == *pbVar35" (pointer_expression "*pbVar34" * identifier) == (pointer_expression "*pbVar35" * identifier))) ;) (expression_statement "pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1" identifier = (binary_expression "pbVar34 + (ulong)bVar47 * -2 + 1" (binary_expression "pbVar34 + (ulong)bVar47 * -2" identifier + (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1" identifier = (binary_expression "pbVar35 + (ulong)bVar47 * -2 + 1" (binary_expression "pbVar35 + (ulong)bVar47 * -2" identifier + (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar45)" ( identifier )) ;) (expression_statement "bVar46 = (!bVar41 && !bVar45) == bVar41;" (assignment_expression "bVar46 = (!bVar41 && !bVar45) == bVar41" identifier = (binary_expression "(!bVar41 && !bVar45) == bVar41" (parenthesized_expression "(!bVar41 && !bVar45)" ( (binary_expression "!bVar41 && !bVar45" (unary_expression "!bVar41" ! identifier) && (unary_expression "!bVar45" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (type_name == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar7 = strcmp(local_138,type_name);\n              bVar45 = iVar7 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }" if (parenthesized_expression "(bVar46)" ( identifier )) (compound_statement "{\n              bVar45 = true;\n              bVar41 = true;\n            }" { (expression_statement "bVar45 = true;" (assignment_expression "bVar45 = true" identifier = true) ;) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" identifier = true) ;) }) (else_clause "else if (type_name == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar7 = strcmp(local_138,type_name);\n              bVar45 = iVar7 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }" else (if_statement "if (type_name == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar7 = strcmp(local_138,type_name);\n              bVar45 = iVar7 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }" if (parenthesized_expression "(type_name == (char *)0x0)" ( (binary_expression "type_name == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }" { (expression_statement "bVar45 = false;" (assignment_expression "bVar45 = false" identifier = false) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (expression_statement "bVar46 = true;" (assignment_expression "bVar46 = true" identifier = true) ;) }) (else_clause "else {\n              iVar7 = strcmp(local_138,type_name);\n              bVar45 = iVar7 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }" else (compound_statement "{\n              iVar7 = strcmp(local_138,type_name);\n              bVar45 = iVar7 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }" { (expression_statement "iVar7 = strcmp(local_138,type_name);" (assignment_expression "iVar7 = strcmp(local_138,type_name)" identifier = (call_expression "strcmp(local_138,type_name)" identifier (argument_list "(local_138,type_name)" ( identifier , identifier )))) ;) (expression_statement "bVar45 = iVar7 == 0;" (assignment_expression "bVar45 = iVar7 == 0" identifier = (binary_expression "iVar7 == 0" identifier == number_literal)) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (expression_statement "bVar46 = true;" (assignment_expression "bVar46 = true" identifier = true) ;) }))))) (expression_statement "bVar42 = false;" (assignment_expression "bVar42 = false" identifier = false) ;) (expression_statement "lVar11 = 4;" (assignment_expression "lVar11 = 4" identifier = number_literal) ;) (expression_statement "pbVar34 = pbVar40;" (assignment_expression "pbVar34 = pbVar40" identifier = identifier) ;) (expression_statement "pbVar35 = &DAT_00146a4b;" (assignment_expression "pbVar35 = &DAT_00146a4b" identifier = (pointer_expression "&DAT_00146a4b" & identifier)) ;) (do_statement "do {\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar42 = *pbVar34 < *pbVar35;\n              bVar46 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);" do (compound_statement "{\n              if (lVar11 == 0) break;\n              lVar11 = lVar11 + -1;\n              bVar42 = *pbVar34 < *pbVar35;\n              bVar46 = *pbVar34 == *pbVar35;\n              pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n              pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;\n            }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "bVar42 = *pbVar34 < *pbVar35;" (assignment_expression "bVar42 = *pbVar34 < *pbVar35" identifier = (binary_expression "*pbVar34 < *pbVar35" (pointer_expression "*pbVar34" * identifier) < (pointer_expression "*pbVar35" * identifier))) ;) (expression_statement "bVar46 = *pbVar34 == *pbVar35;" (assignment_expression "bVar46 = *pbVar34 == *pbVar35" identifier = (binary_expression "*pbVar34 == *pbVar35" (pointer_expression "*pbVar34" * identifier) == (pointer_expression "*pbVar35" * identifier))) ;) (expression_statement "pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1" identifier = (binary_expression "pbVar34 + (ulong)bVar47 * -2 + 1" (binary_expression "pbVar34 + (ulong)bVar47 * -2" identifier + (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pbVar35 = pbVar35 + (ulong)bVar47 * -2 + 1" identifier = (binary_expression "pbVar35 + (ulong)bVar47 * -2 + 1" (binary_expression "pbVar35 + (ulong)bVar47 * -2" identifier + (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar46)" ( identifier )) ;) (if_statement "if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              arg_types = (stab_demangle_typestring *)xmalloc(8);\n              arg_types->typestring = (char *)0x0;\n              bVar4 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (type_name != (char *)0x0) {\n                sVar32 = strlen(type_name);\n                local_d8 = sVar32 & 0xffffffff;\n              }\n              pcVar16 = "C";\n              pcVar17 = "V";\n              if (local_f0 == 0) {\n                pcVar16 = "";\n              }\n              if (local_118 == 0) {\n                pcVar17 = "";\n              }\n              local_c0 = type_name;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)xtypenums,"__%s%s");\n              }\n              else if ((type_name == (char *)0x0) ||\n                      (pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0)) {\n                sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8);\n              }\n              else {\n                sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)xtypenums;\n              do {\n                puVar29 = puVar30;\n                uVar8 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar39 = uVar8 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar39 == 0);\n              bVar41 = (uVar8 & 0x8080) == 0;\n              if (bVar41) {\n                uVar39 = uVar39 >> 0x10;\n              }\n              cVar3 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar7 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar39,(byte)uVar39)) -\n                      (int)xtypenums;\n              sVar32 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar7 = iVar7 + (int)local_d8 + 1 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar26 = (byte *)xmalloc(iVar7);\n                *pbVar26 = 0;\n              }\n              else {\n                lVar11 = -1;\n                pcVar17 = local_138;\n                do {\n                  if (lVar11 == 0) break;\n                  lVar11 = lVar11 + -1;\n                  cVar1 = *pcVar17;\n                  pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar7 = ((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar17 == (char *)0x0) {\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar11 = -1;\n                  pcVar16 = pcVar17;\n                  do {\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar3 != '\0');\n                  pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);\n                  strncpy((char *)pbVar26,local_138,3);\n                  strcpy((char *)(pbVar26 + 3),pcVar17);\n                }\n                else {\n                  pbVar26 = (byte *)xmalloc(iVar7);\n                  strcpy((char *)pbVar26,local_138);\n                }\n              }\n              sVar32 = strlen((char *)pbVar26);\n              local_d8 = sVar32 & 0xffffffff;\n              pcVar17 = stpcpy((char *)(pbVar26 + sVar32),(char *)xtypenums);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar17,local_c0);\n              }\n              strcat((char *)pbVar26,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar26 == 0x5f) && (pbVar26[1] == 0x5a)) {\nLAB_00133b71:\n                p = (char *)pbVar26;\n                pdVar27 = cplus_demangle_v3_components((char *)pbVar26,3,(void **)xtypenums);\n                if (pdVar27 == (demangle_component *)0x0) {\n                  stab_bad_demangle((char *)pbVar26);\n                }\n                else {\n                  if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }\n                  pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar17);\n                  free((void *)xtypenums);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar26;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pcVar25 = p + local_d8;\n              pcVar16 = p;\nLAB_001330d0:\n              bVar2 = pcVar25[2];\n              if (pcVar16 == pcVar25) {\n                if (((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) &&\n                   (pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74)) {\n                  for (; *pcVar17 == '_'; pcVar17 = pcVar17 + 1) {\n                  }\n                  pcVar17 = strstr(pcVar17,"__");\n                  if ((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')) {\n                    stab_bad_demangle(pcVar25);\n                    goto LAB_0013323f;\n                  }\n                  iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17);\n                  goto LAB_001330fd;\n                }\n                p = pcVar25 + 2;\n              }\n              else {\n                if (bVar2 == 0) goto LAB_00133635;\n                iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25);\nLAB_001330fd:\n                if (iVar7 == 0) goto LAB_0013323f;\n              }\n              pcVar17 = p;\n              cVar3 = *p;\n              if (cVar3 != '\0') {\n                pcVar16 = (char *)0x0;\n                bVar41 = false;\n                pstart = (char **)0x0;\n                do {\n                  pcVar25 = p;\n                  switch(cVar3) {\n                  case '0':\n                  case '1':\n                  case '2':\n                  case '3':\n                  case '4':\n                  case '5':\n                  case '6':\n                  case '7':\n                  case '8':\n                  case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;\n                  default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'C':\n                  case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;\n                  case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;\n                  case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar41) {\nLAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    pstart = (char **)0x1;\n                  }\n                  cVar3 = *p;\n                } while (cVar3 != '\0');\n                if (((int)pstart == 0) &&\n                   (bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (stab_demangle_typestring *)0x0;\n              if (local_58 == (stab_demangle_typestring *)0x0) {\n                pcVar17 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar17);\n              }\n              varargs_1 = local_50[0];\n              arg_types = local_58;\nLAB_00133211:\n              bVar4 = varargs_1;\n              if (arg_types == (stab_demangle_typestring *)0x0) goto LAB_00132793;\n            }" if (parenthesized_expression "((!bVar42 && !bVar46) == bVar42)" ( (binary_expression "(!bVar42 && !bVar46) == bVar42" (parenthesized_expression "(!bVar42 && !bVar46)" ( (binary_expression "!bVar42 && !bVar46" (unary_expression "!bVar42" ! identifier) && (unary_expression "!bVar46" ! identifier)) )) == identifier) )) (compound_statement "{\nLAB_001328ca:\n              arg_types = (stab_demangle_typestring *)xmalloc(8);\n              arg_types->typestring = (char *)0x0;\n              bVar4 = 0;\n            }" { (labeled_statement "LAB_001328ca:\n              arg_types = (stab_demangle_typestring *)xmalloc(8);" statement_identifier : (expression_statement "arg_types = (stab_demangle_typestring *)xmalloc(8);" (assignment_expression "arg_types = (stab_demangle_typestring *)xmalloc(8)" identifier = (cast_expression "(stab_demangle_typestring *)xmalloc(8)" ( (type_descriptor "stab_demangle_typestring *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(8)" identifier (argument_list "(8)" ( number_literal ))))) ;)) (expression_statement "arg_types->typestring = (char *)0x0;" (assignment_expression "arg_types->typestring = (char *)0x0" (field_expression "arg_types->typestring" identifier -> field_identifier) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar4 = 0;" (assignment_expression "bVar4 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (type_name != (char *)0x0) {\n                sVar32 = strlen(type_name);\n                local_d8 = sVar32 & 0xffffffff;\n              }\n              pcVar16 = "C";\n              pcVar17 = "V";\n              if (local_f0 == 0) {\n                pcVar16 = "";\n              }\n              if (local_118 == 0) {\n                pcVar17 = "";\n              }\n              local_c0 = type_name;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)xtypenums,"__%s%s");\n              }\n              else if ((type_name == (char *)0x0) ||\n                      (pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0)) {\n                sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8);\n              }\n              else {\n                sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)xtypenums;\n              do {\n                puVar29 = puVar30;\n                uVar8 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar39 = uVar8 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar39 == 0);\n              bVar41 = (uVar8 & 0x8080) == 0;\n              if (bVar41) {\n                uVar39 = uVar39 >> 0x10;\n              }\n              cVar3 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar7 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar39,(byte)uVar39)) -\n                      (int)xtypenums;\n              sVar32 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar7 = iVar7 + (int)local_d8 + 1 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar26 = (byte *)xmalloc(iVar7);\n                *pbVar26 = 0;\n              }\n              else {\n                lVar11 = -1;\n                pcVar17 = local_138;\n                do {\n                  if (lVar11 == 0) break;\n                  lVar11 = lVar11 + -1;\n                  cVar1 = *pcVar17;\n                  pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar7 = ((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar17 == (char *)0x0) {\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar11 = -1;\n                  pcVar16 = pcVar17;\n                  do {\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar3 != '\0');\n                  pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);\n                  strncpy((char *)pbVar26,local_138,3);\n                  strcpy((char *)(pbVar26 + 3),pcVar17);\n                }\n                else {\n                  pbVar26 = (byte *)xmalloc(iVar7);\n                  strcpy((char *)pbVar26,local_138);\n                }\n              }\n              sVar32 = strlen((char *)pbVar26);\n              local_d8 = sVar32 & 0xffffffff;\n              pcVar17 = stpcpy((char *)(pbVar26 + sVar32),(char *)xtypenums);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar17,local_c0);\n              }\n              strcat((char *)pbVar26,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar26 == 0x5f) && (pbVar26[1] == 0x5a)) {\nLAB_00133b71:\n                p = (char *)pbVar26;\n                pdVar27 = cplus_demangle_v3_components((char *)pbVar26,3,(void **)xtypenums);\n                if (pdVar27 == (demangle_component *)0x0) {\n                  stab_bad_demangle((char *)pbVar26);\n                }\n                else {\n                  if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }\n                  pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar17);\n                  free((void *)xtypenums);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar26;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pcVar25 = p + local_d8;\n              pcVar16 = p;\nLAB_001330d0:\n              bVar2 = pcVar25[2];\n              if (pcVar16 == pcVar25) {\n                if (((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) &&\n                   (pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74)) {\n                  for (; *pcVar17 == '_'; pcVar17 = pcVar17 + 1) {\n                  }\n                  pcVar17 = strstr(pcVar17,"__");\n                  if ((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')) {\n                    stab_bad_demangle(pcVar25);\n                    goto LAB_0013323f;\n                  }\n                  iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17);\n                  goto LAB_001330fd;\n                }\n                p = pcVar25 + 2;\n              }\n              else {\n                if (bVar2 == 0) goto LAB_00133635;\n                iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25);\nLAB_001330fd:\n                if (iVar7 == 0) goto LAB_0013323f;\n              }\n              pcVar17 = p;\n              cVar3 = *p;\n              if (cVar3 != '\0') {\n                pcVar16 = (char *)0x0;\n                bVar41 = false;\n                pstart = (char **)0x0;\n                do {\n                  pcVar25 = p;\n                  switch(cVar3) {\n                  case '0':\n                  case '1':\n                  case '2':\n                  case '3':\n                  case '4':\n                  case '5':\n                  case '6':\n                  case '7':\n                  case '8':\n                  case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;\n                  default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'C':\n                  case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;\n                  case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;\n                  case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar41) {\nLAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    pstart = (char **)0x1;\n                  }\n                  cVar3 = *p;\n                } while (cVar3 != '\0');\n                if (((int)pstart == 0) &&\n                   (bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (stab_demangle_typestring *)0x0;\n              if (local_58 == (stab_demangle_typestring *)0x0) {\n                pcVar17 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar17);\n              }\n              varargs_1 = local_50[0];\n              arg_types = local_58;\nLAB_00133211:\n              bVar4 = varargs_1;\n              if (arg_types == (stab_demangle_typestring *)0x0) goto LAB_00132793;\n            }" else (compound_statement "{\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (type_name != (char *)0x0) {\n                sVar32 = strlen(type_name);\n                local_d8 = sVar32 & 0xffffffff;\n              }\n              pcVar16 = "C";\n              pcVar17 = "V";\n              if (local_f0 == 0) {\n                pcVar16 = "";\n              }\n              if (local_118 == 0) {\n                pcVar17 = "";\n              }\n              local_c0 = type_name;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)xtypenums,"__%s%s");\n              }\n              else if ((type_name == (char *)0x0) ||\n                      (pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0)) {\n                sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8);\n              }\n              else {\n                sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)xtypenums;\n              do {\n                puVar29 = puVar30;\n                uVar8 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar39 = uVar8 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar39 == 0);\n              bVar41 = (uVar8 & 0x8080) == 0;\n              if (bVar41) {\n                uVar39 = uVar39 >> 0x10;\n              }\n              cVar3 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar7 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar39,(byte)uVar39)) -\n                      (int)xtypenums;\n              sVar32 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar7 = iVar7 + (int)local_d8 + 1 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar26 = (byte *)xmalloc(iVar7);\n                *pbVar26 = 0;\n              }\n              else {\n                lVar11 = -1;\n                pcVar17 = local_138;\n                do {\n                  if (lVar11 == 0) break;\n                  lVar11 = lVar11 + -1;\n                  cVar1 = *pcVar17;\n                  pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar7 = ((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar17 == (char *)0x0) {\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar11 = -1;\n                  pcVar16 = pcVar17;\n                  do {\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar3 != '\0');\n                  pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);\n                  strncpy((char *)pbVar26,local_138,3);\n                  strcpy((char *)(pbVar26 + 3),pcVar17);\n                }\n                else {\n                  pbVar26 = (byte *)xmalloc(iVar7);\n                  strcpy((char *)pbVar26,local_138);\n                }\n              }\n              sVar32 = strlen((char *)pbVar26);\n              local_d8 = sVar32 & 0xffffffff;\n              pcVar17 = stpcpy((char *)(pbVar26 + sVar32),(char *)xtypenums);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar17,local_c0);\n              }\n              strcat((char *)pbVar26,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar26 == 0x5f) && (pbVar26[1] == 0x5a)) {\nLAB_00133b71:\n                p = (char *)pbVar26;\n                pdVar27 = cplus_demangle_v3_components((char *)pbVar26,3,(void **)xtypenums);\n                if (pdVar27 == (demangle_component *)0x0) {\n                  stab_bad_demangle((char *)pbVar26);\n                }\n                else {\n                  if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }\n                  pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar17);\n                  free((void *)xtypenums);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (stab_demangle_typestring *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              p = (char *)pbVar26;\n              xtypenums = (int  [2])dhandle;\n              local_48 = (stab_demangle_typestring *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pcVar25 = p + local_d8;\n              pcVar16 = p;\nLAB_001330d0:\n              bVar2 = pcVar25[2];\n              if (pcVar16 == pcVar25) {\n                if (((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) &&\n                   (pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74)) {\n                  for (; *pcVar17 == '_'; pcVar17 = pcVar17 + 1) {\n                  }\n                  pcVar17 = strstr(pcVar17,"__");\n                  if ((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')) {\n                    stab_bad_demangle(pcVar25);\n                    goto LAB_0013323f;\n                  }\n                  iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17);\n                  goto LAB_001330fd;\n                }\n                p = pcVar25 + 2;\n              }\n              else {\n                if (bVar2 == 0) goto LAB_00133635;\n                iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25);\nLAB_001330fd:\n                if (iVar7 == 0) goto LAB_0013323f;\n              }\n              pcVar17 = p;\n              cVar3 = *p;\n              if (cVar3 != '\0') {\n                pcVar16 = (char *)0x0;\n                bVar41 = false;\n                pstart = (char **)0x0;\n                do {\n                  pcVar25 = p;\n                  switch(cVar3) {\n                  case '0':\n                  case '1':\n                  case '2':\n                  case '3':\n                  case '4':\n                  case '5':\n                  case '6':\n                  case '7':\n                  case '8':\n                  case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;\n                  default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'C':\n                  case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;\n                  case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;\n                  case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar41) {\nLAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    pstart = (char **)0x1;\n                  }\n                  cVar3 = *p;\n                } while (cVar3 != '\0');\n                if (((int)pstart == 0) &&\n                   (bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (stab_demangle_typestring *)0x0;\n              if (local_58 == (stab_demangle_typestring *)0x0) {\n                pcVar17 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar17);\n              }\n              varargs_1 = local_50[0];\n              arg_types = local_58;\nLAB_00133211:\n              bVar4 = varargs_1;\n              if (arg_types == (stab_demangle_typestring *)0x0) goto LAB_00132793;\n            }" { (labeled_statement "LAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }" statement_identifier : (if_statement "if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }" if (parenthesized_expression "(bVar41)" ( identifier )) (compound_statement "{\n                bVar41 = false;\n                goto LAB_001336b5;\n              }" { (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (goto_statement "goto LAB_001336b5;" goto statement_identifier ;) }))) (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" identifier = number_literal) ;) (if_statement "if (type_name != (char *)0x0) {\n                sVar32 = strlen(type_name);\n                local_d8 = sVar32 & 0xffffffff;\n              }" if (parenthesized_expression "(type_name != (char *)0x0)" ( (binary_expression "type_name != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                sVar32 = strlen(type_name);\n                local_d8 = sVar32 & 0xffffffff;\n              }" { (expression_statement "sVar32 = strlen(type_name);" (assignment_expression "sVar32 = strlen(type_name)" identifier = (call_expression "strlen(type_name)" identifier (argument_list "(type_name)" ( identifier )))) ;) (expression_statement "local_d8 = sVar32 & 0xffffffff;" (assignment_expression "local_d8 = sVar32 & 0xffffffff" identifier = (binary_expression "sVar32 & 0xffffffff" identifier & number_literal)) ;) })) (expression_statement "pcVar16 = "C";" (assignment_expression "pcVar16 = "C"" identifier = (string_literal ""C"" " string_content ")) ;) (expression_statement "pcVar17 = "V";" (assignment_expression "pcVar17 = "V"" identifier = (string_literal ""V"" " string_content ")) ;) (if_statement "if (local_f0 == 0) {\n                pcVar16 = "";\n              }" if (parenthesized_expression "(local_f0 == 0)" ( (binary_expression "local_f0 == 0" identifier == number_literal) )) (compound_statement "{\n                pcVar16 = "";\n              }" { (expression_statement "pcVar16 = "";" (assignment_expression "pcVar16 = """ identifier = (string_literal """" " ")) ;) })) (if_statement "if (local_118 == 0) {\n                pcVar17 = "";\n              }" if (parenthesized_expression "(local_118 == 0)" ( (binary_expression "local_118 == 0" identifier == number_literal) )) (compound_statement "{\n                pcVar17 = "";\n              }" { (expression_statement "pcVar17 = "";" (assignment_expression "pcVar17 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "local_c0 = type_name;" (assignment_expression "local_c0 = type_name" identifier = identifier) ;) (if_statement "if ((int)local_d8 == 0) {\n                sprintf((char *)xtypenums,"__%s%s");\n              }\n              else if ((type_name == (char *)0x0) ||\n                      (pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0)) {\n                sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8);\n              }\n              else {\n                sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }" if (parenthesized_expression "((int)local_d8 == 0)" ( (binary_expression "(int)local_d8 == 0" (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n                sprintf((char *)xtypenums,"__%s%s");\n              }" { (expression_statement "sprintf((char *)xtypenums,"__%s%s");" (call_expression "sprintf((char *)xtypenums,"__%s%s")" identifier (argument_list "((char *)xtypenums,"__%s%s")" ( (cast_expression "(char *)xtypenums" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""__%s%s"" " string_content ") ))) ;) }) (else_clause "else if ((type_name == (char *)0x0) ||\n                      (pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0)) {\n                sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8);\n              }\n              else {\n                sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }" else (if_statement "if ((type_name == (char *)0x0) ||\n                      (pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0)) {\n                sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8);\n              }\n              else {\n                sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }" if (parenthesized_expression "((type_name == (char *)0x0) ||\n                      (pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0))" ( (binary_expression "(type_name == (char *)0x0) ||\n                      (pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0)" (parenthesized_expression "(type_name == (char *)0x0)" ( (binary_expression "type_name == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0)" ( (comma_expression "pcVar25 = strchr(type_name,0x3c), pcVar25 == (char *)0x0" (assignment_expression "pcVar25 = strchr(type_name,0x3c)" identifier = (call_expression "strchr(type_name,0x3c)" identifier (argument_list "(type_name,0x3c)" ( identifier , number_literal )))) , (binary_expression "pcVar25 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8);\n              }" { (expression_statement "sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8);" (call_expression "sprintf((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8)" identifier (argument_list "((char *)xtypenums,"__%s%s%d",pcVar16,pcVar17,local_d8)" ( (cast_expression "(char *)xtypenums" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""__%s%s%d"" " string_content ") , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n                sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }" else (compound_statement "{\n                sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }" { (expression_statement "sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17);" (call_expression "sprintf((char *)xtypenums,"__%s%s",pcVar16,pcVar17)" identifier (argument_list "((char *)xtypenums,"__%s%s",pcVar16,pcVar17)" ( (cast_expression "(char *)xtypenums" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""__%s%s"" " string_content ") , identifier , identifier ))) ;) (expression_statement "local_d8._0_4_ = 0;" (assignment_expression "local_d8._0_4_ = 0" (field_expression "local_d8._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_c0 = (char *)0x0;" (assignment_expression "local_c0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))))) (expression_statement "puVar30 = (uint *)xtypenums;" (assignment_expression "puVar30 = (uint *)xtypenums" identifier = (cast_expression "(uint *)xtypenums" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (do_statement "do {\n                puVar29 = puVar30;\n                uVar8 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar39 = uVar8 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar39 == 0);" do (compound_statement "{\n                puVar29 = puVar30;\n                uVar8 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar39 = uVar8 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              }" { (expression_statement "puVar29 = puVar30;" (assignment_expression "puVar29 = puVar30" identifier = identifier) ;) (expression_statement "uVar8 = *puVar29 + 0xfefefeff & ~*puVar29;" (assignment_expression "uVar8 = *puVar29 + 0xfefefeff & ~*puVar29" identifier = (binary_expression "*puVar29 + 0xfefefeff & ~*puVar29" (binary_expression "*puVar29 + 0xfefefeff" (pointer_expression "*puVar29" * identifier) + number_literal) & (unary_expression "~*puVar29" ~ (pointer_expression "*puVar29" * identifier)))) ;) (expression_statement "uVar39 = uVar8 & 0x80808080;" (assignment_expression "uVar39 = uVar8 & 0x80808080" identifier = (binary_expression "uVar8 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar30 = puVar29 + 1;" (assignment_expression "puVar30 = puVar29 + 1" identifier = (binary_expression "puVar29 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar39 == 0)" ( (binary_expression "uVar39 == 0" identifier == number_literal) )) ;) (expression_statement "bVar41 = (uVar8 & 0x8080) == 0;" (assignment_expression "bVar41 = (uVar8 & 0x8080) == 0" identifier = (binary_expression "(uVar8 & 0x8080) == 0" (parenthesized_expression "(uVar8 & 0x8080)" ( (binary_expression "uVar8 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar41) {\n                uVar39 = uVar39 >> 0x10;\n              }" if (parenthesized_expression "(bVar41)" ( identifier )) (compound_statement "{\n                uVar39 = uVar39 >> 0x10;\n              }" { (expression_statement "uVar39 = uVar39 >> 0x10;" (assignment_expression "uVar39 = uVar39 >> 0x10" identifier = (binary_expression "uVar39 >> 0x10" identifier >> number_literal)) ;) })) (expression_statement "cVar3 = *local_138;" (assignment_expression "cVar3 = *local_138" identifier = (pointer_expression "*local_138" * identifier)) ;) (if_statement "if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }" if (parenthesized_expression "(bVar41)" ( identifier )) (compound_statement "{\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }" { (expression_statement "puVar30 = (uint *)((long)puVar29 + 6);" (assignment_expression "puVar30 = (uint *)((long)puVar29 + 6)" identifier = (cast_expression "(uint *)((long)puVar29 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar29 + 6)" ( (binary_expression "(long)puVar29 + 6" (cast_expression "(long)puVar29" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) })) (expression_statement "iVar7 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar39,(byte)uVar39)) -\n                      (int)xtypenums;" (assignment_expression "iVar7 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar39,(byte)uVar39)) -\n                      (int)xtypenums" identifier = (binary_expression "(((int)puVar30 + -3) - (uint)CARRY1((byte)uVar39,(byte)uVar39)) -\n                      (int)xtypenums" (parenthesized_expression "(((int)puVar30 + -3) - (uint)CARRY1((byte)uVar39,(byte)uVar39))" ( (binary_expression "((int)puVar30 + -3) - (uint)CARRY1((byte)uVar39,(byte)uVar39)" (parenthesized_expression "((int)puVar30 + -3)" ( (binary_expression "(int)puVar30 + -3" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - (cast_expression "(uint)CARRY1((byte)uVar39,(byte)uVar39)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar39,(byte)uVar39)" identifier (argument_list "((byte)uVar39,(byte)uVar39)" ( (cast_expression "(byte)uVar39" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar39" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) )) - (cast_expression "(int)xtypenums" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (expression_statement "sVar32 = strlen((char *)pbVar40);" (assignment_expression "sVar32 = strlen((char *)pbVar40)" identifier = (call_expression "strlen((char *)pbVar40)" identifier (argument_list "((char *)pbVar40)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (bVar45) {\n                iVar7 = iVar7 + (int)local_d8 + 1 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar26 = (byte *)xmalloc(iVar7);\n                *pbVar26 = 0;\n              }\n              else {\n                lVar11 = -1;\n                pcVar17 = local_138;\n                do {\n                  if (lVar11 == 0) break;\n                  lVar11 = lVar11 + -1;\n                  cVar1 = *pcVar17;\n                  pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar7 = ((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar17 == (char *)0x0) {\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar11 = -1;\n                  pcVar16 = pcVar17;\n                  do {\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar3 != '\0');\n                  pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);\n                  strncpy((char *)pbVar26,local_138,3);\n                  strcpy((char *)(pbVar26 + 3),pcVar17);\n                }\n                else {\n                  pbVar26 = (byte *)xmalloc(iVar7);\n                  strcpy((char *)pbVar26,local_138);\n                }\n              }" if (parenthesized_expression "(bVar45)" ( identifier )) (compound_statement "{\n                iVar7 = iVar7 + (int)local_d8 + 1 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar26 = (byte *)xmalloc(iVar7);\n                *pbVar26 = 0;\n              }" { (expression_statement "iVar7 = iVar7 + (int)local_d8 + 1 + (int)sVar32;" (assignment_expression "iVar7 = iVar7 + (int)local_d8 + 1 + (int)sVar32" identifier = (binary_expression "iVar7 + (int)local_d8 + 1 + (int)sVar32" (binary_expression "iVar7 + (int)local_d8 + 1" (binary_expression "iVar7 + (int)local_d8" identifier + (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) + (cast_expression "(int)sVar32" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;" if (parenthesized_expression "(((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.'))))" ( (binary_expression "((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))" (parenthesized_expression "((cVar3 == 'o') && (local_138[1] == 'p'))" ( (binary_expression "(cVar3 == 'o') && (local_138[1] == 'p')" (parenthesized_expression "(cVar3 == 'o')" ( (binary_expression "cVar3 == 'o'" identifier == (char_literal "'o'" ' character ')) )) && (parenthesized_expression "(local_138[1] == 'p')" ( (binary_expression "local_138[1] == 'p'" (subscript_expression "local_138[1]" identifier [ number_literal ]) == (char_literal "'p'" ' character ')) ))) )) && (parenthesized_expression "((local_138[2] == '$' || (local_138[2] == '.')))" ( (parenthesized_expression "(local_138[2] == '$' || (local_138[2] == '.'))" ( (binary_expression "local_138[2] == '$' || (local_138[2] == '.')" (binary_expression "local_138[2] == '$'" (subscript_expression "local_138[2]" identifier [ number_literal ]) == (char_literal "'$'" ' character ')) || (parenthesized_expression "(local_138[2] == '.')" ( (binary_expression "local_138[2] == '.'" (subscript_expression "local_138[2]" identifier [ number_literal ]) == (char_literal "'.'" ' character ')) ))) )) ))) )) (goto_statement "goto LAB_00132f86;" goto statement_identifier ;)) (expression_statement "pbVar26 = (byte *)xmalloc(iVar7);" (assignment_expression "pbVar26 = (byte *)xmalloc(iVar7)" identifier = (cast_expression "(byte *)xmalloc(iVar7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))))) ;) (expression_statement "*pbVar26 = 0;" (assignment_expression "*pbVar26 = 0" (pointer_expression "*pbVar26" * identifier) = number_literal) ;) }) (else_clause "else {\n                lVar11 = -1;\n                pcVar17 = local_138;\n                do {\n                  if (lVar11 == 0) break;\n                  lVar11 = lVar11 + -1;\n                  cVar1 = *pcVar17;\n                  pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar7 = ((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar17 == (char *)0x0) {\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar11 = -1;\n                  pcVar16 = pcVar17;\n                  do {\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar3 != '\0');\n                  pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);\n                  strncpy((char *)pbVar26,local_138,3);\n                  strcpy((char *)(pbVar26 + 3),pcVar17);\n                }\n                else {\n                  pbVar26 = (byte *)xmalloc(iVar7);\n                  strcpy((char *)pbVar26,local_138);\n                }\n              }" else (compound_statement "{\n                lVar11 = -1;\n                pcVar17 = local_138;\n                do {\n                  if (lVar11 == 0) break;\n                  lVar11 = lVar11 + -1;\n                  cVar1 = *pcVar17;\n                  pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar7 = ((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32;\n                if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar17 == (char *)0x0) {\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar11 = -1;\n                  pcVar16 = pcVar17;\n                  do {\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar3 != '\0');\n                  pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);\n                  strncpy((char *)pbVar26,local_138,3);\n                  strcpy((char *)(pbVar26 + 3),pcVar17);\n                }\n                else {\n                  pbVar26 = (byte *)xmalloc(iVar7);\n                  strcpy((char *)pbVar26,local_138);\n                }\n              }" { (expression_statement "lVar11 = -1;" (assignment_expression "lVar11 = -1" identifier = number_literal) ;) (expression_statement "pcVar17 = local_138;" (assignment_expression "pcVar17 = local_138" identifier = identifier) ;) (do_statement "do {\n                  if (lVar11 == 0) break;\n                  lVar11 = lVar11 + -1;\n                  cVar1 = *pcVar17;\n                  pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');" do (compound_statement "{\n                  if (lVar11 == 0) break;\n                  lVar11 = lVar11 + -1;\n                  cVar1 = *pcVar17;\n                  pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;\n                }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar17;" (assignment_expression "cVar1 = *pcVar17" identifier = (pointer_expression "*pcVar17" * identifier)) ;) (expression_statement "pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pcVar17 = pcVar17 + (ulong)bVar47 * -2 + 1" identifier = (binary_expression "pcVar17 + (ulong)bVar47 * -2 + 1" (binary_expression "pcVar17 + (ulong)bVar47 * -2" identifier + (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "iVar7 = ((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32;" (assignment_expression "iVar7 = ((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32" identifier = (binary_expression "((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2 + (int)sVar32" (binary_expression "((iVar7 + (int)local_d8 + 1) - (int)lVar11) + -2" (parenthesized_expression "((iVar7 + (int)local_d8 + 1) - (int)lVar11)" ( (binary_expression "(iVar7 + (int)local_d8 + 1) - (int)lVar11" (parenthesized_expression "(iVar7 + (int)local_d8 + 1)" ( (binary_expression "iVar7 + (int)local_d8 + 1" (binary_expression "iVar7 + (int)local_d8" identifier + (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) )) - (cast_expression "(int)lVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal) + (cast_expression "(int)sVar32" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar17 == (char *)0x0) {\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar11 = -1;\n                  pcVar16 = pcVar17;\n                  do {\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar3 != '\0');\n                  pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);\n                  strncpy((char *)pbVar26,local_138,3);\n                  strcpy((char *)(pbVar26 + 3),pcVar17);\n                }\n                else {\n                  pbVar26 = (byte *)xmalloc(iVar7);\n                  strcpy((char *)pbVar26,local_138);\n                }" if (parenthesized_expression "(((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.'))))" ( (binary_expression "((cVar3 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))" (parenthesized_expression "((cVar3 == 'o') && (local_138[1] == 'p'))" ( (binary_expression "(cVar3 == 'o') && (local_138[1] == 'p')" (parenthesized_expression "(cVar3 == 'o')" ( (binary_expression "cVar3 == 'o'" identifier == (char_literal "'o'" ' character ')) )) && (parenthesized_expression "(local_138[1] == 'p')" ( (binary_expression "local_138[1] == 'p'" (subscript_expression "local_138[1]" identifier [ number_literal ]) == (char_literal "'p'" ' character ')) ))) )) && (parenthesized_expression "((local_138[2] == '$' || (local_138[2] == '.')))" ( (parenthesized_expression "(local_138[2] == '$' || (local_138[2] == '.'))" ( (binary_expression "local_138[2] == '$' || (local_138[2] == '.')" (binary_expression "local_138[2] == '$'" (subscript_expression "local_138[2]" identifier [ number_literal ]) == (char_literal "'$'" ' character ')) || (parenthesized_expression "(local_138[2] == '.')" ( (binary_expression "local_138[2] == '.'" (subscript_expression "local_138[2]" identifier [ number_literal ]) == (char_literal "'.'" ' character ')) ))) )) ))) )) (compound_statement "{\nLAB_00132f86:\n                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar17 == (char *)0x0) {\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar11 = -1;\n                  pcVar16 = pcVar17;\n                  do {\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar3 != '\0');\n                  pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);\n                  strncpy((char *)pbVar26,local_138,3);\n                  strcpy((char *)(pbVar26 + 3),pcVar17);\n                }" { (labeled_statement "LAB_00132f86:\n                  pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);" statement_identifier : (expression_statement "pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0);" (assignment_expression "pcVar17 = (char *)cplus_mangle_opname(local_138 + 3,0)" identifier = (cast_expression "(char *)cplus_mangle_opname(local_138 + 3,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "cplus_mangle_opname(local_138 + 3,0)" identifier (argument_list "(local_138 + 3,0)" ( (binary_expression "local_138 + 3" identifier + number_literal) , number_literal ))))) ;)) (if_statement "if (pcVar17 == (char *)0x0) {\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }" if (parenthesized_expression "(pcVar17 == (char *)0x0)" ( (binary_expression "pcVar17 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar17,local_138);\n                    goto LAB_0013279c;\n                  }" { (expression_statement "pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);" (assignment_expression "pcVar17 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"No mangling for \"%s\"\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"No mangling for \"%s\"\n",5)" identifier (argument_list "(0,"No mangling for \"%s\"\n",5)" ( number_literal , (string_literal ""No mangling for \"%s\"\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(stderr,pcVar17,local_138);" (call_expression "fprintf(stderr,pcVar17,local_138)" identifier (argument_list "(stderr,pcVar17,local_138)" ( identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_0013279c;" goto statement_identifier ;) })) (expression_statement "lVar11 = -1;" (assignment_expression "lVar11 = -1" identifier = number_literal) ;) (expression_statement "pcVar16 = pcVar17;" (assignment_expression "pcVar16 = pcVar17" identifier = identifier) ;) (do_statement "do {\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar3 != '\0');" do (compound_statement "{\n                    if (lVar11 == 0) break;\n                    lVar11 = lVar11 + -1;\n                    cVar3 = *pcVar16;\n                    pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                  }" { (if_statement "if (lVar11 == 0) break;" if (parenthesized_expression "(lVar11 == 0)" ( (binary_expression "lVar11 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar11 = lVar11 + -1;" (assignment_expression "lVar11 = lVar11 + -1" identifier = (binary_expression "lVar11 + -1" identifier + number_literal)) ;) (expression_statement "cVar3 = *pcVar16;" (assignment_expression "cVar3 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (expression_statement "pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1" identifier = (binary_expression "pcVar16 + (ulong)bVar47 * -2 + 1" (binary_expression "pcVar16 + (ulong)bVar47 * -2" identifier + (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11);" (assignment_expression "pbVar26 = (byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11)" identifier = (cast_expression "(byte *)xmalloc(iVar7 + -1 + ~(uint)lVar11)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar7 + -1 + ~(uint)lVar11)" identifier (argument_list "(iVar7 + -1 + ~(uint)lVar11)" ( (binary_expression "iVar7 + -1 + ~(uint)lVar11" (binary_expression "iVar7 + -1" identifier + number_literal) + (unary_expression "~(uint)lVar11" ~ (cast_expression "(uint)lVar11" ( (type_descriptor "uint" type_identifier) ) identifier))) ))))) ;) (expression_statement "strncpy((char *)pbVar26,local_138,3);" (call_expression "strncpy((char *)pbVar26,local_138,3)" identifier (argument_list "((char *)pbVar26,local_138,3)" ( (cast_expression "(char *)pbVar26" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , number_literal ))) ;) (expression_statement "strcpy((char *)(pbVar26 + 3),pcVar17);" (call_expression "strcpy((char *)(pbVar26 + 3),pcVar17)" identifier (argument_list "((char *)(pbVar26 + 3),pcVar17)" ( (cast_expression "(char *)(pbVar26 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + 3)" ( (binary_expression "pbVar26 + 3" identifier + number_literal) ))) , identifier ))) ;) }) (else_clause "else {\n                  pbVar26 = (byte *)xmalloc(iVar7);\n                  strcpy((char *)pbVar26,local_138);\n                }" else (compound_statement "{\n                  pbVar26 = (byte *)xmalloc(iVar7);\n                  strcpy((char *)pbVar26,local_138);\n                }" { (expression_statement "pbVar26 = (byte *)xmalloc(iVar7);" (assignment_expression "pbVar26 = (byte *)xmalloc(iVar7)" identifier = (cast_expression "(byte *)xmalloc(iVar7)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))))) ;) (expression_statement "strcpy((char *)pbVar26,local_138);" (call_expression "strcpy((char *)pbVar26,local_138)" identifier (argument_list "((char *)pbVar26,local_138)" ( (cast_expression "(char *)pbVar26" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) }))) }))) (expression_statement "sVar32 = strlen((char *)pbVar26);" (assignment_expression "sVar32 = strlen((char *)pbVar26)" identifier = (call_expression "strlen((char *)pbVar26)" identifier (argument_list "((char *)pbVar26)" ( (cast_expression "(char *)pbVar26" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_d8 = sVar32 & 0xffffffff;" (assignment_expression "local_d8 = sVar32 & 0xffffffff" identifier = (binary_expression "sVar32 & 0xffffffff" identifier & number_literal)) ;) (expression_statement "pcVar17 = stpcpy((char *)(pbVar26 + sVar32),(char *)xtypenums);" (assignment_expression "pcVar17 = stpcpy((char *)(pbVar26 + sVar32),(char *)xtypenums)" identifier = (call_expression "stpcpy((char *)(pbVar26 + sVar32),(char *)xtypenums)" identifier (argument_list "((char *)(pbVar26 + sVar32),(char *)xtypenums)" ( (cast_expression "(char *)(pbVar26 + sVar32)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar26 + sVar32)" ( (binary_expression "pbVar26 + sVar32" identifier + identifier) ))) , (cast_expression "(char *)xtypenums" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (local_c0 != (char *)0x0) {\n                strcpy(pcVar17,local_c0);\n              }" if (parenthesized_expression "(local_c0 != (char *)0x0)" ( (binary_expression "local_c0 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                strcpy(pcVar17,local_c0);\n              }" { (expression_statement "strcpy(pcVar17,local_c0);" (call_expression "strcpy(pcVar17,local_c0)" identifier (argument_list "(pcVar17,local_c0)" ( identifier , identifier ))) ;) })) (expression_statement "strcat((char *)pbVar26,(char *)pbVar40);" (call_expression "strcat((char *)pbVar26,(char *)pbVar40)" identifier (argument_list "((char *)pbVar26,(char *)pbVar40)" ( (cast_expression "(char *)pbVar26" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (labeled_statement "LAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;" statement_identifier : (if_statement "if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;" if (parenthesized_expression "((*pbVar40 == 0) || (bVar41))" ( (binary_expression "(*pbVar40 == 0) || (bVar41)" (parenthesized_expression "(*pbVar40 == 0)" ( (binary_expression "*pbVar40 == 0" (pointer_expression "*pbVar40" * identifier) == number_literal) )) || (parenthesized_expression "(bVar41)" ( identifier ))) )) (goto_statement "goto LAB_001328ca;" goto statement_identifier ;))) (if_statement "if ((*pbVar26 == 0x5f) && (pbVar26[1] == 0x5a)) {\nLAB_00133b71:\n                p = (char *)pbVar26;\n                pdVar27 = cplus_demangle_v3_components((char *)pbVar26,3,(void **)xtypenums);\n                if (pdVar27 == (demangle_component *)0x0) {\n                  stab_bad_demangle((char *)pbVar26);\n                }\n                else {\n                  if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }\n                  pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar17);\n                  free((void *)xtypenums);\n                }\n                goto LAB_00132793;\n              }" if (parenthesized_expression "((*pbVar26 == 0x5f) && (pbVar26[1] == 0x5a))" ( (binary_expression "(*pbVar26 == 0x5f) && (pbVar26[1] == 0x5a)" (parenthesized_expression "(*pbVar26 == 0x5f)" ( (binary_expression "*pbVar26 == 0x5f" (pointer_expression "*pbVar26" * identifier) == number_literal) )) && (parenthesized_expression "(pbVar26[1] == 0x5a)" ( (binary_expression "pbVar26[1] == 0x5a" (subscript_expression "pbVar26[1]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\nLAB_00133b71:\n                p = (char *)pbVar26;\n                pdVar27 = cplus_demangle_v3_components((char *)pbVar26,3,(void **)xtypenums);\n                if (pdVar27 == (demangle_component *)0x0) {\n                  stab_bad_demangle((char *)pbVar26);\n                }\n                else {\n                  if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }\n                  pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar17);\n                  free((void *)xtypenums);\n                }\n                goto LAB_00132793;\n              }" { (labeled_statement "LAB_00133b71:\n                p = (char *)pbVar26;" statement_identifier : (expression_statement "p = (char *)pbVar26;" (assignment_expression "p = (char *)pbVar26" identifier = (cast_expression "(char *)pbVar26" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;)) (expression_statement "pdVar27 = cplus_demangle_v3_components((char *)pbVar26,3,(void **)xtypenums);" (assignment_expression "pdVar27 = cplus_demangle_v3_components((char *)pbVar26,3,(void **)xtypenums)" identifier = (call_expression "cplus_demangle_v3_components((char *)pbVar26,3,(void **)xtypenums)" identifier (argument_list "((char *)pbVar26,3,(void **)xtypenums)" ( (cast_expression "(char *)pbVar26" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal , (cast_expression "(void **)xtypenums" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) identifier) )))) ;) (if_statement "if (pdVar27 == (demangle_component *)0x0) {\n                  stab_bad_demangle((char *)pbVar26);\n                }\n                else {\n                  if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }\n                  pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar17);\n                  free((void *)xtypenums);\n                }" if (parenthesized_expression "(pdVar27 == (demangle_component *)0x0)" ( (binary_expression "pdVar27 == (demangle_component *)0x0" identifier == (cast_expression "(demangle_component *)0x0" ( (type_descriptor "demangle_component *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  stab_bad_demangle((char *)pbVar26);\n                }" { (expression_statement "stab_bad_demangle((char *)pbVar26);" (call_expression "stab_bad_demangle((char *)pbVar26)" identifier (argument_list "((char *)pbVar26)" ( (cast_expression "(char *)pbVar26" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) }) (else_clause "else {\n                  if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }\n                  pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar17);\n                  free((void *)xtypenums);\n                }" else (compound_statement "{\n                  if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }\n                  pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar17);\n                  free((void *)xtypenums);\n                }" { (if_statement "if ((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)) {\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }" if (parenthesized_expression "((pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE))" ( (binary_expression "(pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME) &&\n                     (pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)" (parenthesized_expression "(pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME)" ( (binary_expression "pdVar27->type == DEMANGLE_COMPONENT_TYPED_NAME" (field_expression "pdVar27->type" identifier -> field_identifier) == identifier) )) && (parenthesized_expression "(pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE)" ( (comma_expression "pdVar27 = (pdVar27->u).s_extended_operator.name,\n                     pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE" (assignment_expression "pdVar27 = (pdVar27->u).s_extended_operator.name" identifier = (field_expression "(pdVar27->u).s_extended_operator.name" (field_expression "(pdVar27->u).s_extended_operator" (parenthesized_expression "(pdVar27->u)" ( (field_expression "pdVar27->u" identifier -> field_identifier) )) . field_identifier) . field_identifier)) , (binary_expression "pdVar27->type == DEMANGLE_COMPONENT_FUNCTION_TYPE" (field_expression "pdVar27->type" identifier -> field_identifier) == identifier)) ))) )) (compound_statement "{\n                    arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);\n                    free((void *)xtypenums);\n                    goto LAB_00133211;\n                  }" { (expression_statement "arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1);" (assignment_expression "arg_types = (stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1)" identifier = (cast_expression "(stab_demangle_typestring *)\n                                stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1)" ( (type_descriptor "stab_demangle_typestring *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "stab_demangle_v3_arglist\n                                          (dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1)" identifier (argument_list "(dhandle,info,(pdVar27->u).s_extended_operator.name,\n                                           &varargs_1)" ( identifier , identifier , (field_expression "(pdVar27->u).s_extended_operator.name" (field_expression "(pdVar27->u).s_extended_operator" (parenthesized_expression "(pdVar27->u)" ( (field_expression "pdVar27->u" identifier -> field_identifier) )) . field_identifier) . field_identifier) , (pointer_expression "&varargs_1" & identifier) ))))) ;) (expression_statement "free((void *)xtypenums);" (call_expression "free((void *)xtypenums)" identifier (argument_list "((void *)xtypenums)" ( (cast_expression "(void *)xtypenums" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (goto_statement "goto LAB_00133211;" goto statement_identifier ;) })) (expression_statement "pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5);" (assignment_expression "pcVar17 = (char *)dcgettext(0,"Demangled name is not a function\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Demangled name is not a function\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Demangled name is not a function\n",5)" identifier (argument_list "(0,"Demangled name is not a function\n",5)" ( number_literal , (string_literal ""Demangled name is not a function\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(stderr,pcVar17);" (call_expression "fprintf(stderr,pcVar17)" identifier (argument_list "(stderr,pcVar17)" ( identifier , identifier ))) ;) (expression_statement "free((void *)xtypenums);" (call_expression "free((void *)xtypenums)" identifier (argument_list "((void *)xtypenums)" ( (cast_expression "(void *)xtypenums" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) }))) (goto_statement "goto LAB_00132793;" goto statement_identifier ;) })) (expression_statement "local_58 = (stab_demangle_typestring *)0x0;" (assignment_expression "local_58 = (stab_demangle_typestring *)0x0" identifier = (cast_expression "(stab_demangle_typestring *)0x0" ( (type_descriptor "stab_demangle_typestring *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50[0] = 0;" (assignment_expression "local_50[0] = 0" (subscript_expression "local_50[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_3c = 10;" (assignment_expression "local_3c = 10" identifier = number_literal) ;) (expression_statement "p = (char *)pbVar26;" (assignment_expression "p = (char *)pbVar26" identifier = (cast_expression "(char *)pbVar26" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "xtypenums = (int  [2])dhandle;" (assignment_expression "xtypenums = (int  [2])dhandle" identifier = (cast_expression "(int  [2])dhandle" ( (type_descriptor "int  [2]" primitive_type (abstract_array_declarator "[2]" [ number_literal ])) ) identifier)) ;) (expression_statement "local_48 = (stab_demangle_typestring *)xmalloc(0xa0);" (assignment_expression "local_48 = (stab_demangle_typestring *)xmalloc(0xa0)" identifier = (cast_expression "(stab_demangle_typestring *)xmalloc(0xa0)" ( (type_descriptor "stab_demangle_typestring *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0xa0)" identifier (argument_list "(0xa0)" ( number_literal ))))) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (if_statement "if ((int)local_d8 == 0) goto LAB_0013360b;" if (parenthesized_expression "((int)local_d8 == 0)" ( (binary_expression "(int)local_d8 == 0" (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (goto_statement "goto LAB_0013360b;" goto statement_identifier ;)) (expression_statement "pcVar25 = p + local_d8;" (assignment_expression "pcVar25 = p + local_d8" identifier = (binary_expression "p + local_d8" identifier + identifier)) ;) (expression_statement "pcVar16 = p;" (assignment_expression "pcVar16 = p" identifier = identifier) ;) (labeled_statement "LAB_001330d0:\n              bVar2 = pcVar25[2];" statement_identifier : (expression_statement "bVar2 = pcVar25[2];" (assignment_expression "bVar2 = pcVar25[2]" identifier = (subscript_expression "pcVar25[2]" identifier [ number_literal ])) ;)) (if_statement "if (pcVar16 == pcVar25) {\n                if (((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) &&\n                   (pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74)) {\n                  for (; *pcVar17 == '_'; pcVar17 = pcVar17 + 1) {\n                  }\n                  pcVar17 = strstr(pcVar17,"__");\n                  if ((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')) {\n                    stab_bad_demangle(pcVar25);\n                    goto LAB_0013323f;\n                  }\n                  iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17);\n                  goto LAB_001330fd;\n                }\n                p = pcVar25 + 2;\n              }\n              else {\n                if (bVar2 == 0) goto LAB_00133635;\n                iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25);\nLAB_001330fd:\n                if (iVar7 == 0) goto LAB_0013323f;\n              }" if (parenthesized_expression "(pcVar16 == pcVar25)" ( (binary_expression "pcVar16 == pcVar25" identifier == identifier) )) (compound_statement "{\n                if (((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) &&\n                   (pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74)) {\n                  for (; *pcVar17 == '_'; pcVar17 = pcVar17 + 1) {\n                  }\n                  pcVar17 = strstr(pcVar17,"__");\n                  if ((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')) {\n                    stab_bad_demangle(pcVar25);\n                    goto LAB_0013323f;\n                  }\n                  iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17);\n                  goto LAB_001330fd;\n                }\n                p = pcVar25 + 2;\n              }" { (if_statement "if (((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) &&\n                   (pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74)) {\n                  for (; *pcVar17 == '_'; pcVar17 = pcVar17 + 1) {\n                  }\n                  pcVar17 = strstr(pcVar17,"__");\n                  if ((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')) {\n                    stab_bad_demangle(pcVar25);\n                    goto LAB_0013323f;\n                  }\n                  iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17);\n                  goto LAB_001330fd;\n                }" if (parenthesized_expression "(((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) &&\n                   (pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74))" ( (binary_expression "((_sch_istable[(ulong)bVar2 * 2] & 4) == 0) &&\n                   (pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74)" (parenthesized_expression "((_sch_istable[(ulong)bVar2 * 2] & 4) == 0)" ( (binary_expression "(_sch_istable[(ulong)bVar2 * 2] & 4) == 0" (parenthesized_expression "(_sch_istable[(ulong)bVar2 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)bVar2 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar2 * 2]" identifier [ (binary_expression "(ulong)bVar2 * 2" (cast_expression "(ulong)bVar2" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "(pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74)" ( (comma_expression "pcVar17 = pcVar25, bVar2 != 0x51 && bVar2 != 0x74" (assignment_expression "pcVar17 = pcVar25" identifier = identifier) , (binary_expression "bVar2 != 0x51 && bVar2 != 0x74" (binary_expression "bVar2 != 0x51" identifier != number_literal) && (binary_expression "bVar2 != 0x74" identifier != number_literal))) ))) )) (compound_statement "{\n                  for (; *pcVar17 == '_'; pcVar17 = pcVar17 + 1) {\n                  }\n                  pcVar17 = strstr(pcVar17,"__");\n                  if ((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')) {\n                    stab_bad_demangle(pcVar25);\n                    goto LAB_0013323f;\n                  }\n                  iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17);\n                  goto LAB_001330fd;\n                }" { (for_statement "for (; *pcVar17 == '_'; pcVar17 = pcVar17 + 1) {\n                  }" for ( ; (binary_expression "*pcVar17 == '_'" (pointer_expression "*pcVar17" * identifier) == (char_literal "'_'" ' character ')) ; (assignment_expression "pcVar17 = pcVar17 + 1" identifier = (binary_expression "pcVar17 + 1" identifier + number_literal)) ) (compound_statement "{\n                  }" { })) (expression_statement "pcVar17 = strstr(pcVar17,"__");" (assignment_expression "pcVar17 = strstr(pcVar17,"__")" identifier = (call_expression "strstr(pcVar17,"__")" identifier (argument_list "(pcVar17,"__")" ( identifier , (string_literal ""__"" " string_content ") )))) ;) (if_statement "if ((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')) {\n                    stab_bad_demangle(pcVar25);\n                    goto LAB_0013323f;\n                  }" if (parenthesized_expression "((pcVar17 == (char *)0x0) || (pcVar17[2] == '\0'))" ( (binary_expression "(pcVar17 == (char *)0x0) || (pcVar17[2] == '\0')" (parenthesized_expression "(pcVar17 == (char *)0x0)" ( (binary_expression "pcVar17 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar17[2] == '\0')" ( (binary_expression "pcVar17[2] == '\0'" (subscript_expression "pcVar17[2]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                    stab_bad_demangle(pcVar25);\n                    goto LAB_0013323f;\n                  }" { (expression_statement "stab_bad_demangle(pcVar25);" (call_expression "stab_bad_demangle(pcVar25)" identifier (argument_list "(pcVar25)" ( identifier ))) ;) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;) })) (expression_statement "iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17);" (assignment_expression "iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17)" identifier = (call_expression "stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar17)" identifier (argument_list "((stab_demangle_info *)xtypenums,&p,pcVar17)" ( (cast_expression "(stab_demangle_info *)xtypenums" ( (type_descriptor "stab_demangle_info *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&p" & identifier) , identifier )))) ;) (goto_statement "goto LAB_001330fd;" goto statement_identifier ;) })) (expression_statement "p = pcVar25 + 2;" (assignment_expression "p = pcVar25 + 2" identifier = (binary_expression "pcVar25 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n                if (bVar2 == 0) goto LAB_00133635;\n                iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25);\nLAB_001330fd:\n                if (iVar7 == 0) goto LAB_0013323f;\n              }" else (compound_statement "{\n                if (bVar2 == 0) goto LAB_00133635;\n                iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25);\nLAB_001330fd:\n                if (iVar7 == 0) goto LAB_0013323f;\n              }" { (if_statement "if (bVar2 == 0) goto LAB_00133635;" if (parenthesized_expression "(bVar2 == 0)" ( (binary_expression "bVar2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00133635;" goto statement_identifier ;)) (expression_statement "iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25);" (assignment_expression "iVar7 = stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25)" identifier = (call_expression "stab_demangle_function_name((stab_demangle_info *)xtypenums,&p,pcVar25)" identifier (argument_list "((stab_demangle_info *)xtypenums,&p,pcVar25)" ( (cast_expression "(stab_demangle_info *)xtypenums" ( (type_descriptor "stab_demangle_info *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&p" & identifier) , identifier )))) ;) (labeled_statement "LAB_001330fd:\n                if (iVar7 == 0) goto LAB_0013323f;" statement_identifier : (if_statement "if (iVar7 == 0) goto LAB_0013323f;" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;))) }))) (expression_statement "pcVar17 = p;" (assignment_expression "pcVar17 = p" identifier = identifier) ;) (expression_statement "cVar3 = *p;" (assignment_expression "cVar3 = *p" identifier = (pointer_expression "*p" * identifier)) ;) (if_statement "if (cVar3 != '\0') {\n                pcVar16 = (char *)0x0;\n                bVar41 = false;\n                pstart = (char **)0x0;\n                do {\n                  pcVar25 = p;\n                  switch(cVar3) {\n                  case '0':\n                  case '1':\n                  case '2':\n                  case '3':\n                  case '4':\n                  case '5':\n                  case '6':\n                  case '7':\n                  case '8':\n                  case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;\n                  default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'C':\n                  case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;\n                  case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;\n                  case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar41) {\nLAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    pstart = (char **)0x1;\n                  }\n                  cVar3 = *p;\n                } while (cVar3 != '\0');\n                if (((int)pstart == 0) &&\n                   (bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0))\n                goto LAB_0013323f;\n              }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n                pcVar16 = (char *)0x0;\n                bVar41 = false;\n                pstart = (char **)0x0;\n                do {\n                  pcVar25 = p;\n                  switch(cVar3) {\n                  case '0':\n                  case '1':\n                  case '2':\n                  case '3':\n                  case '4':\n                  case '5':\n                  case '6':\n                  case '7':\n                  case '8':\n                  case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;\n                  default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'C':\n                  case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;\n                  case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;\n                  case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar41) {\nLAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    pstart = (char **)0x1;\n                  }\n                  cVar3 = *p;\n                } while (cVar3 != '\0');\n                if (((int)pstart == 0) &&\n                   (bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0))\n                goto LAB_0013323f;\n              }" { (expression_statement "pcVar16 = (char *)0x0;" (assignment_expression "pcVar16 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (expression_statement "pstart = (char **)0x0;" (assignment_expression "pstart = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (do_statement "do {\n                  pcVar25 = p;\n                  switch(cVar3) {\n                  case '0':\n                  case '1':\n                  case '2':\n                  case '3':\n                  case '4':\n                  case '5':\n                  case '6':\n                  case '7':\n                  case '8':\n                  case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;\n                  default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'C':\n                  case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;\n                  case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;\n                  case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar41) {\nLAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    pstart = (char **)0x1;\n                  }\n                  cVar3 = *p;\n                } while (cVar3 != '\0');" do (compound_statement "{\n                  pcVar25 = p;\n                  switch(cVar3) {\n                  case '0':\n                  case '1':\n                  case '2':\n                  case '3':\n                  case '4':\n                  case '5':\n                  case '6':\n                  case '7':\n                  case '8':\n                  case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;\n                  default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'C':\n                  case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;\n                  case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;\n                  case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar41) {\nLAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    pstart = (char **)0x1;\n                  }\n                  cVar3 = *p;\n                }" { (expression_statement "pcVar25 = p;" (assignment_expression "pcVar25 = p" identifier = identifier) ;) (switch_statement "switch(cVar3) {\n                  case '0':\n                  case '1':\n                  case '2':\n                  case '3':\n                  case '4':\n                  case '5':\n                  case '6':\n                  case '7':\n                  case '8':\n                  case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;\n                  default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'C':\n                  case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;\n                  case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;\n                  case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }" switch (parenthesized_expression "(cVar3)" ( identifier )) (compound_statement "{\n                  case '0':\n                  case '1':\n                  case '2':\n                  case '3':\n                  case '4':\n                  case '5':\n                  case '6':\n                  case '7':\n                  case '8':\n                  case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;\n                  default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'C':\n                  case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;\n                  case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;\n                  case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;\n                  case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }" { (case_statement "case '0':" case (char_literal "'0'" ' character ') :) (case_statement "case '1':" case (char_literal "'1'" ' character ') :) (case_statement "case '2':" case (char_literal "'2'" ' character ') :) (case_statement "case '3':" case (char_literal "'3'" ' character ') :) (case_statement "case '4':" case (char_literal "'4'" ' character ') :) (case_statement "case '5':" case (char_literal "'5'" ' character ') :) (case_statement "case '6':" case (char_literal "'6'" ' character ') :) (case_statement "case '7':" case (char_literal "'7'" ' character ') :) (case_statement "case '8':" case (char_literal "'8'" ' character ') :) (case_statement "case '9':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);\n                    goto joined_r0x0013334c;" case (char_literal "'9'" ' character ') : (if_statement "if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }" if (parenthesized_expression "(pcVar16 == (char *)0x0)" ( (binary_expression "pcVar16 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      pcVar16 = p;\n                    }" { (expression_statement "pcVar16 = p;" (assignment_expression "pcVar16 = p" identifier = identifier) ;) })) (expression_statement "iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart);" (assignment_expression "iVar7 = stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart)" identifier = (call_expression "stab_demangle_class((stab_demangle_info *)&p,(char **)0x0,pstart)" identifier (argument_list "((stab_demangle_info *)&p,(char **)0x0,pstart)" ( (cast_expression "(stab_demangle_info *)&p" ( (type_descriptor "stab_demangle_info *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&p" & identifier)) , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , identifier )))) ;) (goto_statement "goto joined_r0x0013334c;" goto statement_identifier ;)) (case_statement "default:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pstart = (char **)0x1;\n                    break;" default : (expression_statement "bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);" (assignment_expression "bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50)" identifier = (call_expression "stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50)" identifier (argument_list "((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50)" ( (cast_expression "(stab_demangle_info *)xtypenums" ( (type_descriptor "stab_demangle_info *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&p" & identifier) , (cast_expression "(debug_type_conflict **)&local_58" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_58" & identifier)) , (cast_expression "(bfd_boolean *)local_50" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (bVar4 == 0) goto LAB_0013323f;" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;)) (expression_statement "pstart = (char **)0x1;" (assignment_expression "pstart = (char **)0x1" identifier = (cast_expression "(char **)0x1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 'C':" case (char_literal "'C'" ' character ') :) (case_statement "case 'S':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    p = p + 1;\n                    break;" case (char_literal "'S'" ' character ') : (if_statement "if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }" if (parenthesized_expression "(pcVar16 == (char *)0x0)" ( (binary_expression "pcVar16 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      pcVar16 = p;\n                    }" { (expression_statement "pcVar16 = p;" (assignment_expression "pcVar16 = p" identifier = identifier) ;) })) (expression_statement "p = p + 1;" (assignment_expression "p = p + 1" identifier = (binary_expression "p + 1" identifier + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 'F':\n                    p = p + 1;\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    pcVar16 = (char *)0x0;\n                    pstart = (char **)0x1;\n                    break;" case (char_literal "'F'" ' character ') : (expression_statement "p = p + 1;" (assignment_expression "p = p + 1" identifier = (binary_expression "p + 1" identifier + number_literal)) ;) (expression_statement "bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);" (assignment_expression "bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50)" identifier = (call_expression "stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50)" identifier (argument_list "((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50)" ( (cast_expression "(stab_demangle_info *)xtypenums" ( (type_descriptor "stab_demangle_info *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&p" & identifier) , (cast_expression "(debug_type_conflict **)&local_58" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_58" & identifier)) , (cast_expression "(bfd_boolean *)local_50" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (bVar4 == 0) goto LAB_0013323f;" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;)) (expression_statement "pcVar16 = (char *)0x0;" (assignment_expression "pcVar16 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pstart = (char **)0x1;" (assignment_expression "pstart = (char **)0x1" identifier = (cast_expression "(char **)0x1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 'Q':\n                    bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );\n                    if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;" case (char_literal "'Q'" ' character ') : (expression_statement "bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      );" (assignment_expression "bVar4 = stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      )" identifier = (call_expression "stab_demangle_qualified\n                                      ((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      )" identifier (argument_list "((stab_demangle_info *)xtypenums,&p,(debug_type_conflict *)0x0\n                                      )" ( (cast_expression "(stab_demangle_info *)xtypenums" ( (type_descriptor "stab_demangle_info *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&p" & identifier) , (cast_expression "(debug_type_conflict *)0x0" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) )))) ;) (if_statement "if (bVar4 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }" if (parenthesized_expression "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )) (compound_statement "{\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);\n                      goto joined_r0x001332f4;\n                    }" { (expression_statement "iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25);" (assignment_expression "iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25)" identifier = (call_expression "stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25)" identifier (argument_list "((stab_demangle_info *)xtypenums,pcVar25,\n                                         (int)p - (int)pcVar25)" ( (cast_expression "(stab_demangle_info *)xtypenums" ( (type_descriptor "stab_demangle_info *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (binary_expression "(int)p - (int)pcVar25" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar25" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (goto_statement "goto joined_r0x001332f4;" goto statement_identifier ;) })) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;)) (case_statement "case '_':\n                    stab_bad_demangle(pcVar17);\n                    goto LAB_0013323f;" case (char_literal "'_'" ' character ') : (expression_statement "stab_bad_demangle(pcVar17);" (call_expression "stab_bad_demangle(pcVar17)" identifier (argument_list "(pcVar17)" ( identifier ))) ;) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;)) (case_statement "case 't':\n                    if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }\n                    iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);\njoined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;" case (char_literal "'t'" ' character ') : (if_statement "if (pcVar16 == (char *)0x0) {\n                      pcVar16 = p;\n                    }" if (parenthesized_expression "(pcVar16 == (char *)0x0)" ( (binary_expression "pcVar16 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      pcVar16 = p;\n                    }" { (expression_statement "pcVar16 = p;" (assignment_expression "pcVar16 = p" identifier = identifier) ;) })) (expression_statement "iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0);" (assignment_expression "iVar7 = stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0)" identifier = (call_expression "stab_demangle_template((stab_demangle_info *)xtypenums,&p,(char **)0x0)" identifier (argument_list "((stab_demangle_info *)xtypenums,&p,(char **)0x0)" ( (cast_expression "(stab_demangle_info *)xtypenums" ( (type_descriptor "stab_demangle_info *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&p" & identifier) , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) )))) ;) (labeled_statement "joined_r0x0013334c:\n                    if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }" statement_identifier : (if_statement "if (iVar7 != 0) {\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n                      iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);\njoined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }" { (expression_statement "iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16);" (assignment_expression "iVar7 = stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16)" identifier = (call_expression "stab_demangle_remember_type\n                                        ((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16)" identifier (argument_list "((stab_demangle_info *)xtypenums,pcVar16,\n                                         (int)p - (int)pcVar16)" ( (cast_expression "(stab_demangle_info *)xtypenums" ( (type_descriptor "stab_demangle_info *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier , (binary_expression "(int)p - (int)pcVar16" (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pcVar16" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (labeled_statement "joined_r0x001332f4:\n                      if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }" statement_identifier : (if_statement "if (iVar7 != 0) {\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n                        pcVar16 = (char *)0x0;\n                        goto LAB_0013328f;\n                      }" { (expression_statement "pcVar16 = (char *)0x0;" (assignment_expression "pcVar16 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0013328f;" goto statement_identifier ;) }))) }))) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;)) })) (if_statement "if (bVar41) {\nLAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    pstart = (char **)0x1;\n                  }" if (parenthesized_expression "(bVar41)" ( identifier )) (compound_statement "{\nLAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);\n                    if (bVar4 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    pstart = (char **)0x1;\n                  }" { (labeled_statement "LAB_0013328f:\n                    bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);" statement_identifier : (expression_statement "bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50);" (assignment_expression "bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50)" identifier = (call_expression "stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50)" identifier (argument_list "((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50)" ( (cast_expression "(stab_demangle_info *)xtypenums" ( (type_descriptor "stab_demangle_info *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&p" & identifier) , (cast_expression "(debug_type_conflict **)&local_58" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_58" & identifier)) , (cast_expression "(bfd_boolean *)local_50" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;)) (if_statement "if (bVar4 == 0) goto LAB_0013323f;" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;)) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" identifier = true) ;) (expression_statement "pstart = (char **)0x1;" (assignment_expression "pstart = (char **)0x1" identifier = (cast_expression "(char **)0x1" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) })) (expression_statement "cVar3 = *p;" (assignment_expression "cVar3 = *p" identifier = (pointer_expression "*p" * identifier)) ;) }) while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (if_statement "if (((int)pstart == 0) &&\n                   (bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0))\n                goto LAB_0013323f;" if (parenthesized_expression "(((int)pstart == 0) &&\n                   (bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0))" ( (binary_expression "((int)pstart == 0) &&\n                   (bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0)" (parenthesized_expression "((int)pstart == 0)" ( (binary_expression "(int)pstart == 0" (cast_expression "(int)pstart" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) && (parenthesized_expression "(bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0)" ( (comma_expression "bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50), bVar4 == 0" (assignment_expression "bVar4 = stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50)" identifier = (call_expression "stab_demangle_args((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50)" identifier (argument_list "((stab_demangle_info *)xtypenums,&p,\n                                               (debug_type_conflict **)&local_58,\n                                               (bfd_boolean *)local_50)" ( (cast_expression "(stab_demangle_info *)xtypenums" ( (type_descriptor "stab_demangle_info *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&p" & identifier) , (cast_expression "(debug_type_conflict **)&local_58" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&local_58" & identifier)) , (cast_expression "(bfd_boolean *)local_50" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) , (binary_expression "bVar4 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;)) })) (expression_statement "free(local_48);" (call_expression "free(local_48)" identifier (argument_list "(local_48)" ( identifier ))) ;) (expression_statement "local_48 = (stab_demangle_typestring *)0x0;" (assignment_expression "local_48 = (stab_demangle_typestring *)0x0" identifier = (cast_expression "(stab_demangle_typestring *)0x0" ( (type_descriptor "stab_demangle_typestring *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_58 == (stab_demangle_typestring *)0x0) {\n                pcVar17 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar17);\n              }" if (parenthesized_expression "(local_58 == (stab_demangle_typestring *)0x0)" ( (binary_expression "local_58 == (stab_demangle_typestring *)0x0" identifier == (cast_expression "(stab_demangle_typestring *)0x0" ( (type_descriptor "stab_demangle_typestring *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pcVar17 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar17);\n              }" { (expression_statement "pcVar17 = (char *)dcgettext(0,"no argument types in mangled string\n",5);" (assignment_expression "pcVar17 = (char *)dcgettext(0,"no argument types in mangled string\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"no argument types in mangled string\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"no argument types in mangled string\n",5)" identifier (argument_list "(0,"no argument types in mangled string\n",5)" ( number_literal , (string_literal ""no argument types in mangled string\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(stderr,pcVar17);" (call_expression "fprintf(stderr,pcVar17)" identifier (argument_list "(stderr,pcVar17)" ( identifier , identifier ))) ;) })) (expression_statement "varargs_1 = local_50[0];" (assignment_expression "varargs_1 = local_50[0]" identifier = (subscript_expression "local_50[0]" identifier [ number_literal ])) ;) (expression_statement "arg_types = local_58;" (assignment_expression "arg_types = local_58" identifier = identifier) ;) (labeled_statement "LAB_00133211:\n              bVar4 = varargs_1;" statement_identifier : (expression_statement "bVar4 = varargs_1;" (assignment_expression "bVar4 = varargs_1" identifier = identifier) ;)) (if_statement "if (arg_types == (stab_demangle_typestring *)0x0) goto LAB_00132793;" if (parenthesized_expression "(arg_types == (stab_demangle_typestring *)0x0)" ( (binary_expression "arg_types == (stab_demangle_typestring *)0x0" identifier == (cast_expression "(stab_demangle_typestring *)0x0" ( (type_descriptor "stab_demangle_typestring *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00132793;" goto statement_identifier ;)) }))) (expression_statement "pdVar18 = debug_make_method_type\n                                (dhandle,pdVar20,pdVar23,(debug_type_conflict *)arg_types,bVar4);" (assignment_expression "pdVar18 = debug_make_method_type\n                                (dhandle,pdVar20,pdVar23,(debug_type_conflict *)arg_types,bVar4)" identifier = (call_expression "debug_make_method_type\n                                (dhandle,pdVar20,pdVar23,(debug_type_conflict *)arg_types,bVar4)" identifier (argument_list "(dhandle,pdVar20,pdVar23,(debug_type_conflict *)arg_types,bVar4)" ( identifier , identifier , identifier , (cast_expression "(debug_type_conflict *)arg_types" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (if_statement "if (pdVar18 == (debug_type_conflict)0x0) goto LAB_00132793;" if (parenthesized_expression "(pdVar18 == (debug_type_conflict)0x0)" ( (binary_expression "pdVar18 == (debug_type_conflict)0x0" identifier == (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_00132793;" goto statement_identifier ;)) }))) (expression_statement "uVar39 = local_ec + 1;" (assignment_expression "uVar39 = local_ec + 1" identifier = (binary_expression "local_ec + 1" identifier + number_literal)) ;) (if_statement "if (local_e8 <= uVar39) {\n            local_e8 = local_e8 + 10;\n            local_128 = (debug_method_variant *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }" if (parenthesized_expression "(local_e8 <= uVar39)" ( (binary_expression "local_e8 <= uVar39" identifier <= identifier) )) (compound_statement "{\n            local_e8 = local_e8 + 10;\n            local_128 = (debug_method_variant *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }" { (expression_statement "local_e8 = local_e8 + 10;" (assignment_expression "local_e8 = local_e8 + 10" identifier = (binary_expression "local_e8 + 10" identifier + number_literal)) ;) (expression_statement "local_128 = (debug_method_variant *)xrealloc(local_128,(ulong)local_e8 << 3);" (assignment_expression "local_128 = (debug_method_variant *)xrealloc(local_128,(ulong)local_e8 << 3)" identifier = (cast_expression "(debug_method_variant *)xrealloc(local_128,(ulong)local_e8 << 3)" ( (type_descriptor "debug_method_variant *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(local_128,(ulong)local_e8 << 3)" identifier (argument_list "(local_128,(ulong)local_e8 << 3)" ( identifier , (binary_expression "(ulong)local_e8 << 3" (cast_expression "(ulong)local_e8" ( (type_descriptor "ulong" type_identifier) ) identifier) << number_literal) ))))) ;) })) (if_statement "if (bVar44) {\n            pdVar21 = debug_make_static_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118);\n            local_128[local_ec] = pdVar21;\n          }\n          else {\n            pdVar21 = debug_make_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118,\n                                 local_e0,local_100);\n            local_128[local_ec] = pdVar21;\n          }" if (parenthesized_expression "(bVar44)" ( identifier )) (compound_statement "{\n            pdVar21 = debug_make_static_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118);\n            local_128[local_ec] = pdVar21;\n          }" { (expression_statement "pdVar21 = debug_make_static_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118);" (assignment_expression "pdVar21 = debug_make_static_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118)" identifier = (call_expression "debug_make_static_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118)" identifier (argument_list "(dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118)" ( identifier , (cast_expression "(char *)pbVar26" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , identifier , identifier )))) ;) (expression_statement "local_128[local_ec] = pdVar21;" (assignment_expression "local_128[local_ec] = pdVar21" (subscript_expression "local_128[local_ec]" identifier [ identifier ]) = identifier) ;) }) (else_clause "else {\n            pdVar21 = debug_make_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118,\n                                 local_e0,local_100);\n            local_128[local_ec] = pdVar21;\n          }" else (compound_statement "{\n            pdVar21 = debug_make_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118,\n                                 local_e0,local_100);\n            local_128[local_ec] = pdVar21;\n          }" { (expression_statement "pdVar21 = debug_make_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118,\n                                 local_e0,local_100);" (assignment_expression "pdVar21 = debug_make_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118,\n                                 local_e0,local_100)" identifier = (call_expression "debug_make_method_variant\n                                (dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118,\n                                 local_e0,local_100)" identifier (argument_list "(dhandle,(char *)pbVar26,pdVar18,local_e4,local_f0,local_118,\n                                 local_e0,local_100)" ( identifier , (cast_expression "(char *)pbVar26" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "local_128[local_ec] = pdVar21;" (assignment_expression "local_128[local_ec] = pdVar21" (subscript_expression "local_128[local_ec]" identifier [ identifier ]) = identifier) ;) }))) (if_statement "if (pdVar21 == (debug_method_variant)0x0) goto LAB_00132793;" if (parenthesized_expression "(pdVar21 == (debug_method_variant)0x0)" ( (binary_expression "pdVar21 == (debug_method_variant)0x0" identifier == (cast_expression "(debug_method_variant)0x0" ( (type_descriptor "debug_method_variant" type_identifier) ) number_literal)) )) (goto_statement "goto LAB_00132793;" goto statement_identifier ;)) (expression_statement "pcVar17 = *pp;" (assignment_expression "pcVar17 = *pp" identifier = (pointer_expression "*pp" * identifier)) ;) }) while (parenthesized_expression "((*pcVar17 != ';') && (pdVar18 = pdVar19, local_ec = uVar39, *pcVar17 != '\0'))" ( (binary_expression "(*pcVar17 != ';') && (pdVar18 = pdVar19, local_ec = uVar39, *pcVar17 != '\0')" (parenthesized_expression "(*pcVar17 != ';')" ( (binary_expression "*pcVar17 != ';'" (pointer_expression "*pcVar17" * identifier) != (char_literal "';'" ' character ')) )) && (parenthesized_expression "(pdVar18 = pdVar19, local_ec = uVar39, *pcVar17 != '\0')" ( (comma_expression "pdVar18 = pdVar19, local_ec = uVar39, *pcVar17 != '\0'" (assignment_expression "pdVar18 = pdVar19" identifier = identifier) , (comma_expression "local_ec = uVar39, *pcVar17 != '\0'" (assignment_expression "local_ec = uVar39" identifier = identifier) , (binary_expression "*pcVar17 != '\0'" (pointer_expression "*pcVar17" * identifier) != (char_literal "'\0'" ' escape_sequence ')))) ))) )) ;) (expression_statement "local_128[uVar39] = (debug_method_variant)0x0;" (assignment_expression "local_128[uVar39] = (debug_method_variant)0x0" (subscript_expression "local_128[uVar39]" identifier [ identifier ]) = (cast_expression "(debug_method_variant)0x0" ( (type_descriptor "debug_method_variant" type_identifier) ) number_literal)) ;) (if_statement "if (*pcVar17 != '\0') {\n          *pp = pcVar17 + 1;\n        }" if (parenthesized_expression "(*pcVar17 != '\0')" ( (binary_expression "*pcVar17 != '\0'" (pointer_expression "*pcVar17" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          *pp = pcVar17 + 1;\n        }" { (expression_statement "*pp = pcVar17 + 1;" (assignment_expression "*pp = pcVar17 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) })) (expression_statement "uVar39 = local_c8 + 1;" (assignment_expression "uVar39 = local_c8 + 1" identifier = (binary_expression "local_c8 + 1" identifier + number_literal)) ;) (if_statement "if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = (debug_method *)xrealloc(local_108,(ulong)local_c4 << 3);\n        }" if (parenthesized_expression "(local_c4 <= uVar39)" ( (binary_expression "local_c4 <= uVar39" identifier <= identifier) )) (compound_statement "{\n          local_c4 = local_c4 + 10;\n          local_108 = (debug_method *)xrealloc(local_108,(ulong)local_c4 << 3);\n        }" { (expression_statement "local_c4 = local_c4 + 10;" (assignment_expression "local_c4 = local_c4 + 10" identifier = (binary_expression "local_c4 + 10" identifier + number_literal)) ;) (expression_statement "local_108 = (debug_method *)xrealloc(local_108,(ulong)local_c4 << 3);" (assignment_expression "local_108 = (debug_method *)xrealloc(local_108,(ulong)local_c4 << 3)" identifier = (cast_expression "(debug_method *)xrealloc(local_108,(ulong)local_c4 << 3)" ( (type_descriptor "debug_method *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(local_108,(ulong)local_c4 << 3)" identifier (argument_list "(local_108,(ulong)local_c4 << 3)" ( identifier , (binary_expression "(ulong)local_c4 << 3" (cast_expression "(ulong)local_c4" ( (type_descriptor "ulong" type_identifier) ) identifier) << number_literal) ))))) ;) })) (expression_statement "pdVar22 = debug_make_method(dhandle,local_138,local_128);" (assignment_expression "pdVar22 = debug_make_method(dhandle,local_138,local_128)" identifier = (call_expression "debug_make_method(dhandle,local_138,local_128)" identifier (argument_list "(dhandle,local_138,local_128)" ( identifier , identifier , identifier )))) ;) (expression_statement "local_108[local_c8] = pdVar22;" (assignment_expression "local_108[local_c8] = pdVar22" (subscript_expression "local_108[local_c8]" identifier [ identifier ]) = identifier) ;) (expression_statement "pbVar26 = (byte *)*pp;" (assignment_expression "pbVar26 = (byte *)*pp" identifier = (cast_expression "(byte *)*pp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp" * identifier))) ;) (expression_statement "bVar2 = *pbVar26;" (assignment_expression "bVar2 = *pbVar26" identifier = (pointer_expression "*pbVar26" * identifier)) ;) (expression_statement "local_c8 = uVar39;" (assignment_expression "local_c8 = uVar39" identifier = identifier) ;) }) while (parenthesized_expression "(bVar2 != 0x3b)" ( (binary_expression "bVar2 != 0x3b" identifier != number_literal) )) ;) (if_statement "if (local_108 != (debug_method *)0x0) {\n        local_108[local_c8] = (debug_method)0x0;\n      }" if (parenthesized_expression "(local_108 != (debug_method *)0x0)" ( (binary_expression "local_108 != (debug_method *)0x0" identifier != (cast_expression "(debug_method *)0x0" ( (type_descriptor "debug_method *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_108[local_c8] = (debug_method)0x0;\n      }" { (expression_statement "local_108[local_c8] = (debug_method)0x0;" (assignment_expression "local_108[local_c8] = (debug_method)0x0" (subscript_expression "local_108[local_c8]" identifier [ identifier ]) = (cast_expression "(debug_method)0x0" ( (type_descriptor "debug_method" type_identifier) ) number_literal)) ;) })) (if_statement "if (p_end <= pbVar26) goto LAB_00131328;" if (parenthesized_expression "(p_end <= pbVar26)" ( (binary_expression "p_end <= pbVar26" identifier <= identifier) )) (goto_statement "goto LAB_00131328;" goto statement_identifier ;)) (expression_statement "pbVar31 = pbVar26;" (assignment_expression "pbVar31 = pbVar26" identifier = identifier) ;) (if_statement "if (*pbVar26 == 0x3b) goto LAB_001334bc;" if (parenthesized_expression "(*pbVar26 == 0x3b)" ( (binary_expression "*pbVar26 == 0x3b" (pointer_expression "*pbVar26" * identifier) == number_literal) )) (goto_statement "goto LAB_001334bc;" goto statement_identifier ;)) }))) (if_statement "if (*pbVar26 == 0x7e) {\n      pbVar40 = pbVar26 + 1;\n      *pp = (char *)pbVar40;\n      if (((pbVar26[1] & 0xef) == 0x2d) || (pbVar26[1] == 0x2b)) {\n        pbVar40 = pbVar26 + 2;\n        *pp = (char *)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *pp = (char *)(pbVar40 + 1);\n      bVar4 = parse_stab_type_number(pp,xtypenums,p_end);\n      if (bVar4 == 0) goto LAB_00131328;\n      if (xtypenums[0] != typenums[0]) {\nLAB_00132596:\n        *pp = (char *)(pbVar40 + 1);\n        pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        pcVar17 = *pp;\n        cVar3 = *pcVar17;\n        while ((cVar3 != ';' && (cVar3 != '\0'))) {\n          pcVar17 = pcVar17 + 1;\n          cVar3 = *pcVar17;\n        }\n        if (cVar3 != ';') {\nLAB_00132740:\n          bad_stab((char *)pbVar31);\nLAB_00131328:\n          free(local_130);\n          return (debug_type)0x0;\n        }\n        *pp = pcVar17 + 1;\n        goto LAB_0013244c;\n      }\n      if (xtypenums[1] != typenums[1]) goto LAB_00132596;\n      bVar4 = 1;\n      pdVar20 = (debug_type_conflict)0x0;\n    }\n    else {\nLAB_0013244a:\n      pdVar20 = (debug_type_conflict)0x0;\nLAB_0013244c:\n      if (((local_108 == (debug_method *)0x0 && local_f8 == (debug_baseclass *)0x0) &&\n           pdVar20 == (debug_type_conflict)0x0) && (!bVar43)) {\n        pdVar20 = debug_make_struct_type(dhandle,(uint)(bVar37 == 0x73),bVar12,local_130);\n        break;\n      }\n      bVar4 = 0;\n    }" if (parenthesized_expression "(*pbVar26 == 0x7e)" ( (binary_expression "*pbVar26 == 0x7e" (pointer_expression "*pbVar26" * identifier) == number_literal) )) (compound_statement "{\n      pbVar40 = pbVar26 + 1;\n      *pp = (char *)pbVar40;\n      if (((pbVar26[1] & 0xef) == 0x2d) || (pbVar26[1] == 0x2b)) {\n        pbVar40 = pbVar26 + 2;\n        *pp = (char *)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *pp = (char *)(pbVar40 + 1);\n      bVar4 = parse_stab_type_number(pp,xtypenums,p_end);\n      if (bVar4 == 0) goto LAB_00131328;\n      if (xtypenums[0] != typenums[0]) {\nLAB_00132596:\n        *pp = (char *)(pbVar40 + 1);\n        pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        pcVar17 = *pp;\n        cVar3 = *pcVar17;\n        while ((cVar3 != ';' && (cVar3 != '\0'))) {\n          pcVar17 = pcVar17 + 1;\n          cVar3 = *pcVar17;\n        }\n        if (cVar3 != ';') {\nLAB_00132740:\n          bad_stab((char *)pbVar31);\nLAB_00131328:\n          free(local_130);\n          return (debug_type)0x0;\n        }\n        *pp = pcVar17 + 1;\n        goto LAB_0013244c;\n      }\n      if (xtypenums[1] != typenums[1]) goto LAB_00132596;\n      bVar4 = 1;\n      pdVar20 = (debug_type_conflict)0x0;\n    }" { (expression_statement "pbVar40 = pbVar26 + 1;" (assignment_expression "pbVar40 = pbVar26 + 1" identifier = (binary_expression "pbVar26 + 1" identifier + number_literal)) ;) (expression_statement "*pp = (char *)pbVar40;" (assignment_expression "*pp = (char *)pbVar40" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (((pbVar26[1] & 0xef) == 0x2d) || (pbVar26[1] == 0x2b)) {\n        pbVar40 = pbVar26 + 2;\n        *pp = (char *)pbVar40;\n      }" if (parenthesized_expression "(((pbVar26[1] & 0xef) == 0x2d) || (pbVar26[1] == 0x2b))" ( (binary_expression "((pbVar26[1] & 0xef) == 0x2d) || (pbVar26[1] == 0x2b)" (parenthesized_expression "((pbVar26[1] & 0xef) == 0x2d)" ( (binary_expression "(pbVar26[1] & 0xef) == 0x2d" (parenthesized_expression "(pbVar26[1] & 0xef)" ( (binary_expression "pbVar26[1] & 0xef" (subscript_expression "pbVar26[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) || (parenthesized_expression "(pbVar26[1] == 0x2b)" ( (binary_expression "pbVar26[1] == 0x2b" (subscript_expression "pbVar26[1]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n        pbVar40 = pbVar26 + 2;\n        *pp = (char *)pbVar40;\n      }" { (expression_statement "pbVar40 = pbVar26 + 2;" (assignment_expression "pbVar40 = pbVar26 + 2" identifier = (binary_expression "pbVar26 + 2" identifier + number_literal)) ;) (expression_statement "*pp = (char *)pbVar40;" (assignment_expression "*pp = (char *)pbVar40" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) })) (if_statement "if (*pbVar40 != 0x25) goto LAB_0013244a;" if (parenthesized_expression "(*pbVar40 != 0x25)" ( (binary_expression "*pbVar40 != 0x25" (pointer_expression "*pbVar40" * identifier) != number_literal) )) (goto_statement "goto LAB_0013244a;" goto statement_identifier ;)) (expression_statement "*pp = (char *)(pbVar40 + 1);" (assignment_expression "*pp = (char *)(pbVar40 + 1)" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)(pbVar40 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar40 + 1)" ( (binary_expression "pbVar40 + 1" identifier + number_literal) )))) ;) (expression_statement "bVar4 = parse_stab_type_number(pp,xtypenums,p_end);" (assignment_expression "bVar4 = parse_stab_type_number(pp,xtypenums,p_end)" identifier = (call_expression "parse_stab_type_number(pp,xtypenums,p_end)" identifier (argument_list "(pp,xtypenums,p_end)" ( identifier , identifier , identifier )))) ;) (if_statement "if (bVar4 == 0) goto LAB_00131328;" if (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00131328;" goto statement_identifier ;)) (if_statement "if (xtypenums[0] != typenums[0]) {\nLAB_00132596:\n        *pp = (char *)(pbVar40 + 1);\n        pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        pcVar17 = *pp;\n        cVar3 = *pcVar17;\n        while ((cVar3 != ';' && (cVar3 != '\0'))) {\n          pcVar17 = pcVar17 + 1;\n          cVar3 = *pcVar17;\n        }\n        if (cVar3 != ';') {\nLAB_00132740:\n          bad_stab((char *)pbVar31);\nLAB_00131328:\n          free(local_130);\n          return (debug_type)0x0;\n        }\n        *pp = pcVar17 + 1;\n        goto LAB_0013244c;\n      }" if (parenthesized_expression "(xtypenums[0] != typenums[0])" ( (binary_expression "xtypenums[0] != typenums[0]" (subscript_expression "xtypenums[0]" identifier [ number_literal ]) != (subscript_expression "typenums[0]" identifier [ number_literal ])) )) (compound_statement "{\nLAB_00132596:\n        *pp = (char *)(pbVar40 + 1);\n        pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);\n        pcVar17 = *pp;\n        cVar3 = *pcVar17;\n        while ((cVar3 != ';' && (cVar3 != '\0'))) {\n          pcVar17 = pcVar17 + 1;\n          cVar3 = *pcVar17;\n        }\n        if (cVar3 != ';') {\nLAB_00132740:\n          bad_stab((char *)pbVar31);\nLAB_00131328:\n          free(local_130);\n          return (debug_type)0x0;\n        }\n        *pp = pcVar17 + 1;\n        goto LAB_0013244c;\n      }" { (labeled_statement "LAB_00132596:\n        *pp = (char *)(pbVar40 + 1);" statement_identifier : (expression_statement "*pp = (char *)(pbVar40 + 1);" (assignment_expression "*pp = (char *)(pbVar40 + 1)" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)(pbVar40 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar40 + 1)" ( (binary_expression "pbVar40 + 1" identifier + number_literal) )))) ;)) (expression_statement "pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end);" (assignment_expression "pdVar20 = parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier = (call_expression "parse_stab_type(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" identifier (argument_list "(dhandle,info,(char *)0x0,pp,(debug_type_conflict **)0x0,p_end)" ( identifier , identifier , (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal) , identifier , (cast_expression "(debug_type_conflict **)0x0" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , identifier )))) ;) (expression_statement "pcVar17 = *pp;" (assignment_expression "pcVar17 = *pp" identifier = (pointer_expression "*pp" * identifier)) ;) (expression_statement "cVar3 = *pcVar17;" (assignment_expression "cVar3 = *pcVar17" identifier = (pointer_expression "*pcVar17" * identifier)) ;) (while_statement "while ((cVar3 != ';' && (cVar3 != '\0'))) {\n          pcVar17 = pcVar17 + 1;\n          cVar3 = *pcVar17;\n        }" while (parenthesized_expression "((cVar3 != ';' && (cVar3 != '\0')))" ( (parenthesized_expression "(cVar3 != ';' && (cVar3 != '\0'))" ( (binary_expression "cVar3 != ';' && (cVar3 != '\0')" (binary_expression "cVar3 != ';'" identifier != (char_literal "';'" ' character ')) && (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) )) (compound_statement "{\n          pcVar17 = pcVar17 + 1;\n          cVar3 = *pcVar17;\n        }" { (expression_statement "pcVar17 = pcVar17 + 1;" (assignment_expression "pcVar17 = pcVar17 + 1" identifier = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (expression_statement "cVar3 = *pcVar17;" (assignment_expression "cVar3 = *pcVar17" identifier = (pointer_expression "*pcVar17" * identifier)) ;) })) (if_statement "if (cVar3 != ';') {\nLAB_00132740:\n          bad_stab((char *)pbVar31);\nLAB_00131328:\n          free(local_130);\n          return (debug_type)0x0;\n        }" if (parenthesized_expression "(cVar3 != ';')" ( (binary_expression "cVar3 != ';'" identifier != (char_literal "';'" ' character ')) )) (compound_statement "{\nLAB_00132740:\n          bad_stab((char *)pbVar31);\nLAB_00131328:\n          free(local_130);\n          return (debug_type)0x0;\n        }" { (labeled_statement "LAB_00132740:\n          bad_stab((char *)pbVar31);" statement_identifier : (expression_statement "bad_stab((char *)pbVar31);" (call_expression "bad_stab((char *)pbVar31)" identifier (argument_list "((char *)pbVar31)" ( (cast_expression "(char *)pbVar31" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (labeled_statement "LAB_00131328:\n          free(local_130);" statement_identifier : (expression_statement "free(local_130);" (call_expression "free(local_130)" identifier (argument_list "(local_130)" ( identifier ))) ;)) (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "*pp = pcVar17 + 1;" (assignment_expression "*pp = pcVar17 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (goto_statement "goto LAB_0013244c;" goto statement_identifier ;) })) (if_statement "if (xtypenums[1] != typenums[1]) goto LAB_00132596;" if (parenthesized_expression "(xtypenums[1] != typenums[1])" ( (binary_expression "xtypenums[1] != typenums[1]" (subscript_expression "xtypenums[1]" identifier [ number_literal ]) != (subscript_expression "typenums[1]" identifier [ number_literal ])) )) (goto_statement "goto LAB_00132596;" goto statement_identifier ;)) (expression_statement "bVar4 = 1;" (assignment_expression "bVar4 = 1" identifier = number_literal) ;) (expression_statement "pdVar20 = (debug_type_conflict)0x0;" (assignment_expression "pdVar20 = (debug_type_conflict)0x0" identifier = (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) ;) }) (else_clause "else {\nLAB_0013244a:\n      pdVar20 = (debug_type_conflict)0x0;\nLAB_0013244c:\n      if (((local_108 == (debug_method *)0x0 && local_f8 == (debug_baseclass *)0x0) &&\n           pdVar20 == (debug_type_conflict)0x0) && (!bVar43)) {\n        pdVar20 = debug_make_struct_type(dhandle,(uint)(bVar37 == 0x73),bVar12,local_130);\n        break;\n      }\n      bVar4 = 0;\n    }" else (compound_statement "{\nLAB_0013244a:\n      pdVar20 = (debug_type_conflict)0x0;\nLAB_0013244c:\n      if (((local_108 == (debug_method *)0x0 && local_f8 == (debug_baseclass *)0x0) &&\n           pdVar20 == (debug_type_conflict)0x0) && (!bVar43)) {\n        pdVar20 = debug_make_struct_type(dhandle,(uint)(bVar37 == 0x73),bVar12,local_130);\n        break;\n      }\n      bVar4 = 0;\n    }" { (labeled_statement "LAB_0013244a:\n      pdVar20 = (debug_type_conflict)0x0;" statement_identifier : (expression_statement "pdVar20 = (debug_type_conflict)0x0;" (assignment_expression "pdVar20 = (debug_type_conflict)0x0" identifier = (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) ;)) (labeled_statement "LAB_0013244c:\n      if (((local_108 == (debug_method *)0x0 && local_f8 == (debug_baseclass *)0x0) &&\n           pdVar20 == (debug_type_conflict)0x0) && (!bVar43)) {\n        pdVar20 = debug_make_struct_type(dhandle,(uint)(bVar37 == 0x73),bVar12,local_130);\n        break;\n      }" statement_identifier : (if_statement "if (((local_108 == (debug_method *)0x0 && local_f8 == (debug_baseclass *)0x0) &&\n           pdVar20 == (debug_type_conflict)0x0) && (!bVar43)) {\n        pdVar20 = debug_make_struct_type(dhandle,(uint)(bVar37 == 0x73),bVar12,local_130);\n        break;\n      }" if (parenthesized_expression "(((local_108 == (debug_method *)0x0 && local_f8 == (debug_baseclass *)0x0) &&\n           pdVar20 == (debug_type_conflict)0x0) && (!bVar43))" ( (binary_expression "((local_108 == (debug_method *)0x0 && local_f8 == (debug_baseclass *)0x0) &&\n           pdVar20 == (debug_type_conflict)0x0) && (!bVar43)" (parenthesized_expression "((local_108 == (debug_method *)0x0 && local_f8 == (debug_baseclass *)0x0) &&\n           pdVar20 == (debug_type_conflict)0x0)" ( (binary_expression "(local_108 == (debug_method *)0x0 && local_f8 == (debug_baseclass *)0x0) &&\n           pdVar20 == (debug_type_conflict)0x0" (parenthesized_expression "(local_108 == (debug_method *)0x0 && local_f8 == (debug_baseclass *)0x0)" ( (binary_expression "local_108 == (debug_method *)0x0 && local_f8 == (debug_baseclass *)0x0" (binary_expression "local_108 == (debug_method *)0x0" identifier == (cast_expression "(debug_method *)0x0" ( (type_descriptor "debug_method *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) && (binary_expression "local_f8 == (debug_baseclass *)0x0" identifier == (cast_expression "(debug_baseclass *)0x0" ( (type_descriptor "debug_baseclass *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal))) )) && (binary_expression "pdVar20 == (debug_type_conflict)0x0" identifier == (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal))) )) && (parenthesized_expression "(!bVar43)" ( (unary_expression "!bVar43" ! identifier) ))) )) (compound_statement "{\n        pdVar20 = debug_make_struct_type(dhandle,(uint)(bVar37 == 0x73),bVar12,local_130);\n        break;\n      }" { (expression_statement "pdVar20 = debug_make_struct_type(dhandle,(uint)(bVar37 == 0x73),bVar12,local_130);" (assignment_expression "pdVar20 = debug_make_struct_type(dhandle,(uint)(bVar37 == 0x73),bVar12,local_130)" identifier = (call_expression "debug_make_struct_type(dhandle,(uint)(bVar37 == 0x73),bVar12,local_130)" identifier (argument_list "(dhandle,(uint)(bVar37 == 0x73),bVar12,local_130)" ( identifier , (call_expression "(uint)(bVar37 == 0x73)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar37 == 0x73)" ( (binary_expression "bVar37 == 0x73" identifier == number_literal) ))) , identifier , identifier )))) ;) (break_statement "break;" break ;) }))) (expression_statement "bVar4 = 0;" (assignment_expression "bVar4 = 0" identifier = number_literal) ;) }))) (expression_statement "pdVar20 = debug_make_object_type\n                        (dhandle,(uint)(bVar37 == 0x73),bVar12,local_130,local_f8,local_108,pdVar20,\n                         bVar4);" (assignment_expression "pdVar20 = debug_make_object_type\n                        (dhandle,(uint)(bVar37 == 0x73),bVar12,local_130,local_f8,local_108,pdVar20,\n                         bVar4)" identifier = (call_expression "debug_make_object_type\n                        (dhandle,(uint)(bVar37 == 0x73),bVar12,local_130,local_f8,local_108,pdVar20,\n                         bVar4)" identifier (argument_list "(dhandle,(uint)(bVar37 == 0x73),bVar12,local_130,local_f8,local_108,pdVar20,\n                         bVar4)" ( identifier , (call_expression "(uint)(bVar37 == 0x73)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar37 == 0x73)" ( (binary_expression "bVar37 == 0x73" identifier == number_literal) ))) , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x78:\n    bVar47 = pbVar26[1];\n    if (bVar47 == 0x65) {\n      dVar6 = DEBUG_KIND_ENUM;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        dVar6 = DEBUG_KIND_STRUCT;\n        if ((bVar47 == 0x73) || (dVar6 = DEBUG_KIND_UNION, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      dVar6 = DEBUG_KIND_STRUCT;\n      pcVar17 = (char *)dcgettext(0,"unrecognized cross reference type",5);\n      warn_stab((char *)pbVar31,pcVar17);\n      pbVar40 = (byte *)*pp;\n    }\nLAB_00131e0e:\n    pbVar40 = pbVar40 + 1;\n    *pp = (char *)pbVar40;\n    pcVar16 = strchr((char *)pbVar40,0x3c);\n    pcVar17 = strchr((char *)pbVar40,0x3a);\n    if (pcVar17 != (char *)0x0) {\n      if (((pcVar16 == (char *)0x0) || (pcVar17 <= pcVar16)) || (pcVar17[1] != ':')) {\nLAB_00131e52:\n        sVar32 = (long)pcVar17 - (long)pbVar40;\n        if (((type_name != (char *)0x0) &&\n            (iVar7 = strncmp(type_name,(char *)pbVar40,sVar32), iVar7 == 0)) &&\n           (type_name[sVar32] == '\0')) {\n          info->self_crossref = 1;\n        }\n        pdVar20 = stab_find_tagged_type\n                            (dhandle,(stab_handle *)&info->tags,(char *)pbVar40,(int)sVar32,dVar6);\n        *pp = pcVar17 + 1;\n        break;\n      }\n      cVar3 = *pcVar16;\n      if (cVar3 != '\0') {\n        iVar7 = 0;\n        pcVar17 = pcVar16;\n        do {\n          if (cVar3 == '<') {\n            iVar7 = iVar7 + 1;\n          }\n          else if (cVar3 == '>') {\n            iVar7 = iVar7 + -1;\n          }\n          else if ((iVar7 == 0) && (cVar3 == ':')) goto LAB_00131e52;\n          pcVar17 = pcVar17 + 1;\n          cVar3 = *pcVar17;\n        } while (cVar3 != '\0');\n      }\n    }\nswitchD_001311d2_caseD_24:\n    bad_stab((char *)pbVar31);\n    return (debug_type)0x0;" case number_literal : (expression_statement "bVar47 = pbVar26[1];" (assignment_expression "bVar47 = pbVar26[1]" identifier = (subscript_expression "pbVar26[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar47 == 0x65) {\n      dVar6 = DEBUG_KIND_ENUM;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        dVar6 = DEBUG_KIND_STRUCT;\n        if ((bVar47 == 0x73) || (dVar6 = DEBUG_KIND_UNION, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      dVar6 = DEBUG_KIND_STRUCT;\n      pcVar17 = (char *)dcgettext(0,"unrecognized cross reference type",5);\n      warn_stab((char *)pbVar31,pcVar17);\n      pbVar40 = (byte *)*pp;\n    }" if (parenthesized_expression "(bVar47 == 0x65)" ( (binary_expression "bVar47 == 0x65" identifier == number_literal) )) (compound_statement "{\n      dVar6 = DEBUG_KIND_ENUM;\n    }" { (expression_statement "dVar6 = DEBUG_KIND_ENUM;" (assignment_expression "dVar6 = DEBUG_KIND_ENUM" identifier = identifier) ;) }) (else_clause "else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        dVar6 = DEBUG_KIND_STRUCT;\n        if ((bVar47 == 0x73) || (dVar6 = DEBUG_KIND_UNION, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      dVar6 = DEBUG_KIND_STRUCT;\n      pcVar17 = (char *)dcgettext(0,"unrecognized cross reference type",5);\n      warn_stab((char *)pbVar31,pcVar17);\n      pbVar40 = (byte *)*pp;\n    }" else (compound_statement "{\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        dVar6 = DEBUG_KIND_STRUCT;\n        if ((bVar47 == 0x73) || (dVar6 = DEBUG_KIND_UNION, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      dVar6 = DEBUG_KIND_STRUCT;\n      pcVar17 = (char *)dcgettext(0,"unrecognized cross reference type",5);\n      warn_stab((char *)pbVar31,pcVar17);\n      pbVar40 = (byte *)*pp;\n    }" { (if_statement "if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        dVar6 = DEBUG_KIND_STRUCT;\n        if ((bVar47 == 0x73) || (dVar6 = DEBUG_KIND_UNION, bVar47 == 0x75)) goto LAB_00131e0e;\n      }" if (parenthesized_expression "((char)bVar47 < 'f')" ( (binary_expression "(char)bVar47 < 'f'" (cast_expression "(char)bVar47" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'f'" ' character ')) )) (compound_statement "{\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }" { (if_statement "if (bVar47 == 0) goto switchD_001311d2_caseD_24;" if (parenthesized_expression "(bVar47 == 0)" ( (binary_expression "bVar47 == 0" identifier == number_literal) )) (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;)) }) (else_clause "else {\n        dVar6 = DEBUG_KIND_STRUCT;\n        if ((bVar47 == 0x73) || (dVar6 = DEBUG_KIND_UNION, bVar47 == 0x75)) goto LAB_00131e0e;\n      }" else (compound_statement "{\n        dVar6 = DEBUG_KIND_STRUCT;\n        if ((bVar47 == 0x73) || (dVar6 = DEBUG_KIND_UNION, bVar47 == 0x75)) goto LAB_00131e0e;\n      }" { (expression_statement "dVar6 = DEBUG_KIND_STRUCT;" (assignment_expression "dVar6 = DEBUG_KIND_STRUCT" identifier = identifier) ;) (if_statement "if ((bVar47 == 0x73) || (dVar6 = DEBUG_KIND_UNION, bVar47 == 0x75)) goto LAB_00131e0e;" if (parenthesized_expression "((bVar47 == 0x73) || (dVar6 = DEBUG_KIND_UNION, bVar47 == 0x75))" ( (binary_expression "(bVar47 == 0x73) || (dVar6 = DEBUG_KIND_UNION, bVar47 == 0x75)" (parenthesized_expression "(bVar47 == 0x73)" ( (binary_expression "bVar47 == 0x73" identifier == number_literal) )) || (parenthesized_expression "(dVar6 = DEBUG_KIND_UNION, bVar47 == 0x75)" ( (comma_expression "dVar6 = DEBUG_KIND_UNION, bVar47 == 0x75" (assignment_expression "dVar6 = DEBUG_KIND_UNION" identifier = identifier) , (binary_expression "bVar47 == 0x75" identifier == number_literal)) ))) )) (goto_statement "goto LAB_00131e0e;" goto statement_identifier ;)) }))) (expression_statement "dVar6 = DEBUG_KIND_STRUCT;" (assignment_expression "dVar6 = DEBUG_KIND_STRUCT" identifier = identifier) ;) (expression_statement "pcVar17 = (char *)dcgettext(0,"unrecognized cross reference type",5);" (assignment_expression "pcVar17 = (char *)dcgettext(0,"unrecognized cross reference type",5)" identifier = (cast_expression "(char *)dcgettext(0,"unrecognized cross reference type",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"unrecognized cross reference type",5)" identifier (argument_list "(0,"unrecognized cross reference type",5)" ( number_literal , (string_literal ""unrecognized cross reference type"" " string_content ") , number_literal ))))) ;) (expression_statement "warn_stab((char *)pbVar31,pcVar17);" (call_expression "warn_stab((char *)pbVar31,pcVar17)" identifier (argument_list "((char *)pbVar31,pcVar17)" ( (cast_expression "(char *)pbVar31" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) (expression_statement "pbVar40 = (byte *)*pp;" (assignment_expression "pbVar40 = (byte *)*pp" identifier = (cast_expression "(byte *)*pp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp" * identifier))) ;) }))) (labeled_statement "LAB_00131e0e:\n    pbVar40 = pbVar40 + 1;" statement_identifier : (expression_statement "pbVar40 = pbVar40 + 1;" (assignment_expression "pbVar40 = pbVar40 + 1" identifier = (binary_expression "pbVar40 + 1" identifier + number_literal)) ;)) (expression_statement "*pp = (char *)pbVar40;" (assignment_expression "*pp = (char *)pbVar40" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "pcVar16 = strchr((char *)pbVar40,0x3c);" (assignment_expression "pcVar16 = strchr((char *)pbVar40,0x3c)" identifier = (call_expression "strchr((char *)pbVar40,0x3c)" identifier (argument_list "((char *)pbVar40,0x3c)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (expression_statement "pcVar17 = strchr((char *)pbVar40,0x3a);" (assignment_expression "pcVar17 = strchr((char *)pbVar40,0x3a)" identifier = (call_expression "strchr((char *)pbVar40,0x3a)" identifier (argument_list "((char *)pbVar40,0x3a)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar17 != (char *)0x0) {\n      if (((pcVar16 == (char *)0x0) || (pcVar17 <= pcVar16)) || (pcVar17[1] != ':')) {\nLAB_00131e52:\n        sVar32 = (long)pcVar17 - (long)pbVar40;\n        if (((type_name != (char *)0x0) &&\n            (iVar7 = strncmp(type_name,(char *)pbVar40,sVar32), iVar7 == 0)) &&\n           (type_name[sVar32] == '\0')) {\n          info->self_crossref = 1;\n        }\n        pdVar20 = stab_find_tagged_type\n                            (dhandle,(stab_handle *)&info->tags,(char *)pbVar40,(int)sVar32,dVar6);\n        *pp = pcVar17 + 1;\n        break;\n      }\n      cVar3 = *pcVar16;\n      if (cVar3 != '\0') {\n        iVar7 = 0;\n        pcVar17 = pcVar16;\n        do {\n          if (cVar3 == '<') {\n            iVar7 = iVar7 + 1;\n          }\n          else if (cVar3 == '>') {\n            iVar7 = iVar7 + -1;\n          }\n          else if ((iVar7 == 0) && (cVar3 == ':')) goto LAB_00131e52;\n          pcVar17 = pcVar17 + 1;\n          cVar3 = *pcVar17;\n        } while (cVar3 != '\0');\n      }\n    }" if (parenthesized_expression "(pcVar17 != (char *)0x0)" ( (binary_expression "pcVar17 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (((pcVar16 == (char *)0x0) || (pcVar17 <= pcVar16)) || (pcVar17[1] != ':')) {\nLAB_00131e52:\n        sVar32 = (long)pcVar17 - (long)pbVar40;\n        if (((type_name != (char *)0x0) &&\n            (iVar7 = strncmp(type_name,(char *)pbVar40,sVar32), iVar7 == 0)) &&\n           (type_name[sVar32] == '\0')) {\n          info->self_crossref = 1;\n        }\n        pdVar20 = stab_find_tagged_type\n                            (dhandle,(stab_handle *)&info->tags,(char *)pbVar40,(int)sVar32,dVar6);\n        *pp = pcVar17 + 1;\n        break;\n      }\n      cVar3 = *pcVar16;\n      if (cVar3 != '\0') {\n        iVar7 = 0;\n        pcVar17 = pcVar16;\n        do {\n          if (cVar3 == '<') {\n            iVar7 = iVar7 + 1;\n          }\n          else if (cVar3 == '>') {\n            iVar7 = iVar7 + -1;\n          }\n          else if ((iVar7 == 0) && (cVar3 == ':')) goto LAB_00131e52;\n          pcVar17 = pcVar17 + 1;\n          cVar3 = *pcVar17;\n        } while (cVar3 != '\0');\n      }\n    }" { (if_statement "if (((pcVar16 == (char *)0x0) || (pcVar17 <= pcVar16)) || (pcVar17[1] != ':')) {\nLAB_00131e52:\n        sVar32 = (long)pcVar17 - (long)pbVar40;\n        if (((type_name != (char *)0x0) &&\n            (iVar7 = strncmp(type_name,(char *)pbVar40,sVar32), iVar7 == 0)) &&\n           (type_name[sVar32] == '\0')) {\n          info->self_crossref = 1;\n        }\n        pdVar20 = stab_find_tagged_type\n                            (dhandle,(stab_handle *)&info->tags,(char *)pbVar40,(int)sVar32,dVar6);\n        *pp = pcVar17 + 1;\n        break;\n      }" if (parenthesized_expression "(((pcVar16 == (char *)0x0) || (pcVar17 <= pcVar16)) || (pcVar17[1] != ':'))" ( (binary_expression "((pcVar16 == (char *)0x0) || (pcVar17 <= pcVar16)) || (pcVar17[1] != ':')" (parenthesized_expression "((pcVar16 == (char *)0x0) || (pcVar17 <= pcVar16))" ( (binary_expression "(pcVar16 == (char *)0x0) || (pcVar17 <= pcVar16)" (parenthesized_expression "(pcVar16 == (char *)0x0)" ( (binary_expression "pcVar16 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar17 <= pcVar16)" ( (binary_expression "pcVar17 <= pcVar16" identifier <= identifier) ))) )) || (parenthesized_expression "(pcVar17[1] != ':')" ( (binary_expression "pcVar17[1] != ':'" (subscript_expression "pcVar17[1]" identifier [ number_literal ]) != (char_literal "':'" ' character ')) ))) )) (compound_statement "{\nLAB_00131e52:\n        sVar32 = (long)pcVar17 - (long)pbVar40;\n        if (((type_name != (char *)0x0) &&\n            (iVar7 = strncmp(type_name,(char *)pbVar40,sVar32), iVar7 == 0)) &&\n           (type_name[sVar32] == '\0')) {\n          info->self_crossref = 1;\n        }\n        pdVar20 = stab_find_tagged_type\n                            (dhandle,(stab_handle *)&info->tags,(char *)pbVar40,(int)sVar32,dVar6);\n        *pp = pcVar17 + 1;\n        break;\n      }" { (labeled_statement "LAB_00131e52:\n        sVar32 = (long)pcVar17 - (long)pbVar40;" statement_identifier : (expression_statement "sVar32 = (long)pcVar17 - (long)pbVar40;" (assignment_expression "sVar32 = (long)pcVar17 - (long)pbVar40" identifier = (binary_expression "(long)pcVar17 - (long)pbVar40" (cast_expression "(long)pcVar17" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar40" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;)) (if_statement "if (((type_name != (char *)0x0) &&\n            (iVar7 = strncmp(type_name,(char *)pbVar40,sVar32), iVar7 == 0)) &&\n           (type_name[sVar32] == '\0')) {\n          info->self_crossref = 1;\n        }" if (parenthesized_expression "(((type_name != (char *)0x0) &&\n            (iVar7 = strncmp(type_name,(char *)pbVar40,sVar32), iVar7 == 0)) &&\n           (type_name[sVar32] == '\0'))" ( (binary_expression "((type_name != (char *)0x0) &&\n            (iVar7 = strncmp(type_name,(char *)pbVar40,sVar32), iVar7 == 0)) &&\n           (type_name[sVar32] == '\0')" (parenthesized_expression "((type_name != (char *)0x0) &&\n            (iVar7 = strncmp(type_name,(char *)pbVar40,sVar32), iVar7 == 0))" ( (binary_expression "(type_name != (char *)0x0) &&\n            (iVar7 = strncmp(type_name,(char *)pbVar40,sVar32), iVar7 == 0)" (parenthesized_expression "(type_name != (char *)0x0)" ( (binary_expression "type_name != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar7 = strncmp(type_name,(char *)pbVar40,sVar32), iVar7 == 0)" ( (comma_expression "iVar7 = strncmp(type_name,(char *)pbVar40,sVar32), iVar7 == 0" (assignment_expression "iVar7 = strncmp(type_name,(char *)pbVar40,sVar32)" identifier = (call_expression "strncmp(type_name,(char *)pbVar40,sVar32)" identifier (argument_list "(type_name,(char *)pbVar40,sVar32)" ( identifier , (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "iVar7 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(type_name[sVar32] == '\0')" ( (binary_expression "type_name[sVar32] == '\0'" (subscript_expression "type_name[sVar32]" identifier [ identifier ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          info->self_crossref = 1;\n        }" { (expression_statement "info->self_crossref = 1;" (assignment_expression "info->self_crossref = 1" (field_expression "info->self_crossref" identifier -> field_identifier) = number_literal) ;) })) (expression_statement "pdVar20 = stab_find_tagged_type\n                            (dhandle,(stab_handle *)&info->tags,(char *)pbVar40,(int)sVar32,dVar6);" (assignment_expression "pdVar20 = stab_find_tagged_type\n                            (dhandle,(stab_handle *)&info->tags,(char *)pbVar40,(int)sVar32,dVar6)" identifier = (call_expression "stab_find_tagged_type\n                            (dhandle,(stab_handle *)&info->tags,(char *)pbVar40,(int)sVar32,dVar6)" identifier (argument_list "(dhandle,(stab_handle *)&info->tags,(char *)pbVar40,(int)sVar32,dVar6)" ( identifier , (cast_expression "(stab_handle *)&info->tags" ( (type_descriptor "stab_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&info->tags" & (field_expression "info->tags" identifier -> field_identifier))) , (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(int)sVar32" ( (type_descriptor "int" primitive_type) ) identifier) , identifier )))) ;) (expression_statement "*pp = pcVar17 + 1;" (assignment_expression "*pp = pcVar17 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (break_statement "break;" break ;) })) (expression_statement "cVar3 = *pcVar16;" (assignment_expression "cVar3 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (if_statement "if (cVar3 != '\0') {\n        iVar7 = 0;\n        pcVar17 = pcVar16;\n        do {\n          if (cVar3 == '<') {\n            iVar7 = iVar7 + 1;\n          }\n          else if (cVar3 == '>') {\n            iVar7 = iVar7 + -1;\n          }\n          else if ((iVar7 == 0) && (cVar3 == ':')) goto LAB_00131e52;\n          pcVar17 = pcVar17 + 1;\n          cVar3 = *pcVar17;\n        } while (cVar3 != '\0');\n      }" if (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar7 = 0;\n        pcVar17 = pcVar16;\n        do {\n          if (cVar3 == '<') {\n            iVar7 = iVar7 + 1;\n          }\n          else if (cVar3 == '>') {\n            iVar7 = iVar7 + -1;\n          }\n          else if ((iVar7 == 0) && (cVar3 == ':')) goto LAB_00131e52;\n          pcVar17 = pcVar17 + 1;\n          cVar3 = *pcVar17;\n        } while (cVar3 != '\0');\n      }" { (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "pcVar17 = pcVar16;" (assignment_expression "pcVar17 = pcVar16" identifier = identifier) ;) (do_statement "do {\n          if (cVar3 == '<') {\n            iVar7 = iVar7 + 1;\n          }\n          else if (cVar3 == '>') {\n            iVar7 = iVar7 + -1;\n          }\n          else if ((iVar7 == 0) && (cVar3 == ':')) goto LAB_00131e52;\n          pcVar17 = pcVar17 + 1;\n          cVar3 = *pcVar17;\n        } while (cVar3 != '\0');" do (compound_statement "{\n          if (cVar3 == '<') {\n            iVar7 = iVar7 + 1;\n          }\n          else if (cVar3 == '>') {\n            iVar7 = iVar7 + -1;\n          }\n          else if ((iVar7 == 0) && (cVar3 == ':')) goto LAB_00131e52;\n          pcVar17 = pcVar17 + 1;\n          cVar3 = *pcVar17;\n        }" { (if_statement "if (cVar3 == '<') {\n            iVar7 = iVar7 + 1;\n          }\n          else if (cVar3 == '>') {\n            iVar7 = iVar7 + -1;\n          }\n          else if ((iVar7 == 0) && (cVar3 == ':')) goto LAB_00131e52;" if (parenthesized_expression "(cVar3 == '<')" ( (binary_expression "cVar3 == '<'" identifier == (char_literal "'<'" ' character ')) )) (compound_statement "{\n            iVar7 = iVar7 + 1;\n          }" { (expression_statement "iVar7 = iVar7 + 1;" (assignment_expression "iVar7 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) }) (else_clause "else if (cVar3 == '>') {\n            iVar7 = iVar7 + -1;\n          }\n          else if ((iVar7 == 0) && (cVar3 == ':')) goto LAB_00131e52;" else (if_statement "if (cVar3 == '>') {\n            iVar7 = iVar7 + -1;\n          }\n          else if ((iVar7 == 0) && (cVar3 == ':')) goto LAB_00131e52;" if (parenthesized_expression "(cVar3 == '>')" ( (binary_expression "cVar3 == '>'" identifier == (char_literal "'>'" ' character ')) )) (compound_statement "{\n            iVar7 = iVar7 + -1;\n          }" { (expression_statement "iVar7 = iVar7 + -1;" (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ;) }) (else_clause "else if ((iVar7 == 0) && (cVar3 == ':')) goto LAB_00131e52;" else (if_statement "if ((iVar7 == 0) && (cVar3 == ':')) goto LAB_00131e52;" if (parenthesized_expression "((iVar7 == 0) && (cVar3 == ':'))" ( (binary_expression "(iVar7 == 0) && (cVar3 == ':')" (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) && (parenthesized_expression "(cVar3 == ':')" ( (binary_expression "cVar3 == ':'" identifier == (char_literal "':'" ' character ')) ))) )) (goto_statement "goto LAB_00131e52;" goto statement_identifier ;)))))) (expression_statement "pcVar17 = pcVar17 + 1;" (assignment_expression "pcVar17 = pcVar17 + 1" identifier = (binary_expression "pcVar17 + 1" identifier + number_literal)) ;) (expression_statement "cVar3 = *pcVar17;" (assignment_expression "cVar3 = *pcVar17" identifier = (pointer_expression "*pcVar17" * identifier)) ;) }) while (parenthesized_expression "(cVar3 != '\0')" ( (binary_expression "cVar3 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) })) (labeled_statement "switchD_001311d2_caseD_24:\n    bad_stab((char *)pbVar31);" statement_identifier : (expression_statement "bad_stab((char *)pbVar31);" (call_expression "bad_stab((char *)pbVar31)" identifier (argument_list "((char *)pbVar31)" ( (cast_expression "(char *)pbVar31" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;)) (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;)) })) (if_statement "if (pdVar20 != (debug_type_conflict)0x0) {\n    if (typenums[0] != -1) {\n      ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums);\n      if (ppdVar9 == (debug_type_conflict *)0x0) {\n        return (debug_type)0x0;\n      }\n      *ppdVar9 = pdVar20;\n    }\n    if (local_13c == 0xffffffff) {\n      return pdVar20;\n    }\n    bVar4 = debug_record_type_size(dhandle,pdVar20,local_13c);\n    if (bVar4 != 0) {\n      return pdVar20;\n    }\n  }" if (parenthesized_expression "(pdVar20 != (debug_type_conflict)0x0)" ( (binary_expression "pdVar20 != (debug_type_conflict)0x0" identifier != (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) )) (compound_statement "{\n    if (typenums[0] != -1) {\n      ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums);\n      if (ppdVar9 == (debug_type_conflict *)0x0) {\n        return (debug_type)0x0;\n      }\n      *ppdVar9 = pdVar20;\n    }\n    if (local_13c == 0xffffffff) {\n      return pdVar20;\n    }\n    bVar4 = debug_record_type_size(dhandle,pdVar20,local_13c);\n    if (bVar4 != 0) {\n      return pdVar20;\n    }\n  }" { (if_statement "if (typenums[0] != -1) {\n      ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums);\n      if (ppdVar9 == (debug_type_conflict *)0x0) {\n        return (debug_type)0x0;\n      }\n      *ppdVar9 = pdVar20;\n    }" if (parenthesized_expression "(typenums[0] != -1)" ( (binary_expression "typenums[0] != -1" (subscript_expression "typenums[0]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n      ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums);\n      if (ppdVar9 == (debug_type_conflict *)0x0) {\n        return (debug_type)0x0;\n      }\n      *ppdVar9 = pdVar20;\n    }" { (expression_statement "ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums);" (assignment_expression "ppdVar9 = stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums)" identifier = (call_expression "stab_find_slot((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums)" identifier (argument_list "((stab_handle *)&info->files,(int *)&info->file_types,\n                               (stab_handle *)typenums)" ( (cast_expression "(stab_handle *)&info->files" ( (type_descriptor "stab_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&info->files" & (field_expression "info->files" identifier -> field_identifier))) , (cast_expression "(int *)&info->file_types" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&info->file_types" & (field_expression "info->file_types" identifier -> field_identifier))) , (cast_expression "(stab_handle *)typenums" ( (type_descriptor "stab_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (ppdVar9 == (debug_type_conflict *)0x0) {\n        return (debug_type)0x0;\n      }" if (parenthesized_expression "(ppdVar9 == (debug_type_conflict *)0x0)" ( (binary_expression "ppdVar9 == (debug_type_conflict *)0x0" identifier == (cast_expression "(debug_type_conflict *)0x0" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return (debug_type)0x0;\n      }" { (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })) (expression_statement "*ppdVar9 = pdVar20;" (assignment_expression "*ppdVar9 = pdVar20" (pointer_expression "*ppdVar9" * identifier) = identifier) ;) })) (if_statement "if (local_13c == 0xffffffff) {\n      return pdVar20;\n    }" if (parenthesized_expression "(local_13c == 0xffffffff)" ( (binary_expression "local_13c == 0xffffffff" identifier == number_literal) )) (compound_statement "{\n      return pdVar20;\n    }" { (return_statement "return pdVar20;" return identifier ;) })) (expression_statement "bVar4 = debug_record_type_size(dhandle,pdVar20,local_13c);" (assignment_expression "bVar4 = debug_record_type_size(dhandle,pdVar20,local_13c)" identifier = (call_expression "debug_record_type_size(dhandle,pdVar20,local_13c)" identifier (argument_list "(dhandle,pdVar20,local_13c)" ( identifier , identifier , identifier )))) ;) (if_statement "if (bVar4 != 0) {\n      return pdVar20;\n    }" if (parenthesized_expression "(bVar4 != 0)" ( (binary_expression "bVar4 != 0" identifier != number_literal) )) (compound_statement "{\n      return pdVar20;\n    }" { (return_statement "return pdVar20;" return identifier ;) })) })) (return_statement "return (debug_type)0x0;" return (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal) ;) })))
(translation_unit "long FUN_00131020(void *param_1,long param_2,char *param_3,ulong *param_4,undefined8 *param_5,\n                 byte *param_6)\n\n{\n  char cVar1;\n  undefined8 uVar2;\n  byte bVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  long *plVar10;\n  void *__ptr;\n  ulong uVar11;\n  void *pvVar12;\n  long lVar13;\n  undefined8 uVar14;\n  char *pcVar15;\n  char *pcVar16;\n  long lVar17;\n  long lVar18;\n  undefined8 *puVar19;\n  size_t sVar20;\n  char *pcVar21;\n  byte *pbVar22;\n  undefined *puVar23;\n  int *piVar24;\n  undefined8 uVar25;\n  long lVar26;\n  int iVar27;\n  ulong uVar28;\n  uint *puVar29;\n  uint *puVar30;\n  byte *pbVar31;\n  undefined4 uVar32;\n  byte *pbVar33;\n  byte *pbVar34;\n  ulong uVar35;\n  undefined8 *puVar36;\n  byte *pbVar37;\n  byte bVar38;\n  uint uVar39;\n  byte *pbVar40;\n  bool bVar41;\n  bool bVar42;\n  bool bVar43;\n  bool bVar44;\n  bool bVar45;\n  bool bVar46;\n  byte bVar47;\n  void *local_148;\n  int local_13c;\n  char *local_138;\n  void *local_130;\n  void *local_128;\n  undefined8 local_120;\n  long local_108;\n  long local_100;\n  long local_f8;\n  int local_f0;\n  uint local_ec;\n  uint local_e8;\n  undefined4 local_e4;\n  ulong local_d8;\n  uint local_c8;\n  uint local_c4;\n  char *local_c0;\n  undefined1 local_80 [4];\n  int local_7c;\n  byte *local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  long local_60;\n  undefined8 *local_58;\n  int local_50 [2];\n  void *local_48;\n  undefined4 local_40;\n  undefined4 local_3c;\n  \n  bVar47 = 0;\n  if (param_5 != (undefined8 *)0x0) {\n    *param_5 = 0;\n  }\n  pbVar34 = (byte *)*param_4;\n  if (param_6 <= pbVar34) {\n    return 0;\n  }\n  *(undefined4 *)(param_2 + 0x1a8) = 0;\n  bVar38 = *pbVar34;\n  if (((_sch_istable[(ulong)bVar38 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n    iVar5 = FUN_0012e6c0(param_4,&local_70,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    pcVar16 = (char *)*param_4;\n    if (*pcVar16 != '=') {\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_70);\n      return lVar17;\n    }\n    if (((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)) && (-1 < local_70)) {\n      uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      pcVar16 = (char *)*param_4;\n      *param_5 = uVar8;\n    }\n    uVar8 = 0;\n    *param_4 = (ulong)(pcVar16 + 1);\n    local_13c = -1;\n    pbVar22 = (byte *)(pcVar16 + 1);\n    do {\n      while( true ) {\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }\n      pbVar22 = pbVar40;\n    } while (bVar38 != 0);\n    goto switchD_001311d2_caseD_24;\n  }\n  pbVar40 = pbVar34 + 1;\n  uVar8 = 0;\n  local_13c = -1;\n  local_70 = -1;\n  bVar38 = *pbVar34;\n  pbVar22 = pbVar34;\nLAB_001311b2:\n  *param_4 = (ulong)pbVar40;\n  switch(bVar38) {\n  case 0x23:\n    if (pbVar22[1] == 0x23) {\n      *param_4 = (ulong)(pbVar22 + 2);\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);\n    }\n    else {\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }\n    break;\n  default:\n    goto switchD_001311d2_caseD_24;\n  case 0x26:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d760(param_1,uVar8);\n    break;\n  case 0x28:\n  case 0x2d:\n  case 0x30:\n  case 0x31:\n  case 0x32:\n  case 0x33:\n  case 0x34:\n  case 0x35:\n  case 0x36:\n  case 0x37:\n  case 0x38:\n  case 0x39:\n    *param_4 = (ulong)pbVar22;\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    if ((uint)local_70 == (uint)local_68) {\n      if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;\n      lVar17 = FUN_0012d550(param_1);\n    }\n    else {\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    break;\n  case 0x2a:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6b0(param_1,uVar8);\n    break;\n  case 0x40:\nswitchD_001311d2_caseD_40:\n    lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar17 == 0) {\n      return 0;\n    }\n    if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar18 == 0) {\n      return 0;\n    }\n    lVar17 = FUN_0012d8e0(param_1,lVar17,lVar18);\n    break;\n  case 0x42:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9e0(param_1,uVar8);\n    break;\n  case 0x52:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    lVar17 = FUN_0012e630(param_4,0,param_6);\n    if ((*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')) goto LAB_00132126;\n    if (lVar17 - 3U < 3) {\n      lVar17 = FUN_0012d5a0(param_1,uVar8);\n    }\n    else {\n      lVar17 = FUN_0012d580();\n    }\n    break;\n  case 0x53:\n    uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d880(param_1,uVar14,uVar8);\n    break;\n  case 0x61:\n    if (pbVar22[1] == 0x72) {\n      pbVar22 = pbVar22 + 2;\n      *param_4 = (ulong)pbVar22;\n      if (param_6 <= pbVar22) {\n        return 0;\n      }\n      local_78 = pbVar22;\n      iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }\n      if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }\n      FUN_0012e570(pbVar22);\n      return 0;\n    }\n    goto switchD_001311d2_caseD_24;\n  case 0x62:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    if (pbVar22[1] == 0x73) {\n      uVar8 = 0;\n    }\n    else {\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }\n    *param_4 = (ulong)(pbVar22 + 2);\n    if (((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76)) {\n      *param_4 = (ulong)(pbVar22 + 3);\n    }\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    uVar35 = FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 == ';') {\n      *param_4 = (ulong)((char *)*param_4 + 1);\n    }\n    if (uVar35 != 0) {\n      lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);\n      break;\n    }\nLAB_00133358:\n    lVar17 = FUN_0012d550(param_1);\n    break;\n  case 0x65:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    pbVar34 = pbVar40;\n    if (pbVar22[1] == 0x2d) {\n      do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *param_4 = (ulong)(pbVar22 + 2);\n    }\n    local_148 = (void *)xmalloc(0x50);\n    pvVar12 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    uVar35 = (ulong)*pbVar34;\n    if ((*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }\n    *(undefined8 *)((long)local_148 + uVar28 * 8) = 0;\n    pcVar16 = (char *)*param_4;\n    *(undefined8 *)((long)pvVar12 + uVar28 * 8) = 0;\n    if (*pcVar16 == ';') {\n      *param_4 = (ulong)(pcVar16 + 1);\n    }\n    lVar17 = FUN_0012d670(param_1,local_148,pvVar12);\n    break;\n  case 0x66:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6f0(param_1,uVar8,0,0);\n    break;\n  case 0x6b:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9b0(param_1,uVar8);\n    break;\n  case 0x72:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    bVar43 = false;\n    if ((uint)local_68 == (uint)local_70) {\n      bVar43 = local_68._4_4_ == local_70._4_4_;\n    }\n    pbVar34 = (byte *)*param_4;\n    lVar17 = 0;\n    bVar38 = *pbVar34;\n    if (bVar38 == 0x3d) {\n      *param_4 = (ulong)pbVar40;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      pbVar34 = (byte *)*param_4;\n      bVar38 = *pbVar34;\n    }\n    if (bVar38 == 0x3b) {\n      pbVar34 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar34;\n    }\n    uVar35 = FUN_0012e630(param_4,&local_7c,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    pcVar16 = (char *)*param_4 + 1;\n    *param_4 = (ulong)pcVar16;\n    uVar11 = FUN_0012e630(param_4,&local_78,param_6);\n    iVar5 = local_7c;\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    if (local_7c != 0 || (int)local_78 != 0) {\n      bVar41 = false;\n      bVar44 = lVar17 == 0;\n      if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }\n      lVar18 = 0x18;\n      pbVar22 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }\nLAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);\n      break;\n    }\nLAB_0013197e:\n    if (lVar17 != 0) {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }\n    if ((bVar43) && (uVar35 == 0)) {\n      if (uVar11 == 0) goto LAB_00133358;\n      if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }\n      lVar17 = FUN_0012d560(param_1,4,1);\n    }\n    else {\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }\n    break;\n  case 0x73:\n  case 0x75:\n    uVar8 = FUN_0012e630(param_4,0,param_6);\n    pbVar40 = (byte *)*param_4;\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    local_f8 = 0;\n    if (*pbVar40 == 0x21) {\n      *param_4 = (ulong)(pbVar40 + 1);\n      uVar39 = FUN_0012e630(param_4,0,param_6);\n      if (*(char *)*param_4 != ',') goto LAB_00132126;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);\n      if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }\n      pbVar40 = (byte *)*param_4;\n      *(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;\n      if (param_6 <= pbVar40) {\n        return 0;\n      }\n    }\n    uVar35 = 0;\n    local_130 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    bVar43 = false;\n    bVar3 = *pbVar34;\n    local_138._0_4_ = 10;\n    while (bVar3 != 0x3b) {\n      uVar39 = (int)uVar35 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }\n      if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }\n      pbVar34 = (byte *)*param_4;\n      uVar35 = (ulong)uVar39;\n      bVar3 = *pbVar34;\n    }\n    *(undefined8 *)((long)local_130 + uVar35 * 8) = 0;\n    if (param_6 <= pbVar34) goto LAB_00131328;\n    bVar3 = *pbVar34;\n    if (bVar3 == 0x3b) {\n      local_108 = 0;\nLAB_001334bc:\n      pbVar22 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar22;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }\n    if (*pbVar22 == 0x7e) {\n      pbVar40 = pbVar22 + 1;\n      *param_4 = (ulong)pbVar40;\n      if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *param_4 = (ulong)(pbVar40 + 1);\n      iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n      if (iVar5 == 0) goto LAB_00131328;\n      if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }\n      if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;\n      uVar14 = 1;\n      lVar17 = 0;\n    }\n    else {\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }\n    lVar17 = FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14);\n    break;\n  case 0x78:\n    bVar47 = pbVar22[1];\n    if (bVar47 == 0x65) {\n      uVar32 = 0xb;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }\nLAB_00131e0e:\n    pbVar40 = pbVar40 + 1;\n    *param_4 = (ulong)pbVar40;\n    pcVar15 = strchr((char *)pbVar40,0x3c);\n    pcVar16 = strchr((char *)pbVar40,0x3a);\n    if (pcVar16 != (char *)0x0) {\n      if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }\n      cVar4 = *pcVar15;\n      if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }\n    }\nswitchD_001311d2_caseD_24:\n    FUN_0012e570(pbVar34);\n    return 0;\n  }\n  if (lVar17 != 0) {\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    if (local_13c == -1) {\n      return lVar17;\n    }\n    iVar5 = FUN_0012de60(param_1,lVar17,local_13c);\n    if (iVar5 != 0) {\n      return lVar17;\n    }\n  }\n  return 0;\n}\n\n" (function_definition "long FUN_00131020(void *param_1,long param_2,char *param_3,ulong *param_4,undefined8 *param_5,\n                 byte *param_6)\n\n{\n  char cVar1;\n  undefined8 uVar2;\n  byte bVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  long *plVar10;\n  void *__ptr;\n  ulong uVar11;\n  void *pvVar12;\n  long lVar13;\n  undefined8 uVar14;\n  char *pcVar15;\n  char *pcVar16;\n  long lVar17;\n  long lVar18;\n  undefined8 *puVar19;\n  size_t sVar20;\n  char *pcVar21;\n  byte *pbVar22;\n  undefined *puVar23;\n  int *piVar24;\n  undefined8 uVar25;\n  long lVar26;\n  int iVar27;\n  ulong uVar28;\n  uint *puVar29;\n  uint *puVar30;\n  byte *pbVar31;\n  undefined4 uVar32;\n  byte *pbVar33;\n  byte *pbVar34;\n  ulong uVar35;\n  undefined8 *puVar36;\n  byte *pbVar37;\n  byte bVar38;\n  uint uVar39;\n  byte *pbVar40;\n  bool bVar41;\n  bool bVar42;\n  bool bVar43;\n  bool bVar44;\n  bool bVar45;\n  bool bVar46;\n  byte bVar47;\n  void *local_148;\n  int local_13c;\n  char *local_138;\n  void *local_130;\n  void *local_128;\n  undefined8 local_120;\n  long local_108;\n  long local_100;\n  long local_f8;\n  int local_f0;\n  uint local_ec;\n  uint local_e8;\n  undefined4 local_e4;\n  ulong local_d8;\n  uint local_c8;\n  uint local_c4;\n  char *local_c0;\n  undefined1 local_80 [4];\n  int local_7c;\n  byte *local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  long local_60;\n  undefined8 *local_58;\n  int local_50 [2];\n  void *local_48;\n  undefined4 local_40;\n  undefined4 local_3c;\n  \n  bVar47 = 0;\n  if (param_5 != (undefined8 *)0x0) {\n    *param_5 = 0;\n  }\n  pbVar34 = (byte *)*param_4;\n  if (param_6 <= pbVar34) {\n    return 0;\n  }\n  *(undefined4 *)(param_2 + 0x1a8) = 0;\n  bVar38 = *pbVar34;\n  if (((_sch_istable[(ulong)bVar38 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n    iVar5 = FUN_0012e6c0(param_4,&local_70,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    pcVar16 = (char *)*param_4;\n    if (*pcVar16 != '=') {\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_70);\n      return lVar17;\n    }\n    if (((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)) && (-1 < local_70)) {\n      uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      pcVar16 = (char *)*param_4;\n      *param_5 = uVar8;\n    }\n    uVar8 = 0;\n    *param_4 = (ulong)(pcVar16 + 1);\n    local_13c = -1;\n    pbVar22 = (byte *)(pcVar16 + 1);\n    do {\n      while( true ) {\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }\n      pbVar22 = pbVar40;\n    } while (bVar38 != 0);\n    goto switchD_001311d2_caseD_24;\n  }\n  pbVar40 = pbVar34 + 1;\n  uVar8 = 0;\n  local_13c = -1;\n  local_70 = -1;\n  bVar38 = *pbVar34;\n  pbVar22 = pbVar34;\nLAB_001311b2:\n  *param_4 = (ulong)pbVar40;\n  switch(bVar38) {\n  case 0x23:\n    if (pbVar22[1] == 0x23) {\n      *param_4 = (ulong)(pbVar22 + 2);\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);\n    }\n    else {\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }\n    break;\n  default:\n    goto switchD_001311d2_caseD_24;\n  case 0x26:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d760(param_1,uVar8);\n    break;\n  case 0x28:\n  case 0x2d:\n  case 0x30:\n  case 0x31:\n  case 0x32:\n  case 0x33:\n  case 0x34:\n  case 0x35:\n  case 0x36:\n  case 0x37:\n  case 0x38:\n  case 0x39:\n    *param_4 = (ulong)pbVar22;\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    if ((uint)local_70 == (uint)local_68) {\n      if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;\n      lVar17 = FUN_0012d550(param_1);\n    }\n    else {\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    break;\n  case 0x2a:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6b0(param_1,uVar8);\n    break;\n  case 0x40:\nswitchD_001311d2_caseD_40:\n    lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar17 == 0) {\n      return 0;\n    }\n    if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar18 == 0) {\n      return 0;\n    }\n    lVar17 = FUN_0012d8e0(param_1,lVar17,lVar18);\n    break;\n  case 0x42:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9e0(param_1,uVar8);\n    break;\n  case 0x52:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    lVar17 = FUN_0012e630(param_4,0,param_6);\n    if ((*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')) goto LAB_00132126;\n    if (lVar17 - 3U < 3) {\n      lVar17 = FUN_0012d5a0(param_1,uVar8);\n    }\n    else {\n      lVar17 = FUN_0012d580();\n    }\n    break;\n  case 0x53:\n    uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d880(param_1,uVar14,uVar8);\n    break;\n  case 0x61:\n    if (pbVar22[1] == 0x72) {\n      pbVar22 = pbVar22 + 2;\n      *param_4 = (ulong)pbVar22;\n      if (param_6 <= pbVar22) {\n        return 0;\n      }\n      local_78 = pbVar22;\n      iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }\n      if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }\n      FUN_0012e570(pbVar22);\n      return 0;\n    }\n    goto switchD_001311d2_caseD_24;\n  case 0x62:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    if (pbVar22[1] == 0x73) {\n      uVar8 = 0;\n    }\n    else {\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }\n    *param_4 = (ulong)(pbVar22 + 2);\n    if (((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76)) {\n      *param_4 = (ulong)(pbVar22 + 3);\n    }\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    uVar35 = FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 == ';') {\n      *param_4 = (ulong)((char *)*param_4 + 1);\n    }\n    if (uVar35 != 0) {\n      lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);\n      break;\n    }\nLAB_00133358:\n    lVar17 = FUN_0012d550(param_1);\n    break;\n  case 0x65:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    pbVar34 = pbVar40;\n    if (pbVar22[1] == 0x2d) {\n      do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *param_4 = (ulong)(pbVar22 + 2);\n    }\n    local_148 = (void *)xmalloc(0x50);\n    pvVar12 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    uVar35 = (ulong)*pbVar34;\n    if ((*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }\n    *(undefined8 *)((long)local_148 + uVar28 * 8) = 0;\n    pcVar16 = (char *)*param_4;\n    *(undefined8 *)((long)pvVar12 + uVar28 * 8) = 0;\n    if (*pcVar16 == ';') {\n      *param_4 = (ulong)(pcVar16 + 1);\n    }\n    lVar17 = FUN_0012d670(param_1,local_148,pvVar12);\n    break;\n  case 0x66:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6f0(param_1,uVar8,0,0);\n    break;\n  case 0x6b:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9b0(param_1,uVar8);\n    break;\n  case 0x72:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    bVar43 = false;\n    if ((uint)local_68 == (uint)local_70) {\n      bVar43 = local_68._4_4_ == local_70._4_4_;\n    }\n    pbVar34 = (byte *)*param_4;\n    lVar17 = 0;\n    bVar38 = *pbVar34;\n    if (bVar38 == 0x3d) {\n      *param_4 = (ulong)pbVar40;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      pbVar34 = (byte *)*param_4;\n      bVar38 = *pbVar34;\n    }\n    if (bVar38 == 0x3b) {\n      pbVar34 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar34;\n    }\n    uVar35 = FUN_0012e630(param_4,&local_7c,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    pcVar16 = (char *)*param_4 + 1;\n    *param_4 = (ulong)pcVar16;\n    uVar11 = FUN_0012e630(param_4,&local_78,param_6);\n    iVar5 = local_7c;\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    if (local_7c != 0 || (int)local_78 != 0) {\n      bVar41 = false;\n      bVar44 = lVar17 == 0;\n      if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }\n      lVar18 = 0x18;\n      pbVar22 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }\nLAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);\n      break;\n    }\nLAB_0013197e:\n    if (lVar17 != 0) {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }\n    if ((bVar43) && (uVar35 == 0)) {\n      if (uVar11 == 0) goto LAB_00133358;\n      if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }\n      lVar17 = FUN_0012d560(param_1,4,1);\n    }\n    else {\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }\n    break;\n  case 0x73:\n  case 0x75:\n    uVar8 = FUN_0012e630(param_4,0,param_6);\n    pbVar40 = (byte *)*param_4;\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    local_f8 = 0;\n    if (*pbVar40 == 0x21) {\n      *param_4 = (ulong)(pbVar40 + 1);\n      uVar39 = FUN_0012e630(param_4,0,param_6);\n      if (*(char *)*param_4 != ',') goto LAB_00132126;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);\n      if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }\n      pbVar40 = (byte *)*param_4;\n      *(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;\n      if (param_6 <= pbVar40) {\n        return 0;\n      }\n    }\n    uVar35 = 0;\n    local_130 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    bVar43 = false;\n    bVar3 = *pbVar34;\n    local_138._0_4_ = 10;\n    while (bVar3 != 0x3b) {\n      uVar39 = (int)uVar35 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }\n      if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }\n      pbVar34 = (byte *)*param_4;\n      uVar35 = (ulong)uVar39;\n      bVar3 = *pbVar34;\n    }\n    *(undefined8 *)((long)local_130 + uVar35 * 8) = 0;\n    if (param_6 <= pbVar34) goto LAB_00131328;\n    bVar3 = *pbVar34;\n    if (bVar3 == 0x3b) {\n      local_108 = 0;\nLAB_001334bc:\n      pbVar22 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar22;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }\n    if (*pbVar22 == 0x7e) {\n      pbVar40 = pbVar22 + 1;\n      *param_4 = (ulong)pbVar40;\n      if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *param_4 = (ulong)(pbVar40 + 1);\n      iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n      if (iVar5 == 0) goto LAB_00131328;\n      if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }\n      if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;\n      uVar14 = 1;\n      lVar17 = 0;\n    }\n    else {\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }\n    lVar17 = FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14);\n    break;\n  case 0x78:\n    bVar47 = pbVar22[1];\n    if (bVar47 == 0x65) {\n      uVar32 = 0xb;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }\nLAB_00131e0e:\n    pbVar40 = pbVar40 + 1;\n    *param_4 = (ulong)pbVar40;\n    pcVar15 = strchr((char *)pbVar40,0x3c);\n    pcVar16 = strchr((char *)pbVar40,0x3a);\n    if (pcVar16 != (char *)0x0) {\n      if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }\n      cVar4 = *pcVar15;\n      if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }\n    }\nswitchD_001311d2_caseD_24:\n    FUN_0012e570(pbVar34);\n    return 0;\n  }\n  if (lVar17 != 0) {\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    if (local_13c == -1) {\n      return lVar17;\n    }\n    iVar5 = FUN_0012de60(param_1,lVar17,local_13c);\n    if (iVar5 != 0) {\n      return lVar17;\n    }\n  }\n  return 0;\n}" (sized_type_specifier "long" long) (function_declarator "FUN_00131020(void *param_1,long param_2,char *param_3,ulong *param_4,undefined8 *param_5,\n                 byte *param_6)" identifier (parameter_list "(void *param_1,long param_2,char *param_3,ulong *param_4,undefined8 *param_5,\n                 byte *param_6)" ( (parameter_declaration "void *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long param_2" (sized_type_specifier "long" long) identifier) , (parameter_declaration "char *param_3" primitive_type (pointer_declarator "*param_3" * identifier)) , (parameter_declaration "ulong *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) , (parameter_declaration "undefined8 *param_5" type_identifier (pointer_declarator "*param_5" * identifier)) , (parameter_declaration "byte *param_6" type_identifier (pointer_declarator "*param_6" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  undefined8 uVar2;\n  byte bVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  long *plVar10;\n  void *__ptr;\n  ulong uVar11;\n  void *pvVar12;\n  long lVar13;\n  undefined8 uVar14;\n  char *pcVar15;\n  char *pcVar16;\n  long lVar17;\n  long lVar18;\n  undefined8 *puVar19;\n  size_t sVar20;\n  char *pcVar21;\n  byte *pbVar22;\n  undefined *puVar23;\n  int *piVar24;\n  undefined8 uVar25;\n  long lVar26;\n  int iVar27;\n  ulong uVar28;\n  uint *puVar29;\n  uint *puVar30;\n  byte *pbVar31;\n  undefined4 uVar32;\n  byte *pbVar33;\n  byte *pbVar34;\n  ulong uVar35;\n  undefined8 *puVar36;\n  byte *pbVar37;\n  byte bVar38;\n  uint uVar39;\n  byte *pbVar40;\n  bool bVar41;\n  bool bVar42;\n  bool bVar43;\n  bool bVar44;\n  bool bVar45;\n  bool bVar46;\n  byte bVar47;\n  void *local_148;\n  int local_13c;\n  char *local_138;\n  void *local_130;\n  void *local_128;\n  undefined8 local_120;\n  long local_108;\n  long local_100;\n  long local_f8;\n  int local_f0;\n  uint local_ec;\n  uint local_e8;\n  undefined4 local_e4;\n  ulong local_d8;\n  uint local_c8;\n  uint local_c4;\n  char *local_c0;\n  undefined1 local_80 [4];\n  int local_7c;\n  byte *local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  long local_60;\n  undefined8 *local_58;\n  int local_50 [2];\n  void *local_48;\n  undefined4 local_40;\n  undefined4 local_3c;\n  \n  bVar47 = 0;\n  if (param_5 != (undefined8 *)0x0) {\n    *param_5 = 0;\n  }\n  pbVar34 = (byte *)*param_4;\n  if (param_6 <= pbVar34) {\n    return 0;\n  }\n  *(undefined4 *)(param_2 + 0x1a8) = 0;\n  bVar38 = *pbVar34;\n  if (((_sch_istable[(ulong)bVar38 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n    iVar5 = FUN_0012e6c0(param_4,&local_70,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    pcVar16 = (char *)*param_4;\n    if (*pcVar16 != '=') {\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_70);\n      return lVar17;\n    }\n    if (((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)) && (-1 < local_70)) {\n      uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      pcVar16 = (char *)*param_4;\n      *param_5 = uVar8;\n    }\n    uVar8 = 0;\n    *param_4 = (ulong)(pcVar16 + 1);\n    local_13c = -1;\n    pbVar22 = (byte *)(pcVar16 + 1);\n    do {\n      while( true ) {\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }\n      pbVar22 = pbVar40;\n    } while (bVar38 != 0);\n    goto switchD_001311d2_caseD_24;\n  }\n  pbVar40 = pbVar34 + 1;\n  uVar8 = 0;\n  local_13c = -1;\n  local_70 = -1;\n  bVar38 = *pbVar34;\n  pbVar22 = pbVar34;\nLAB_001311b2:\n  *param_4 = (ulong)pbVar40;\n  switch(bVar38) {\n  case 0x23:\n    if (pbVar22[1] == 0x23) {\n      *param_4 = (ulong)(pbVar22 + 2);\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);\n    }\n    else {\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }\n    break;\n  default:\n    goto switchD_001311d2_caseD_24;\n  case 0x26:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d760(param_1,uVar8);\n    break;\n  case 0x28:\n  case 0x2d:\n  case 0x30:\n  case 0x31:\n  case 0x32:\n  case 0x33:\n  case 0x34:\n  case 0x35:\n  case 0x36:\n  case 0x37:\n  case 0x38:\n  case 0x39:\n    *param_4 = (ulong)pbVar22;\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    if ((uint)local_70 == (uint)local_68) {\n      if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;\n      lVar17 = FUN_0012d550(param_1);\n    }\n    else {\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    break;\n  case 0x2a:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6b0(param_1,uVar8);\n    break;\n  case 0x40:\nswitchD_001311d2_caseD_40:\n    lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar17 == 0) {\n      return 0;\n    }\n    if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar18 == 0) {\n      return 0;\n    }\n    lVar17 = FUN_0012d8e0(param_1,lVar17,lVar18);\n    break;\n  case 0x42:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9e0(param_1,uVar8);\n    break;\n  case 0x52:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    lVar17 = FUN_0012e630(param_4,0,param_6);\n    if ((*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')) goto LAB_00132126;\n    if (lVar17 - 3U < 3) {\n      lVar17 = FUN_0012d5a0(param_1,uVar8);\n    }\n    else {\n      lVar17 = FUN_0012d580();\n    }\n    break;\n  case 0x53:\n    uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d880(param_1,uVar14,uVar8);\n    break;\n  case 0x61:\n    if (pbVar22[1] == 0x72) {\n      pbVar22 = pbVar22 + 2;\n      *param_4 = (ulong)pbVar22;\n      if (param_6 <= pbVar22) {\n        return 0;\n      }\n      local_78 = pbVar22;\n      iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }\n      if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }\n      FUN_0012e570(pbVar22);\n      return 0;\n    }\n    goto switchD_001311d2_caseD_24;\n  case 0x62:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    if (pbVar22[1] == 0x73) {\n      uVar8 = 0;\n    }\n    else {\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }\n    *param_4 = (ulong)(pbVar22 + 2);\n    if (((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76)) {\n      *param_4 = (ulong)(pbVar22 + 3);\n    }\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    uVar35 = FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 == ';') {\n      *param_4 = (ulong)((char *)*param_4 + 1);\n    }\n    if (uVar35 != 0) {\n      lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);\n      break;\n    }\nLAB_00133358:\n    lVar17 = FUN_0012d550(param_1);\n    break;\n  case 0x65:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    pbVar34 = pbVar40;\n    if (pbVar22[1] == 0x2d) {\n      do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *param_4 = (ulong)(pbVar22 + 2);\n    }\n    local_148 = (void *)xmalloc(0x50);\n    pvVar12 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    uVar35 = (ulong)*pbVar34;\n    if ((*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }\n    *(undefined8 *)((long)local_148 + uVar28 * 8) = 0;\n    pcVar16 = (char *)*param_4;\n    *(undefined8 *)((long)pvVar12 + uVar28 * 8) = 0;\n    if (*pcVar16 == ';') {\n      *param_4 = (ulong)(pcVar16 + 1);\n    }\n    lVar17 = FUN_0012d670(param_1,local_148,pvVar12);\n    break;\n  case 0x66:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6f0(param_1,uVar8,0,0);\n    break;\n  case 0x6b:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9b0(param_1,uVar8);\n    break;\n  case 0x72:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    bVar43 = false;\n    if ((uint)local_68 == (uint)local_70) {\n      bVar43 = local_68._4_4_ == local_70._4_4_;\n    }\n    pbVar34 = (byte *)*param_4;\n    lVar17 = 0;\n    bVar38 = *pbVar34;\n    if (bVar38 == 0x3d) {\n      *param_4 = (ulong)pbVar40;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      pbVar34 = (byte *)*param_4;\n      bVar38 = *pbVar34;\n    }\n    if (bVar38 == 0x3b) {\n      pbVar34 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar34;\n    }\n    uVar35 = FUN_0012e630(param_4,&local_7c,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    pcVar16 = (char *)*param_4 + 1;\n    *param_4 = (ulong)pcVar16;\n    uVar11 = FUN_0012e630(param_4,&local_78,param_6);\n    iVar5 = local_7c;\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    if (local_7c != 0 || (int)local_78 != 0) {\n      bVar41 = false;\n      bVar44 = lVar17 == 0;\n      if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }\n      lVar18 = 0x18;\n      pbVar22 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }\nLAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);\n      break;\n    }\nLAB_0013197e:\n    if (lVar17 != 0) {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }\n    if ((bVar43) && (uVar35 == 0)) {\n      if (uVar11 == 0) goto LAB_00133358;\n      if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }\n      lVar17 = FUN_0012d560(param_1,4,1);\n    }\n    else {\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }\n    break;\n  case 0x73:\n  case 0x75:\n    uVar8 = FUN_0012e630(param_4,0,param_6);\n    pbVar40 = (byte *)*param_4;\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    local_f8 = 0;\n    if (*pbVar40 == 0x21) {\n      *param_4 = (ulong)(pbVar40 + 1);\n      uVar39 = FUN_0012e630(param_4,0,param_6);\n      if (*(char *)*param_4 != ',') goto LAB_00132126;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);\n      if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }\n      pbVar40 = (byte *)*param_4;\n      *(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;\n      if (param_6 <= pbVar40) {\n        return 0;\n      }\n    }\n    uVar35 = 0;\n    local_130 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    bVar43 = false;\n    bVar3 = *pbVar34;\n    local_138._0_4_ = 10;\n    while (bVar3 != 0x3b) {\n      uVar39 = (int)uVar35 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }\n      if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }\n      pbVar34 = (byte *)*param_4;\n      uVar35 = (ulong)uVar39;\n      bVar3 = *pbVar34;\n    }\n    *(undefined8 *)((long)local_130 + uVar35 * 8) = 0;\n    if (param_6 <= pbVar34) goto LAB_00131328;\n    bVar3 = *pbVar34;\n    if (bVar3 == 0x3b) {\n      local_108 = 0;\nLAB_001334bc:\n      pbVar22 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar22;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }\n    if (*pbVar22 == 0x7e) {\n      pbVar40 = pbVar22 + 1;\n      *param_4 = (ulong)pbVar40;\n      if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *param_4 = (ulong)(pbVar40 + 1);\n      iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n      if (iVar5 == 0) goto LAB_00131328;\n      if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }\n      if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;\n      uVar14 = 1;\n      lVar17 = 0;\n    }\n    else {\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }\n    lVar17 = FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14);\n    break;\n  case 0x78:\n    bVar47 = pbVar22[1];\n    if (bVar47 == 0x65) {\n      uVar32 = 0xb;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }\nLAB_00131e0e:\n    pbVar40 = pbVar40 + 1;\n    *param_4 = (ulong)pbVar40;\n    pcVar15 = strchr((char *)pbVar40,0x3c);\n    pcVar16 = strchr((char *)pbVar40,0x3a);\n    if (pcVar16 != (char *)0x0) {\n      if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }\n      cVar4 = *pcVar15;\n      if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }\n    }\nswitchD_001311d2_caseD_24:\n    FUN_0012e570(pbVar34);\n    return 0;\n  }\n  if (lVar17 != 0) {\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    if (local_13c == -1) {\n      return lVar17;\n    }\n    iVar5 = FUN_0012de60(param_1,lVar17,local_13c);\n    if (iVar5 != 0) {\n      return lVar17;\n    }\n  }\n  return 0;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "undefined8 uVar2;" type_identifier identifier ;) (declaration "byte bVar3;" type_identifier identifier ;) (declaration "char cVar4;" primitive_type identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "uint uVar6;" type_identifier identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "undefined8 uVar8;" type_identifier identifier ;) (declaration "undefined8 uVar9;" type_identifier identifier ;) (declaration "long *plVar10;" (sized_type_specifier "long" long) (pointer_declarator "*plVar10" * identifier) ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "ulong uVar11;" type_identifier identifier ;) (declaration "void *pvVar12;" primitive_type (pointer_declarator "*pvVar12" * identifier) ;) (declaration "long lVar13;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 uVar14;" type_identifier identifier ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "long lVar17;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar18;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "size_t sVar20;" primitive_type identifier ;) (declaration "char *pcVar21;" primitive_type (pointer_declarator "*pcVar21" * identifier) ;) (declaration "byte *pbVar22;" type_identifier (pointer_declarator "*pbVar22" * identifier) ;) (declaration "undefined *puVar23;" type_identifier (pointer_declarator "*puVar23" * identifier) ;) (declaration "int *piVar24;" primitive_type (pointer_declarator "*piVar24" * identifier) ;) (declaration "undefined8 uVar25;" type_identifier identifier ;) (declaration "long lVar26;" (sized_type_specifier "long" long) identifier ;) (declaration "int iVar27;" primitive_type identifier ;) (declaration "ulong uVar28;" type_identifier identifier ;) (declaration "uint *puVar29;" type_identifier (pointer_declarator "*puVar29" * identifier) ;) (declaration "uint *puVar30;" type_identifier (pointer_declarator "*puVar30" * identifier) ;) (declaration "byte *pbVar31;" type_identifier (pointer_declarator "*pbVar31" * identifier) ;) (declaration "undefined4 uVar32;" type_identifier identifier ;) (declaration "byte *pbVar33;" type_identifier (pointer_declarator "*pbVar33" * identifier) ;) (declaration "byte *pbVar34;" type_identifier (pointer_declarator "*pbVar34" * identifier) ;) (declaration "ulong uVar35;" type_identifier identifier ;) (declaration "undefined8 *puVar36;" type_identifier (pointer_declarator "*puVar36" * identifier) ;) (declaration "byte *pbVar37;" type_identifier (pointer_declarator "*pbVar37" * identifier) ;) (declaration "byte bVar38;" type_identifier identifier ;) (declaration "uint uVar39;" type_identifier identifier ;) (declaration "byte *pbVar40;" type_identifier (pointer_declarator "*pbVar40" * identifier) ;) (declaration "bool bVar41;" primitive_type identifier ;) (declaration "bool bVar42;" primitive_type identifier ;) (declaration "bool bVar43;" primitive_type identifier ;) (declaration "bool bVar44;" primitive_type identifier ;) (declaration "bool bVar45;" primitive_type identifier ;) (declaration "bool bVar46;" primitive_type identifier ;) (declaration "byte bVar47;" type_identifier identifier ;) (declaration "void *local_148;" primitive_type (pointer_declarator "*local_148" * identifier) ;) (declaration "int local_13c;" primitive_type identifier ;) (declaration "char *local_138;" primitive_type (pointer_declarator "*local_138" * identifier) ;) (declaration "void *local_130;" primitive_type (pointer_declarator "*local_130" * identifier) ;) (declaration "void *local_128;" primitive_type (pointer_declarator "*local_128" * identifier) ;) (declaration "undefined8 local_120;" type_identifier identifier ;) (declaration "long local_108;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_100;" (sized_type_specifier "long" long) identifier ;) (declaration "long local_f8;" (sized_type_specifier "long" long) identifier ;) (declaration "int local_f0;" primitive_type identifier ;) (declaration "uint local_ec;" type_identifier identifier ;) (declaration "uint local_e8;" type_identifier identifier ;) (declaration "undefined4 local_e4;" type_identifier identifier ;) (declaration "ulong local_d8;" type_identifier identifier ;) (declaration "uint local_c8;" type_identifier identifier ;) (declaration "uint local_c4;" type_identifier identifier ;) (declaration "char *local_c0;" primitive_type (pointer_declarator "*local_c0" * identifier) ;) (declaration "undefined1 local_80 [4];" type_identifier (array_declarator "local_80 [4]" identifier [ number_literal ]) ;) (declaration "int local_7c;" primitive_type identifier ;) (declaration "byte *local_78;" type_identifier (pointer_declarator "*local_78" * identifier) ;) (declaration "undefined8 local_70;" type_identifier identifier ;) (declaration "undefined8 local_68;" type_identifier identifier ;) (declaration "long local_60;" (sized_type_specifier "long" long) identifier ;) (declaration "undefined8 *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "int local_50 [2];" primitive_type (array_declarator "local_50 [2]" identifier [ number_literal ]) ;) (declaration "void *local_48;" primitive_type (pointer_declarator "*local_48" * identifier) ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (expression_statement "bVar47 = 0;" (assignment_expression "bVar47 = 0" identifier = number_literal) ;) (if_statement "if (param_5 != (undefined8 *)0x0) {\n    *param_5 = 0;\n  }" if (parenthesized_expression "(param_5 != (undefined8 *)0x0)" ( (binary_expression "param_5 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *param_5 = 0;\n  }" { (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" * identifier) = number_literal) ;) })) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (if_statement "if (param_6 <= pbVar34) {\n    return 0;\n  }" if (parenthesized_expression "(param_6 <= pbVar34)" ( (binary_expression "param_6 <= pbVar34" identifier <= identifier) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "*(undefined4 *)(param_2 + 0x1a8) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 0x1a8) = 0" (pointer_expression "*(undefined4 *)(param_2 + 0x1a8)" * (cast_expression "(undefined4 *)(param_2 + 0x1a8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1a8)" ( (binary_expression "param_2 + 0x1a8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "bVar38 = *pbVar34;" (assignment_expression "bVar38 = *pbVar34" identifier = (pointer_expression "*pbVar34" * identifier)) ;) (if_statement "if (((_sch_istable[(ulong)bVar38 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n    iVar5 = FUN_0012e6c0(param_4,&local_70,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    pcVar16 = (char *)*param_4;\n    if (*pcVar16 != '=') {\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_70);\n      return lVar17;\n    }\n    if (((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)) && (-1 < local_70)) {\n      uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      pcVar16 = (char *)*param_4;\n      *param_5 = uVar8;\n    }\n    uVar8 = 0;\n    *param_4 = (ulong)(pcVar16 + 1);\n    local_13c = -1;\n    pbVar22 = (byte *)(pcVar16 + 1);\n    do {\n      while( true ) {\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }\n      pbVar22 = pbVar40;\n    } while (bVar38 != 0);\n    goto switchD_001311d2_caseD_24;\n  }" if (parenthesized_expression "(((_sch_istable[(ulong)bVar38 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28))" ( (binary_expression "((_sch_istable[(ulong)bVar38 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)" (parenthesized_expression "((_sch_istable[(ulong)bVar38 * 2] & 4) != 0)" ( (binary_expression "(_sch_istable[(ulong)bVar38 * 2] & 4) != 0" (parenthesized_expression "(_sch_istable[(ulong)bVar38 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)bVar38 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar38 * 2]" identifier [ (binary_expression "(ulong)bVar38 * 2" (cast_expression "(ulong)bVar38" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) != number_literal) )) || (parenthesized_expression "(bVar38 == 0x2d || bVar38 == 0x28)" ( (binary_expression "bVar38 == 0x2d || bVar38 == 0x28" (binary_expression "bVar38 == 0x2d" identifier == number_literal) || (binary_expression "bVar38 == 0x28" identifier == number_literal)) ))) )) (compound_statement "{\n    iVar5 = FUN_0012e6c0(param_4,&local_70,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    pcVar16 = (char *)*param_4;\n    if (*pcVar16 != '=') {\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_70);\n      return lVar17;\n    }\n    if (((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)) && (-1 < local_70)) {\n      uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      pcVar16 = (char *)*param_4;\n      *param_5 = uVar8;\n    }\n    uVar8 = 0;\n    *param_4 = (ulong)(pcVar16 + 1);\n    local_13c = -1;\n    pbVar22 = (byte *)(pcVar16 + 1);\n    do {\n      while( true ) {\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }\n      pbVar22 = pbVar40;\n    } while (bVar38 != 0);\n    goto switchD_001311d2_caseD_24;\n  }" { (expression_statement "iVar5 = FUN_0012e6c0(param_4,&local_70,param_6);" (assignment_expression "iVar5 = FUN_0012e6c0(param_4,&local_70,param_6)" identifier = (call_expression "FUN_0012e6c0(param_4,&local_70,param_6)" identifier (argument_list "(param_4,&local_70,param_6)" ( identifier , (pointer_expression "&local_70" & identifier) , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (if_statement "if (*pcVar16 != '=') {\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_70);\n      return lVar17;\n    }" if (parenthesized_expression "(*pcVar16 != '=')" ( (binary_expression "*pcVar16 != '='" (pointer_expression "*pcVar16" * identifier) != (char_literal "'='" ' character ')) )) (compound_statement "{\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_70);\n      return lVar17;\n    }" { (expression_statement "lVar17 = FUN_0012e9f0(param_1,param_2,&local_70);" (assignment_expression "lVar17 = FUN_0012e9f0(param_1,param_2,&local_70)" identifier = (call_expression "FUN_0012e9f0(param_1,param_2,&local_70)" identifier (argument_list "(param_1,param_2,&local_70)" ( identifier , identifier , (pointer_expression "&local_70" & identifier) )))) ;) (return_statement "return lVar17;" return identifier ;) })) (if_statement "if (((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)) && (-1 < local_70)) {\n      uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      pcVar16 = (char *)*param_4;\n      *param_5 = uVar8;\n    }" if (parenthesized_expression "(((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)) && (-1 < local_70))" ( (binary_expression "((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)) && (-1 < local_70)" (parenthesized_expression "((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70))" ( (binary_expression "(param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)" (parenthesized_expression "(param_5 != (undefined8 *)0x0)" ( (binary_expression "param_5 != (undefined8 *)0x0" identifier != (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(-1 < (int)(uint)local_70)" ( (binary_expression "-1 < (int)(uint)local_70" number_literal < (cast_expression "(int)(uint)local_70" ( (type_descriptor "int" primitive_type) ) (cast_expression "(uint)local_70" ( (type_descriptor "uint" type_identifier) ) identifier))) ))) )) && (parenthesized_expression "(-1 < local_70)" ( (binary_expression "-1 < local_70" number_literal < identifier) ))) )) (compound_statement "{\n      uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      pcVar16 = (char *)*param_4;\n      *param_5 = uVar8;\n    }" { (expression_statement "uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);" (assignment_expression "uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70)" identifier = (call_expression "FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70)" identifier (argument_list "(param_2 + 0x80,param_2 + 0x88,&local_70)" ( (binary_expression "param_2 + 0x80" identifier + number_literal) , (binary_expression "param_2 + 0x88" identifier + number_literal) , (pointer_expression "&local_70" & identifier) )))) ;) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "*param_5 = uVar8;" (assignment_expression "*param_5 = uVar8" (pointer_expression "*param_5" * identifier) = identifier) ;) })) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (expression_statement "local_13c = -1;" (assignment_expression "local_13c = -1" identifier = number_literal) ;) (expression_statement "pbVar22 = (byte *)(pcVar16 + 1);" (assignment_expression "pbVar22 = (byte *)(pcVar16 + 1)" identifier = (cast_expression "(byte *)(pcVar16 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (do_statement "do {\n      while( true ) {\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }\n      pbVar22 = pbVar40;\n    } while (bVar38 != 0);" do (compound_statement "{\n      while( true ) {\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }\n      pbVar22 = pbVar40;\n    }" { (while_statement "while( true ) {\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }" { (while_statement "while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }" { (expression_statement "bVar38 = *pbVar22;" (assignment_expression "bVar38 = *pbVar22" identifier = (pointer_expression "*pbVar22" * identifier)) ;) (expression_statement "pbVar40 = pbVar22 + 1;" (assignment_expression "pbVar40 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (if_statement "if (bVar38 != 0x40) goto LAB_001311b2;" if (parenthesized_expression "(bVar38 != 0x40)" ( (binary_expression "bVar38 != 0x40" identifier != number_literal) )) (goto_statement "goto LAB_001311b2;" goto statement_identifier ;)) (expression_statement "bVar38 = pbVar22[1];" (assignment_expression "bVar38 = pbVar22[1]" identifier = (subscript_expression "pbVar22[1]" identifier [ number_literal ])) ;) (expression_statement "uVar35 = (ulong)bVar38;" (assignment_expression "uVar35 = (ulong)bVar38" identifier = (cast_expression "(ulong)bVar38" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }" if (parenthesized_expression "(((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28))" ( (binary_expression "((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)" (parenthesized_expression "((_sch_istable[uVar35 * 2] & 4) != 0)" ( (binary_expression "(_sch_istable[uVar35 * 2] & 4) != 0" (parenthesized_expression "(_sch_istable[uVar35 * 2] & 4)" ( (binary_expression "_sch_istable[uVar35 * 2] & 4" (subscript_expression "_sch_istable[uVar35 * 2]" identifier [ (binary_expression "uVar35 * 2" identifier * number_literal) ]) & number_literal) )) != number_literal) )) || (parenthesized_expression "(bVar38 == 0x2d || bVar38 == 0x28)" ( (binary_expression "bVar38 == 0x2d || bVar38 == 0x28" (binary_expression "bVar38 == 0x2d" identifier == number_literal) || (binary_expression "bVar38 == 0x28" identifier == number_literal)) ))) )) (compound_statement "{\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }" { (expression_statement "*param_4 = (ulong)pbVar40;" (assignment_expression "*param_4 = (ulong)pbVar40" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar40" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (goto_statement "goto switchD_001311d2_caseD_40;" goto statement_identifier ;) })) (while_statement "while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }" while (parenthesized_expression "((char)uVar35 != ';')" ( (binary_expression "(char)uVar35 != ';'" (cast_expression "(char)uVar35" ( (type_descriptor "char" primitive_type) ) identifier) != (char_literal "';'" ' character ')) )) (compound_statement "{\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }" { (if_statement "if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;" if (parenthesized_expression "((char)uVar35 == '\0')" ( (binary_expression "(char)uVar35 == '\0'" (cast_expression "(char)uVar35" ( (type_descriptor "char" primitive_type) ) identifier) == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;)) (expression_statement "pbVar40 = pbVar40 + 1;" (assignment_expression "pbVar40 = pbVar40 + 1" identifier = (binary_expression "pbVar40 + 1" identifier + number_literal)) ;) (expression_statement "uVar35 = (ulong)*pbVar40;" (assignment_expression "uVar35 = (ulong)*pbVar40" identifier = (binary_expression "(ulong)*pbVar40" (parenthesized_expression "(ulong)" ( identifier )) * identifier)) ;) })) (expression_statement "pbVar40 = pbVar40 + 1;" (assignment_expression "pbVar40 = pbVar40 + 1" identifier = (binary_expression "pbVar40 + 1" identifier + number_literal)) ;) (expression_statement "*param_4 = (ulong)pbVar40;" (assignment_expression "*param_4 = (ulong)pbVar40" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar40" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "bVar38 = pbVar22[1];" (assignment_expression "bVar38 = pbVar22[1]" identifier = (subscript_expression "pbVar22[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar38 != 0x53) break;" if (parenthesized_expression "(bVar38 != 0x53)" ( (binary_expression "bVar38 != 0x53" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (expression_statement "pbVar22 = pbVar40;" (assignment_expression "pbVar22 = pbVar40" identifier = identifier) ;) })) (if_statement "if (bVar38 != 0x73) break;" if (parenthesized_expression "(bVar38 != 0x73)" ( (binary_expression "bVar38 != 0x73" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);" (assignment_expression "lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10)" identifier = (call_expression "strtol((char *)(pbVar22 + 2),(char **)0x0,10)" identifier (argument_list "((char *)(pbVar22 + 2),(char **)0x0,10)" ( (cast_expression "(char *)(pbVar22 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar22 + 2)" ( (binary_expression "pbVar22 + 2" identifier + number_literal) ))) , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) , number_literal )))) ;) (if_statement "if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }" if (parenthesized_expression "((int)lVar17 < 8)" ( (binary_expression "(int)lVar17 < 8" (cast_expression "(int)lVar17" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }" { (expression_statement "local_13c = -1;" (assignment_expression "local_13c = -1" identifier = number_literal) ;) (expression_statement "pbVar22 = (byte *)*param_4;" (assignment_expression "pbVar22 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) }) (else_clause "else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }" else (compound_statement "{\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }" { (expression_statement "local_13c = (int)lVar17 >> 3;" (assignment_expression "local_13c = (int)lVar17 >> 3" identifier = (binary_expression "(int)lVar17 >> 3" (cast_expression "(int)lVar17" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) (expression_statement "pbVar22 = (byte *)*param_4;" (assignment_expression "pbVar22 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) }))) })) (expression_statement "pbVar22 = pbVar40;" (assignment_expression "pbVar22 = pbVar40" identifier = identifier) ;) }) while (parenthesized_expression "(bVar38 != 0)" ( (binary_expression "bVar38 != 0" identifier != number_literal) )) ;) (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;) })) (expression_statement "pbVar40 = pbVar34 + 1;" (assignment_expression "pbVar40 = pbVar34 + 1" identifier = (binary_expression "pbVar34 + 1" identifier + number_literal)) ;) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) (expression_statement "local_13c = -1;" (assignment_expression "local_13c = -1" identifier = number_literal) ;) (expression_statement "local_70 = -1;" (assignment_expression "local_70 = -1" identifier = number_literal) ;) (expression_statement "bVar38 = *pbVar34;" (assignment_expression "bVar38 = *pbVar34" identifier = (pointer_expression "*pbVar34" * identifier)) ;) (expression_statement "pbVar22 = pbVar34;" (assignment_expression "pbVar22 = pbVar34" identifier = identifier) ;) (labeled_statement "LAB_001311b2:\n  *param_4 = (ulong)pbVar40;" statement_identifier : (expression_statement "*param_4 = (ulong)pbVar40;" (assignment_expression "*param_4 = (ulong)pbVar40" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar40" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;)) (switch_statement "switch(bVar38) {\n  case 0x23:\n    if (pbVar22[1] == 0x23) {\n      *param_4 = (ulong)(pbVar22 + 2);\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);\n    }\n    else {\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }\n    break;\n  default:\n    goto switchD_001311d2_caseD_24;\n  case 0x26:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d760(param_1,uVar8);\n    break;\n  case 0x28:\n  case 0x2d:\n  case 0x30:\n  case 0x31:\n  case 0x32:\n  case 0x33:\n  case 0x34:\n  case 0x35:\n  case 0x36:\n  case 0x37:\n  case 0x38:\n  case 0x39:\n    *param_4 = (ulong)pbVar22;\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    if ((uint)local_70 == (uint)local_68) {\n      if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;\n      lVar17 = FUN_0012d550(param_1);\n    }\n    else {\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    break;\n  case 0x2a:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6b0(param_1,uVar8);\n    break;\n  case 0x40:\nswitchD_001311d2_caseD_40:\n    lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar17 == 0) {\n      return 0;\n    }\n    if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar18 == 0) {\n      return 0;\n    }\n    lVar17 = FUN_0012d8e0(param_1,lVar17,lVar18);\n    break;\n  case 0x42:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9e0(param_1,uVar8);\n    break;\n  case 0x52:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    lVar17 = FUN_0012e630(param_4,0,param_6);\n    if ((*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')) goto LAB_00132126;\n    if (lVar17 - 3U < 3) {\n      lVar17 = FUN_0012d5a0(param_1,uVar8);\n    }\n    else {\n      lVar17 = FUN_0012d580();\n    }\n    break;\n  case 0x53:\n    uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d880(param_1,uVar14,uVar8);\n    break;\n  case 0x61:\n    if (pbVar22[1] == 0x72) {\n      pbVar22 = pbVar22 + 2;\n      *param_4 = (ulong)pbVar22;\n      if (param_6 <= pbVar22) {\n        return 0;\n      }\n      local_78 = pbVar22;\n      iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }\n      if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }\n      FUN_0012e570(pbVar22);\n      return 0;\n    }\n    goto switchD_001311d2_caseD_24;\n  case 0x62:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    if (pbVar22[1] == 0x73) {\n      uVar8 = 0;\n    }\n    else {\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }\n    *param_4 = (ulong)(pbVar22 + 2);\n    if (((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76)) {\n      *param_4 = (ulong)(pbVar22 + 3);\n    }\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    uVar35 = FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 == ';') {\n      *param_4 = (ulong)((char *)*param_4 + 1);\n    }\n    if (uVar35 != 0) {\n      lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);\n      break;\n    }\nLAB_00133358:\n    lVar17 = FUN_0012d550(param_1);\n    break;\n  case 0x65:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    pbVar34 = pbVar40;\n    if (pbVar22[1] == 0x2d) {\n      do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *param_4 = (ulong)(pbVar22 + 2);\n    }\n    local_148 = (void *)xmalloc(0x50);\n    pvVar12 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    uVar35 = (ulong)*pbVar34;\n    if ((*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }\n    *(undefined8 *)((long)local_148 + uVar28 * 8) = 0;\n    pcVar16 = (char *)*param_4;\n    *(undefined8 *)((long)pvVar12 + uVar28 * 8) = 0;\n    if (*pcVar16 == ';') {\n      *param_4 = (ulong)(pcVar16 + 1);\n    }\n    lVar17 = FUN_0012d670(param_1,local_148,pvVar12);\n    break;\n  case 0x66:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6f0(param_1,uVar8,0,0);\n    break;\n  case 0x6b:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9b0(param_1,uVar8);\n    break;\n  case 0x72:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    bVar43 = false;\n    if ((uint)local_68 == (uint)local_70) {\n      bVar43 = local_68._4_4_ == local_70._4_4_;\n    }\n    pbVar34 = (byte *)*param_4;\n    lVar17 = 0;\n    bVar38 = *pbVar34;\n    if (bVar38 == 0x3d) {\n      *param_4 = (ulong)pbVar40;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      pbVar34 = (byte *)*param_4;\n      bVar38 = *pbVar34;\n    }\n    if (bVar38 == 0x3b) {\n      pbVar34 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar34;\n    }\n    uVar35 = FUN_0012e630(param_4,&local_7c,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    pcVar16 = (char *)*param_4 + 1;\n    *param_4 = (ulong)pcVar16;\n    uVar11 = FUN_0012e630(param_4,&local_78,param_6);\n    iVar5 = local_7c;\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    if (local_7c != 0 || (int)local_78 != 0) {\n      bVar41 = false;\n      bVar44 = lVar17 == 0;\n      if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }\n      lVar18 = 0x18;\n      pbVar22 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }\nLAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);\n      break;\n    }\nLAB_0013197e:\n    if (lVar17 != 0) {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }\n    if ((bVar43) && (uVar35 == 0)) {\n      if (uVar11 == 0) goto LAB_00133358;\n      if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }\n      lVar17 = FUN_0012d560(param_1,4,1);\n    }\n    else {\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }\n    break;\n  case 0x73:\n  case 0x75:\n    uVar8 = FUN_0012e630(param_4,0,param_6);\n    pbVar40 = (byte *)*param_4;\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    local_f8 = 0;\n    if (*pbVar40 == 0x21) {\n      *param_4 = (ulong)(pbVar40 + 1);\n      uVar39 = FUN_0012e630(param_4,0,param_6);\n      if (*(char *)*param_4 != ',') goto LAB_00132126;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);\n      if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }\n      pbVar40 = (byte *)*param_4;\n      *(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;\n      if (param_6 <= pbVar40) {\n        return 0;\n      }\n    }\n    uVar35 = 0;\n    local_130 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    bVar43 = false;\n    bVar3 = *pbVar34;\n    local_138._0_4_ = 10;\n    while (bVar3 != 0x3b) {\n      uVar39 = (int)uVar35 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }\n      if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }\n      pbVar34 = (byte *)*param_4;\n      uVar35 = (ulong)uVar39;\n      bVar3 = *pbVar34;\n    }\n    *(undefined8 *)((long)local_130 + uVar35 * 8) = 0;\n    if (param_6 <= pbVar34) goto LAB_00131328;\n    bVar3 = *pbVar34;\n    if (bVar3 == 0x3b) {\n      local_108 = 0;\nLAB_001334bc:\n      pbVar22 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar22;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }\n    if (*pbVar22 == 0x7e) {\n      pbVar40 = pbVar22 + 1;\n      *param_4 = (ulong)pbVar40;\n      if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *param_4 = (ulong)(pbVar40 + 1);\n      iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n      if (iVar5 == 0) goto LAB_00131328;\n      if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }\n      if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;\n      uVar14 = 1;\n      lVar17 = 0;\n    }\n    else {\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }\n    lVar17 = FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14);\n    break;\n  case 0x78:\n    bVar47 = pbVar22[1];\n    if (bVar47 == 0x65) {\n      uVar32 = 0xb;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }\nLAB_00131e0e:\n    pbVar40 = pbVar40 + 1;\n    *param_4 = (ulong)pbVar40;\n    pcVar15 = strchr((char *)pbVar40,0x3c);\n    pcVar16 = strchr((char *)pbVar40,0x3a);\n    if (pcVar16 != (char *)0x0) {\n      if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }\n      cVar4 = *pcVar15;\n      if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }\n    }\nswitchD_001311d2_caseD_24:\n    FUN_0012e570(pbVar34);\n    return 0;\n  }" switch (parenthesized_expression "(bVar38)" ( identifier )) (compound_statement "{\n  case 0x23:\n    if (pbVar22[1] == 0x23) {\n      *param_4 = (ulong)(pbVar22 + 2);\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);\n    }\n    else {\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }\n    break;\n  default:\n    goto switchD_001311d2_caseD_24;\n  case 0x26:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d760(param_1,uVar8);\n    break;\n  case 0x28:\n  case 0x2d:\n  case 0x30:\n  case 0x31:\n  case 0x32:\n  case 0x33:\n  case 0x34:\n  case 0x35:\n  case 0x36:\n  case 0x37:\n  case 0x38:\n  case 0x39:\n    *param_4 = (ulong)pbVar22;\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    if ((uint)local_70 == (uint)local_68) {\n      if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;\n      lVar17 = FUN_0012d550(param_1);\n    }\n    else {\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    break;\n  case 0x2a:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6b0(param_1,uVar8);\n    break;\n  case 0x40:\nswitchD_001311d2_caseD_40:\n    lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar17 == 0) {\n      return 0;\n    }\n    if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar18 == 0) {\n      return 0;\n    }\n    lVar17 = FUN_0012d8e0(param_1,lVar17,lVar18);\n    break;\n  case 0x42:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9e0(param_1,uVar8);\n    break;\n  case 0x52:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    lVar17 = FUN_0012e630(param_4,0,param_6);\n    if ((*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')) goto LAB_00132126;\n    if (lVar17 - 3U < 3) {\n      lVar17 = FUN_0012d5a0(param_1,uVar8);\n    }\n    else {\n      lVar17 = FUN_0012d580();\n    }\n    break;\n  case 0x53:\n    uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d880(param_1,uVar14,uVar8);\n    break;\n  case 0x61:\n    if (pbVar22[1] == 0x72) {\n      pbVar22 = pbVar22 + 2;\n      *param_4 = (ulong)pbVar22;\n      if (param_6 <= pbVar22) {\n        return 0;\n      }\n      local_78 = pbVar22;\n      iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }\n      if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }\n      FUN_0012e570(pbVar22);\n      return 0;\n    }\n    goto switchD_001311d2_caseD_24;\n  case 0x62:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    if (pbVar22[1] == 0x73) {\n      uVar8 = 0;\n    }\n    else {\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }\n    *param_4 = (ulong)(pbVar22 + 2);\n    if (((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76)) {\n      *param_4 = (ulong)(pbVar22 + 3);\n    }\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    uVar35 = FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 == ';') {\n      *param_4 = (ulong)((char *)*param_4 + 1);\n    }\n    if (uVar35 != 0) {\n      lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);\n      break;\n    }\nLAB_00133358:\n    lVar17 = FUN_0012d550(param_1);\n    break;\n  case 0x65:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    pbVar34 = pbVar40;\n    if (pbVar22[1] == 0x2d) {\n      do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *param_4 = (ulong)(pbVar22 + 2);\n    }\n    local_148 = (void *)xmalloc(0x50);\n    pvVar12 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    uVar35 = (ulong)*pbVar34;\n    if ((*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }\n    *(undefined8 *)((long)local_148 + uVar28 * 8) = 0;\n    pcVar16 = (char *)*param_4;\n    *(undefined8 *)((long)pvVar12 + uVar28 * 8) = 0;\n    if (*pcVar16 == ';') {\n      *param_4 = (ulong)(pcVar16 + 1);\n    }\n    lVar17 = FUN_0012d670(param_1,local_148,pvVar12);\n    break;\n  case 0x66:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6f0(param_1,uVar8,0,0);\n    break;\n  case 0x6b:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9b0(param_1,uVar8);\n    break;\n  case 0x72:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    bVar43 = false;\n    if ((uint)local_68 == (uint)local_70) {\n      bVar43 = local_68._4_4_ == local_70._4_4_;\n    }\n    pbVar34 = (byte *)*param_4;\n    lVar17 = 0;\n    bVar38 = *pbVar34;\n    if (bVar38 == 0x3d) {\n      *param_4 = (ulong)pbVar40;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      pbVar34 = (byte *)*param_4;\n      bVar38 = *pbVar34;\n    }\n    if (bVar38 == 0x3b) {\n      pbVar34 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar34;\n    }\n    uVar35 = FUN_0012e630(param_4,&local_7c,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    pcVar16 = (char *)*param_4 + 1;\n    *param_4 = (ulong)pcVar16;\n    uVar11 = FUN_0012e630(param_4,&local_78,param_6);\n    iVar5 = local_7c;\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    if (local_7c != 0 || (int)local_78 != 0) {\n      bVar41 = false;\n      bVar44 = lVar17 == 0;\n      if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }\n      lVar18 = 0x18;\n      pbVar22 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }\nLAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);\n      break;\n    }\nLAB_0013197e:\n    if (lVar17 != 0) {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }\n    if ((bVar43) && (uVar35 == 0)) {\n      if (uVar11 == 0) goto LAB_00133358;\n      if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }\n      lVar17 = FUN_0012d560(param_1,4,1);\n    }\n    else {\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }\n    break;\n  case 0x73:\n  case 0x75:\n    uVar8 = FUN_0012e630(param_4,0,param_6);\n    pbVar40 = (byte *)*param_4;\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    local_f8 = 0;\n    if (*pbVar40 == 0x21) {\n      *param_4 = (ulong)(pbVar40 + 1);\n      uVar39 = FUN_0012e630(param_4,0,param_6);\n      if (*(char *)*param_4 != ',') goto LAB_00132126;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);\n      if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }\n      pbVar40 = (byte *)*param_4;\n      *(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;\n      if (param_6 <= pbVar40) {\n        return 0;\n      }\n    }\n    uVar35 = 0;\n    local_130 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    bVar43 = false;\n    bVar3 = *pbVar34;\n    local_138._0_4_ = 10;\n    while (bVar3 != 0x3b) {\n      uVar39 = (int)uVar35 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }\n      if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }\n      pbVar34 = (byte *)*param_4;\n      uVar35 = (ulong)uVar39;\n      bVar3 = *pbVar34;\n    }\n    *(undefined8 *)((long)local_130 + uVar35 * 8) = 0;\n    if (param_6 <= pbVar34) goto LAB_00131328;\n    bVar3 = *pbVar34;\n    if (bVar3 == 0x3b) {\n      local_108 = 0;\nLAB_001334bc:\n      pbVar22 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar22;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }\n    if (*pbVar22 == 0x7e) {\n      pbVar40 = pbVar22 + 1;\n      *param_4 = (ulong)pbVar40;\n      if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *param_4 = (ulong)(pbVar40 + 1);\n      iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n      if (iVar5 == 0) goto LAB_00131328;\n      if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }\n      if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;\n      uVar14 = 1;\n      lVar17 = 0;\n    }\n    else {\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }\n    lVar17 = FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14);\n    break;\n  case 0x78:\n    bVar47 = pbVar22[1];\n    if (bVar47 == 0x65) {\n      uVar32 = 0xb;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }\nLAB_00131e0e:\n    pbVar40 = pbVar40 + 1;\n    *param_4 = (ulong)pbVar40;\n    pcVar15 = strchr((char *)pbVar40,0x3c);\n    pcVar16 = strchr((char *)pbVar40,0x3a);\n    if (pcVar16 != (char *)0x0) {\n      if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }\n      cVar4 = *pcVar15;\n      if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }\n    }\nswitchD_001311d2_caseD_24:\n    FUN_0012e570(pbVar34);\n    return 0;\n  }" { (case_statement "case 0x23:\n    if (pbVar22[1] == 0x23) {\n      *param_4 = (ulong)(pbVar22 + 2);\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);\n    }\n    else {\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }\n    break;" case number_literal : (if_statement "if (pbVar22[1] == 0x23) {\n      *param_4 = (ulong)(pbVar22 + 2);\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);\n    }\n    else {\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }" if (parenthesized_expression "(pbVar22[1] == 0x23)" ( (binary_expression "pbVar22[1] == 0x23" (subscript_expression "pbVar22[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      *param_4 = (ulong)(pbVar22 + 2);\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);\n    }" { (expression_statement "*param_4 = (ulong)(pbVar22 + 2);" (assignment_expression "*param_4 = (ulong)(pbVar22 + 2)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pbVar22 + 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pbVar22 + 2)" ( (binary_expression "pbVar22 + 2" identifier + number_literal) )))) ;) (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (if_statement "if (lVar17 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;" if (parenthesized_expression "(*(char *)*param_4 != ';')" ( (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "';'" ' character ')) )) (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);" (assignment_expression "lVar17 = FUN_0012d940(param_1,lVar17,0,0,0)" identifier = (call_expression "FUN_0012d940(param_1,lVar17,0,0,0)" identifier (argument_list "(param_1,lVar17,0,0,0)" ( identifier , identifier , number_literal , number_literal , number_literal )))) ;) }) (else_clause "else {\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }" else (compound_statement "{\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }" { (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (if_statement "if (lVar17 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;" if (parenthesized_expression "(*(char *)*param_4 != ',')" ( (binary_expression "*(char *)*param_4 != ','" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "','" ' character ')) )) (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (if_statement "if (lVar18 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar11 = 10;" (assignment_expression "uVar11 = 10" identifier = number_literal) ;) (expression_statement "puVar19 = (undefined8 *)xmalloc(0x50);" (assignment_expression "puVar19 = (undefined8 *)xmalloc(0x50)" identifier = (cast_expression "(undefined8 *)xmalloc(0x50)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (while_statement "while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }" while (parenthesized_expression "( true )" ( true )) (compound_statement "{\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }" { (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "iVar5 = (int)uVar35;" (assignment_expression "iVar5 = (int)uVar35" identifier = (cast_expression "(int)uVar35" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (if_statement "if (*pcVar16 == ';') break;" if (parenthesized_expression "(*pcVar16 == ';')" ( (binary_expression "*pcVar16 == ';'" (pointer_expression "*pcVar16" * identifier) == (char_literal "';'" ' character ')) )) (break_statement "break;" break ;)) (if_statement "if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }" if (parenthesized_expression "(*pcVar16 != ',')" ( (binary_expression "*pcVar16 != ','" (pointer_expression "*pcVar16" * identifier) != (char_literal "','" ' character ')) )) (compound_statement "{\n          FUN_0012e570(pbVar34);\n          return 0;\n        }" { (expression_statement "FUN_0012e570(pbVar34);" (call_expression "FUN_0012e570(pbVar34)" identifier (argument_list "(pbVar34)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (if_statement "if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }" if (parenthesized_expression "((uint)uVar11 <= iVar5 + 1U)" ( (binary_expression "(uint)uVar11 <= iVar5 + 1U" (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier) <= (binary_expression "iVar5 + 1U" identifier + number_literal)) )) (compound_statement "{\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }" { (expression_statement "uVar11 = (ulong)((uint)uVar11 + 10);" (assignment_expression "uVar11 = (ulong)((uint)uVar11 + 10)" identifier = (call_expression "(ulong)((uint)uVar11 + 10)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((uint)uVar11 + 10)" ( (binary_expression "(uint)uVar11 + 10" (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier) + number_literal) )))) ;) (expression_statement "puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);" (assignment_expression "puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3)" identifier = (cast_expression "(undefined8 *)xrealloc(puVar19,uVar11 << 3)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(puVar19,uVar11 << 3)" identifier (argument_list "(puVar19,uVar11 << 3)" ( identifier , (binary_expression "uVar11 << 3" identifier << number_literal) ))))) ;) })) (expression_statement "plVar10 = puVar19 + uVar35;" (assignment_expression "plVar10 = puVar19 + uVar35" identifier = (binary_expression "puVar19 + uVar35" identifier + identifier)) ;) (expression_statement "lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "uVar35 = (ulong)(iVar5 + 1U);" (assignment_expression "uVar35 = (ulong)(iVar5 + 1U)" identifier = (call_expression "(ulong)(iVar5 + 1U)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(iVar5 + 1U)" ( (binary_expression "iVar5 + 1U" identifier + number_literal) )))) ;) (expression_statement "*plVar10 = lVar13;" (assignment_expression "*plVar10 = lVar13" (pointer_expression "*plVar10" * identifier) = identifier) ;) (if_statement "if (lVar13 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (expression_statement "puVar36 = puVar19;" (assignment_expression "puVar36 = puVar19" identifier = identifier) ;) (if_statement "if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }" { (expression_statement "puVar36 = puVar19 + (iVar5 - 1);" (assignment_expression "puVar36 = puVar19 + (iVar5 - 1)" identifier = (binary_expression "puVar19 + (iVar5 - 1)" identifier + (parenthesized_expression "(iVar5 - 1)" ( (binary_expression "iVar5 - 1" identifier - number_literal) )))) ;) (expression_statement "iVar5 = FUN_0012e080(param_1,*puVar36);" (assignment_expression "iVar5 = FUN_0012e080(param_1,*puVar36)" identifier = (call_expression "FUN_0012e080(param_1,*puVar36)" identifier (argument_list "(param_1,*puVar36)" ( identifier , (pointer_expression "*puVar36" * identifier) )))) ;) (if_statement "if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }" if (parenthesized_expression "(iVar5 == 2)" ( (binary_expression "iVar5 == 2" identifier == number_literal) )) (compound_statement "{\n          uVar8 = 0;\n        }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n          puVar36 = puVar19 + uVar35;\n        }" else (compound_statement "{\n          puVar36 = puVar19 + uVar35;\n        }" { (expression_statement "puVar36 = puVar19 + uVar35;" (assignment_expression "puVar36 = puVar19 + uVar35" identifier = (binary_expression "puVar19 + uVar35" identifier + identifier)) ;) }))) })) (expression_statement "*puVar36 = 0;" (assignment_expression "*puVar36 = 0" (pointer_expression "*puVar36" * identifier) = number_literal) ;) (expression_statement "lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);" (assignment_expression "lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8)" identifier = (call_expression "FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8)" identifier (argument_list "(param_1,lVar18,lVar17,puVar19,uVar8)" ( identifier , identifier , identifier , identifier , identifier )))) ;) }))) (break_statement "break;" break ;)) (case_statement "default:\n    goto switchD_001311d2_caseD_24;" default : (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;)) (case_statement "case 0x26:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d760(param_1,uVar8);\n    break;" case number_literal : (expression_statement "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "lVar17 = FUN_0012d760(param_1,uVar8);" (assignment_expression "lVar17 = FUN_0012d760(param_1,uVar8)" identifier = (call_expression "FUN_0012d760(param_1,uVar8)" identifier (argument_list "(param_1,uVar8)" ( identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x28:" case number_literal :) (case_statement "case 0x2d:" case number_literal :) (case_statement "case 0x30:" case number_literal :) (case_statement "case 0x31:" case number_literal :) (case_statement "case 0x32:" case number_literal :) (case_statement "case 0x33:" case number_literal :) (case_statement "case 0x34:" case number_literal :) (case_statement "case 0x35:" case number_literal :) (case_statement "case 0x36:" case number_literal :) (case_statement "case 0x37:" case number_literal :) (case_statement "case 0x38:" case number_literal :) (case_statement "case 0x39:\n    *param_4 = (ulong)pbVar22;\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    if ((uint)local_70 == (uint)local_68) {\n      if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;\n      lVar17 = FUN_0012d550(param_1);\n    }\n    else {\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    break;" case number_literal : (expression_statement "*param_4 = (ulong)pbVar22;" (assignment_expression "*param_4 = (ulong)pbVar22" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar22" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);" (assignment_expression "iVar5 = FUN_0012e6c0(param_4,&local_68,param_6)" identifier = (call_expression "FUN_0012e6c0(param_4,&local_68,param_6)" identifier (argument_list "(param_4,&local_68,param_6)" ( identifier , (pointer_expression "&local_68" & identifier) , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if ((uint)local_70 == (uint)local_68) {\n      if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;\n      lVar17 = FUN_0012d550(param_1);\n    }\n    else {\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }" if (parenthesized_expression "((uint)local_70 == (uint)local_68)" ( (binary_expression "(uint)local_70 == (uint)local_68" (cast_expression "(uint)local_70" ( (type_descriptor "uint" type_identifier) ) identifier) == (cast_expression "(uint)local_68" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n      if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;\n      lVar17 = FUN_0012d550(param_1);\n    }" { (if_statement "if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;" if (parenthesized_expression "(local_70._4_4_ != local_68._4_4_)" ( (binary_expression "local_70._4_4_ != local_68._4_4_" (field_expression "local_70._4_4_" identifier . field_identifier) != (field_expression "local_68._4_4_" identifier . field_identifier)) )) (goto_statement "goto LAB_00132079;" goto statement_identifier ;)) (expression_statement "lVar17 = FUN_0012d550(param_1);" (assignment_expression "lVar17 = FUN_0012d550(param_1)" identifier = (call_expression "FUN_0012d550(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;) }) (else_clause "else {\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }" else (compound_statement "{\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }" { (labeled_statement "LAB_00132079:\n      *param_4 = (ulong)pbVar22;" statement_identifier : (expression_statement "*param_4 = (ulong)pbVar22;" (assignment_expression "*param_4 = (ulong)pbVar22" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar22" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;)) (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (if_statement "if (lVar17 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) }))) (if_statement "if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }" if (parenthesized_expression "((uint)local_70 != -1)" ( (binary_expression "(uint)local_70 != -1" (cast_expression "(uint)local_70" ( (type_descriptor "uint" type_identifier) ) identifier) != number_literal) )) (compound_statement "{\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }" { (expression_statement "plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);" (assignment_expression "plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70)" identifier = (cast_expression "(long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70)" identifier (argument_list "(param_2 + 0x80,param_2 + 0x88,&local_70)" ( (binary_expression "param_2 + 0x80" identifier + number_literal) , (binary_expression "param_2 + 0x88" identifier + number_literal) , (pointer_expression "&local_70" & identifier) ))))) ;) (if_statement "if (plVar10 == (long *)0x0) {\n        return 0;\n      }" if (parenthesized_expression "(plVar10 == (long *)0x0)" ( (binary_expression "plVar10 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "*plVar10 = lVar17;" (assignment_expression "*plVar10 = lVar17" (pointer_expression "*plVar10" * identifier) = identifier) ;) })) (break_statement "break;" break ;)) (case_statement "case 0x2a:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6b0(param_1,uVar8);\n    break;" case number_literal : (expression_statement "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "lVar17 = FUN_0012d6b0(param_1,uVar8);" (assignment_expression "lVar17 = FUN_0012d6b0(param_1,uVar8)" identifier = (call_expression "FUN_0012d6b0(param_1,uVar8)" identifier (argument_list "(param_1,uVar8)" ( identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x40:\nswitchD_001311d2_caseD_40:\n    lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar17 == 0) {\n      return 0;\n    }\n    if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar18 == 0) {\n      return 0;\n    }\n    lVar17 = FUN_0012d8e0(param_1,lVar17,lVar18);\n    break;" case number_literal : (labeled_statement "switchD_001311d2_caseD_40:\n    lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" statement_identifier : (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;)) (if_statement "if (lVar17 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;" if (parenthesized_expression "(*(char *)*param_4 != ',')" ( (binary_expression "*(char *)*param_4 != ','" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "','" ' character ')) )) (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (if_statement "if (lVar18 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar17 = FUN_0012d8e0(param_1,lVar17,lVar18);" (assignment_expression "lVar17 = FUN_0012d8e0(param_1,lVar17,lVar18)" identifier = (call_expression "FUN_0012d8e0(param_1,lVar17,lVar18)" identifier (argument_list "(param_1,lVar17,lVar18)" ( identifier , identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x42:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9e0(param_1,uVar8);\n    break;" case number_literal : (expression_statement "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "lVar17 = FUN_0012d9e0(param_1,uVar8);" (assignment_expression "lVar17 = FUN_0012d9e0(param_1,uVar8)" identifier = (call_expression "FUN_0012d9e0(param_1,uVar8)" identifier (argument_list "(param_1,uVar8)" ( identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x52:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    lVar17 = FUN_0012e630(param_4,0,param_6);\n    if ((*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')) goto LAB_00132126;\n    if (lVar17 - 3U < 3) {\n      lVar17 = FUN_0012d5a0(param_1,uVar8);\n    }\n    else {\n      lVar17 = FUN_0012d580();\n    }\n    break;" case number_literal : (if_statement "if (param_6 <= pbVar40) {\n      return 0;\n    }" if (parenthesized_expression "(param_6 <= pbVar40)" ( (binary_expression "param_6 <= pbVar40" identifier <= identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar17 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "lVar17 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) ;) (if_statement "if ((*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')) goto LAB_00132126;" if (parenthesized_expression "((*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';'))" ( (binary_expression "(*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')" (parenthesized_expression "(*(char *)*param_4 != ';')" ( (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "';'" ' character ')) )) || (parenthesized_expression "(uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')" ( (comma_expression "uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';'" (assignment_expression "uVar8 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) , (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "';'" ' character '))) ))) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (if_statement "if (lVar17 - 3U < 3) {\n      lVar17 = FUN_0012d5a0(param_1,uVar8);\n    }\n    else {\n      lVar17 = FUN_0012d580();\n    }" if (parenthesized_expression "(lVar17 - 3U < 3)" ( (binary_expression "lVar17 - 3U < 3" (binary_expression "lVar17 - 3U" identifier - number_literal) < number_literal) )) (compound_statement "{\n      lVar17 = FUN_0012d5a0(param_1,uVar8);\n    }" { (expression_statement "lVar17 = FUN_0012d5a0(param_1,uVar8);" (assignment_expression "lVar17 = FUN_0012d5a0(param_1,uVar8)" identifier = (call_expression "FUN_0012d5a0(param_1,uVar8)" identifier (argument_list "(param_1,uVar8)" ( identifier , identifier )))) ;) }) (else_clause "else {\n      lVar17 = FUN_0012d580();\n    }" else (compound_statement "{\n      lVar17 = FUN_0012d580();\n    }" { (expression_statement "lVar17 = FUN_0012d580();" (assignment_expression "lVar17 = FUN_0012d580()" identifier = (call_expression "FUN_0012d580()" identifier (argument_list "()" ( )))) ;) }))) (break_statement "break;" break ;)) (case_statement "case 0x53:\n    uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d880(param_1,uVar14,uVar8);\n    break;" case number_literal : (expression_statement "uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "lVar17 = FUN_0012d880(param_1,uVar14,uVar8);" (assignment_expression "lVar17 = FUN_0012d880(param_1,uVar14,uVar8)" identifier = (call_expression "FUN_0012d880(param_1,uVar14,uVar8)" identifier (argument_list "(param_1,uVar14,uVar8)" ( identifier , identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x61:\n    if (pbVar22[1] == 0x72) {\n      pbVar22 = pbVar22 + 2;\n      *param_4 = (ulong)pbVar22;\n      if (param_6 <= pbVar22) {\n        return 0;\n      }\n      local_78 = pbVar22;\n      iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }\n      if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }\n      FUN_0012e570(pbVar22);\n      return 0;\n    }\n    goto switchD_001311d2_caseD_24;" case number_literal : (if_statement "if (pbVar22[1] == 0x72) {\n      pbVar22 = pbVar22 + 2;\n      *param_4 = (ulong)pbVar22;\n      if (param_6 <= pbVar22) {\n        return 0;\n      }\n      local_78 = pbVar22;\n      iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }\n      if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }\n      FUN_0012e570(pbVar22);\n      return 0;\n    }" if (parenthesized_expression "(pbVar22[1] == 0x72)" ( (binary_expression "pbVar22[1] == 0x72" (subscript_expression "pbVar22[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      pbVar22 = pbVar22 + 2;\n      *param_4 = (ulong)pbVar22;\n      if (param_6 <= pbVar22) {\n        return 0;\n      }\n      local_78 = pbVar22;\n      iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }\n      if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }\n      FUN_0012e570(pbVar22);\n      return 0;\n    }" { (expression_statement "pbVar22 = pbVar22 + 2;" (assignment_expression "pbVar22 = pbVar22 + 2" identifier = (binary_expression "pbVar22 + 2" identifier + number_literal)) ;) (expression_statement "*param_4 = (ulong)pbVar22;" (assignment_expression "*param_4 = (ulong)pbVar22" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar22" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (param_6 <= pbVar22) {\n        return 0;\n      }" if (parenthesized_expression "(param_6 <= pbVar22)" ( (binary_expression "param_6 <= pbVar22" identifier <= identifier) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_78 = pbVar22;" (assignment_expression "local_78 = pbVar22" identifier = identifier) ;) (expression_statement "iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);" (assignment_expression "iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6)" identifier = (call_expression "FUN_0012e6c0(&local_78,&local_68,param_6)" identifier (argument_list "(&local_78,&local_68,param_6)" ( (pointer_expression "&local_78" & identifier) , (pointer_expression "&local_68" & identifier) , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }" if (parenthesized_expression "(((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '='))" ( (binary_expression "((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')" (parenthesized_expression "((uint)local_68 == 0 && local_68._4_4_ == 0)" ( (binary_expression "(uint)local_68 == 0 && local_68._4_4_ == 0" (binary_expression "(uint)local_68 == 0" (cast_expression "(uint)local_68" ( (type_descriptor "uint" type_identifier) ) identifier) == number_literal) && (binary_expression "local_68._4_4_ == 0" (field_expression "local_68._4_4_" identifier . field_identifier) == number_literal)) )) && (parenthesized_expression "(*(char *)*param_4 != '=')" ( (binary_expression "*(char *)*param_4 != '='" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "'='" ' character ')) ))) )) (compound_statement "{\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }" { (expression_statement "lVar17 = FUN_0012dec0(param_1,"int");" (assignment_expression "lVar17 = FUN_0012dec0(param_1,"int")" identifier = (call_expression "FUN_0012dec0(param_1,"int")" identifier (argument_list "(param_1,"int")" ( identifier , (string_literal ""int"" " string_content ") )))) ;) (if_statement "if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }" if (parenthesized_expression "((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0))" ( (binary_expression "(lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)" (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) && (parenthesized_expression "(lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)" ( (comma_expression "lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0" (assignment_expression "lVar17 = FUN_0012d560(param_1,4,0)" identifier = (call_expression "FUN_0012d560(param_1,4,0)" identifier (argument_list "(param_1,4,0)" ( identifier , number_literal , number_literal )))) , (binary_expression "lVar17 == 0" identifier == number_literal)) ))) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "*param_4 = (ulong)local_78;" (assignment_expression "*param_4 = (ulong)local_78" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)local_78" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "pbVar34 = local_78;" (assignment_expression "pbVar34 = local_78" identifier = identifier) ;) }) (else_clause "else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }" else (compound_statement "{\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }" { (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) }))) (if_statement "if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }" if (parenthesized_expression "(*pbVar34 == 0x3b)" ( (binary_expression "*pbVar34 == 0x3b" (pointer_expression "*pbVar34" * identifier) == number_literal) )) (compound_statement "{\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }" { (expression_statement "*param_4 = (ulong)(pbVar34 + 1);" (assignment_expression "*param_4 = (ulong)(pbVar34 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pbVar34 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pbVar34 + 1)" ( (binary_expression "pbVar34 + 1" identifier + number_literal) )))) ;) (expression_statement "bVar47 = pbVar34[1];" (assignment_expression "bVar47 = pbVar34[1]" identifier = (subscript_expression "pbVar34[1]" identifier [ number_literal ])) ;) (if_statement "if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }" if (parenthesized_expression "(((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d))" ( (binary_expression "((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)" (parenthesized_expression "((_sch_istable[(ulong)bVar47 * 2] & 4) == 0)" ( (binary_expression "(_sch_istable[(ulong)bVar47 * 2] & 4) == 0" (parenthesized_expression "(_sch_istable[(ulong)bVar47 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)bVar47 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar47 * 2]" identifier [ (binary_expression "(ulong)bVar47 * 2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "(bVar47 != 0 && bVar47 != 0x2d)" ( (binary_expression "bVar47 != 0 && bVar47 != 0x2d" (binary_expression "bVar47 != 0" identifier != number_literal) && (binary_expression "bVar47 != 0x2d" identifier != number_literal)) ))) )) (compound_statement "{\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }" { (expression_statement "bVar43 = true;" (assignment_expression "bVar43 = true" identifier = true) ;) (expression_statement "*param_4 = (ulong)(pbVar34 + 2);" (assignment_expression "*param_4 = (ulong)(pbVar34 + 2)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pbVar34 + 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pbVar34 + 2)" ( (binary_expression "pbVar34 + 2" identifier + number_literal) )))) ;) }) (else_clause "else {\n          bVar43 = false;\n        }" else (compound_statement "{\n          bVar43 = false;\n        }" { (expression_statement "bVar43 = false;" (assignment_expression "bVar43 = false" identifier = false) ;) }))) (expression_statement "uVar14 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar14 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) ;) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (if_statement "if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }" if (parenthesized_expression "(*pcVar16 == ';')" ( (binary_expression "*pcVar16 == ';'" (pointer_expression "*pcVar16" * identifier) == (char_literal "';'" ' character ')) )) (compound_statement "{\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }" { (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (expression_statement "bVar47 = pcVar16[1];" (assignment_expression "bVar47 = pcVar16[1]" identifier = (subscript_expression "pcVar16[1]" identifier [ number_literal ])) ;) (if_statement "if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }" if (parenthesized_expression "(((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0))" ( (binary_expression "((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)" (parenthesized_expression "((_sch_istable[(ulong)bVar47 * 2] & 4) == 0)" ( (binary_expression "(_sch_istable[(ulong)bVar47 * 2] & 4) == 0" (parenthesized_expression "(_sch_istable[(ulong)bVar47 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)bVar47 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar47 * 2]" identifier [ (binary_expression "(ulong)bVar47 * 2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "(bVar47 != 0x2d && bVar47 != 0)" ( (binary_expression "bVar47 != 0x2d && bVar47 != 0" (binary_expression "bVar47 != 0x2d" identifier != number_literal) && (binary_expression "bVar47 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }" { (expression_statement "bVar43 = true;" (assignment_expression "bVar43 = true" identifier = true) ;) (expression_statement "*param_4 = (ulong)(pcVar16 + 2);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 2)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 2)" ( (binary_expression "pcVar16 + 2" identifier + number_literal) )))) ;) })) (expression_statement "uVar9 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar9 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }" if (parenthesized_expression "(*(char *)*param_4 == ';')" ( (binary_expression "*(char *)*param_4 == ';'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) == (char_literal "';'" ' character ')) )) (compound_statement "{\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }" { (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (if_statement "if (lVar18 == 0) {\n              return 0;\n            }" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (compound_statement "{\n              return 0;\n            }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" identifier = number_literal) ;) (expression_statement "uVar2 = 0xffffffffffffffff;" (assignment_expression "uVar2 = 0xffffffffffffffff" identifier = number_literal) ;) (if_statement "if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }" if (parenthesized_expression "(!bVar43)" ( (unary_expression "!bVar43" ! identifier) )) (compound_statement "{\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }" { (expression_statement "uVar25 = uVar14;" (assignment_expression "uVar25 = uVar14" identifier = identifier) ;) (expression_statement "uVar2 = uVar9;" (assignment_expression "uVar2 = uVar9" identifier = identifier) ;) })) (expression_statement "lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);" (assignment_expression "lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8)" identifier = (call_expression "FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8)" identifier (argument_list "(param_1,lVar18,lVar17,uVar25,uVar2,uVar8)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (break_statement "break;" break ;) })) })) })) (expression_statement "FUN_0012e570(pbVar22);" (call_expression "FUN_0012e570(pbVar22)" identifier (argument_list "(pbVar22)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;)) (case_statement "case 0x62:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    if (pbVar22[1] == 0x73) {\n      uVar8 = 0;\n    }\n    else {\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }\n    *param_4 = (ulong)(pbVar22 + 2);\n    if (((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76)) {\n      *param_4 = (ulong)(pbVar22 + 3);\n    }\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    uVar35 = FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 == ';') {\n      *param_4 = (ulong)((char *)*param_4 + 1);\n    }\n    if (uVar35 != 0) {\n      lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);\n      break;\n    }\nLAB_00133358:\n    lVar17 = FUN_0012d550(param_1);\n    break;" case number_literal : (if_statement "if (param_6 <= pbVar40) {\n      return 0;\n    }" if (parenthesized_expression "(param_6 <= pbVar40)" ( (binary_expression "param_6 <= pbVar40" identifier <= identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (pbVar22[1] == 0x73) {\n      uVar8 = 0;\n    }\n    else {\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }" if (parenthesized_expression "(pbVar22[1] == 0x73)" ( (binary_expression "pbVar22[1] == 0x73" (subscript_expression "pbVar22[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      uVar8 = 0;\n    }" { (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }" else (compound_statement "{\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }" { (if_statement "if (pbVar22[1] != 0x75) goto LAB_00132126;" if (parenthesized_expression "(pbVar22[1] != 0x75)" ( (binary_expression "pbVar22[1] != 0x75" (subscript_expression "pbVar22[1]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" identifier = number_literal) ;) }))) (expression_statement "*param_4 = (ulong)(pbVar22 + 2);" (assignment_expression "*param_4 = (ulong)(pbVar22 + 2)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pbVar22 + 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pbVar22 + 2)" ( (binary_expression "pbVar22 + 2" identifier + number_literal) )))) ;) (if_statement "if (((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76)) {\n      *param_4 = (ulong)(pbVar22 + 3);\n    }" if (parenthesized_expression "(((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76))" ( (binary_expression "((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76)" (parenthesized_expression "((byte)(pbVar22[2] + 0x9e) < 2)" ( (binary_expression "(byte)(pbVar22[2] + 0x9e) < 2" (call_expression "(byte)(pbVar22[2] + 0x9e)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(pbVar22[2] + 0x9e)" ( (binary_expression "pbVar22[2] + 0x9e" (subscript_expression "pbVar22[2]" identifier [ number_literal ]) + number_literal) ))) < number_literal) )) || (parenthesized_expression "(pbVar22[2] == 0x76)" ( (binary_expression "pbVar22[2] == 0x76" (subscript_expression "pbVar22[2]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n      *param_4 = (ulong)(pbVar22 + 3);\n    }" { (expression_statement "*param_4 = (ulong)(pbVar22 + 3);" (assignment_expression "*param_4 = (ulong)(pbVar22 + 3)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pbVar22 + 3)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pbVar22 + 3)" ( (binary_expression "pbVar22 + 3" identifier + number_literal) )))) ;) })) (expression_statement "FUN_0012e630(param_4,0,param_6);" (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (*(char *)*param_4 != ';') goto LAB_00132126;" if (parenthesized_expression "(*(char *)*param_4 != ';')" ( (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "FUN_0012e630(param_4,0,param_6);" (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier ))) ;) (if_statement "if (*(char *)*param_4 != ';') goto LAB_00132126;" if (parenthesized_expression "(*(char *)*param_4 != ';')" ( (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "uVar35 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar35 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (*(char *)*param_4 == ';') {\n      *param_4 = (ulong)((char *)*param_4 + 1);\n    }" if (parenthesized_expression "(*(char *)*param_4 == ';')" ( (binary_expression "*(char *)*param_4 == ';'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) == (char_literal "';'" ' character ')) )) (compound_statement "{\n      *param_4 = (ulong)((char *)*param_4 + 1);\n    }" { (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) })) (if_statement "if (uVar35 != 0) {\n      lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);\n      break;\n    }" if (parenthesized_expression "(uVar35 != 0)" ( (binary_expression "uVar35 != 0" identifier != number_literal) )) (compound_statement "{\n      lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);\n      break;\n    }" { (expression_statement "lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);" (assignment_expression "lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8)" identifier = (call_expression "FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8)" identifier (argument_list "(param_1,uVar35 >> 3 & 0xffffffff,uVar8)" ( identifier , (binary_expression "uVar35 >> 3 & 0xffffffff" (binary_expression "uVar35 >> 3" identifier >> number_literal) & number_literal) , identifier )))) ;) (break_statement "break;" break ;) })) (labeled_statement "LAB_00133358:\n    lVar17 = FUN_0012d550(param_1);" statement_identifier : (expression_statement "lVar17 = FUN_0012d550(param_1);" (assignment_expression "lVar17 = FUN_0012d550(param_1)" identifier = (call_expression "FUN_0012d550(param_1)" identifier (argument_list "(param_1)" ( identifier )))) ;)) (break_statement "break;" break ;)) (case_statement "case 0x65:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    pbVar34 = pbVar40;\n    if (pbVar22[1] == 0x2d) {\n      do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *param_4 = (ulong)(pbVar22 + 2);\n    }\n    local_148 = (void *)xmalloc(0x50);\n    pvVar12 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    uVar35 = (ulong)*pbVar34;\n    if ((*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }\n    *(undefined8 *)((long)local_148 + uVar28 * 8) = 0;\n    pcVar16 = (char *)*param_4;\n    *(undefined8 *)((long)pvVar12 + uVar28 * 8) = 0;\n    if (*pcVar16 == ';') {\n      *param_4 = (ulong)(pcVar16 + 1);\n    }\n    lVar17 = FUN_0012d670(param_1,local_148,pvVar12);\n    break;" case number_literal : (if_statement "if (param_6 <= pbVar40) {\n      return 0;\n    }" if (parenthesized_expression "(param_6 <= pbVar40)" ( (binary_expression "param_6 <= pbVar40" identifier <= identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pbVar34 = pbVar40;" (assignment_expression "pbVar34 = pbVar40" identifier = identifier) ;) (if_statement "if (pbVar22[1] == 0x2d) {\n      do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *param_4 = (ulong)(pbVar22 + 2);\n    }" if (parenthesized_expression "(pbVar22[1] == 0x2d)" ( (binary_expression "pbVar22[1] == 0x2d" (subscript_expression "pbVar22[1]" identifier [ number_literal ]) == number_literal) )) (compound_statement "{\n      do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *param_4 = (ulong)(pbVar22 + 2);\n    }" { (do_statement "do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);" do (compound_statement "{\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      }" { (expression_statement "pbVar22 = pbVar34;" (assignment_expression "pbVar22 = pbVar34" identifier = identifier) ;) (expression_statement "*param_4 = (ulong)(pbVar22 + 1);" (assignment_expression "*param_4 = (ulong)(pbVar22 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pbVar22 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pbVar22 + 1)" ( (binary_expression "pbVar22 + 1" identifier + number_literal) )))) ;) (expression_statement "bVar47 = pbVar22[1];" (assignment_expression "bVar47 = pbVar22[1]" identifier = (subscript_expression "pbVar22[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar47 == 0x3a) break;" if (parenthesized_expression "(bVar47 == 0x3a)" ( (binary_expression "bVar47 == 0x3a" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "pbVar34 = pbVar22 + 1;" (assignment_expression "pbVar34 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(bVar47 != 0)" ( (binary_expression "bVar47 != 0" identifier != number_literal) )) ;) (if_statement "if (bVar47 == 0) goto LAB_00132126;" if (parenthesized_expression "(bVar47 == 0)" ( (binary_expression "bVar47 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)(pbVar22 + 2);" (assignment_expression "*param_4 = (ulong)(pbVar22 + 2)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pbVar22 + 2)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pbVar22 + 2)" ( (binary_expression "pbVar22 + 2" identifier + number_literal) )))) ;) })) (expression_statement "local_148 = (void *)xmalloc(0x50);" (assignment_expression "local_148 = (void *)xmalloc(0x50)" identifier = (cast_expression "(void *)xmalloc(0x50)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "pvVar12 = (void *)xmalloc(0x50);" (assignment_expression "pvVar12 = (void *)xmalloc(0x50)" identifier = (cast_expression "(void *)xmalloc(0x50)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "uVar35 = (ulong)*pbVar34;" (assignment_expression "uVar35 = (ulong)*pbVar34" identifier = (binary_expression "(ulong)*pbVar34" (parenthesized_expression "(ulong)" ( identifier )) * identifier)) ;) (if_statement "if ((*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }" if (parenthesized_expression "((*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0))" ( (binary_expression "(*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)" (parenthesized_expression "(*pbVar34 < 0x3c)" ( (binary_expression "*pbVar34 < 0x3c" (pointer_expression "*pbVar34" * identifier) < number_literal) )) && (parenthesized_expression "((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)" ( (binary_expression "(0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0" (parenthesized_expression "(0x800100000000001U >> (uVar35 & 0x3f) & 1)" ( (binary_expression "0x800100000000001U >> (uVar35 & 0x3f) & 1" (binary_expression "0x800100000000001U >> (uVar35 & 0x3f)" number_literal >> (parenthesized_expression "(uVar35 & 0x3f)" ( (binary_expression "uVar35 & 0x3f" identifier & number_literal) ))) & number_literal) )) != number_literal) ))) )) (compound_statement "{\n      uVar28 = 0;\n    }" { (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" identifier = number_literal) ;) }) (else_clause "else {\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }" else (compound_statement "{\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }" { (expression_statement "uVar11 = 10;" (assignment_expression "uVar11 = 10" identifier = number_literal) ;) (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" identifier = number_literal) ;) (do_statement "do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));" do (compound_statement "{\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      }" { (expression_statement "bVar47 = (byte)uVar35;" (assignment_expression "bVar47 = (byte)uVar35" identifier = (cast_expression "(byte)uVar35" ( (type_descriptor "byte" type_identifier) ) identifier)) ;) (expression_statement "pbVar22 = pbVar34;" (assignment_expression "pbVar22 = pbVar34" identifier = identifier) ;) (while_statement "while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }" while (parenthesized_expression "((bVar47 != 0x3a && (bVar47 != 0)))" ( (parenthesized_expression "(bVar47 != 0x3a && (bVar47 != 0))" ( (binary_expression "bVar47 != 0x3a && (bVar47 != 0)" (binary_expression "bVar47 != 0x3a" identifier != number_literal) && (parenthesized_expression "(bVar47 != 0)" ( (binary_expression "bVar47 != 0" identifier != number_literal) ))) )) )) (compound_statement "{\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }" { (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "bVar47 = *pbVar22;" (assignment_expression "bVar47 = *pbVar22" identifier = (pointer_expression "*pbVar22" * identifier)) ;) })) (if_statement "if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }" if (parenthesized_expression "(bVar47 == 0)" ( (binary_expression "bVar47 == 0" identifier == number_literal) )) (compound_statement "{\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }" { (expression_statement "FUN_0012e570(pbVar40);" (call_expression "FUN_0012e570(pbVar40)" identifier (argument_list "(pbVar40)" ( identifier ))) ;) (labeled_statement "LAB_00132cf2:\n          free(local_148);" statement_identifier : (expression_statement "free(local_148);" (call_expression "free(local_148)" identifier (argument_list "(local_148)" ( identifier ))) ;)) (expression_statement "free(pvVar12);" (call_expression "free(pvVar12)" identifier (argument_list "(pvVar12)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "__ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);" (assignment_expression "__ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34)" identifier = (cast_expression "(void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34)" identifier (argument_list "(pbVar34,(long)pbVar22 - (long)pbVar34)" ( identifier , (binary_expression "(long)pbVar22 - (long)pbVar34" (cast_expression "(long)pbVar22" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar34" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))))) ;) (expression_statement "*param_4 = (ulong)(pbVar22 + 1);" (assignment_expression "*param_4 = (ulong)(pbVar22 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pbVar22 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pbVar22 + 1)" ( (binary_expression "pbVar22 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar8 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar8 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }" if (parenthesized_expression "(*(char *)*param_4 != ',')" ( (binary_expression "*(char *)*param_4 != ','" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "','" ' character ')) )) (compound_statement "{\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }" { (expression_statement "FUN_0012e570(pbVar40);" (call_expression "FUN_0012e570(pbVar40)" identifier (argument_list "(pbVar40)" ( identifier ))) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (goto_statement "goto LAB_00132cf2;" goto statement_identifier ;) })) (expression_statement "uVar7 = uVar39 + 1;" (assignment_expression "uVar7 = uVar39 + 1" identifier = (binary_expression "uVar39 + 1" identifier + number_literal)) ;) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (if_statement "if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }" if (parenthesized_expression "((uint)uVar11 <= uVar7)" ( (binary_expression "(uint)uVar11 <= uVar7" (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier) <= identifier) )) (compound_statement "{\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }" { (expression_statement "uVar11 = (ulong)((uint)uVar11 + 10);" (assignment_expression "uVar11 = (ulong)((uint)uVar11 + 10)" identifier = (call_expression "(ulong)((uint)uVar11 + 10)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((uint)uVar11 + 10)" ( (binary_expression "(uint)uVar11 + 10" (cast_expression "(uint)uVar11" ( (type_descriptor "uint" type_identifier) ) identifier) + number_literal) )))) ;) (expression_statement "local_148 = (void *)xrealloc(local_148,uVar11 << 3);" (assignment_expression "local_148 = (void *)xrealloc(local_148,uVar11 << 3)" identifier = (cast_expression "(void *)xrealloc(local_148,uVar11 << 3)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(local_148,uVar11 << 3)" identifier (argument_list "(local_148,uVar11 << 3)" ( identifier , (binary_expression "uVar11 << 3" identifier << number_literal) ))))) ;) (expression_statement "pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);" (assignment_expression "pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3)" identifier = (cast_expression "(void *)xrealloc(pvVar12,uVar11 << 3)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(pvVar12,uVar11 << 3)" identifier (argument_list "(pvVar12,uVar11 << 3)" ( identifier , (binary_expression "uVar11 << 3" identifier << number_literal) ))))) ;) })) (expression_statement "uVar28 = (ulong)uVar7;" (assignment_expression "uVar28 = (ulong)uVar7" identifier = (cast_expression "(ulong)uVar7" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "*(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;" (assignment_expression "*(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr" (pointer_expression "*(void **)((long)local_148 + (ulong)uVar39 * 8)" * (cast_expression "(void **)((long)local_148 + (ulong)uVar39 * 8)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((long)local_148 + (ulong)uVar39 * 8)" ( (binary_expression "(long)local_148 + (ulong)uVar39 * 8" (cast_expression "(long)local_148" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)uVar39 * 8" (cast_expression "(ulong)uVar39" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) )))) = identifier) ;) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "*(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;" (assignment_expression "*(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8" (pointer_expression "*(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8)" * (cast_expression "(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar12 + (ulong)uVar39 * 8)" ( (binary_expression "(long)pvVar12 + (ulong)uVar39 * 8" (cast_expression "(long)pvVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)uVar39 * 8" (cast_expression "(ulong)uVar39" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) )))) = identifier) ;) (expression_statement "uVar35 = (ulong)*pbVar34;" (assignment_expression "uVar35 = (ulong)*pbVar34" identifier = (binary_expression "(ulong)*pbVar34" (parenthesized_expression "(ulong)" ( identifier )) * identifier)) ;) (expression_statement "uVar39 = uVar7;" (assignment_expression "uVar39 = uVar7" identifier = identifier) ;) }) while (parenthesized_expression "((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0))" ( (binary_expression "(0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0)" (parenthesized_expression "(0x3b < *pbVar34)" ( (binary_expression "0x3b < *pbVar34" number_literal < (pointer_expression "*pbVar34" * identifier)) )) || (parenthesized_expression "((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0)" ( (binary_expression "(0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0" (parenthesized_expression "(0x800100000000001U >> (uVar35 & 0x3f) & 1)" ( (binary_expression "0x800100000000001U >> (uVar35 & 0x3f) & 1" (binary_expression "0x800100000000001U >> (uVar35 & 0x3f)" number_literal >> (parenthesized_expression "(uVar35 & 0x3f)" ( (binary_expression "uVar35 & 0x3f" identifier & number_literal) ))) & number_literal) )) == number_literal) ))) )) ;) }))) (expression_statement "*(undefined8 *)((long)local_148 + uVar28 * 8) = 0;" (assignment_expression "*(undefined8 *)((long)local_148 + uVar28 * 8) = 0" (pointer_expression "*(undefined8 *)((long)local_148 + uVar28 * 8)" * (cast_expression "(undefined8 *)((long)local_148 + uVar28 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_148 + uVar28 * 8)" ( (binary_expression "(long)local_148 + uVar28 * 8" (cast_expression "(long)local_148" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "uVar28 * 8" identifier * number_literal)) )))) = number_literal) ;) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "*(undefined8 *)((long)pvVar12 + uVar28 * 8) = 0;" (assignment_expression "*(undefined8 *)((long)pvVar12 + uVar28 * 8) = 0" (pointer_expression "*(undefined8 *)((long)pvVar12 + uVar28 * 8)" * (cast_expression "(undefined8 *)((long)pvVar12 + uVar28 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)pvVar12 + uVar28 * 8)" ( (binary_expression "(long)pvVar12 + uVar28 * 8" (cast_expression "(long)pvVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "uVar28 * 8" identifier * number_literal)) )))) = number_literal) ;) (if_statement "if (*pcVar16 == ';') {\n      *param_4 = (ulong)(pcVar16 + 1);\n    }" if (parenthesized_expression "(*pcVar16 == ';')" ( (binary_expression "*pcVar16 == ';'" (pointer_expression "*pcVar16" * identifier) == (char_literal "';'" ' character ')) )) (compound_statement "{\n      *param_4 = (ulong)(pcVar16 + 1);\n    }" { (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) })) (expression_statement "lVar17 = FUN_0012d670(param_1,local_148,pvVar12);" (assignment_expression "lVar17 = FUN_0012d670(param_1,local_148,pvVar12)" identifier = (call_expression "FUN_0012d670(param_1,local_148,pvVar12)" identifier (argument_list "(param_1,local_148,pvVar12)" ( identifier , identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x66:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6f0(param_1,uVar8,0,0);\n    break;" case number_literal : (expression_statement "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "lVar17 = FUN_0012d6f0(param_1,uVar8,0,0);" (assignment_expression "lVar17 = FUN_0012d6f0(param_1,uVar8,0,0)" identifier = (call_expression "FUN_0012d6f0(param_1,uVar8,0,0)" identifier (argument_list "(param_1,uVar8,0,0)" ( identifier , identifier , number_literal , number_literal )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x6b:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9b0(param_1,uVar8);\n    break;" case number_literal : (expression_statement "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "lVar17 = FUN_0012d9b0(param_1,uVar8);" (assignment_expression "lVar17 = FUN_0012d9b0(param_1,uVar8)" identifier = (call_expression "FUN_0012d9b0(param_1,uVar8)" identifier (argument_list "(param_1,uVar8)" ( identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x72:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    bVar43 = false;\n    if ((uint)local_68 == (uint)local_70) {\n      bVar43 = local_68._4_4_ == local_70._4_4_;\n    }\n    pbVar34 = (byte *)*param_4;\n    lVar17 = 0;\n    bVar38 = *pbVar34;\n    if (bVar38 == 0x3d) {\n      *param_4 = (ulong)pbVar40;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      pbVar34 = (byte *)*param_4;\n      bVar38 = *pbVar34;\n    }\n    if (bVar38 == 0x3b) {\n      pbVar34 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar34;\n    }\n    uVar35 = FUN_0012e630(param_4,&local_7c,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    pcVar16 = (char *)*param_4 + 1;\n    *param_4 = (ulong)pcVar16;\n    uVar11 = FUN_0012e630(param_4,&local_78,param_6);\n    iVar5 = local_7c;\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    if (local_7c != 0 || (int)local_78 != 0) {\n      bVar41 = false;\n      bVar44 = lVar17 == 0;\n      if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }\n      lVar18 = 0x18;\n      pbVar22 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }\nLAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);\n      break;\n    }\nLAB_0013197e:\n    if (lVar17 != 0) {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }\n    if ((bVar43) && (uVar35 == 0)) {\n      if (uVar11 == 0) goto LAB_00133358;\n      if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }\n      lVar17 = FUN_0012d560(param_1,4,1);\n    }\n    else {\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }\n    break;" case number_literal : (if_statement "if (param_6 <= pbVar40) {\n      return 0;\n    }" if (parenthesized_expression "(param_6 <= pbVar40)" ( (binary_expression "param_6 <= pbVar40" identifier <= identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);" (assignment_expression "iVar5 = FUN_0012e6c0(param_4,&local_68,param_6)" identifier = (call_expression "FUN_0012e6c0(param_4,&local_68,param_6)" identifier (argument_list "(param_4,&local_68,param_6)" ( identifier , (pointer_expression "&local_68" & identifier) , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar43 = false;" (assignment_expression "bVar43 = false" identifier = false) ;) (if_statement "if ((uint)local_68 == (uint)local_70) {\n      bVar43 = local_68._4_4_ == local_70._4_4_;\n    }" if (parenthesized_expression "((uint)local_68 == (uint)local_70)" ( (binary_expression "(uint)local_68 == (uint)local_70" (cast_expression "(uint)local_68" ( (type_descriptor "uint" type_identifier) ) identifier) == (cast_expression "(uint)local_70" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n      bVar43 = local_68._4_4_ == local_70._4_4_;\n    }" { (expression_statement "bVar43 = local_68._4_4_ == local_70._4_4_;" (assignment_expression "bVar43 = local_68._4_4_ == local_70._4_4_" identifier = (binary_expression "local_68._4_4_ == local_70._4_4_" (field_expression "local_68._4_4_" identifier . field_identifier) == (field_expression "local_70._4_4_" identifier . field_identifier))) ;) })) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "lVar17 = 0;" (assignment_expression "lVar17 = 0" identifier = number_literal) ;) (expression_statement "bVar38 = *pbVar34;" (assignment_expression "bVar38 = *pbVar34" identifier = (pointer_expression "*pbVar34" * identifier)) ;) (if_statement "if (bVar38 == 0x3d) {\n      *param_4 = (ulong)pbVar40;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      pbVar34 = (byte *)*param_4;\n      bVar38 = *pbVar34;\n    }" if (parenthesized_expression "(bVar38 == 0x3d)" ( (binary_expression "bVar38 == 0x3d" identifier == number_literal) )) (compound_statement "{\n      *param_4 = (ulong)pbVar40;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      pbVar34 = (byte *)*param_4;\n      bVar38 = *pbVar34;\n    }" { (expression_statement "*param_4 = (ulong)pbVar40;" (assignment_expression "*param_4 = (ulong)pbVar40" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar40" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (if_statement "if (lVar17 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "bVar38 = *pbVar34;" (assignment_expression "bVar38 = *pbVar34" identifier = (pointer_expression "*pbVar34" * identifier)) ;) })) (if_statement "if (bVar38 == 0x3b) {\n      pbVar34 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar34;\n    }" if (parenthesized_expression "(bVar38 == 0x3b)" ( (binary_expression "bVar38 == 0x3b" identifier == number_literal) )) (compound_statement "{\n      pbVar34 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar34;\n    }" { (expression_statement "pbVar34 = pbVar34 + 1;" (assignment_expression "pbVar34 = pbVar34 + 1" identifier = (binary_expression "pbVar34 + 1" identifier + number_literal)) ;) (expression_statement "*param_4 = (ulong)pbVar34;" (assignment_expression "*param_4 = (ulong)pbVar34" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar34" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) })) (expression_statement "uVar35 = FUN_0012e630(param_4,&local_7c,param_6);" (assignment_expression "uVar35 = FUN_0012e630(param_4,&local_7c,param_6)" identifier = (call_expression "FUN_0012e630(param_4,&local_7c,param_6)" identifier (argument_list "(param_4,&local_7c,param_6)" ( identifier , (pointer_expression "&local_7c" & identifier) , identifier )))) ;) (if_statement "if (*(char *)*param_4 != ';') goto LAB_00132126;" if (parenthesized_expression "(*(char *)*param_4 != ';')" ( (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "pcVar16 = (char *)*param_4 + 1;" (assignment_expression "pcVar16 = (char *)*param_4 + 1" identifier = (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal)) ;) (expression_statement "*param_4 = (ulong)pcVar16;" (assignment_expression "*param_4 = (ulong)pcVar16" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pcVar16" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "uVar11 = FUN_0012e630(param_4,&local_78,param_6);" (assignment_expression "uVar11 = FUN_0012e630(param_4,&local_78,param_6)" identifier = (call_expression "FUN_0012e630(param_4,&local_78,param_6)" identifier (argument_list "(param_4,&local_78,param_6)" ( identifier , (pointer_expression "&local_78" & identifier) , identifier )))) ;) (expression_statement "iVar5 = local_7c;" (assignment_expression "iVar5 = local_7c" identifier = identifier) ;) (if_statement "if (*(char *)*param_4 != ';') goto LAB_00132126;" if (parenthesized_expression "(*(char *)*param_4 != ';')" ( (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (if_statement "if (local_7c != 0 || (int)local_78 != 0) {\n      bVar41 = false;\n      bVar44 = lVar17 == 0;\n      if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }\n      lVar18 = 0x18;\n      pbVar22 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }\nLAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);\n      break;\n    }" if (parenthesized_expression "(local_7c != 0 || (int)local_78 != 0)" ( (binary_expression "local_7c != 0 || (int)local_78 != 0" (binary_expression "local_7c != 0" identifier != number_literal) || (binary_expression "(int)local_78 != 0" (cast_expression "(int)local_78" ( (type_descriptor "int" primitive_type) ) identifier) != number_literal)) )) (compound_statement "{\n      bVar41 = false;\n      bVar44 = lVar17 == 0;\n      if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }\n      lVar18 = 0x18;\n      pbVar22 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }\nLAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);\n      break;\n    }" { (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (expression_statement "bVar44 = lVar17 == 0;" (assignment_expression "bVar44 = lVar17 == 0" identifier = (binary_expression "lVar17 == 0" identifier == number_literal)) ;) (if_statement "if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }" if (parenthesized_expression "(!bVar44)" ( (unary_expression "!bVar44" ! identifier) )) (compound_statement "{\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }" { (labeled_statement "LAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);" statement_identifier : (expression_statement "uVar8 = dcgettext(0,"numeric overflow",5);" (assignment_expression "uVar8 = dcgettext(0,"numeric overflow",5)" identifier = (call_expression "dcgettext(0,"numeric overflow",5)" identifier (argument_list "(0,"numeric overflow",5)" ( number_literal , (string_literal ""numeric overflow"" " string_content ") , number_literal )))) ;)) (expression_statement "FUN_0012e500(pbVar40,uVar8);" (call_expression "FUN_0012e500(pbVar40,uVar8)" identifier (argument_list "(pbVar40,uVar8)" ( identifier , identifier ))) ;) (goto_statement "goto LAB_0013197e;" goto statement_identifier ;) })) (expression_statement "lVar18 = 0x18;" (assignment_expression "lVar18 = 0x18" identifier = number_literal) ;) (expression_statement "pbVar22 = (byte *)"01000000000000000000000;";" (assignment_expression "pbVar22 = (byte *)"01000000000000000000000;"" identifier = (cast_expression "(byte *)"01000000000000000000000;"" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (string_literal ""01000000000000000000000;"" " string_content "))) ;) (do_statement "do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);" do (compound_statement "{\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      }" { (if_statement "if (lVar18 == 0) break;" if (parenthesized_expression "(lVar18 == 0)" ( (binary_expression "lVar18 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" identifier = (binary_expression "lVar18 + -1" identifier + number_literal)) ;) (expression_statement "bVar41 = *pbVar34 < *pbVar22;" (assignment_expression "bVar41 = *pbVar34 < *pbVar22" identifier = (binary_expression "*pbVar34 < *pbVar22" (pointer_expression "*pbVar34" * identifier) < (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "bVar44 = *pbVar34 == *pbVar22;" (assignment_expression "bVar44 = *pbVar34 == *pbVar22" identifier = (binary_expression "*pbVar34 == *pbVar22" (pointer_expression "*pbVar34" * identifier) == (pointer_expression "*pbVar22" * identifier))) ;) (expression_statement "pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1" identifier = (binary_expression "pbVar34 + (ulong)bVar47 * -2 + 1" (binary_expression "pbVar34 + (ulong)bVar47 * -2" identifier + (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1" identifier = (binary_expression "pbVar22 + (ulong)bVar47 * -2 + 1" (binary_expression "pbVar22 + (ulong)bVar47 * -2" identifier + (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar44)" ( identifier )) ;) (if_statement "if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }" if (parenthesized_expression "(((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0))" ( (binary_expression "((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)" (parenthesized_expression "((!bVar41 && !bVar44) != bVar41)" ( (binary_expression "(!bVar41 && !bVar44) != bVar41" (parenthesized_expression "(!bVar41 && !bVar44)" ( (binary_expression "!bVar41 && !bVar44" (unary_expression "!bVar41" ! identifier) && (unary_expression "!bVar44" ! identifier)) )) != identifier) )) || (parenthesized_expression "(iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)" ( (comma_expression "iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0" (assignment_expression "iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17)" identifier = (call_expression "strncmp(pcVar16,"0777777777777777777777;",0x17)" identifier (argument_list "(pcVar16,"0777777777777777777777;",0x17)" ( identifier , (string_literal ""0777777777777777777777;"" " string_content ") , number_literal )))) , (binary_expression "iVar27 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }" { (if_statement "if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;" if (parenthesized_expression "((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))" ( (binary_expression "(uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0)))" (parenthesized_expression "(uVar35 != 0)" ( (binary_expression "uVar35 != 0" identifier != number_literal) )) || (parenthesized_expression "((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0)))" ( (parenthesized_expression "(iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))" ( (binary_expression "iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0)" (binary_expression "iVar5 != 0" identifier != number_literal) || (parenthesized_expression "(iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0)" ( (comma_expression "iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0" (assignment_expression "iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18)" identifier = (call_expression "strncmp(pcVar16,"01777777777777777777777;",0x18)" identifier (argument_list "(pcVar16,"01777777777777777777777;",0x18)" ( identifier , (string_literal ""01777777777777777777777;"" " string_content ") , number_literal )))) , (binary_expression "iVar5 != 0" identifier != number_literal)) ))) )) ))) )) (goto_statement "goto LAB_00131960;" goto statement_identifier ;)) (labeled_statement "LAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);" statement_identifier : (expression_statement "lVar17 = FUN_0012d560(param_1,8,1);" (assignment_expression "lVar17 = FUN_0012d560(param_1,8,1)" identifier = (call_expression "FUN_0012d560(param_1,8,1)" identifier (argument_list "(param_1,8,1)" ( identifier , number_literal , number_literal )))) ;)) (break_statement "break;" break ;) })) (labeled_statement "LAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);" statement_identifier : (expression_statement "lVar17 = FUN_0012d560(param_1,8,0);" (assignment_expression "lVar17 = FUN_0012d560(param_1,8,0)" identifier = (call_expression "FUN_0012d560(param_1,8,0)" identifier (argument_list "(param_1,8,0)" ( identifier , number_literal , number_literal )))) ;)) (break_statement "break;" break ;) })) (labeled_statement "LAB_0013197e:\n    if (lVar17 != 0) {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }" statement_identifier : (if_statement "if (lVar17 != 0) {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }" if (parenthesized_expression "(lVar17 != 0)" ( (binary_expression "lVar17 != 0" identifier != number_literal) )) (compound_statement "{\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }" { (labeled_statement "LAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }" statement_identifier : (if_statement "if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }" if (parenthesized_expression "(bVar43)" ( identifier )) (compound_statement "{\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }" { (labeled_statement "LAB_00132126:\n        FUN_0012e570(pbVar40);" statement_identifier : (expression_statement "FUN_0012e570(pbVar40);" (call_expression "FUN_0012e570(pbVar40)" identifier (argument_list "(pbVar40)" ( identifier ))) ;)) (return_statement "return 0;" return number_literal ;) }))) (expression_statement "lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);" (assignment_expression "lVar17 = FUN_0012e9f0(param_1,param_2,&local_68)" identifier = (call_expression "FUN_0012e9f0(param_1,param_2,&local_68)" identifier (argument_list "(param_1,param_2,&local_68)" ( identifier , identifier , (pointer_expression "&local_68" & identifier) )))) ;) (if_statement "if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (compound_statement "{\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }" { (expression_statement "uVar8 = dcgettext(0,"missing index type",5);" (assignment_expression "uVar8 = dcgettext(0,"missing index type",5)" identifier = (call_expression "dcgettext(0,"missing index type",5)" identifier (argument_list "(0,"missing index type",5)" ( number_literal , (string_literal ""missing index type"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0012e500(pbVar40,uVar8);" (call_expression "FUN_0012e500(pbVar40,uVar8)" identifier (argument_list "(pbVar40,uVar8)" ( identifier , identifier ))) ;) (expression_statement "lVar17 = FUN_0012d560(param_1,4,0);" (assignment_expression "lVar17 = FUN_0012d560(param_1,4,0)" identifier = (call_expression "FUN_0012d560(param_1,4,0)" identifier (argument_list "(param_1,4,0)" ( identifier , number_literal , number_literal )))) ;) })) (expression_statement "lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);" (assignment_expression "lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11)" identifier = (call_expression "FUN_0012d790(param_1,lVar17,uVar35,uVar11)" identifier (argument_list "(param_1,lVar17,uVar35,uVar11)" ( identifier , identifier , identifier , identifier )))) ;) (break_statement "break;" break ;) }))) (if_statement "if ((bVar43) && (uVar35 == 0)) {\n      if (uVar11 == 0) goto LAB_00133358;\n      if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }\n      lVar17 = FUN_0012d560(param_1,4,1);\n    }\n    else {\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }" if (parenthesized_expression "((bVar43) && (uVar35 == 0))" ( (binary_expression "(bVar43) && (uVar35 == 0)" (parenthesized_expression "(bVar43)" ( identifier )) && (parenthesized_expression "(uVar35 == 0)" ( (binary_expression "uVar35 == 0" identifier == number_literal) ))) )) (compound_statement "{\n      if (uVar11 == 0) goto LAB_00133358;\n      if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }\n      lVar17 = FUN_0012d560(param_1,4,1);\n    }" { (if_statement "if (uVar11 == 0) goto LAB_00133358;" if (parenthesized_expression "(uVar11 == 0)" ( (binary_expression "uVar11 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00133358;" goto statement_identifier ;)) (if_statement "if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }" if (parenthesized_expression "(uVar11 == 0xffffffffffffffff)" ( (binary_expression "uVar11 == 0xffffffffffffffff" identifier == number_literal) )) (compound_statement "{\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }" { (labeled_statement "LAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }" statement_identifier : (if_statement "if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }" if (parenthesized_expression "(param_3 != (char *)0x0)" ( (binary_expression "param_3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }" { (expression_statement "iVar5 = strcmp(param_3,"long long int");" (assignment_expression "iVar5 = strcmp(param_3,"long long int")" identifier = (call_expression "strcmp(param_3,"long long int")" identifier (argument_list "(param_3,"long long int")" ( identifier , (string_literal ""long long int"" " string_content ") )))) ;) (if_statement "if (iVar5 == 0) goto LAB_0013373f;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013373f;" goto statement_identifier ;)) (expression_statement "iVar5 = strcmp(param_3,"long long unsigned int");" (assignment_expression "iVar5 = strcmp(param_3,"long long unsigned int")" identifier = (call_expression "strcmp(param_3,"long long unsigned int")" identifier (argument_list "(param_3,"long long unsigned int")" ( identifier , (string_literal ""long long unsigned int"" " string_content ") )))) ;) (if_statement "if (iVar5 == 0) goto LAB_0013348a;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013348a;" goto statement_identifier ;)) }))) }) (else_clause "else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }" else (compound_statement "{\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }" { (if_statement "if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }" if (parenthesized_expression "(uVar11 == 0x7f)" ( (binary_expression "uVar11 == 0x7f" identifier == number_literal) )) (compound_statement "{\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }" { (labeled_statement "LAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);" statement_identifier : (expression_statement "lVar17 = FUN_0012d560(param_1,1,0);" (assignment_expression "lVar17 = FUN_0012d560(param_1,1,0)" identifier = (call_expression "FUN_0012d560(param_1,1,0)" identifier (argument_list "(param_1,1,0)" ( identifier , number_literal , number_literal )))) ;)) (break_statement "break;" break ;) })) (labeled_statement "LAB_00133a66:\n        iVar5 = (int)uVar11;" statement_identifier : (expression_statement "iVar5 = (int)uVar11;" (assignment_expression "iVar5 = (int)uVar11" identifier = (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ;)) (if_statement "if ((long)uVar11 < 0) goto LAB_00133b55;" if (parenthesized_expression "((long)uVar11 < 0)" ( (binary_expression "(long)uVar11 < 0" (cast_expression "(long)uVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) < number_literal) )) (goto_statement "goto LAB_00133b55;" goto statement_identifier ;)) (if_statement "if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }" if (parenthesized_expression "(uVar11 == 0xff)" ( (binary_expression "uVar11 == 0xff" identifier == number_literal) )) (compound_statement "{\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }" { (expression_statement "lVar17 = FUN_0012d560(param_1,1,1);" (assignment_expression "lVar17 = FUN_0012d560(param_1,1,1)" identifier = (call_expression "FUN_0012d560(param_1,1,1)" identifier (argument_list "(param_1,1,1)" ( identifier , number_literal , number_literal )))) ;) (break_statement "break;" break ;) })) (if_statement "if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }" if (parenthesized_expression "(uVar11 == 0xffff)" ( (binary_expression "uVar11 == 0xffff" identifier == number_literal) )) (compound_statement "{\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }" { (expression_statement "lVar17 = FUN_0012d560(param_1,2,1);" (assignment_expression "lVar17 = FUN_0012d560(param_1,2,1)" identifier = (call_expression "FUN_0012d560(param_1,2,1)" identifier (argument_list "(param_1,2,1)" ( identifier , number_literal , number_literal )))) ;) (break_statement "break;" break ;) })) (if_statement "if (uVar11 != 0xffffffff) goto LAB_00131987;" if (parenthesized_expression "(uVar11 != 0xffffffff)" ( (binary_expression "uVar11 != 0xffffffff" identifier != number_literal) )) (goto_statement "goto LAB_00131987;" goto statement_identifier ;)) }))) (expression_statement "lVar17 = FUN_0012d560(param_1,4,1);" (assignment_expression "lVar17 = FUN_0012d560(param_1,4,1)" identifier = (call_expression "FUN_0012d560(param_1,4,1)" identifier (argument_list "(param_1,4,1)" ( identifier , number_literal , number_literal )))) ;) }) (else_clause "else {\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }" else (compound_statement "{\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }" { (expression_statement "bVar41 = uVar11 != 0;" (assignment_expression "bVar41 = uVar11 != 0" identifier = (binary_expression "uVar11 != 0" identifier != number_literal)) ;) (if_statement "if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }" if (parenthesized_expression "((!bVar43) || (bVar41))" ( (binary_expression "(!bVar43) || (bVar41)" (parenthesized_expression "(!bVar43)" ( (unary_expression "!bVar43" ! identifier) )) || (parenthesized_expression "(bVar41)" ( identifier ))) )) (compound_statement "{\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }" { (if_statement "if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }" if (parenthesized_expression "((0 < (long)uVar35) && (!bVar41))" ( (binary_expression "(0 < (long)uVar35) && (!bVar41)" (parenthesized_expression "(0 < (long)uVar35)" ( (binary_expression "0 < (long)uVar35" number_literal < (cast_expression "(long)uVar35" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) && (parenthesized_expression "(!bVar41)" ( (unary_expression "!bVar41" ! identifier) ))) )) (compound_statement "{\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }" { (expression_statement "lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);" (assignment_expression "lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff)" identifier = (call_expression "FUN_0012d580(param_1,uVar35 & 0xffffffff)" identifier (argument_list "(param_1,uVar35 & 0xffffffff)" ( identifier , (binary_expression "uVar35 & 0xffffffff" identifier & number_literal) )))) ;) (break_statement "break;" break ;) })) (if_statement "if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;" if (parenthesized_expression "((uVar11 == 0xffffffffffffffff) && (uVar35 == 0))" ( (binary_expression "(uVar11 == 0xffffffffffffffff) && (uVar35 == 0)" (parenthesized_expression "(uVar11 == 0xffffffffffffffff)" ( (binary_expression "uVar11 == 0xffffffffffffffff" identifier == number_literal) )) && (parenthesized_expression "(uVar35 == 0)" ( (binary_expression "uVar35 == 0" identifier == number_literal) ))) )) (goto_statement "goto LAB_00133395;" goto statement_identifier ;)) (if_statement "if (uVar35 == 0) goto LAB_00133a66;" if (parenthesized_expression "(uVar35 == 0)" ( (binary_expression "uVar35 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00133a66;" goto statement_identifier ;)) (if_statement "if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;" if (parenthesized_expression "(((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))" ( (binary_expression "((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43)))" (parenthesized_expression "((-1 < (long)uVar35) || (bVar41))" ( (binary_expression "(-1 < (long)uVar35) || (bVar41)" (parenthesized_expression "(-1 < (long)uVar35)" ( (binary_expression "-1 < (long)uVar35" number_literal < (cast_expression "(long)uVar35" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) || (parenthesized_expression "(bVar41)" ( identifier ))) )) || (parenthesized_expression "((uVar35 != 0xfffffffffffffff8 && (!bVar43)))" ( (parenthesized_expression "(uVar35 != 0xfffffffffffffff8 && (!bVar43))" ( (binary_expression "uVar35 != 0xfffffffffffffff8 && (!bVar43)" (binary_expression "uVar35 != 0xfffffffffffffff8" identifier != number_literal) && (parenthesized_expression "(!bVar43)" ( (unary_expression "!bVar43" ! identifier) ))) )) ))) )) (goto_statement "goto LAB_001336f0;" goto statement_identifier ;)) }) (else_clause "else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }" else (compound_statement "{\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }" { (if_statement "if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }" if (parenthesized_expression "(0 < (long)uVar35)" ( (binary_expression "0 < (long)uVar35" number_literal < (cast_expression "(long)uVar35" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }" { (expression_statement "lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);" (assignment_expression "lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff)" identifier = (call_expression "FUN_0012d5a0(param_1,uVar35 & 0xffffffff)" identifier (argument_list "(param_1,uVar35 & 0xffffffff)" ( identifier , (binary_expression "uVar35 & 0xffffffff" identifier & number_literal) )))) ;) (break_statement "break;" break ;) })) (if_statement "if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }" if (parenthesized_expression "(-1 < (long)uVar35)" ( (binary_expression "-1 < (long)uVar35" number_literal < (cast_expression "(long)uVar35" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )) (compound_statement "{\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }" { (labeled_statement "LAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }" statement_identifier : (if_statement "if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }" if (parenthesized_expression "((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1))" ( (binary_expression "(uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)" (parenthesized_expression "(uVar35 == ~uVar11)" ( (binary_expression "uVar35 == ~uVar11" identifier == (unary_expression "~uVar11" ~ identifier)) )) || (parenthesized_expression "(uVar35 == uVar11 + 1)" ( (binary_expression "uVar35 == uVar11 + 1" identifier == (binary_expression "uVar11 + 1" identifier + number_literal)) ))) )) (compound_statement "{\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }" { (if_statement "if (uVar11 == 0x7f) goto LAB_00133dee;" if (parenthesized_expression "(uVar11 == 0x7f)" ( (binary_expression "uVar11 == 0x7f" identifier == number_literal) )) (goto_statement "goto LAB_00133dee;" goto statement_identifier ;)) (if_statement "if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }" if (parenthesized_expression "(uVar11 == 0x7fff)" ( (binary_expression "uVar11 == 0x7fff" identifier == number_literal) )) (compound_statement "{\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }" { (expression_statement "lVar17 = FUN_0012d560(param_1,2,0);" (assignment_expression "lVar17 = FUN_0012d560(param_1,2,0)" identifier = (call_expression "FUN_0012d560(param_1,2,0)" identifier (argument_list "(param_1,2,0)" ( identifier , number_literal , number_literal )))) ;) (break_statement "break;" break ;) })) (if_statement "if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }" if (parenthesized_expression "(uVar11 == 0x7fffffff)" ( (binary_expression "uVar11 == 0x7fffffff" identifier == number_literal) )) (compound_statement "{\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }" { (expression_statement "lVar17 = FUN_0012d560(param_1,4,0);" (assignment_expression "lVar17 = FUN_0012d560(param_1,4,0)" identifier = (call_expression "FUN_0012d560(param_1,4,0)" identifier (argument_list "(param_1,4,0)" ( identifier , number_literal , number_literal )))) ;) (break_statement "break;" break ;) })) (if_statement "if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;" if (parenthesized_expression "(uVar11 == 0x7fffffffffffffff)" ( (binary_expression "uVar11 == 0x7fffffffffffffff" identifier == number_literal) )) (goto_statement "goto LAB_0013373f;" goto statement_identifier ;)) }))) (goto_statement "goto LAB_00131987;" goto statement_identifier ;) })) }))) (expression_statement "iVar5 = (int)uVar35;" (assignment_expression "iVar5 = (int)uVar35" identifier = (cast_expression "(int)uVar35" ( (type_descriptor "int" primitive_type) ) identifier)) ;) (labeled_statement "LAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);" statement_identifier : (expression_statement "lVar17 = FUN_0012d560(param_1,-iVar5,1);" (assignment_expression "lVar17 = FUN_0012d560(param_1,-iVar5,1)" identifier = (call_expression "FUN_0012d560(param_1,-iVar5,1)" identifier (argument_list "(param_1,-iVar5,1)" ( identifier , (unary_expression "-iVar5" - identifier) , number_literal )))) ;)) }))) (break_statement "break;" break ;)) (case_statement "case 0x73:" case number_literal :) (case_statement "case 0x75:\n    uVar8 = FUN_0012e630(param_4,0,param_6);\n    pbVar40 = (byte *)*param_4;\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    local_f8 = 0;\n    if (*pbVar40 == 0x21) {\n      *param_4 = (ulong)(pbVar40 + 1);\n      uVar39 = FUN_0012e630(param_4,0,param_6);\n      if (*(char *)*param_4 != ',') goto LAB_00132126;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);\n      if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }\n      pbVar40 = (byte *)*param_4;\n      *(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;\n      if (param_6 <= pbVar40) {\n        return 0;\n      }\n    }\n    uVar35 = 0;\n    local_130 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    bVar43 = false;\n    bVar3 = *pbVar34;\n    local_138._0_4_ = 10;\n    while (bVar3 != 0x3b) {\n      uVar39 = (int)uVar35 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }\n      if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }\n      pbVar34 = (byte *)*param_4;\n      uVar35 = (ulong)uVar39;\n      bVar3 = *pbVar34;\n    }\n    *(undefined8 *)((long)local_130 + uVar35 * 8) = 0;\n    if (param_6 <= pbVar34) goto LAB_00131328;\n    bVar3 = *pbVar34;\n    if (bVar3 == 0x3b) {\n      local_108 = 0;\nLAB_001334bc:\n      pbVar22 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar22;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }\n    if (*pbVar22 == 0x7e) {\n      pbVar40 = pbVar22 + 1;\n      *param_4 = (ulong)pbVar40;\n      if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *param_4 = (ulong)(pbVar40 + 1);\n      iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n      if (iVar5 == 0) goto LAB_00131328;\n      if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }\n      if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;\n      uVar14 = 1;\n      lVar17 = 0;\n    }\n    else {\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }\n    lVar17 = FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14);\n    break;" case number_literal : (expression_statement "uVar8 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar8 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) ;) (expression_statement "pbVar40 = (byte *)*param_4;" (assignment_expression "pbVar40 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (if_statement "if (param_6 <= pbVar40) {\n      return 0;\n    }" if (parenthesized_expression "(param_6 <= pbVar40)" ( (binary_expression "param_6 <= pbVar40" identifier <= identifier) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "local_f8 = 0;" (assignment_expression "local_f8 = 0" identifier = number_literal) ;) (if_statement "if (*pbVar40 == 0x21) {\n      *param_4 = (ulong)(pbVar40 + 1);\n      uVar39 = FUN_0012e630(param_4,0,param_6);\n      if (*(char *)*param_4 != ',') goto LAB_00132126;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);\n      if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }\n      pbVar40 = (byte *)*param_4;\n      *(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;\n      if (param_6 <= pbVar40) {\n        return 0;\n      }\n    }" if (parenthesized_expression "(*pbVar40 == 0x21)" ( (binary_expression "*pbVar40 == 0x21" (pointer_expression "*pbVar40" * identifier) == number_literal) )) (compound_statement "{\n      *param_4 = (ulong)(pbVar40 + 1);\n      uVar39 = FUN_0012e630(param_4,0,param_6);\n      if (*(char *)*param_4 != ',') goto LAB_00132126;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);\n      if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }\n      pbVar40 = (byte *)*param_4;\n      *(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;\n      if (param_6 <= pbVar40) {\n        return 0;\n      }\n    }" { (expression_statement "*param_4 = (ulong)(pbVar40 + 1);" (assignment_expression "*param_4 = (ulong)(pbVar40 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pbVar40 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pbVar40 + 1)" ( (binary_expression "pbVar40 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar39 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar39 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (*(char *)*param_4 != ',') goto LAB_00132126;" if (parenthesized_expression "(*(char *)*param_4 != ',')" ( (binary_expression "*(char *)*param_4 != ','" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "','" ' character ')) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);" (assignment_expression "local_f8 = xmalloc((ulong)(uVar39 + 1) << 3)" identifier = (call_expression "xmalloc((ulong)(uVar39 + 1) << 3)" identifier (argument_list "((ulong)(uVar39 + 1) << 3)" ( (binary_expression "(ulong)(uVar39 + 1) << 3" (call_expression "(ulong)(uVar39 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(uVar39 + 1)" ( (binary_expression "uVar39 + 1" identifier + number_literal) ))) << number_literal) )))) ;) (if_statement "if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }" if (parenthesized_expression "(uVar39 != 0)" ( (binary_expression "uVar39 != 0" identifier != number_literal) )) (compound_statement "{\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }" { (expression_statement "uVar7 = uVar39 - 1;" (assignment_expression "uVar7 = uVar39 - 1" identifier = (binary_expression "uVar39 - 1" identifier - number_literal)) ;) (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (expression_statement "cVar4 = *(char *)*param_4;" (assignment_expression "cVar4 = *(char *)*param_4" identifier = (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)))) ;) (if_statement "if (cVar4 == '0') goto LAB_00132b2f;" if (parenthesized_expression "(cVar4 == '0')" ( (binary_expression "cVar4 == '0'" identifier == (char_literal "'0'" ' character ')) )) (goto_statement "goto LAB_00132b2f;" goto statement_identifier ;)) (labeled_statement "LAB_00132a1e:\n        uVar11 = uVar35;" statement_identifier : (expression_statement "uVar11 = uVar35;" (assignment_expression "uVar11 = uVar35" identifier = identifier) ;)) (if_statement "if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }" if (parenthesized_expression "(cVar4 == '1')" ( (binary_expression "cVar4 == '1'" identifier == (char_literal "'1'" ' character ')) )) (compound_statement "{\n          uVar14 = 1;\n        }" { (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) }) (else_clause "else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }" else (compound_statement "{\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }" { (if_statement "if (cVar4 == '\0') goto LAB_00132126;" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);" (assignment_expression "uVar9 = dcgettext(0,"unknown virtual character for baseclass",5)" identifier = (call_expression "dcgettext(0,"unknown virtual character for baseclass",5)" identifier (argument_list "(0,"unknown virtual character for baseclass",5)" ( number_literal , (string_literal ""unknown virtual character for baseclass"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0012e500(pbVar40,uVar9);" (call_expression "FUN_0012e500(pbVar40,uVar9)" identifier (argument_list "(pbVar40,uVar9)" ( identifier , identifier ))) ;) }))) (do_statement "do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );" do (compound_statement "{\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        }" { (expression_statement "uVar35 = *param_4;" (assignment_expression "uVar35 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "*param_4 = uVar35 + 1;" (assignment_expression "*param_4 = uVar35 + 1" (pointer_expression "*param_4" * identifier) = (binary_expression "uVar35 + 1" identifier + number_literal)) ;) (expression_statement "cVar4 = *(char *)(uVar35 + 1);" (assignment_expression "cVar4 = *(char *)(uVar35 + 1)" identifier = (pointer_expression "*(char *)(uVar35 + 1)" * (cast_expression "(char *)(uVar35 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar35 + 1)" ( (binary_expression "uVar35 + 1" identifier + number_literal) ))))) ;) (if_statement "if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }" if (parenthesized_expression "(cVar4 != '0')" ( (binary_expression "cVar4 != '0'" identifier != (char_literal "'0'" ' character ')) )) (compound_statement "{\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }" { (if_statement "if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;" if (parenthesized_expression "(cVar4 < '1')" ( (binary_expression "cVar4 < '1'" identifier < (char_literal "'1'" ' character ')) )) (compound_statement "{\n              if (cVar4 == '\0') goto LAB_00132126;\n            }" { (if_statement "if (cVar4 == '\0') goto LAB_00132126;" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) }) (else_clause "else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;" else (if_statement "if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;" if (parenthesized_expression "((cVar4 == '1') || (cVar4 == '2'))" ( (binary_expression "(cVar4 == '1') || (cVar4 == '2')" (parenthesized_expression "(cVar4 == '1')" ( (binary_expression "cVar4 == '1'" identifier == (char_literal "'1'" ' character ')) )) || (parenthesized_expression "(cVar4 == '2')" ( (binary_expression "cVar4 == '2'" identifier == (char_literal "'2'" ' character ')) ))) )) (goto_statement "goto LAB_00132a81;" goto statement_identifier ;)))) (expression_statement "uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);" (assignment_expression "uVar9 = dcgettext(0,"unknown visibility character for baseclass",5)" identifier = (call_expression "dcgettext(0,"unknown visibility character for baseclass",5)" identifier (argument_list "(0,"unknown visibility character for baseclass",5)" ( number_literal , (string_literal ""unknown visibility character for baseclass"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0012e500(pbVar40,uVar9);" (call_expression "FUN_0012e500(pbVar40,uVar9)" identifier (argument_list "(pbVar40,uVar9)" ( identifier , identifier ))) ;) })) (labeled_statement "LAB_00132a81:\n          *param_4 = *param_4 + 1;" statement_identifier : (expression_statement "*param_4 = *param_4 + 1;" (assignment_expression "*param_4 = *param_4 + 1" (pointer_expression "*param_4" * identifier) = (binary_expression "*param_4 + 1" (pointer_expression "*param_4" * identifier) + number_literal)) ;)) (expression_statement "uVar9 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar9 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (*(char *)*param_4 != ',') goto LAB_00132126;" if (parenthesized_expression "(*(char *)*param_4 != ',')" ( (binary_expression "*(char *)*param_4 != ','" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "','" ' character ')) )) (goto_statement "goto LAB_00132126;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (if_statement "if (lVar17 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);" (assignment_expression "lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14)" identifier = (call_expression "FUN_0012da10(param_1,lVar17,uVar9,uVar14)" identifier (argument_list "(param_1,lVar17,uVar9,uVar14)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "*(long *)(local_f8 + uVar11 * 8) = lVar17;" (assignment_expression "*(long *)(local_f8 + uVar11 * 8) = lVar17" (pointer_expression "*(long *)(local_f8 + uVar11 * 8)" * (cast_expression "(long *)(local_f8 + uVar11 * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_f8 + uVar11 * 8)" ( (binary_expression "local_f8 + uVar11 * 8" identifier + (binary_expression "uVar11 * 8" identifier * number_literal)) )))) = identifier) ;) (if_statement "if (lVar17 == 0) {\n            return 0;\n          }" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (*(char *)*param_4 != ';') {\n            return 0;\n          }" if (parenthesized_expression "(*(char *)*param_4 != ';')" ( (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "';'" ' character ')) )) (compound_statement "{\n            return 0;\n          }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pcVar16 = (char *)*param_4 + 1;" (assignment_expression "pcVar16 = (char *)*param_4 + 1" identifier = (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal)) ;) (expression_statement "uVar39 = (int)uVar11 + 1;" (assignment_expression "uVar39 = (int)uVar11 + 1" identifier = (binary_expression "(int)uVar11 + 1" (cast_expression "(int)uVar11" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "uVar35 = uVar11 + 1;" (assignment_expression "uVar35 = uVar11 + 1" identifier = (binary_expression "uVar11 + 1" identifier + number_literal)) ;) (expression_statement "*param_4 = (ulong)pcVar16;" (assignment_expression "*param_4 = (ulong)pcVar16" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pcVar16" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (uVar11 == uVar7) break;" if (parenthesized_expression "(uVar11 == uVar7)" ( (binary_expression "uVar11 == uVar7" identifier == identifier) )) (break_statement "break;" break ;)) (expression_statement "cVar4 = *pcVar16;" (assignment_expression "cVar4 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (if_statement "if (cVar4 != '0') goto LAB_00132a1e;" if (parenthesized_expression "(cVar4 != '0')" ( (binary_expression "cVar4 != '0'" identifier != (char_literal "'0'" ' character ')) )) (goto_statement "goto LAB_00132a1e;" goto statement_identifier ;)) (labeled_statement "LAB_00132b2f:\n          uVar14 = 0;" statement_identifier : (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;)) (expression_statement "uVar11 = uVar35;" (assignment_expression "uVar11 = uVar35" identifier = identifier) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "pbVar40 = (byte *)*param_4;" (assignment_expression "pbVar40 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "*(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;" (assignment_expression "*(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0" (pointer_expression "*(undefined8 *)(local_f8 + (ulong)uVar39 * 8)" * (cast_expression "(undefined8 *)(local_f8 + (ulong)uVar39 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_f8 + (ulong)uVar39 * 8)" ( (binary_expression "local_f8 + (ulong)uVar39 * 8" identifier + (binary_expression "(ulong)uVar39 * 8" (cast_expression "(ulong)uVar39" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) )))) = number_literal) ;) (if_statement "if (param_6 <= pbVar40) {\n        return 0;\n      }" if (parenthesized_expression "(param_6 <= pbVar40)" ( (binary_expression "param_6 <= pbVar40" identifier <= identifier) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) })) (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" identifier = number_literal) ;) (expression_statement "local_130 = (void *)xmalloc(0x50);" (assignment_expression "local_130 = (void *)xmalloc(0x50)" identifier = (cast_expression "(void *)xmalloc(0x50)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "bVar43 = false;" (assignment_expression "bVar43 = false" identifier = false) ;) (expression_statement "bVar3 = *pbVar34;" (assignment_expression "bVar3 = *pbVar34" identifier = (pointer_expression "*pbVar34" * identifier)) ;) (expression_statement "local_138._0_4_ = 10;" (assignment_expression "local_138._0_4_ = 10" (field_expression "local_138._0_4_" identifier . field_identifier) = number_literal) ;) (while_statement "while (bVar3 != 0x3b) {\n      uVar39 = (int)uVar35 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }\n      if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }\n      pbVar34 = (byte *)*param_4;\n      uVar35 = (ulong)uVar39;\n      bVar3 = *pbVar34;\n    }" while (parenthesized_expression "(bVar3 != 0x3b)" ( (binary_expression "bVar3 != 0x3b" identifier != number_literal) )) (compound_statement "{\n      uVar39 = (int)uVar35 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }\n      if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }\n      pbVar34 = (byte *)*param_4;\n      uVar35 = (ulong)uVar39;\n      bVar3 = *pbVar34;\n    }" { (expression_statement "uVar39 = (int)uVar35 + 1;" (assignment_expression "uVar39 = (int)uVar35 + 1" identifier = (binary_expression "(int)uVar35 + 1" (cast_expression "(int)uVar35" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }" if (parenthesized_expression "((uint)local_138 <= uVar39)" ( (binary_expression "(uint)local_138 <= uVar39" (cast_expression "(uint)local_138" ( (type_descriptor "uint" type_identifier) ) identifier) <= identifier) )) (compound_statement "{\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }" { (expression_statement "local_138._0_4_ = (uint)local_138 + 10;" (assignment_expression "local_138._0_4_ = (uint)local_138 + 10" (field_expression "local_138._0_4_" identifier . field_identifier) = (binary_expression "(uint)local_138 + 10" (cast_expression "(uint)local_138" ( (type_descriptor "uint" type_identifier) ) identifier) + number_literal)) ;) (expression_statement "local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);" (assignment_expression "local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3)" identifier = (cast_expression "(void *)xrealloc(local_130,(ulong)(uint)local_138 << 3)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(local_130,(ulong)(uint)local_138 << 3)" identifier (argument_list "(local_130,(ulong)(uint)local_138 << 3)" ( identifier , (binary_expression "(ulong)(uint)local_138 << 3" (cast_expression "(ulong)(uint)local_138" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(uint)local_138" ( (type_descriptor "uint" type_identifier) ) identifier)) << number_literal) ))))) ;) (expression_statement "bVar3 = *pbVar34;" (assignment_expression "bVar3 = *pbVar34" identifier = (pointer_expression "*pbVar34" * identifier)) ;) })) (if_statement "if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }" if (parenthesized_expression "(((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f))" ( (binary_expression "((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)" (parenthesized_expression "((bVar3 == 0x24) || (bVar3 == 0x2e))" ( (binary_expression "(bVar3 == 0x24) || (bVar3 == 0x2e)" (parenthesized_expression "(bVar3 == 0x24)" ( (binary_expression "bVar3 == 0x24" identifier == number_literal) )) || (parenthesized_expression "(bVar3 == 0x2e)" ( (binary_expression "bVar3 == 0x2e" identifier == number_literal) ))) )) && (parenthesized_expression "(pbVar34[1] != 0x5f)" ( (binary_expression "pbVar34[1] != 0x5f" (subscript_expression "pbVar34[1]" identifier [ number_literal ]) != number_literal) ))) )) (compound_statement "{\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }" { (expression_statement "uVar11 = *param_4;" (assignment_expression "uVar11 = *param_4" identifier = (pointer_expression "*param_4" * identifier)) ;) (expression_statement "pbVar34 = (byte *)(uVar11 + 1);" (assignment_expression "pbVar34 = (byte *)(uVar11 + 1)" identifier = (cast_expression "(byte *)(uVar11 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar11 + 1)" ( (binary_expression "uVar11 + 1" identifier + number_literal) )))) ;) (expression_statement "plVar10 = (long *)((long)local_130 + uVar35 * 8);" (assignment_expression "plVar10 = (long *)((long)local_130 + uVar35 * 8)" identifier = (cast_expression "(long *)((long)local_130 + uVar35 * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_130 + uVar35 * 8)" ( (binary_expression "(long)local_130 + uVar35 * 8" (cast_expression "(long)local_130" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "uVar35 * 8" identifier * number_literal)) )))) ;) (expression_statement "*param_4 = (ulong)pbVar34;" (assignment_expression "*param_4 = (ulong)pbVar34" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar34" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "*plVar10 = 0;" (assignment_expression "*plVar10 = 0" (pointer_expression "*plVar10" * identifier) = number_literal) ;) (if_statement "if (param_6 <= pbVar34) goto LAB_00131328;" if (parenthesized_expression "(param_6 <= pbVar34)" ( (binary_expression "param_6 <= pbVar34" identifier <= identifier) )) (goto_statement "goto LAB_00131328;" goto statement_identifier ;)) (if_statement "if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;" if (parenthesized_expression "(*(char *)(uVar11 + 1) != 'v')" ( (binary_expression "*(char *)(uVar11 + 1) != 'v'" (pointer_expression "*(char *)(uVar11 + 1)" * (cast_expression "(char *)(uVar11 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar11 + 1)" ( (binary_expression "uVar11 + 1" identifier + number_literal) )))) != (char_literal "'v'" ' character ')) )) (goto_statement "goto LAB_00132740;" goto statement_identifier ;)) (expression_statement "*param_4 = uVar11 + 2;" (assignment_expression "*param_4 = uVar11 + 2" (pointer_expression "*param_4" * identifier) = (binary_expression "uVar11 + 2" identifier + number_literal)) ;) (expression_statement "cVar4 = *(char *)(uVar11 + 2);" (assignment_expression "cVar4 = *(char *)(uVar11 + 2)" identifier = (pointer_expression "*(char *)(uVar11 + 2)" * (cast_expression "(char *)(uVar11 + 2)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(uVar11 + 2)" ( (binary_expression "uVar11 + 2" identifier + number_literal) ))))) ;) (if_statement "if (cVar4 == '\0') goto LAB_00132740;" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00132740;" goto statement_identifier ;)) (expression_statement "*param_4 = uVar11 + 3;" (assignment_expression "*param_4 = uVar11 + 3" (pointer_expression "*param_4" * identifier) = (binary_expression "uVar11 + 3" identifier + number_literal)) ;) (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (if_statement "if (lVar17 == 0) goto LAB_00131328;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00131328;" goto statement_identifier ;)) (if_statement "if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }" if (parenthesized_expression "(cVar4 == 'b')" ( (binary_expression "cVar4 == 'b'" identifier == (char_literal "'b'" ' character ')) )) (compound_statement "{\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }" { (expression_statement "puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);" (assignment_expression "puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17)" identifier = (cast_expression "(undefined *)FUN_0012e0c0(param_1,lVar17)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012e0c0(param_1,lVar17)" identifier (argument_list "(param_1,lVar17)" ( identifier , identifier ))))) ;) (if_statement "if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }" if (parenthesized_expression "(puVar23 == (undefined *)0x0)" ( (binary_expression "puVar23 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }" { (expression_statement "uVar14 = dcgettext(0,"unnamed $vb type",5);" (assignment_expression "uVar14 = dcgettext(0,"unnamed $vb type",5)" identifier = (call_expression "dcgettext(0,"unnamed $vb type",5)" identifier (argument_list "(0,"unnamed $vb type",5)" ( number_literal , (string_literal ""unnamed $vb type"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0012e500(pbVar34,uVar14);" (call_expression "FUN_0012e500(pbVar34,uVar14)" identifier (argument_list "(pbVar34,uVar14)" ( identifier , identifier ))) ;) (expression_statement "puVar23 = &DAT_00146979;" (assignment_expression "puVar23 = &DAT_00146979" identifier = (pointer_expression "&DAT_00146979" & identifier)) ;) })) (expression_statement "pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);" (assignment_expression "pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0)" identifier = (cast_expression "(char *)concat(&DAT_00146a0b,puVar23,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "concat(&DAT_00146a0b,puVar23,0)" identifier (argument_list "(&DAT_00146a0b,puVar23,0)" ( (pointer_expression "&DAT_00146a0b" & identifier) , identifier , number_literal ))))) ;) }) (else_clause "else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }" else (compound_statement "{\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }" { (expression_statement "pcVar16 = "_vptr$";" (assignment_expression "pcVar16 = "_vptr$"" identifier = (string_literal ""_vptr$"" " string_content ")) ;) (if_statement "if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }" if (parenthesized_expression "(cVar4 != 'f')" ( (binary_expression "cVar4 != 'f'" identifier != (char_literal "'f'" ' character ')) )) (compound_statement "{\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }" { (expression_statement "uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);" (assignment_expression "uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5)" identifier = (call_expression "dcgettext(0,"unrecognized C++ abbreviation",5)" identifier (argument_list "(0,"unrecognized C++ abbreviation",5)" ( number_literal , (string_literal ""unrecognized C++ abbreviation"" " string_content ") , number_literal )))) ;) (expression_statement "pcVar16 = "INVALID_CPLUSPLUS_ABBREV";" (assignment_expression "pcVar16 = "INVALID_CPLUSPLUS_ABBREV"" identifier = (string_literal ""INVALID_CPLUSPLUS_ABBREV"" " string_content ")) ;) (expression_statement "FUN_0012e500(pbVar34,uVar14);" (call_expression "FUN_0012e500(pbVar34,uVar14)" identifier (argument_list "(pbVar34,uVar14)" ( identifier , identifier ))) ;) })) }))) (if_statement "if (*(char *)*param_4 != ':') goto LAB_00132740;" if (parenthesized_expression "(*(char *)*param_4 != ':')" ( (binary_expression "*(char *)*param_4 != ':'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "':'" ' character ')) )) (goto_statement "goto LAB_00132740;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (if_statement "if (*(char *)*param_4 != ',') goto LAB_00132740;" if (parenthesized_expression "(*(char *)*param_4 != ',')" ( (binary_expression "*(char *)*param_4 != ','" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "','" ' character ')) )) (goto_statement "goto LAB_00132740;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "uVar9 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar9 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (*(char *)*param_4 != ';') goto LAB_00132740;" if (parenthesized_expression "(*(char *)*param_4 != ';')" ( (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_00132740;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);" (assignment_expression "lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2)" identifier = (call_expression "FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2)" identifier (argument_list "(param_1,pcVar16,uVar14,uVar9,0,2)" ( identifier , identifier , identifier , identifier , number_literal , number_literal )))) ;) (expression_statement "*plVar10 = lVar17;" (assignment_expression "*plVar10 = lVar17" (pointer_expression "*plVar10" * identifier) = identifier) ;) (if_statement "if (lVar17 == 0) goto LAB_00131328;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00131328;" goto statement_identifier ;)) }) (else_clause "else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }" else (compound_statement "{\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }" { (expression_statement "pcVar16 = strchr((char *)pbVar34,0x3a);" (assignment_expression "pcVar16 = strchr((char *)pbVar34,0x3a)" identifier = (call_expression "strchr((char *)pbVar34,0x3a)" identifier (argument_list "((char *)pbVar34,0x3a)" ( (cast_expression "(char *)pbVar34" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }" if (parenthesized_expression "(pcVar16 == (char *)0x0)" ( (binary_expression "pcVar16 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }" { (expression_statement "FUN_0012e570(pbVar40);" (call_expression "FUN_0012e570(pbVar40)" identifier (argument_list "(pbVar40)" ( identifier ))) ;) (expression_statement "free(local_130);" (call_expression "free(local_130)" identifier (argument_list "(local_130)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (if_statement "if (pcVar16[1] == ':') break;" if (parenthesized_expression "(pcVar16[1] == ':')" ( (binary_expression "pcVar16[1] == ':'" (subscript_expression "pcVar16[1]" identifier [ number_literal ]) == (char_literal "':'" ' character ')) )) (break_statement "break;" break ;)) (if_statement "if (param_6 <= pbVar34) {\n          return 0;\n        }" if (parenthesized_expression "(param_6 <= pbVar34)" ( (binary_expression "param_6 <= pbVar34" identifier <= identifier) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);" (assignment_expression "pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34)" identifier = (cast_expression "(void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34)" identifier (argument_list "(pbVar34,(long)pcVar16 - (long)pbVar34)" ( identifier , (binary_expression "(long)pcVar16 - (long)pbVar34" (cast_expression "(long)pcVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar34" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))))) ;) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (if_statement "if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }" if (parenthesized_expression "(pcVar16[1] == '/')" ( (binary_expression "pcVar16[1] == '/'" (subscript_expression "pcVar16[1]" identifier [ number_literal ]) == (char_literal "'/'" ' character ')) )) (compound_statement "{\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }" { (expression_statement "pcVar15 = pcVar16 + 2;" (assignment_expression "pcVar15 = pcVar16 + 2" identifier = (binary_expression "pcVar16 + 2" identifier + number_literal)) ;) (expression_statement "*param_4 = (ulong)pcVar15;" (assignment_expression "*param_4 = (ulong)pcVar15" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pcVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "cVar4 = pcVar16[2];" (assignment_expression "cVar4 = pcVar16[2]" identifier = (subscript_expression "pcVar16[2]" identifier [ number_literal ])) ;) (if_statement "if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }" if (parenthesized_expression "(cVar4 == '0')" ( (binary_expression "cVar4 == '0'" identifier == (char_literal "'0'" ' character ')) )) (compound_statement "{\n            local_120 = 2;\n          }" { (expression_statement "local_120 = 2;" (assignment_expression "local_120 = 2" identifier = number_literal) ;) }) (else_clause "else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }" else (compound_statement "{\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }" { (if_statement "if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }" if (parenthesized_expression "(cVar4 < '1')" ( (binary_expression "cVar4 < '1'" identifier < (char_literal "'1'" ' character ')) )) (compound_statement "{\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }" { (if_statement "if (cVar4 == '\0') goto switchD_001311d2_caseD_24;" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;)) }) (else_clause "else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }" else (compound_statement "{\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }" { (expression_statement "local_120 = 1;" (assignment_expression "local_120 = 1" identifier = number_literal) ;) (if_statement "if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;" if (parenthesized_expression "((cVar4 == '1') || (local_120 = 0, cVar4 == '2'))" ( (binary_expression "(cVar4 == '1') || (local_120 = 0, cVar4 == '2')" (parenthesized_expression "(cVar4 == '1')" ( (binary_expression "cVar4 == '1'" identifier == (char_literal "'1'" ' character ')) )) || (parenthesized_expression "(local_120 = 0, cVar4 == '2')" ( (comma_expression "local_120 = 0, cVar4 == '2'" (assignment_expression "local_120 = 0" identifier = number_literal) , (binary_expression "cVar4 == '2'" identifier == (char_literal "'2'" ' character '))) ))) )) (goto_statement "goto LAB_00131b6d;" goto statement_identifier ;)) }))) (expression_statement "uVar14 = dcgettext(0,"unknown visibility character for field",5);" (assignment_expression "uVar14 = dcgettext(0,"unknown visibility character for field",5)" identifier = (call_expression "dcgettext(0,"unknown visibility character for field",5)" identifier (argument_list "(0,"unknown visibility character for field",5)" ( number_literal , (string_literal ""unknown visibility character for field"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0012e500(pbVar34,uVar14);" (call_expression "FUN_0012e500(pbVar34,uVar14)" identifier (argument_list "(pbVar34,uVar14)" ( identifier , identifier ))) ;) (expression_statement "pcVar15 = (char *)*param_4;" (assignment_expression "pcVar15 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "local_120 = 0;" (assignment_expression "local_120 = 0" identifier = number_literal) ;) }))) (labeled_statement "LAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);" statement_identifier : (expression_statement "*param_4 = (ulong)(pcVar15 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar15 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar15 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar15 + 1)" ( (binary_expression "pcVar15 + 1" identifier + number_literal) )))) ;)) }) (else_clause "else {\n          local_120 = 0;\n        }" else (compound_statement "{\n          local_120 = 0;\n        }" { (expression_statement "local_120 = 0;" (assignment_expression "local_120 = 0" identifier = number_literal) ;) }))) (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (if_statement "if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (compound_statement "{\n          free(pvVar12);\n          return 0;\n        }" { (expression_statement "free(pvVar12);" (call_expression "free(pvVar12)" identifier (argument_list "(pvVar12)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);" (assignment_expression "puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8)" identifier = (cast_expression "(undefined8 *)((long)local_130 + uVar35 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_130 + uVar35 * 8)" ( (binary_expression "(long)local_130 + uVar35 * 8" (cast_expression "(long)local_130" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "uVar35 * 8" identifier * number_literal)) )))) ;) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (if_statement "if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }" if (parenthesized_expression "(*pcVar16 == ':')" ( (binary_expression "*pcVar16 == ':'" (pointer_expression "*pcVar16" * identifier) == (char_literal "':'" ' character ')) )) (compound_statement "{\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }" { (expression_statement "pcVar16 = pcVar16 + 1;" (assignment_expression "pcVar16 = pcVar16 + 1" identifier = (binary_expression "pcVar16 + 1" identifier + number_literal)) ;) (expression_statement "*param_4 = (ulong)pcVar16;" (assignment_expression "*param_4 = (ulong)pcVar16" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pcVar16" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "pcVar15 = strchr(pcVar16,0x3b);" (assignment_expression "pcVar15 = strchr(pcVar16,0x3b)" identifier = (call_expression "strchr(pcVar16,0x3b)" identifier (argument_list "(pcVar16,0x3b)" ( identifier , number_literal )))) ;) (if_statement "if (pcVar15 == (char *)0x0) goto LAB_00132614;" if (parenthesized_expression "(pcVar15 == (char *)0x0)" ( (binary_expression "pcVar15 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00132614;" goto statement_identifier ;)) (expression_statement "uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);" (assignment_expression "uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16)" identifier = (call_expression "FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16)" identifier (argument_list "(pcVar16,(long)pcVar15 - (long)pcVar16)" ( identifier , (binary_expression "(long)pcVar15 - (long)pcVar16" (cast_expression "(long)pcVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (expression_statement "*param_4 = (ulong)(pcVar15 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar15 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar15 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar15 + 1)" ( (binary_expression "pcVar15 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);" (assignment_expression "uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14)" identifier = (call_expression "FUN_0012daa0(param_1,pvVar12,lVar17,uVar14)" identifier (argument_list "(param_1,pvVar12,lVar17,uVar14)" ( identifier , identifier , identifier , identifier )))) ;) (expression_statement "bVar43 = true;" (assignment_expression "bVar43 = true" identifier = true) ;) (expression_statement "*puVar19 = uVar14;" (assignment_expression "*puVar19 = uVar14" (pointer_expression "*puVar19" * identifier) = identifier) ;) }) (else_clause "else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }" else (compound_statement "{\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }" { (if_statement "if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }" if (parenthesized_expression "(*pcVar16 != ',')" ( (binary_expression "*pcVar16 != ','" (pointer_expression "*pcVar16" * identifier) != (char_literal "','" ' character ')) )) (compound_statement "{\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }" { (labeled_statement "LAB_00132614:\n            FUN_0012e570(pbVar34);" statement_identifier : (expression_statement "FUN_0012e570(pbVar34);" (call_expression "FUN_0012e570(pbVar34)" identifier (argument_list "(pbVar34)" ( identifier ))) ;)) (expression_statement "free(pvVar12);" (call_expression "free(pvVar12)" identifier (argument_list "(pvVar12)" ( identifier ))) ;) (return_statement "return 0;" return number_literal ;) })) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (expression_statement "lVar18 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "lVar18 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (*(char *)*param_4 != ',') goto LAB_00132614;" if (parenthesized_expression "(*(char *)*param_4 != ',')" ( (binary_expression "*(char *)*param_4 != ','" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "','" ' character ')) )) (goto_statement "goto LAB_00132614;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "lVar13 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "lVar13 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) ;) (if_statement "if (*(char *)*param_4 != ';') goto LAB_00132614;" if (parenthesized_expression "(*(char *)*param_4 != ';')" ( (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) != (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_00132614;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "uVar14 = 3;" (assignment_expression "uVar14 = 3" identifier = number_literal) ;) (if_statement "if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }" if (parenthesized_expression "(lVar18 != 0 || lVar13 != 0)" ( (binary_expression "lVar18 != 0 || lVar13 != 0" (binary_expression "lVar18 != 0" identifier != number_literal) || (binary_expression "lVar13 != 0" identifier != number_literal)) )) (compound_statement "{\n            uVar14 = local_120;\n          }" { (expression_statement "uVar14 = local_120;" (assignment_expression "uVar14 = local_120" identifier = identifier) ;) })) (expression_statement "uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);" (assignment_expression "uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14)" identifier = (call_expression "FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14)" identifier (argument_list "(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "*puVar19 = uVar14;" (assignment_expression "*puVar19 = uVar14" (pointer_expression "*puVar19" * identifier) = identifier) ;) }))) }))) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "uVar35 = (ulong)uVar39;" (assignment_expression "uVar35 = (ulong)uVar39" identifier = (cast_expression "(ulong)uVar39" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "bVar3 = *pbVar34;" (assignment_expression "bVar3 = *pbVar34" identifier = (pointer_expression "*pbVar34" * identifier)) ;) })) (expression_statement "*(undefined8 *)((long)local_130 + uVar35 * 8) = 0;" (assignment_expression "*(undefined8 *)((long)local_130 + uVar35 * 8) = 0" (pointer_expression "*(undefined8 *)((long)local_130 + uVar35 * 8)" * (cast_expression "(undefined8 *)((long)local_130 + uVar35 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_130 + uVar35 * 8)" ( (binary_expression "(long)local_130 + uVar35 * 8" (cast_expression "(long)local_130" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "uVar35 * 8" identifier * number_literal)) )))) = number_literal) ;) (if_statement "if (param_6 <= pbVar34) goto LAB_00131328;" if (parenthesized_expression "(param_6 <= pbVar34)" ( (binary_expression "param_6 <= pbVar34" identifier <= identifier) )) (goto_statement "goto LAB_00131328;" goto statement_identifier ;)) (expression_statement "bVar3 = *pbVar34;" (assignment_expression "bVar3 = *pbVar34" identifier = (pointer_expression "*pbVar34" * identifier)) ;) (if_statement "if (bVar3 == 0x3b) {\n      local_108 = 0;\nLAB_001334bc:\n      pbVar22 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar22;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }" if (parenthesized_expression "(bVar3 == 0x3b)" ( (binary_expression "bVar3 == 0x3b" identifier == number_literal) )) (compound_statement "{\n      local_108 = 0;\nLAB_001334bc:\n      pbVar22 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar22;\n    }" { (expression_statement "local_108 = 0;" (assignment_expression "local_108 = 0" identifier = number_literal) ;) (labeled_statement "LAB_001334bc:\n      pbVar22 = pbVar34 + 1;" statement_identifier : (expression_statement "pbVar22 = pbVar34 + 1;" (assignment_expression "pbVar22 = pbVar34 + 1" identifier = (binary_expression "pbVar34 + 1" identifier + number_literal)) ;)) (expression_statement "*param_4 = (ulong)pbVar22;" (assignment_expression "*param_4 = (ulong)pbVar22" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar22" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }) (else_clause "else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }" else (compound_statement "{\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }" { (expression_statement "pbVar40 = (byte *)0x0;" (assignment_expression "pbVar40 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_128 = (void *)0x0;" (assignment_expression "local_128 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_108 = 0;" (assignment_expression "local_108 = 0" identifier = number_literal) ;) (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" identifier = number_literal) ;) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" identifier = number_literal) ;) (expression_statement "local_138 = (char *)0x0;" (assignment_expression "local_138 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar22 = pbVar34;" (assignment_expression "pbVar22 = pbVar34" identifier = identifier) ;) (do_statement "do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);" do (compound_statement "{\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      }" { (expression_statement "pcVar16 = strchr((char *)pbVar22,0x3a);" (assignment_expression "pcVar16 = strchr((char *)pbVar22,0x3a)" identifier = (call_expression "strchr((char *)pbVar22,0x3a)" identifier (argument_list "((char *)pbVar22,0x3a)" ( (cast_expression "(char *)pbVar22" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;" if (parenthesized_expression "((pcVar16 == (char *)0x0) || (pcVar16[1] != ':'))" ( (binary_expression "(pcVar16 == (char *)0x0) || (pcVar16[1] != ':')" (parenthesized_expression "(pcVar16 == (char *)0x0)" ( (binary_expression "pcVar16 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar16[1] != ':')" ( (binary_expression "pcVar16[1] != ':'" (subscript_expression "pcVar16[1]" identifier [ number_literal ]) != (char_literal "':'" ' character ')) ))) )) (break_statement "break;" break ;)) (expression_statement "pcVar15 = pcVar16 + 2;" (assignment_expression "pcVar15 = pcVar16 + 2" identifier = (binary_expression "pcVar16 + 2" identifier + number_literal)) ;) (if_statement "if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }" if (parenthesized_expression "((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24))))" ( (binary_expression "(bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))" (parenthesized_expression "(bVar3 == 0x6f)" ( (binary_expression "bVar3 == 0x6f" identifier == number_literal) )) && (parenthesized_expression "((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))" ( (parenthesized_expression "(pbVar22[1] == 0x70 && (pbVar22[2] == 0x24))" ( (binary_expression "pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)" (binary_expression "pbVar22[1] == 0x70" (subscript_expression "pbVar22[1]" identifier [ number_literal ]) == number_literal) && (parenthesized_expression "(pbVar22[2] == 0x24)" ( (binary_expression "pbVar22[2] == 0x24" (subscript_expression "pbVar22[2]" identifier [ number_literal ]) == number_literal) ))) )) ))) )) (compound_statement "{\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }" { (expression_statement "*param_4 = (ulong)pcVar15;" (assignment_expression "*param_4 = (ulong)pcVar15" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pcVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "cVar4 = pcVar16[2];" (assignment_expression "cVar4 = pcVar16[2]" identifier = (subscript_expression "pcVar16[2]" identifier [ number_literal ])) ;) (expression_statement "pcVar16 = pcVar15;" (assignment_expression "pcVar16 = pcVar15" identifier = identifier) ;) (while_statement "while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }" while (parenthesized_expression "((cVar4 != '.' && (cVar4 != '\0')))" ( (parenthesized_expression "(cVar4 != '.' && (cVar4 != '\0'))" ( (binary_expression "cVar4 != '.' && (cVar4 != '\0')" (binary_expression "cVar4 != '.'" identifier != (char_literal "'.'" ' character ')) && (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) )) (compound_statement "{\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }" { (expression_statement "pcVar16 = pcVar16 + 1;" (assignment_expression "pcVar16 = pcVar16 + 1" identifier = (binary_expression "pcVar16 + 1" identifier + number_literal)) ;) (expression_statement "cVar4 = *pcVar16;" (assignment_expression "cVar4 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) })) (if_statement "if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }" if (parenthesized_expression "(cVar4 != '.')" ( (binary_expression "cVar4 != '.'" identifier != (char_literal "'.'" ' character ')) )) (compound_statement "{\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }" { (expression_statement "FUN_0012e570(pbVar34);" (call_expression "FUN_0012e570(pbVar34)" identifier (argument_list "(pbVar34)" ( identifier ))) ;) (if_statement "if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }" if (parenthesized_expression "(local_138 != (char *)0x0)" ( (binary_expression "local_138 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0013279c:\n              free(local_138);\n            }" { (labeled_statement "LAB_0013279c:\n              free(local_138);" statement_identifier : (expression_statement "free(local_138);" (call_expression "free(local_138)" identifier (argument_list "(local_138)" ( identifier ))) ;)) })) (if_statement "if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }" if (parenthesized_expression "(local_128 != (void *)0x0)" ( (binary_expression "local_128 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00132d1b:\n              free(local_128);\n            }" { (labeled_statement "LAB_00132d1b:\n              free(local_128);" statement_identifier : (expression_statement "free(local_128);" (call_expression "free(local_128)" identifier (argument_list "(local_128)" ( identifier ))) ;)) })) (if_statement "if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }" if (parenthesized_expression "(pbVar40 != (byte *)0x0)" ( (binary_expression "pbVar40 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              free(pbVar40);\n            }" { (expression_statement "free(pbVar40);" (call_expression "free(pbVar40)" identifier (argument_list "(pbVar40)" ( identifier ))) ;) })) (goto_statement "goto LAB_00131328;" goto statement_identifier ;) })) (expression_statement "local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);" (assignment_expression "local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15)" identifier = (cast_expression "(char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15)" identifier (argument_list "(pcVar15,(long)pcVar16 - (long)pcVar15)" ( identifier , (binary_expression "(long)pcVar16 - (long)pcVar15" (cast_expression "(long)pcVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pcVar15" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ))))) ;) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) }) (else_clause "else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }" else (compound_statement "{\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }" { (expression_statement "local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);" (assignment_expression "local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22)" identifier = (cast_expression "(char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22)" identifier (argument_list "(pbVar22,(int)pcVar16 - (int)pbVar22)" ( identifier , (binary_expression "(int)pcVar16 - (int)pbVar22" (cast_expression "(int)pcVar16" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)pbVar22" ( (type_descriptor "int" primitive_type) ) identifier)) ))))) ;) (expression_statement "*param_4 = (ulong)pcVar15;" (assignment_expression "*param_4 = (ulong)pcVar15" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pcVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) }))) (expression_statement "local_128 = (void *)xmalloc(0x50);" (assignment_expression "local_128 = (void *)xmalloc(0x50)" identifier = (cast_expression "(void *)xmalloc(0x50)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x50)" identifier (argument_list "(0x50)" ( number_literal ))))) ;) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" identifier = number_literal) ;) (expression_statement "local_e8 = 10;" (assignment_expression "local_e8 = 10" identifier = number_literal) ;) (expression_statement "lVar17 = 0;" (assignment_expression "lVar17 = 0" identifier = number_literal) ;) (do_statement "do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));" do (compound_statement "{\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        }" { (if_statement "if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (compound_statement "{\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }" { (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (if_statement "if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }" if (parenthesized_expression "(lVar17 != 0)" ( (binary_expression "lVar17 != 0" identifier != number_literal) )) (compound_statement "{\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }" { (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (if_statement "if (*pcVar16 == ':') goto LAB_00131d3f;" if (parenthesized_expression "(*pcVar16 == ':')" ( (binary_expression "*pcVar16 == ':'" (pointer_expression "*pcVar16" * identifier) == (char_literal "':'" ' character ')) )) (goto_statement "goto LAB_00131d3f;" goto statement_identifier ;)) (goto_statement "goto LAB_00132781;" goto statement_identifier ;) })) (labeled_statement "LAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;" statement_identifier : (if_statement "if (local_138 == (char *)0x0) goto LAB_00132d1b;" if (parenthesized_expression "(local_138 == (char *)0x0)" ( (binary_expression "local_138 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00132d1b;" goto statement_identifier ;))) (goto_statement "goto LAB_0013279c;" goto statement_identifier ;) })) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (labeled_statement "LAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);" statement_identifier : (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;)) (expression_statement "pcVar16 = strchr(pcVar16 + 1,0x3b);" (assignment_expression "pcVar16 = strchr(pcVar16 + 1,0x3b)" identifier = (call_expression "strchr(pcVar16 + 1,0x3b)" identifier (argument_list "(pcVar16 + 1,0x3b)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) , number_literal )))) ;) (if_statement "if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }" if (parenthesized_expression "(pcVar16 == (char *)0x0)" ( (binary_expression "pcVar16 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }" { (labeled_statement "LAB_00132781:\n            FUN_0012e570(pbVar34);" statement_identifier : (expression_statement "FUN_0012e570(pbVar34);" (call_expression "FUN_0012e570(pbVar34)" identifier (argument_list "(pbVar34)" ( identifier ))) ;)) (goto_statement "goto LAB_00132793;" goto statement_identifier ;) })) (expression_statement "iVar5 = FUN_0012e080(param_1,lVar17);" (assignment_expression "iVar5 = FUN_0012e080(param_1,lVar17)" identifier = (call_expression "FUN_0012e080(param_1,lVar17)" identifier (argument_list "(param_1,lVar17)" ( identifier , identifier )))) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (if_statement "if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }" if (parenthesized_expression "(iVar5 == 0x13)" ( (binary_expression "iVar5 == 0x13" identifier == number_literal) )) (compound_statement "{\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }" { (expression_statement "lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);" (assignment_expression "lVar18 = FUN_0012e1b0(param_1,lVar17,local_80)" identifier = (call_expression "FUN_0012e1b0(param_1,lVar17,local_80)" identifier (argument_list "(param_1,lVar17,local_80)" ( identifier , identifier , identifier )))) ;) (expression_statement "bVar41 = lVar18 == 0;" (assignment_expression "bVar41 = lVar18 == 0" identifier = (binary_expression "lVar18 == 0" identifier == number_literal)) ;) })) (expression_statement "pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);" (assignment_expression "pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4)" identifier = (cast_expression "(byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012e600(*param_4,(long)pcVar16 - *param_4)" identifier (argument_list "(*param_4,(long)pcVar16 - *param_4)" ( (pointer_expression "*param_4" * identifier) , (binary_expression "(long)pcVar16 - *param_4" (cast_expression "(long)pcVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (pointer_expression "*param_4" * identifier)) ))))) ;) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (expression_statement "cVar4 = pcVar16[1];" (assignment_expression "cVar4 = pcVar16[1]" identifier = (subscript_expression "pcVar16[1]" identifier [ number_literal ])) ;) (if_statement "if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }" if (parenthesized_expression "(cVar4 == '0')" ( (binary_expression "cVar4 == '0'" identifier == (char_literal "'0'" ' character ')) )) (compound_statement "{\n            local_e4 = 2;\n          }" { (expression_statement "local_e4 = 2;" (assignment_expression "local_e4 = 2" identifier = number_literal) ;) }) (else_clause "else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }" else (if_statement "if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }" if (parenthesized_expression "(cVar4 == '1')" ( (binary_expression "cVar4 == '1'" identifier == (char_literal "'1'" ' character ')) )) (compound_statement "{\n            local_e4 = 1;\n          }" { (expression_statement "local_e4 = 1;" (assignment_expression "local_e4 = 1" identifier = number_literal) ;) }) (else_clause "else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }" else (compound_statement "{\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }" { (if_statement "if (cVar4 == '\0') goto LAB_00132781;" if (parenthesized_expression "(cVar4 == '\0')" ( (binary_expression "cVar4 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00132781;" goto statement_identifier ;)) (expression_statement "local_e4 = 0;" (assignment_expression "local_e4 = 0" identifier = number_literal) ;) }))))) (expression_statement "pcVar15 = pcVar16 + 2;" (assignment_expression "pcVar15 = pcVar16 + 2" identifier = (binary_expression "pcVar16 + 2" identifier + number_literal)) ;) (expression_statement "*param_4 = (ulong)pcVar15;" (assignment_expression "*param_4 = (ulong)pcVar15" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pcVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "cVar4 = pcVar16[2];" (assignment_expression "cVar4 = pcVar16[2]" identifier = (subscript_expression "pcVar16[2]" identifier [ number_literal ])) ;) (switch_statement "switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }" switch (parenthesized_expression "(cVar4)" ( identifier )) (compound_statement "{\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }" { (case_statement "case '*':" case (char_literal "'*'" ' character ') :) (case_statement "case '.':" case (char_literal "'.'" ' character ') :) (case_statement "case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;" case (char_literal "'?'" ' character ') : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;" default : (expression_statement "uVar14 = dcgettext(0,"const/volatile indicator missing",5);" (assignment_expression "uVar14 = dcgettext(0,"const/volatile indicator missing",5)" identifier = (call_expression "dcgettext(0,"const/volatile indicator missing",5)" identifier (argument_list "(0,"const/volatile indicator missing",5)" ( number_literal , (string_literal ""const/volatile indicator missing"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0012e500(pbVar34,uVar14);" (call_expression "FUN_0012e500(pbVar34,uVar14)" identifier (argument_list "(pbVar34,uVar14)" ( identifier , identifier ))) ;) (expression_statement "pcVar15 = (char *)*param_4;" (assignment_expression "pcVar15 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (expression_statement "cVar4 = *pcVar15;" (assignment_expression "cVar4 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (break_statement "break;" break ;)) (case_statement "case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;" case (char_literal "'A'" ' character ') : (expression_statement "pcVar15 = pcVar16 + 3;" (assignment_expression "pcVar15 = pcVar16 + 3" identifier = (binary_expression "pcVar16 + 3" identifier + number_literal)) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "*param_4 = (ulong)pcVar15;" (assignment_expression "*param_4 = (ulong)pcVar15" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pcVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "cVar4 = pcVar16[3];" (assignment_expression "cVar4 = pcVar16[3]" identifier = (subscript_expression "pcVar16[3]" identifier [ number_literal ])) ;) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;" case (char_literal "'B'" ' character ') : (expression_statement "pcVar15 = pcVar16 + 3;" (assignment_expression "pcVar15 = pcVar16 + 3" identifier = (binary_expression "pcVar16 + 3" identifier + number_literal)) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "*param_4 = (ulong)pcVar15;" (assignment_expression "*param_4 = (ulong)pcVar15" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pcVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "cVar4 = pcVar16[3];" (assignment_expression "cVar4 = pcVar16[3]" identifier = (subscript_expression "pcVar16[3]" identifier [ number_literal ])) ;) (expression_statement "local_f0 = 1;" (assignment_expression "local_f0 = 1" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;" case (char_literal "'C'" ' character ') : (expression_statement "pcVar15 = pcVar16 + 3;" (assignment_expression "pcVar15 = pcVar16 + 3" identifier = (binary_expression "pcVar16 + 3" identifier + number_literal)) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (expression_statement "*param_4 = (ulong)pcVar15;" (assignment_expression "*param_4 = (ulong)pcVar15" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pcVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "cVar4 = pcVar16[3];" (assignment_expression "cVar4 = pcVar16[3]" identifier = (subscript_expression "pcVar16[3]" identifier [ number_literal ])) ;) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" identifier = number_literal) ;) (break_statement "break;" break ;)) (case_statement "case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];" case (char_literal "'D'" ' character ') : (expression_statement "pcVar15 = pcVar16 + 3;" (assignment_expression "pcVar15 = pcVar16 + 3" identifier = (binary_expression "pcVar16 + 3" identifier + number_literal)) ;) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (expression_statement "local_f0 = 1;" (assignment_expression "local_f0 = 1" identifier = number_literal) ;) (expression_statement "*param_4 = (ulong)pcVar15;" (assignment_expression "*param_4 = (ulong)pcVar15" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pcVar15" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "cVar4 = pcVar16[3];" (assignment_expression "cVar4 = pcVar16[3]" identifier = (subscript_expression "pcVar16[3]" identifier [ number_literal ])) ;)) })) (expression_statement "pbVar22 = pbVar40;" (assignment_expression "pbVar22 = pbVar40" identifier = identifier) ;) (if_statement "if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }" if (parenthesized_expression "(cVar4 == '.')" ( (binary_expression "cVar4 == '.'" identifier == (char_literal "'.'" ' character ')) )) (compound_statement "{\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }" { (expression_statement "bVar44 = false;" (assignment_expression "bVar44 = false" identifier = false) ;) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) (expression_statement "*param_4 = (ulong)(pcVar15 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar15 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar15 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar15 + 1)" ( (binary_expression "pcVar15 + 1" identifier + number_literal) )))) ;) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" identifier = number_literal) ;) (labeled_statement "LAB_001322ba:\n            if (bVar41) goto LAB_0013282f;" statement_identifier : (if_statement "if (bVar41) goto LAB_0013282f;" if (parenthesized_expression "(bVar41)" ( identifier )) (goto_statement "goto LAB_0013282f;" goto statement_identifier ;))) }) (else_clause "else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }" else (compound_statement "{\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }" { (if_statement "if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }" if (parenthesized_expression "(cVar4 != '?')" ( (binary_expression "cVar4 != '?'" identifier != (char_literal "'?'" ' character ')) )) (compound_statement "{\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }" { (if_statement "if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }" if (parenthesized_expression "(cVar4 == '*')" ( (binary_expression "cVar4 == '*'" identifier == (char_literal "'*'" ' character ')) )) (compound_statement "{\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }" { (expression_statement "*param_4 = (ulong)(pcVar15 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar15 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar15 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar15 + 1)" ( (binary_expression "pcVar15 + 1" identifier + number_literal) )))) ;) (expression_statement "uVar39 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar39 = FUN_0012e630(param_4,0,param_6)" identifier = (call_expression "FUN_0012e630(param_4,0,param_6)" identifier (argument_list "(param_4,0,param_6)" ( identifier , number_literal , identifier )))) ;) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (if_statement "if (*pcVar16 != ';') goto LAB_00132781;" if (parenthesized_expression "(*pcVar16 != ';')" ( (binary_expression "*pcVar16 != ';'" (pointer_expression "*pcVar16" * identifier) != (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_00132781;" goto statement_identifier ;)) (expression_statement "uVar39 = uVar39 & 0x7fffffff;" (assignment_expression "uVar39 = uVar39 & 0x7fffffff" identifier = (binary_expression "uVar39 & 0x7fffffff" identifier & number_literal)) ;) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (if_statement "if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }" if (parenthesized_expression "((pcVar16[1] == ';') || (pcVar16[1] == '\0'))" ( (binary_expression "(pcVar16[1] == ';') || (pcVar16[1] == '\0')" (parenthesized_expression "(pcVar16[1] == ';')" ( (binary_expression "pcVar16[1] == ';'" (subscript_expression "pcVar16[1]" identifier [ number_literal ]) == (char_literal "';'" ' character ')) )) || (parenthesized_expression "(pcVar16[1] == '\0')" ( (binary_expression "pcVar16[1] == '\0'" (subscript_expression "pcVar16[1]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }" { (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) (expression_statement "bVar44 = false;" (assignment_expression "bVar44 = false" identifier = false) ;) }) (else_clause "else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }" else (compound_statement "{\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }" { (expression_statement "lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "cVar4 = *(char *)*param_4;" (assignment_expression "cVar4 = *(char *)*param_4" identifier = (pointer_expression "*(char *)*param_4" * (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)))) ;) (if_statement "if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }" if (parenthesized_expression "(cVar4 == ':')" ( (binary_expression "cVar4 == ':'" identifier == (char_literal "':'" ' character ')) )) (compound_statement "{\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }" { (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (expression_statement "bVar44 = false;" (assignment_expression "bVar44 = false" identifier = false) ;) (expression_statement "lVar18 = lVar13;" (assignment_expression "lVar18 = lVar13" identifier = identifier) ;) }) (else_clause "else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }" else (compound_statement "{\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }" { (if_statement "if (cVar4 != ';') goto LAB_00132781;" if (parenthesized_expression "(cVar4 != ';')" ( (binary_expression "cVar4 != ';'" identifier != (char_literal "';'" ' character ')) )) (goto_statement "goto LAB_00132781;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "((char *)*param_4 + 1)" ( (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier)) + number_literal) )))) ;) (expression_statement "bVar44 = false;" (assignment_expression "bVar44 = false" identifier = false) ;) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) (expression_statement "local_100 = lVar13;" (assignment_expression "local_100 = lVar13" identifier = identifier) ;) }))) }))) }) (else_clause "else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }" else (compound_statement "{\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }" { (expression_statement "FUN_0012e500(pbVar34,"member function type missing");" (call_expression "FUN_0012e500(pbVar34,"member function type missing")" identifier (argument_list "(pbVar34,"member function type missing")" ( identifier , (string_literal ""member function type missing"" " string_content ") ))) ;) (expression_statement "bVar44 = false;" (assignment_expression "bVar44 = false" identifier = false) ;) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" identifier = number_literal) ;) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) }))) (goto_statement "goto LAB_001322ba;" goto statement_identifier ;) })) (expression_statement "*param_4 = (ulong)(pcVar15 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar15 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar15 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar15 + 1)" ( (binary_expression "pcVar15 + 1" identifier + number_literal) )))) ;) (expression_statement "sVar20 = strlen(local_138);" (assignment_expression "sVar20 = strlen(local_138)" identifier = (call_expression "strlen(local_138)" identifier (argument_list "(local_138)" ( identifier )))) ;) (expression_statement "iVar27 = strncmp((char *)pbVar40,local_138,sVar20);" (assignment_expression "iVar27 = strncmp((char *)pbVar40,local_138,sVar20)" identifier = (call_expression "strncmp((char *)pbVar40,local_138,sVar20)" identifier (argument_list "((char *)pbVar40,local_138,sVar20)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier )))) ;) (if_statement "if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (compound_statement "{\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }" { (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" identifier = number_literal) ;) (expression_statement "bVar44 = true;" (assignment_expression "bVar44 = true" identifier = true) ;) (goto_statement "goto LAB_001322ba;" goto statement_identifier ;) })) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" identifier = number_literal) ;) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" identifier = number_literal) ;) (expression_statement "bVar44 = true;" (assignment_expression "bVar44 = true" identifier = true) ;) (labeled_statement "LAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);" statement_identifier : (expression_statement "lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);" (assignment_expression "lVar13 = FUN_0012e9f0(param_1,param_2,&local_70)" identifier = (call_expression "FUN_0012e9f0(param_1,param_2,&local_70)" identifier (argument_list "(param_1,param_2,&local_70)" ( identifier , identifier , (pointer_expression "&local_70" & identifier) )))) ;)) (if_statement "if (lVar13 == 0) goto LAB_00132793;" if (parenthesized_expression "(lVar13 == 0)" ( (binary_expression "lVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00132793;" goto statement_identifier ;)) (expression_statement "lVar17 = FUN_0012e160(param_1,lVar17);" (assignment_expression "lVar17 = FUN_0012e160(param_1,lVar17)" identifier = (call_expression "FUN_0012e160(param_1,lVar17)" identifier (argument_list "(param_1,lVar17)" ( identifier , identifier )))) ;) (if_statement "if (lVar17 == 0) goto LAB_00132781;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00132781;" goto statement_identifier ;)) (expression_statement "bVar41 = *pbVar40 < 0x5f;" (assignment_expression "bVar41 = *pbVar40 < 0x5f" identifier = (binary_expression "*pbVar40 < 0x5f" (pointer_expression "*pbVar40" * identifier) < number_literal)) ;) (expression_statement "bVar45 = *pbVar40 == 0x5f;" (assignment_expression "bVar45 = *pbVar40 == 0x5f" identifier = (binary_expression "*pbVar40 == 0x5f" (pointer_expression "*pbVar40" * identifier) == number_literal)) ;) (if_statement "if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }" if (parenthesized_expression "(bVar45)" ( identifier )) (compound_statement "{\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }" { (if_statement "if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }" if (parenthesized_expression "(pbVar40[1] != 0x5f)" ( (binary_expression "pbVar40[1] != 0x5f" (subscript_expression "pbVar40[1]" identifier [ number_literal ]) != number_literal) )) (compound_statement "{\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }" { (expression_statement "iVar27 = strncmp((char *)pbVar40,"__ct",4);" (assignment_expression "iVar27 = strncmp((char *)pbVar40,"__ct",4)" identifier = (call_expression "strncmp((char *)pbVar40,"__ct",4)" identifier (argument_list "((char *)pbVar40,"__ct",4)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""__ct"" " string_content ") , number_literal )))) ;) (if_statement "if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (compound_statement "{\n                  bVar45 = true;\n                  bVar41 = true;\n                }" { (expression_statement "bVar45 = true;" (assignment_expression "bVar45 = true" identifier = true) ;) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" identifier = true) ;) }) (else_clause "else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }" else (compound_statement "{\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }" { (if_statement "if (param_3 != (char *)0x0) goto LAB_001338f6;" if (parenthesized_expression "(param_3 != (char *)0x0)" ( (binary_expression "param_3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_001338f6;" goto statement_identifier ;)) (expression_statement "bVar45 = false;" (assignment_expression "bVar45 = false" identifier = false) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) }))) (labeled_statement "LAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;" statement_identifier : (if_statement "if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;" if (parenthesized_expression "((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0))" ( (binary_expression "(((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)" (parenthesized_expression "(((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f))" ( (binary_expression "((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)" (parenthesized_expression "((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e))" ( (binary_expression "(pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)" (parenthesized_expression "(pbVar40[1] != 0x24)" ( (binary_expression "pbVar40[1] != 0x24" (subscript_expression "pbVar40[1]" identifier [ number_literal ]) != number_literal) )) && (parenthesized_expression "(pbVar40[1] != 0x2e)" ( (binary_expression "pbVar40[1] != 0x2e" (subscript_expression "pbVar40[1]" identifier [ number_literal ]) != number_literal) ))) )) || (parenthesized_expression "(pbVar40[2] != 0x5f)" ( (binary_expression "pbVar40[2] != 0x5f" (subscript_expression "pbVar40[2]" identifier [ number_literal ]) != number_literal) ))) )) && (parenthesized_expression "(iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)" ( (comma_expression "iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0" (assignment_expression "iVar27 = strncmp((char *)pbVar40,"__dt",4)" identifier = (call_expression "strncmp((char *)pbVar40,"__dt",4)" identifier (argument_list "((char *)pbVar40,"__dt",4)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""__dt"" " string_content ") , number_literal )))) , (binary_expression "iVar27 != 0" identifier != number_literal)) ))) )) (goto_statement "goto LAB_0013358b;" goto statement_identifier ;))) (labeled_statement "LAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;" statement_identifier : (if_statement "if (pbVar40[1] == 0x5a) goto LAB_001328ca;" if (parenthesized_expression "(pbVar40[1] == 0x5a)" ( (binary_expression "pbVar40[1] == 0x5a" (subscript_expression "pbVar40[1]" identifier [ number_literal ]) == number_literal) )) (goto_statement "goto LAB_001328ca;" goto statement_identifier ;))) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" identifier = true) ;) (labeled_statement "LAB_001336b5:\n                local_d8 = 0;" statement_identifier : (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" identifier = number_literal) ;)) (goto_statement "goto LAB_0013302f;" goto statement_identifier ;) })) (expression_statement "bVar3 = pbVar40[2];" (assignment_expression "bVar3 = pbVar40[2]" identifier = (subscript_expression "pbVar40[2]" identifier [ number_literal ])) ;) (if_statement "if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }" if (parenthesized_expression "((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0))" ( (binary_expression "(((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)" (parenthesized_expression "(((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))" ( (binary_expression "((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74)" (parenthesized_expression "((_sch_istable[(ulong)bVar3 * 2] & 4) == 0)" ( (binary_expression "(_sch_istable[(ulong)bVar3 * 2] & 4) == 0" (parenthesized_expression "(_sch_istable[(ulong)bVar3 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)bVar3 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar3 * 2]" identifier [ (binary_expression "(ulong)bVar3 * 2" (cast_expression "(ulong)bVar3" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "(bVar3 != 0x51 && bVar3 != 0x74)" ( (binary_expression "bVar3 != 0x51 && bVar3 != 0x74" (binary_expression "bVar3 != 0x51" identifier != number_literal) && (binary_expression "bVar3 != 0x74" identifier != number_literal)) ))) )) && (parenthesized_expression "(iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)" ( (comma_expression "iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0" (assignment_expression "iVar27 = strncmp((char *)pbVar40,"__ct",4)" identifier = (call_expression "strncmp((char *)pbVar40,"__ct",4)" identifier (argument_list "((char *)pbVar40,"__ct",4)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""__ct"" " string_content ") , number_literal )))) , (binary_expression "iVar27 != 0" identifier != number_literal)) ))) )) (compound_statement "{\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }" { (if_statement "if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }" if (parenthesized_expression "(param_3 != (char *)0x0)" ( (binary_expression "param_3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }" { (labeled_statement "LAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);" statement_identifier : (expression_statement "iVar27 = strcmp(local_138,param_3);" (assignment_expression "iVar27 = strcmp(local_138,param_3)" identifier = (call_expression "strcmp(local_138,param_3)" identifier (argument_list "(local_138,param_3)" ( identifier , identifier )))) ;)) (expression_statement "bVar45 = iVar27 == 0;" (assignment_expression "bVar45 = iVar27 == 0" identifier = (binary_expression "iVar27 == 0" identifier == number_literal)) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (goto_statement "goto LAB_00133557;" goto statement_identifier ;) })) (expression_statement "iVar27 = strncmp((char *)pbVar40,"__dt",4);" (assignment_expression "iVar27 = strncmp((char *)pbVar40,"__dt",4)" identifier = (call_expression "strncmp((char *)pbVar40,"__dt",4)" identifier (argument_list "((char *)pbVar40,"__dt",4)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""__dt"" " string_content ") , number_literal )))) ;) (if_statement "if (iVar27 == 0) goto LAB_001336a5;" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001336a5;" goto statement_identifier ;)) (expression_statement "bVar45 = false;" (assignment_expression "bVar45 = false" identifier = false) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) }) (else_clause "else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }" else (compound_statement "{\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }" { (expression_statement "iVar27 = strncmp((char *)pbVar40,"__dt",4);" (assignment_expression "iVar27 = strncmp((char *)pbVar40,"__dt",4)" identifier = (call_expression "strncmp((char *)pbVar40,"__dt",4)" identifier (argument_list "((char *)pbVar40,"__dt",4)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""__dt"" " string_content ") , number_literal )))) ;) (if_statement "if (iVar27 == 0) goto LAB_001336a5;" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (goto_statement "goto LAB_001336a5;" goto statement_identifier ;)) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" identifier = true) ;) (expression_statement "bVar45 = true;" (assignment_expression "bVar45 = true" identifier = true) ;) }))) (labeled_statement "LAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;" statement_identifier : (if_statement "if (pbVar40[1] != 0x5a) goto LAB_00132deb;" if (parenthesized_expression "(pbVar40[1] != 0x5a)" ( (binary_expression "pbVar40[1] != 0x5a" (subscript_expression "pbVar40[1]" identifier [ number_literal ]) != number_literal) )) (goto_statement "goto LAB_00132deb;" goto statement_identifier ;))) (if_statement "if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;" if (parenthesized_expression "((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a))" ( (binary_expression "(*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)" (parenthesized_expression "(*pbVar40 == 0x5f)" ( (binary_expression "*pbVar40 == 0x5f" (pointer_expression "*pbVar40" * identifier) == number_literal) )) && (parenthesized_expression "(pbVar40[1] == 0x5a)" ( (binary_expression "pbVar40[1] == 0x5a" (subscript_expression "pbVar40[1]" identifier [ number_literal ]) == number_literal) ))) )) (goto_statement "goto LAB_00133b71;" goto statement_identifier ;)) (expression_statement "local_58 = (undefined8 *)0x0;" (assignment_expression "local_58 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50[0] = 0;" (assignment_expression "local_50[0] = 0" (subscript_expression "local_50[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_3c = 10;" (assignment_expression "local_3c = 10" identifier = number_literal) ;) (expression_statement "local_78 = pbVar40;" (assignment_expression "local_78 = pbVar40" identifier = identifier) ;) (expression_statement "local_68 = param_1;" (assignment_expression "local_68 = param_1" identifier = identifier) ;) (expression_statement "local_60 = param_2;" (assignment_expression "local_60 = param_2" identifier = identifier) ;) (expression_statement "local_48 = (void *)xmalloc(0xa0);" (assignment_expression "local_48 = (void *)xmalloc(0xa0)" identifier = (cast_expression "(void *)xmalloc(0xa0)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0xa0)" identifier (argument_list "(0xa0)" ( number_literal ))))) ;) (labeled_statement "LAB_0013360b:\n              pbVar33 = local_78;" statement_identifier : (expression_statement "pbVar33 = local_78;" (assignment_expression "pbVar33 = local_78" identifier = identifier) ;)) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (expression_statement "pbVar37 = local_78;" (assignment_expression "pbVar37 = local_78" identifier = identifier) ;) (do_statement "do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);" do (compound_statement "{\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              }" { (expression_statement "pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);" (assignment_expression "pbVar31 = (byte *)strchr((char *)pbVar37,0x5f)" identifier = (cast_expression "(byte *)strchr((char *)pbVar37,0x5f)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "strchr((char *)pbVar37,0x5f)" identifier (argument_list "((char *)pbVar37,0x5f)" ( (cast_expression "(char *)pbVar37" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal ))))) ;) (if_statement "if (pbVar31 == (byte *)0x0) goto LAB_00133635;" if (parenthesized_expression "(pbVar31 == (byte *)0x0)" ( (binary_expression "pbVar31 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00133635;" goto statement_identifier ;)) (expression_statement "pbVar37 = pbVar31 + 1;" (assignment_expression "pbVar37 = pbVar31 + 1" identifier = (binary_expression "pbVar31 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(pbVar31[1] != 0x5f)" ( (binary_expression "pbVar31[1] != 0x5f" (subscript_expression "pbVar31[1]" identifier [ number_literal ]) != number_literal) )) ;) (if_statement "if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }" if (parenthesized_expression "(pbVar37 != (byte *)0x0)" ( (binary_expression "pbVar37 != (byte *)0x0" identifier != (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }" { (expression_statement "sVar20 = strspn((char *)pbVar31,"_");" (assignment_expression "sVar20 = strspn((char *)pbVar31,"_")" identifier = (call_expression "strspn((char *)pbVar31,"_")" identifier (argument_list "((char *)pbVar31,"_")" ( (cast_expression "(char *)pbVar31" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""_"" " string_content ") )))) ;) (if_statement "if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }" if (parenthesized_expression "(2 < (uint)sVar20)" ( (binary_expression "2 < (uint)sVar20" number_literal < (cast_expression "(uint)sVar20" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }" { (expression_statement "pbVar31 = pbVar31 + ((uint)sVar20 - 2);" (assignment_expression "pbVar31 = pbVar31 + ((uint)sVar20 - 2)" identifier = (binary_expression "pbVar31 + ((uint)sVar20 - 2)" identifier + (parenthesized_expression "((uint)sVar20 - 2)" ( (binary_expression "(uint)sVar20 - 2" (cast_expression "(uint)sVar20" ( (type_descriptor "uint" type_identifier) ) identifier) - number_literal) )))) ;) })) (goto_statement "goto LAB_001330d0;" goto statement_identifier ;) })) (labeled_statement "LAB_00133635:\n              FUN_0012e540(pbVar33);" statement_identifier : (expression_statement "FUN_0012e540(pbVar33);" (call_expression "FUN_0012e540(pbVar33)" identifier (argument_list "(pbVar33)" ( identifier ))) ;)) (labeled_statement "LAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }" statement_identifier : (if_statement "if (local_48 != (void *)0x0) {\n                free(local_48);\n              }" if (parenthesized_expression "(local_48 != (void *)0x0)" ( (binary_expression "local_48 != (void *)0x0" identifier != (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                free(local_48);\n              }" { (expression_statement "free(local_48);" (call_expression "free(local_48)" identifier (argument_list "(local_48)" ( identifier ))) ;) }))) (goto_statement "goto LAB_00132793;" goto statement_identifier ;) })) (expression_statement "lVar26 = 4;" (assignment_expression "lVar26 = 4" identifier = number_literal) ;) (expression_statement "pbVar37 = pbVar40;" (assignment_expression "pbVar37 = pbVar40" identifier = identifier) ;) (expression_statement "pbVar33 = &DAT_00146a76;" (assignment_expression "pbVar33 = &DAT_00146a76" identifier = (pointer_expression "&DAT_00146a76" & identifier)) ;) (do_statement "do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);" do (compound_statement "{\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            }" { (if_statement "if (lVar26 == 0) break;" if (parenthesized_expression "(lVar26 == 0)" ( (binary_expression "lVar26 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar26 = lVar26 + -1;" (assignment_expression "lVar26 = lVar26 + -1" identifier = (binary_expression "lVar26 + -1" identifier + number_literal)) ;) (expression_statement "bVar41 = *pbVar37 < *pbVar33;" (assignment_expression "bVar41 = *pbVar37 < *pbVar33" identifier = (binary_expression "*pbVar37 < *pbVar33" (pointer_expression "*pbVar37" * identifier) < (pointer_expression "*pbVar33" * identifier))) ;) (expression_statement "bVar45 = *pbVar37 == *pbVar33;" (assignment_expression "bVar45 = *pbVar37 == *pbVar33" identifier = (binary_expression "*pbVar37 == *pbVar33" (pointer_expression "*pbVar37" * identifier) == (pointer_expression "*pbVar33" * identifier))) ;) (expression_statement "pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1" identifier = (binary_expression "pbVar37 + (ulong)bVar47 * -2 + 1" (binary_expression "pbVar37 + (ulong)bVar47 * -2" identifier + (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1" identifier = (binary_expression "pbVar33 + (ulong)bVar47 * -2 + 1" (binary_expression "pbVar33 + (ulong)bVar47 * -2" identifier + (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar45)" ( identifier )) ;) (expression_statement "bVar46 = (!bVar41 && !bVar45) == bVar41;" (assignment_expression "bVar46 = (!bVar41 && !bVar45) == bVar41" identifier = (binary_expression "(!bVar41 && !bVar45) == bVar41" (parenthesized_expression "(!bVar41 && !bVar45)" ( (binary_expression "!bVar41 && !bVar45" (unary_expression "!bVar41" ! identifier) && (unary_expression "!bVar45" ! identifier)) )) == identifier)) ;) (if_statement "if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }" if (parenthesized_expression "(bVar46)" ( identifier )) (compound_statement "{\n              bVar45 = true;\n              bVar41 = true;\n            }" { (expression_statement "bVar45 = true;" (assignment_expression "bVar45 = true" identifier = true) ;) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" identifier = true) ;) }) (else_clause "else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }" else (if_statement "if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }" if (parenthesized_expression "(param_3 == (char *)0x0)" ( (binary_expression "param_3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }" { (expression_statement "bVar45 = false;" (assignment_expression "bVar45 = false" identifier = false) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (expression_statement "bVar46 = true;" (assignment_expression "bVar46 = true" identifier = true) ;) }) (else_clause "else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }" else (compound_statement "{\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }" { (expression_statement "iVar27 = strcmp(local_138,param_3);" (assignment_expression "iVar27 = strcmp(local_138,param_3)" identifier = (call_expression "strcmp(local_138,param_3)" identifier (argument_list "(local_138,param_3)" ( identifier , identifier )))) ;) (expression_statement "bVar45 = iVar27 == 0;" (assignment_expression "bVar45 = iVar27 == 0" identifier = (binary_expression "iVar27 == 0" identifier == number_literal)) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (expression_statement "bVar46 = true;" (assignment_expression "bVar46 = true" identifier = true) ;) }))))) (expression_statement "bVar42 = false;" (assignment_expression "bVar42 = false" identifier = false) ;) (expression_statement "lVar26 = 4;" (assignment_expression "lVar26 = 4" identifier = number_literal) ;) (expression_statement "pbVar37 = pbVar40;" (assignment_expression "pbVar37 = pbVar40" identifier = identifier) ;) (expression_statement "pbVar33 = &DAT_00146a4b;" (assignment_expression "pbVar33 = &DAT_00146a4b" identifier = (pointer_expression "&DAT_00146a4b" & identifier)) ;) (do_statement "do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);" do (compound_statement "{\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            }" { (if_statement "if (lVar26 == 0) break;" if (parenthesized_expression "(lVar26 == 0)" ( (binary_expression "lVar26 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar26 = lVar26 + -1;" (assignment_expression "lVar26 = lVar26 + -1" identifier = (binary_expression "lVar26 + -1" identifier + number_literal)) ;) (expression_statement "bVar42 = *pbVar37 < *pbVar33;" (assignment_expression "bVar42 = *pbVar37 < *pbVar33" identifier = (binary_expression "*pbVar37 < *pbVar33" (pointer_expression "*pbVar37" * identifier) < (pointer_expression "*pbVar33" * identifier))) ;) (expression_statement "bVar46 = *pbVar37 == *pbVar33;" (assignment_expression "bVar46 = *pbVar37 == *pbVar33" identifier = (binary_expression "*pbVar37 == *pbVar33" (pointer_expression "*pbVar37" * identifier) == (pointer_expression "*pbVar33" * identifier))) ;) (expression_statement "pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1" identifier = (binary_expression "pbVar37 + (ulong)bVar47 * -2 + 1" (binary_expression "pbVar37 + (ulong)bVar47 * -2" identifier + (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1" identifier = (binary_expression "pbVar33 + (ulong)bVar47 * -2 + 1" (binary_expression "pbVar33 + (ulong)bVar47 * -2" identifier + (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(bVar46)" ( identifier )) ;) (if_statement "if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }" if (parenthesized_expression "((!bVar42 && !bVar46) == bVar42)" ( (binary_expression "(!bVar42 && !bVar46) == bVar42" (parenthesized_expression "(!bVar42 && !bVar46)" ( (binary_expression "!bVar42 && !bVar46" (unary_expression "!bVar42" ! identifier) && (unary_expression "!bVar46" ! identifier)) )) == identifier) )) (compound_statement "{\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }" { (labeled_statement "LAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);" statement_identifier : (expression_statement "puVar19 = (undefined8 *)xmalloc(8);" (assignment_expression "puVar19 = (undefined8 *)xmalloc(8)" identifier = (cast_expression "(undefined8 *)xmalloc(8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(8)" identifier (argument_list "(8)" ( number_literal ))))) ;)) (expression_statement "*puVar19 = 0;" (assignment_expression "*puVar19 = 0" (pointer_expression "*puVar19" * identifier) = number_literal) ;) (expression_statement "iVar27 = 0;" (assignment_expression "iVar27 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }" else (compound_statement "{\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }" { (labeled_statement "LAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }" statement_identifier : (if_statement "if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }" if (parenthesized_expression "(bVar41)" ( identifier )) (compound_statement "{\n                bVar41 = false;\n                goto LAB_001336b5;\n              }" { (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (goto_statement "goto LAB_001336b5;" goto statement_identifier ;) }))) (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" identifier = number_literal) ;) (if_statement "if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }" if (parenthesized_expression "(param_3 != (char *)0x0)" ( (binary_expression "param_3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }" { (expression_statement "sVar20 = strlen(param_3);" (assignment_expression "sVar20 = strlen(param_3)" identifier = (call_expression "strlen(param_3)" identifier (argument_list "(param_3)" ( identifier )))) ;) (expression_statement "local_d8 = sVar20 & 0xffffffff;" (assignment_expression "local_d8 = sVar20 & 0xffffffff" identifier = (binary_expression "sVar20 & 0xffffffff" identifier & number_literal)) ;) })) (expression_statement "pcVar15 = "C";" (assignment_expression "pcVar15 = "C"" identifier = (string_literal ""C"" " string_content ")) ;) (expression_statement "pcVar16 = "V";" (assignment_expression "pcVar16 = "V"" identifier = (string_literal ""V"" " string_content ")) ;) (if_statement "if (local_f0 == 0) {\n                pcVar15 = "";\n              }" if (parenthesized_expression "(local_f0 == 0)" ( (binary_expression "local_f0 == 0" identifier == number_literal) )) (compound_statement "{\n                pcVar15 = "";\n              }" { (expression_statement "pcVar15 = "";" (assignment_expression "pcVar15 = """ identifier = (string_literal """" " ")) ;) })) (if_statement "if (iVar5 == 0) {\n                pcVar16 = "";\n              }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n                pcVar16 = "";\n              }" { (expression_statement "pcVar16 = "";" (assignment_expression "pcVar16 = """ identifier = (string_literal """" " ")) ;) })) (expression_statement "local_c0 = param_3;" (assignment_expression "local_c0 = param_3" identifier = identifier) ;) (if_statement "if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }" if (parenthesized_expression "((int)local_d8 == 0)" ( (binary_expression "(int)local_d8 == 0" (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (compound_statement "{\n                sprintf((char *)&local_68,"__%s%s");\n              }" { (expression_statement "sprintf((char *)&local_68,"__%s%s");" (call_expression "sprintf((char *)&local_68,"__%s%s")" identifier (argument_list "((char *)&local_68,"__%s%s")" ( (cast_expression "(char *)&local_68" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_68" & identifier)) , (string_literal ""__%s%s"" " string_content ") ))) ;) }) (else_clause "else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }" else (if_statement "if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }" if (parenthesized_expression "((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0))" ( (binary_expression "(param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)" (parenthesized_expression "(param_3 == (char *)0x0)" ( (binary_expression "param_3 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)" ( (comma_expression "pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0" (assignment_expression "pcVar21 = strchr(param_3,0x3c)" identifier = (call_expression "strchr(param_3,0x3c)" identifier (argument_list "(param_3,0x3c)" ( identifier , number_literal )))) , (binary_expression "pcVar21 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal))) ))) )) (compound_statement "{\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }" { (expression_statement "sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);" (call_expression "sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8)" identifier (argument_list "((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8)" ( (cast_expression "(char *)&local_68" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_68" & identifier)) , (string_literal ""__%s%s%d"" " string_content ") , identifier , identifier , identifier ))) ;) }) (else_clause "else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }" else (compound_statement "{\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }" { (expression_statement "sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);" (call_expression "sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16)" identifier (argument_list "((char *)&local_68,"__%s%s",pcVar15,pcVar16)" ( (cast_expression "(char *)&local_68" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_68" & identifier)) , (string_literal ""__%s%s"" " string_content ") , identifier , identifier ))) ;) (expression_statement "local_d8._0_4_ = 0;" (assignment_expression "local_d8._0_4_ = 0" (field_expression "local_d8._0_4_" identifier . field_identifier) = number_literal) ;) (expression_statement "local_c0 = (char *)0x0;" (assignment_expression "local_c0 = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))))) (expression_statement "puVar30 = (uint *)&local_68;" (assignment_expression "puVar30 = (uint *)&local_68" identifier = (cast_expression "(uint *)&local_68" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_68" & identifier))) ;) (do_statement "do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);" do (compound_statement "{\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              }" { (expression_statement "puVar29 = puVar30;" (assignment_expression "puVar29 = puVar30" identifier = identifier) ;) (expression_statement "uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;" (assignment_expression "uVar6 = *puVar29 + 0xfefefeff & ~*puVar29" identifier = (binary_expression "*puVar29 + 0xfefefeff & ~*puVar29" (binary_expression "*puVar29 + 0xfefefeff" (pointer_expression "*puVar29" * identifier) + number_literal) & (unary_expression "~*puVar29" ~ (pointer_expression "*puVar29" * identifier)))) ;) (expression_statement "uVar7 = uVar6 & 0x80808080;" (assignment_expression "uVar7 = uVar6 & 0x80808080" identifier = (binary_expression "uVar6 & 0x80808080" identifier & number_literal)) ;) (expression_statement "puVar30 = puVar29 + 1;" (assignment_expression "puVar30 = puVar29 + 1" identifier = (binary_expression "puVar29 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar7 == 0)" ( (binary_expression "uVar7 == 0" identifier == number_literal) )) ;) (expression_statement "bVar41 = (uVar6 & 0x8080) == 0;" (assignment_expression "bVar41 = (uVar6 & 0x8080) == 0" identifier = (binary_expression "(uVar6 & 0x8080) == 0" (parenthesized_expression "(uVar6 & 0x8080)" ( (binary_expression "uVar6 & 0x8080" identifier & number_literal) )) == number_literal)) ;) (if_statement "if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }" if (parenthesized_expression "(bVar41)" ( identifier )) (compound_statement "{\n                uVar7 = uVar7 >> 0x10;\n              }" { (expression_statement "uVar7 = uVar7 >> 0x10;" (assignment_expression "uVar7 = uVar7 >> 0x10" identifier = (binary_expression "uVar7 >> 0x10" identifier >> number_literal)) ;) })) (expression_statement "cVar4 = *local_138;" (assignment_expression "cVar4 = *local_138" identifier = (pointer_expression "*local_138" * identifier)) ;) (if_statement "if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }" if (parenthesized_expression "(bVar41)" ( identifier )) (compound_statement "{\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }" { (expression_statement "puVar30 = (uint *)((long)puVar29 + 6);" (assignment_expression "puVar30 = (uint *)((long)puVar29 + 6)" identifier = (cast_expression "(uint *)((long)puVar29 + 6)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)puVar29 + 6)" ( (binary_expression "(long)puVar29 + 6" (cast_expression "(long)puVar29" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + number_literal) )))) ;) })) (expression_statement "iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;" (assignment_expression "iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68" identifier = (binary_expression "(((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68" (parenthesized_expression "(((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7))" ( (binary_expression "((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)" (parenthesized_expression "((int)puVar30 + -3)" ( (binary_expression "(int)puVar30 + -3" (cast_expression "(int)puVar30" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )) - (cast_expression "(uint)CARRY1((byte)uVar7,(byte)uVar7)" ( (type_descriptor "uint" type_identifier) ) (call_expression "CARRY1((byte)uVar7,(byte)uVar7)" identifier (argument_list "((byte)uVar7,(byte)uVar7)" ( (cast_expression "(byte)uVar7" ( (type_descriptor "byte" type_identifier) ) identifier) , (cast_expression "(byte)uVar7" ( (type_descriptor "byte" type_identifier) ) identifier) ))))) )) - (cast_expression "(int)&local_68" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&local_68" & identifier)))) ;) (expression_statement "sVar20 = strlen((char *)pbVar40);" (assignment_expression "sVar20 = strlen((char *)pbVar40)" identifier = (call_expression "strlen((char *)pbVar40)" identifier (argument_list "((char *)pbVar40)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }" if (parenthesized_expression "(bVar45)" ( identifier )) (compound_statement "{\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }" { (expression_statement "iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;" (assignment_expression "iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20" identifier = (binary_expression "iVar27 + (int)local_d8 + 1 + (int)sVar20" (binary_expression "iVar27 + (int)local_d8 + 1" (binary_expression "iVar27 + (int)local_d8" identifier + (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) + (cast_expression "(int)sVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;" if (parenthesized_expression "(((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.'))))" ( (binary_expression "((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))" (parenthesized_expression "((cVar4 == 'o') && (local_138[1] == 'p'))" ( (binary_expression "(cVar4 == 'o') && (local_138[1] == 'p')" (parenthesized_expression "(cVar4 == 'o')" ( (binary_expression "cVar4 == 'o'" identifier == (char_literal "'o'" ' character ')) )) && (parenthesized_expression "(local_138[1] == 'p')" ( (binary_expression "local_138[1] == 'p'" (subscript_expression "local_138[1]" identifier [ number_literal ]) == (char_literal "'p'" ' character ')) ))) )) && (parenthesized_expression "((local_138[2] == '$' || (local_138[2] == '.')))" ( (parenthesized_expression "(local_138[2] == '$' || (local_138[2] == '.'))" ( (binary_expression "local_138[2] == '$' || (local_138[2] == '.')" (binary_expression "local_138[2] == '$'" (subscript_expression "local_138[2]" identifier [ number_literal ]) == (char_literal "'$'" ' character ')) || (parenthesized_expression "(local_138[2] == '.')" ( (binary_expression "local_138[2] == '.'" (subscript_expression "local_138[2]" identifier [ number_literal ]) == (char_literal "'.'" ' character ')) ))) )) ))) )) (goto_statement "goto LAB_00132f86;" goto statement_identifier ;)) (expression_statement "pbVar22 = (byte *)xmalloc(iVar27);" (assignment_expression "pbVar22 = (byte *)xmalloc(iVar27)" identifier = (cast_expression "(byte *)xmalloc(iVar27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar27)" identifier (argument_list "(iVar27)" ( identifier ))))) ;) (expression_statement "*pbVar22 = 0;" (assignment_expression "*pbVar22 = 0" (pointer_expression "*pbVar22" * identifier) = number_literal) ;) }) (else_clause "else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }" else (compound_statement "{\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }" { (expression_statement "lVar26 = -1;" (assignment_expression "lVar26 = -1" identifier = number_literal) ;) (expression_statement "pcVar16 = local_138;" (assignment_expression "pcVar16 = local_138" identifier = identifier) ;) (do_statement "do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');" do (compound_statement "{\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                }" { (if_statement "if (lVar26 == 0) break;" if (parenthesized_expression "(lVar26 == 0)" ( (binary_expression "lVar26 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar26 = lVar26 + -1;" (assignment_expression "lVar26 = lVar26 + -1" identifier = (binary_expression "lVar26 + -1" identifier + number_literal)) ;) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (expression_statement "pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1" identifier = (binary_expression "pcVar16 + (ulong)bVar47 * -2 + 1" (binary_expression "pcVar16 + (ulong)bVar47 * -2" identifier + (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar1 != '\0')" ( (binary_expression "cVar1 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;" (assignment_expression "iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20" identifier = (binary_expression "((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20" (binary_expression "((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2" (parenthesized_expression "((iVar27 + (int)local_d8 + 1) - (int)lVar26)" ( (binary_expression "(iVar27 + (int)local_d8 + 1) - (int)lVar26" (parenthesized_expression "(iVar27 + (int)local_d8 + 1)" ( (binary_expression "iVar27 + (int)local_d8 + 1" (binary_expression "iVar27 + (int)local_d8" identifier + (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal) )) - (cast_expression "(int)lVar26" ( (type_descriptor "int" primitive_type) ) identifier)) )) + number_literal) + (cast_expression "(int)sVar20" ( (type_descriptor "int" primitive_type) ) identifier))) ;) (if_statement "if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }" if (parenthesized_expression "(((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.'))))" ( (binary_expression "((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))" (parenthesized_expression "((cVar4 == 'o') && (local_138[1] == 'p'))" ( (binary_expression "(cVar4 == 'o') && (local_138[1] == 'p')" (parenthesized_expression "(cVar4 == 'o')" ( (binary_expression "cVar4 == 'o'" identifier == (char_literal "'o'" ' character ')) )) && (parenthesized_expression "(local_138[1] == 'p')" ( (binary_expression "local_138[1] == 'p'" (subscript_expression "local_138[1]" identifier [ number_literal ]) == (char_literal "'p'" ' character ')) ))) )) && (parenthesized_expression "((local_138[2] == '$' || (local_138[2] == '.')))" ( (parenthesized_expression "(local_138[2] == '$' || (local_138[2] == '.'))" ( (binary_expression "local_138[2] == '$' || (local_138[2] == '.')" (binary_expression "local_138[2] == '$'" (subscript_expression "local_138[2]" identifier [ number_literal ]) == (char_literal "'$'" ' character ')) || (parenthesized_expression "(local_138[2] == '.')" ( (binary_expression "local_138[2] == '.'" (subscript_expression "local_138[2]" identifier [ number_literal ]) == (char_literal "'.'" ' character ')) ))) )) ))) )) (compound_statement "{\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }" { (labeled_statement "LAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);" statement_identifier : (expression_statement "pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);" (assignment_expression "pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0)" identifier = (cast_expression "(char *)cplus_mangle_opname(local_138 + 3,0)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "cplus_mangle_opname(local_138 + 3,0)" identifier (argument_list "(local_138 + 3,0)" ( (binary_expression "local_138 + 3" identifier + number_literal) , number_literal ))))) ;)) (if_statement "if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }" if (parenthesized_expression "(pcVar16 == (char *)0x0)" ( (binary_expression "pcVar16 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }" { (expression_statement "pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);" (assignment_expression "pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"No mangling for \"%s\"\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"No mangling for \"%s\"\n",5)" identifier (argument_list "(0,"No mangling for \"%s\"\n",5)" ( number_literal , (string_literal ""No mangling for \"%s\"\n"" " string_content escape_sequence string_content escape_sequence escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(stderr,pcVar16,local_138);" (call_expression "fprintf(stderr,pcVar16,local_138)" identifier (argument_list "(stderr,pcVar16,local_138)" ( identifier , identifier , identifier ))) ;) (goto_statement "goto LAB_0013279c;" goto statement_identifier ;) })) (expression_statement "lVar26 = -1;" (assignment_expression "lVar26 = -1" identifier = number_literal) ;) (expression_statement "pcVar15 = pcVar16;" (assignment_expression "pcVar15 = pcVar16" identifier = identifier) ;) (do_statement "do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');" do (compound_statement "{\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  }" { (if_statement "if (lVar26 == 0) break;" if (parenthesized_expression "(lVar26 == 0)" ( (binary_expression "lVar26 == 0" identifier == number_literal) )) (break_statement "break;" break ;)) (expression_statement "lVar26 = lVar26 + -1;" (assignment_expression "lVar26 = lVar26 + -1" identifier = (binary_expression "lVar26 + -1" identifier + number_literal)) ;) (expression_statement "cVar4 = *pcVar15;" (assignment_expression "cVar4 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (expression_statement "pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1" identifier = (binary_expression "pcVar15 + (ulong)bVar47 * -2 + 1" (binary_expression "pcVar15 + (ulong)bVar47 * -2" identifier + (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) }) while (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) (expression_statement "pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);" (assignment_expression "pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26)" identifier = (cast_expression "(byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar27 + -1 + ~(uint)lVar26)" identifier (argument_list "(iVar27 + -1 + ~(uint)lVar26)" ( (binary_expression "iVar27 + -1 + ~(uint)lVar26" (binary_expression "iVar27 + -1" identifier + number_literal) + (unary_expression "~(uint)lVar26" ~ (cast_expression "(uint)lVar26" ( (type_descriptor "uint" type_identifier) ) identifier))) ))))) ;) (expression_statement "strncpy((char *)pbVar22,local_138,3);" (call_expression "strncpy((char *)pbVar22,local_138,3)" identifier (argument_list "((char *)pbVar22,local_138,3)" ( (cast_expression "(char *)pbVar22" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , number_literal ))) ;) (expression_statement "strcpy((char *)(pbVar22 + 3),pcVar16);" (call_expression "strcpy((char *)(pbVar22 + 3),pcVar16)" identifier (argument_list "((char *)(pbVar22 + 3),pcVar16)" ( (cast_expression "(char *)(pbVar22 + 3)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar22 + 3)" ( (binary_expression "pbVar22 + 3" identifier + number_literal) ))) , identifier ))) ;) }) (else_clause "else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }" else (compound_statement "{\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }" { (expression_statement "pbVar22 = (byte *)xmalloc(iVar27);" (assignment_expression "pbVar22 = (byte *)xmalloc(iVar27)" identifier = (cast_expression "(byte *)xmalloc(iVar27)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(iVar27)" identifier (argument_list "(iVar27)" ( identifier ))))) ;) (expression_statement "strcpy((char *)pbVar22,local_138);" (call_expression "strcpy((char *)pbVar22,local_138)" identifier (argument_list "((char *)pbVar22,local_138)" ( (cast_expression "(char *)pbVar22" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier ))) ;) }))) }))) (expression_statement "sVar20 = strlen((char *)pbVar22);" (assignment_expression "sVar20 = strlen((char *)pbVar22)" identifier = (call_expression "strlen((char *)pbVar22)" identifier (argument_list "((char *)pbVar22)" ( (cast_expression "(char *)pbVar22" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (expression_statement "local_d8 = sVar20 & 0xffffffff;" (assignment_expression "local_d8 = sVar20 & 0xffffffff" identifier = (binary_expression "sVar20 & 0xffffffff" identifier & number_literal)) ;) (expression_statement "pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);" (assignment_expression "pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68)" identifier = (call_expression "stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68)" identifier (argument_list "((char *)(pbVar22 + sVar20),(char *)&local_68)" ( (cast_expression "(char *)(pbVar22 + sVar20)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar22 + sVar20)" ( (binary_expression "pbVar22 + sVar20" identifier + identifier) ))) , (cast_expression "(char *)&local_68" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "&local_68" & identifier)) )))) ;) (if_statement "if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }" if (parenthesized_expression "(local_c0 != (char *)0x0)" ( (binary_expression "local_c0 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                strcpy(pcVar16,local_c0);\n              }" { (expression_statement "strcpy(pcVar16,local_c0);" (call_expression "strcpy(pcVar16,local_c0)" identifier (argument_list "(pcVar16,local_c0)" ( identifier , identifier ))) ;) })) (expression_statement "strcat((char *)pbVar22,(char *)pbVar40);" (call_expression "strcat((char *)pbVar22,(char *)pbVar40)" identifier (argument_list "((char *)pbVar22,(char *)pbVar40)" ( (cast_expression "(char *)pbVar22" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (labeled_statement "LAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;" statement_identifier : (if_statement "if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;" if (parenthesized_expression "((*pbVar40 == 0) || (bVar41))" ( (binary_expression "(*pbVar40 == 0) || (bVar41)" (parenthesized_expression "(*pbVar40 == 0)" ( (binary_expression "*pbVar40 == 0" (pointer_expression "*pbVar40" * identifier) == number_literal) )) || (parenthesized_expression "(bVar41)" ( identifier ))) )) (goto_statement "goto LAB_001328ca;" goto statement_identifier ;))) (if_statement "if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }" if (parenthesized_expression "((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a))" ( (binary_expression "(*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)" (parenthesized_expression "(*pbVar22 == 0x5f)" ( (binary_expression "*pbVar22 == 0x5f" (pointer_expression "*pbVar22" * identifier) == number_literal) )) && (parenthesized_expression "(pbVar22[1] == 0x5a)" ( (binary_expression "pbVar22[1] == 0x5a" (subscript_expression "pbVar22[1]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }" { (labeled_statement "LAB_00133b71:\n                local_78 = pbVar22;" statement_identifier : (expression_statement "local_78 = pbVar22;" (assignment_expression "local_78 = pbVar22" identifier = identifier) ;)) (expression_statement "piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);" (assignment_expression "piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68)" identifier = (cast_expression "(int *)FUN_001390d0(pbVar22,3,&local_68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_001390d0(pbVar22,3,&local_68)" identifier (argument_list "(pbVar22,3,&local_68)" ( identifier , number_literal , (pointer_expression "&local_68" & identifier) ))))) ;) (if_statement "if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }" if (parenthesized_expression "(piVar24 == (int *)0x0)" ( (binary_expression "piVar24 == (int *)0x0" identifier == (cast_expression "(int *)0x0" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                  FUN_0012e540(pbVar22);\n                }" { (expression_statement "FUN_0012e540(pbVar22);" (call_expression "FUN_0012e540(pbVar22)" identifier (argument_list "(pbVar22)" ( identifier ))) ;) }) (else_clause "else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }" else (compound_statement "{\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }" { (if_statement "if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }" if (parenthesized_expression "((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29))" ( (binary_expression "(*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)" (parenthesized_expression "(*piVar24 == 3)" ( (binary_expression "*piVar24 == 3" (pointer_expression "*piVar24" * identifier) == number_literal) )) && (parenthesized_expression "(**(int **)(piVar24 + 4) == 0x29)" ( (binary_expression "**(int **)(piVar24 + 4) == 0x29" (pointer_expression "**(int **)(piVar24 + 4)" * (pointer_expression "*(int **)(piVar24 + 4)" * (cast_expression "(int **)(piVar24 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar24 + 4)" ( (binary_expression "piVar24 + 4" identifier + number_literal) ))))) == number_literal) ))) )) (compound_statement "{\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }" { (expression_statement "puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);" (assignment_expression "puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c)" identifier = (cast_expression "(undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c)" identifier (argument_list "(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c)" ( identifier , identifier , (pointer_expression "*(undefined8 *)(*(int **)(piVar24 + 4) + 4)" * (cast_expression "(undefined8 *)(*(int **)(piVar24 + 4) + 4)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int **)(piVar24 + 4) + 4)" ( (binary_expression "*(int **)(piVar24 + 4) + 4" (pointer_expression "*(int **)(piVar24 + 4)" * (cast_expression "(int **)(piVar24 + 4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(piVar24 + 4)" ( (binary_expression "piVar24 + 4" identifier + number_literal) )))) + number_literal) )))) , (pointer_expression "&local_7c" & identifier) ))))) ;) (expression_statement "free(local_68);" (call_expression "free(local_68)" identifier (argument_list "(local_68)" ( identifier ))) ;) (goto_statement "goto LAB_00133211;" goto statement_identifier ;) })) (expression_statement "pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);" (assignment_expression "pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"Demangled name is not a function\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"Demangled name is not a function\n",5)" identifier (argument_list "(0,"Demangled name is not a function\n",5)" ( number_literal , (string_literal ""Demangled name is not a function\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(stderr,pcVar16);" (call_expression "fprintf(stderr,pcVar16)" identifier (argument_list "(stderr,pcVar16)" ( identifier , identifier ))) ;) (expression_statement "free(local_68);" (call_expression "free(local_68)" identifier (argument_list "(local_68)" ( identifier ))) ;) }))) (goto_statement "goto LAB_00132793;" goto statement_identifier ;) })) (expression_statement "local_58 = (undefined8 *)0x0;" (assignment_expression "local_58 = (undefined8 *)0x0" identifier = (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_50[0] = 0;" (assignment_expression "local_50[0] = 0" (subscript_expression "local_50[0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_3c = 10;" (assignment_expression "local_3c = 10" identifier = number_literal) ;) (expression_statement "local_78 = pbVar22;" (assignment_expression "local_78 = pbVar22" identifier = identifier) ;) (expression_statement "local_68 = param_1;" (assignment_expression "local_68 = param_1" identifier = identifier) ;) (expression_statement "local_60 = param_2;" (assignment_expression "local_60 = param_2" identifier = identifier) ;) (expression_statement "local_48 = (void *)xmalloc(0xa0);" (assignment_expression "local_48 = (void *)xmalloc(0xa0)" identifier = (cast_expression "(void *)xmalloc(0xa0)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0xa0)" identifier (argument_list "(0xa0)" ( number_literal ))))) ;) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" identifier = number_literal) ;) (if_statement "if ((int)local_d8 == 0) goto LAB_0013360b;" if (parenthesized_expression "((int)local_d8 == 0)" ( (binary_expression "(int)local_d8 == 0" (cast_expression "(int)local_d8" ( (type_descriptor "int" primitive_type) ) identifier) == number_literal) )) (goto_statement "goto LAB_0013360b;" goto statement_identifier ;)) (expression_statement "pbVar31 = local_78 + local_d8;" (assignment_expression "pbVar31 = local_78 + local_d8" identifier = (binary_expression "local_78 + local_d8" identifier + identifier)) ;) (expression_statement "pbVar33 = local_78;" (assignment_expression "pbVar33 = local_78" identifier = identifier) ;) (labeled_statement "LAB_001330d0:\n              bVar3 = pbVar31[2];" statement_identifier : (expression_statement "bVar3 = pbVar31[2];" (assignment_expression "bVar3 = pbVar31[2]" identifier = (subscript_expression "pbVar31[2]" identifier [ number_literal ])) ;)) (if_statement "if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }" if (parenthesized_expression "(pbVar33 == pbVar31)" ( (binary_expression "pbVar33 == pbVar31" identifier == identifier) )) (compound_statement "{\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }" { (if_statement "if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }" if (parenthesized_expression "(((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74))" ( (binary_expression "((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)" (parenthesized_expression "((_sch_istable[(ulong)bVar3 * 2] & 4) == 0)" ( (binary_expression "(_sch_istable[(ulong)bVar3 * 2] & 4) == 0" (parenthesized_expression "(_sch_istable[(ulong)bVar3 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)bVar3 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar3 * 2]" identifier [ (binary_expression "(ulong)bVar3 * 2" (cast_expression "(ulong)bVar3" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) && (parenthesized_expression "(pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)" ( (comma_expression "pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74" (assignment_expression "pbVar37 = pbVar31" identifier = identifier) , (binary_expression "bVar3 != 0x51 && bVar3 != 0x74" (binary_expression "bVar3 != 0x51" identifier != number_literal) && (binary_expression "bVar3 != 0x74" identifier != number_literal))) ))) )) (compound_statement "{\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }" { (for_statement "for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }" for ( ; (binary_expression "*pbVar37 == 0x5f" (pointer_expression "*pbVar37" * identifier) == number_literal) ; (assignment_expression "pbVar37 = pbVar37 + 1" identifier = (binary_expression "pbVar37 + 1" identifier + number_literal)) ) (compound_statement "{\n                  }" { })) (expression_statement "pcVar16 = strstr((char *)pbVar37,"__");" (assignment_expression "pcVar16 = strstr((char *)pbVar37,"__")" identifier = (call_expression "strstr((char *)pbVar37,"__")" identifier (argument_list "((char *)pbVar37,"__")" ( (cast_expression "(char *)pbVar37" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , (string_literal ""__"" " string_content ") )))) ;) (if_statement "if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }" if (parenthesized_expression "((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0'))" ( (binary_expression "(pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')" (parenthesized_expression "(pcVar16 == (char *)0x0)" ( (binary_expression "pcVar16 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar16[2] == '\0')" ( (binary_expression "pcVar16[2] == '\0'" (subscript_expression "pcVar16[2]" identifier [ number_literal ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }" { (expression_statement "FUN_0012e540(pbVar31);" (call_expression "FUN_0012e540(pbVar31)" identifier (argument_list "(pbVar31)" ( identifier ))) ;) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;) })) (expression_statement "iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);" (assignment_expression "iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16)" identifier = (call_expression "FUN_00130f70(&local_68,&local_78,pcVar16)" identifier (argument_list "(&local_68,&local_78,pcVar16)" ( (pointer_expression "&local_68" & identifier) , (pointer_expression "&local_78" & identifier) , identifier )))) ;) (goto_statement "goto LAB_001330fd;" goto statement_identifier ;) })) (expression_statement "local_78 = pbVar31 + 2;" (assignment_expression "local_78 = pbVar31 + 2" identifier = (binary_expression "pbVar31 + 2" identifier + number_literal)) ;) }) (else_clause "else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }" else (compound_statement "{\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }" { (if_statement "if (bVar3 == 0) goto LAB_00133635;" if (parenthesized_expression "(bVar3 == 0)" ( (binary_expression "bVar3 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00133635;" goto statement_identifier ;)) (expression_statement "iVar27 = FUN_00130f70(&local_68,&local_78);" (assignment_expression "iVar27 = FUN_00130f70(&local_68,&local_78)" identifier = (call_expression "FUN_00130f70(&local_68,&local_78)" identifier (argument_list "(&local_68,&local_78)" ( (pointer_expression "&local_68" & identifier) , (pointer_expression "&local_78" & identifier) )))) ;) (labeled_statement "LAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;" statement_identifier : (if_statement "if (iVar27 == 0) goto LAB_0013323f;" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;))) }))) (expression_statement "pbVar37 = local_78;" (assignment_expression "pbVar37 = local_78" identifier = identifier) ;) (expression_statement "bVar3 = *local_78;" (assignment_expression "bVar3 = *local_78" identifier = (pointer_expression "*local_78" * identifier)) ;) (if_statement "if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }" if (parenthesized_expression "(bVar3 != 0)" ( (binary_expression "bVar3 != 0" identifier != number_literal) )) (compound_statement "{\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }" { (expression_statement "pbVar33 = (byte *)0x0;" (assignment_expression "pbVar33 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar45 = false;" (assignment_expression "bVar45 = false" identifier = false) ;) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" identifier = false) ;) (do_statement "do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);" do (compound_statement "{\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                }" { (expression_statement "pbVar31 = local_78;" (assignment_expression "pbVar31 = local_78" identifier = identifier) ;) (switch_statement "switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }" switch (parenthesized_expression "(bVar3)" ( identifier )) (compound_statement "{\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }" { (case_statement "case 0x30:" case number_literal :) (case_statement "case 0x31:" case number_literal :) (case_statement "case 0x32:" case number_literal :) (case_statement "case 0x33:" case number_literal :) (case_statement "case 0x34:" case number_literal :) (case_statement "case 0x35:" case number_literal :) (case_statement "case 0x36:" case number_literal :) (case_statement "case 0x37:" case number_literal :) (case_statement "case 0x38:" case number_literal :) (case_statement "case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;" case number_literal : (if_statement "if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }" if (parenthesized_expression "(pbVar33 == (byte *)0x0)" ( (binary_expression "pbVar33 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      pbVar33 = local_78;\n                    }" { (expression_statement "pbVar33 = local_78;" (assignment_expression "pbVar33 = local_78" identifier = identifier) ;) })) (expression_statement "iVar27 = FUN_0012eea0(&local_78,0);" (assignment_expression "iVar27 = FUN_0012eea0(&local_78,0)" identifier = (call_expression "FUN_0012eea0(&local_78,0)" identifier (argument_list "(&local_78,0)" ( (pointer_expression "&local_78" & identifier) , number_literal )))) ;) (goto_statement "goto joined_r0x0013334c;" goto statement_identifier ;)) (case_statement "default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;" default : (expression_statement "iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);" (assignment_expression "iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50)" identifier = (call_expression "FUN_00130da0(&local_68,&local_78,&local_58,local_50)" identifier (argument_list "(&local_68,&local_78,&local_58,local_50)" ( (pointer_expression "&local_68" & identifier) , (pointer_expression "&local_78" & identifier) , (pointer_expression "&local_58" & identifier) , identifier )))) ;) (if_statement "if (iVar27 == 0) goto LAB_0013323f;" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;)) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 0x43:" case number_literal :) (case_statement "case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;" case number_literal : (if_statement "if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }" if (parenthesized_expression "(pbVar33 == (byte *)0x0)" ( (binary_expression "pbVar33 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      pbVar33 = local_78;\n                    }" { (expression_statement "pbVar33 = local_78;" (assignment_expression "pbVar33 = local_78" identifier = identifier) ;) })) (expression_statement "local_78 = local_78 + 1;" (assignment_expression "local_78 = local_78 + 1" identifier = (binary_expression "local_78 + 1" identifier + number_literal)) ;) (break_statement "break;" break ;)) (case_statement "case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;" case number_literal : (expression_statement "local_78 = local_78 + 1;" (assignment_expression "local_78 = local_78 + 1" identifier = (binary_expression "local_78 + 1" identifier + number_literal)) ;) (expression_statement "iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);" (assignment_expression "iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50)" identifier = (call_expression "FUN_00130da0(&local_68,&local_78,&local_58,local_50)" identifier (argument_list "(&local_68,&local_78,&local_58,local_50)" ( (pointer_expression "&local_68" & identifier) , (pointer_expression "&local_78" & identifier) , (pointer_expression "&local_58" & identifier) , identifier )))) ;) (if_statement "if (iVar27 == 0) goto LAB_0013323f;" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;)) (expression_statement "pbVar33 = (byte *)0x0;" (assignment_expression "pbVar33 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" identifier = true) ;) (break_statement "break;" break ;)) (case_statement "case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;" case number_literal : (expression_statement "iVar27 = FUN_00130930(&local_68,&local_78,0);" (assignment_expression "iVar27 = FUN_00130930(&local_68,&local_78,0)" identifier = (call_expression "FUN_00130930(&local_68,&local_78,0)" identifier (argument_list "(&local_68,&local_78,0)" ( (pointer_expression "&local_68" & identifier) , (pointer_expression "&local_78" & identifier) , number_literal )))) ;) (if_statement "if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }" if (parenthesized_expression "(iVar27 != 0)" ( (binary_expression "iVar27 != 0" identifier != number_literal) )) (compound_statement "{\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }" { (expression_statement "iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);" (assignment_expression "iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31)" identifier = (call_expression "FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31)" identifier (argument_list "(&local_68,pbVar31,(long)local_78 - (long)pbVar31)" ( (pointer_expression "&local_68" & identifier) , identifier , (binary_expression "(long)local_78 - (long)pbVar31" (cast_expression "(long)local_78" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar31" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (goto_statement "goto joined_r0x001332f4;" goto statement_identifier ;) })) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;)) (case_statement "case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;" case number_literal : (expression_statement "FUN_0012e540(pbVar37);" (call_expression "FUN_0012e540(pbVar37)" identifier (argument_list "(pbVar37)" ( identifier ))) ;) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;)) (case_statement "case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;" case number_literal : (if_statement "if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }" if (parenthesized_expression "(pbVar33 == (byte *)0x0)" ( (binary_expression "pbVar33 == (byte *)0x0" identifier == (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                      pbVar33 = local_78;\n                    }" { (expression_statement "pbVar33 = local_78;" (assignment_expression "pbVar33 = local_78" identifier = identifier) ;) })) (expression_statement "iVar27 = FUN_00130390(&local_68,&local_78,0);" (assignment_expression "iVar27 = FUN_00130390(&local_68,&local_78,0)" identifier = (call_expression "FUN_00130390(&local_68,&local_78,0)" identifier (argument_list "(&local_68,&local_78,0)" ( (pointer_expression "&local_68" & identifier) , (pointer_expression "&local_78" & identifier) , number_literal )))) ;) (labeled_statement "joined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }" statement_identifier : (if_statement "if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }" if (parenthesized_expression "(iVar27 != 0)" ( (binary_expression "iVar27 != 0" identifier != number_literal) )) (compound_statement "{\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }" { (expression_statement "iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);" (assignment_expression "iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33)" identifier = (call_expression "FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33)" identifier (argument_list "(&local_68,pbVar33,(long)local_78 - (long)pbVar33)" ( (pointer_expression "&local_68" & identifier) , identifier , (binary_expression "(long)local_78 - (long)pbVar33" (cast_expression "(long)local_78" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar33" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) )))) ;) (labeled_statement "joined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }" statement_identifier : (if_statement "if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }" if (parenthesized_expression "(iVar27 != 0)" ( (binary_expression "iVar27 != 0" identifier != number_literal) )) (compound_statement "{\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }" { (expression_statement "pbVar33 = (byte *)0x0;" (assignment_expression "pbVar33 = (byte *)0x0" identifier = (cast_expression "(byte *)0x0" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (goto_statement "goto LAB_0013328f;" goto statement_identifier ;) }))) }))) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;)) })) (if_statement "if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }" if (parenthesized_expression "(bVar45)" ( identifier )) (compound_statement "{\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }" { (labeled_statement "LAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);" statement_identifier : (expression_statement "iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);" (assignment_expression "iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50)" identifier = (call_expression "FUN_00130da0(&local_68,&local_78,&local_58,local_50)" identifier (argument_list "(&local_68,&local_78,&local_58,local_50)" ( (pointer_expression "&local_68" & identifier) , (pointer_expression "&local_78" & identifier) , (pointer_expression "&local_58" & identifier) , identifier )))) ;)) (if_statement "if (iVar27 == 0) goto LAB_0013323f;" if (parenthesized_expression "(iVar27 == 0)" ( (binary_expression "iVar27 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;)) (expression_statement "bVar45 = true;" (assignment_expression "bVar45 = true" identifier = true) ;) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" identifier = true) ;) })) (expression_statement "bVar3 = *local_78;" (assignment_expression "bVar3 = *local_78" identifier = (pointer_expression "*local_78" * identifier)) ;) }) while (parenthesized_expression "(bVar3 != 0)" ( (binary_expression "bVar3 != 0" identifier != number_literal) )) ;) (if_statement "if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;" if (parenthesized_expression "((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))" ( (binary_expression "(!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0)" (parenthesized_expression "(!bVar41)" ( (unary_expression "!bVar41" ! identifier) )) && (parenthesized_expression "(iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0)" ( (comma_expression "iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0" (assignment_expression "iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50)" identifier = (call_expression "FUN_00130da0(&local_68,&local_78,&local_58,local_50)" identifier (argument_list "(&local_68,&local_78,&local_58,local_50)" ( (pointer_expression "&local_68" & identifier) , (pointer_expression "&local_78" & identifier) , (pointer_expression "&local_58" & identifier) , identifier )))) , (binary_expression "iVar27 == 0" identifier == number_literal)) ))) )) (goto_statement "goto LAB_0013323f;" goto statement_identifier ;)) })) (expression_statement "free(local_48);" (call_expression "free(local_48)" identifier (argument_list "(local_48)" ( identifier ))) ;) (expression_statement "local_48 = (void *)0x0;" (assignment_expression "local_48 = (void *)0x0" identifier = (cast_expression "(void *)0x0" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }" if (parenthesized_expression "(local_58 == (undefined8 *)0x0)" ( (binary_expression "local_58 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }" { (expression_statement "pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);" (assignment_expression "pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5)" identifier = (cast_expression "(char *)dcgettext(0,"no argument types in mangled string\n",5)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,"no argument types in mangled string\n",5)" identifier (argument_list "(0,"no argument types in mangled string\n",5)" ( number_literal , (string_literal ""no argument types in mangled string\n"" " string_content escape_sequence ") , number_literal ))))) ;) (expression_statement "fprintf(stderr,pcVar16);" (call_expression "fprintf(stderr,pcVar16)" identifier (argument_list "(stderr,pcVar16)" ( identifier , identifier ))) ;) })) (expression_statement "local_7c = local_50[0];" (assignment_expression "local_7c = local_50[0]" identifier = (subscript_expression "local_50[0]" identifier [ number_literal ])) ;) (expression_statement "puVar19 = local_58;" (assignment_expression "puVar19 = local_58" identifier = identifier) ;) (labeled_statement "LAB_00133211:\n              iVar27 = local_7c;" statement_identifier : (expression_statement "iVar27 = local_7c;" (assignment_expression "iVar27 = local_7c" identifier = identifier) ;)) (if_statement "if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;" if (parenthesized_expression "(puVar19 == (undefined8 *)0x0)" ( (binary_expression "puVar19 == (undefined8 *)0x0" identifier == (cast_expression "(undefined8 *)0x0" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00132793;" goto statement_identifier ;)) }))) (expression_statement "lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);" (assignment_expression "lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27)" identifier = (call_expression "FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27)" identifier (argument_list "(param_1,lVar17,lVar13,puVar19,iVar27)" ( identifier , identifier , identifier , identifier , identifier )))) ;) (if_statement "if (lVar17 == 0) goto LAB_00132793;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00132793;" goto statement_identifier ;)) }))) (expression_statement "uVar7 = local_ec + 1;" (assignment_expression "uVar7 = local_ec + 1" identifier = (binary_expression "local_ec + 1" identifier + number_literal)) ;) (if_statement "if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }" if (parenthesized_expression "(local_e8 <= uVar7)" ( (binary_expression "local_e8 <= uVar7" identifier <= identifier) )) (compound_statement "{\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }" { (expression_statement "local_e8 = local_e8 + 10;" (assignment_expression "local_e8 = local_e8 + 10" identifier = (binary_expression "local_e8 + 10" identifier + number_literal)) ;) (expression_statement "local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);" (assignment_expression "local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3)" identifier = (cast_expression "(void *)xrealloc(local_128,(ulong)local_e8 << 3)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "xrealloc(local_128,(ulong)local_e8 << 3)" identifier (argument_list "(local_128,(ulong)local_e8 << 3)" ( identifier , (binary_expression "(ulong)local_e8 << 3" (cast_expression "(ulong)local_e8" ( (type_descriptor "ulong" type_identifier) ) identifier) << number_literal) ))))) ;) })) (expression_statement "plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);" (assignment_expression "plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8)" identifier = (cast_expression "(long *)((long)local_128 + (ulong)local_ec * 8)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_128 + (ulong)local_ec * 8)" ( (binary_expression "(long)local_128 + (ulong)local_ec * 8" (cast_expression "(long)local_128" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)local_ec * 8" (cast_expression "(ulong)local_ec" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) )))) ;) (if_statement "if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }" if (parenthesized_expression "(bVar44)" ( identifier )) (compound_statement "{\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }" { (expression_statement "lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);" (assignment_expression "lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5)" identifier = (call_expression "FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5)" identifier (argument_list "(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5)" ( identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "*plVar10 = lVar17;" (assignment_expression "*plVar10 = lVar17" (pointer_expression "*plVar10" * identifier) = identifier) ;) }) (else_clause "else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }" else (compound_statement "{\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }" { (expression_statement "lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);" (assignment_expression "lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100)" identifier = (call_expression "FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100)" identifier (argument_list "(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100)" ( identifier , identifier , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (expression_statement "*plVar10 = lVar17;" (assignment_expression "*plVar10 = lVar17" (pointer_expression "*plVar10" * identifier) = identifier) ;) }))) (if_statement "if (lVar17 == 0) goto LAB_00132793;" if (parenthesized_expression "(lVar17 == 0)" ( (binary_expression "lVar17 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00132793;" goto statement_identifier ;)) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) }) while (parenthesized_expression "((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'))" ( (binary_expression "(*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0')" (parenthesized_expression "(*pcVar16 != ';')" ( (binary_expression "*pcVar16 != ';'" (pointer_expression "*pcVar16" * identifier) != (char_literal "';'" ' character ')) )) && (parenthesized_expression "(lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0')" ( (comma_expression "lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'" (assignment_expression "lVar17 = lVar18" identifier = identifier) , (comma_expression "local_ec = uVar7, *pcVar16 != '\0'" (assignment_expression "local_ec = uVar7" identifier = identifier) , (binary_expression "*pcVar16 != '\0'" (pointer_expression "*pcVar16" * identifier) != (char_literal "'\0'" ' escape_sequence ')))) ))) )) ;) (expression_statement "*(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;" (assignment_expression "*(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0" (pointer_expression "*(undefined8 *)((long)local_128 + (ulong)uVar7 * 8)" * (cast_expression "(undefined8 *)((long)local_128 + (ulong)uVar7 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((long)local_128 + (ulong)uVar7 * 8)" ( (binary_expression "(long)local_128 + (ulong)uVar7 * 8" (cast_expression "(long)local_128" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) + (binary_expression "(ulong)uVar7 * 8" (cast_expression "(ulong)uVar7" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) )))) = number_literal) ;) (if_statement "if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }" if (parenthesized_expression "(*pcVar16 != '\0')" ( (binary_expression "*pcVar16 != '\0'" (pointer_expression "*pcVar16" * identifier) != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n          *param_4 = (ulong)(pcVar16 + 1);\n        }" { (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) })) (expression_statement "uVar39 = local_c8 + 1;" (assignment_expression "uVar39 = local_c8 + 1" identifier = (binary_expression "local_c8 + 1" identifier + number_literal)) ;) (if_statement "if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }" if (parenthesized_expression "(local_c4 <= uVar39)" ( (binary_expression "local_c4 <= uVar39" identifier <= identifier) )) (compound_statement "{\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }" { (expression_statement "local_c4 = local_c4 + 10;" (assignment_expression "local_c4 = local_c4 + 10" identifier = (binary_expression "local_c4 + 10" identifier + number_literal)) ;) (expression_statement "local_108 = xrealloc(local_108,(ulong)local_c4 << 3);" (assignment_expression "local_108 = xrealloc(local_108,(ulong)local_c4 << 3)" identifier = (call_expression "xrealloc(local_108,(ulong)local_c4 << 3)" identifier (argument_list "(local_108,(ulong)local_c4 << 3)" ( identifier , (binary_expression "(ulong)local_c4 << 3" (cast_expression "(ulong)local_c4" ( (type_descriptor "ulong" type_identifier) ) identifier) << number_literal) )))) ;) })) (expression_statement "uVar14 = FUN_0012dae0(param_1,local_138,local_128);" (assignment_expression "uVar14 = FUN_0012dae0(param_1,local_138,local_128)" identifier = (call_expression "FUN_0012dae0(param_1,local_138,local_128)" identifier (argument_list "(param_1,local_138,local_128)" ( identifier , identifier , identifier )))) ;) (expression_statement "*(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;" (assignment_expression "*(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14" (pointer_expression "*(undefined8 *)(local_108 + (ulong)local_c8 * 8)" * (cast_expression "(undefined8 *)(local_108 + (ulong)local_c8 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_108 + (ulong)local_c8 * 8)" ( (binary_expression "local_108 + (ulong)local_c8 * 8" identifier + (binary_expression "(ulong)local_c8 * 8" (cast_expression "(ulong)local_c8" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) )))) = identifier) ;) (expression_statement "pbVar22 = (byte *)*param_4;" (assignment_expression "pbVar22 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "bVar3 = *pbVar22;" (assignment_expression "bVar3 = *pbVar22" identifier = (pointer_expression "*pbVar22" * identifier)) ;) (expression_statement "local_c8 = uVar39;" (assignment_expression "local_c8 = uVar39" identifier = identifier) ;) }) while (parenthesized_expression "(bVar3 != 0x3b)" ( (binary_expression "bVar3 != 0x3b" identifier != number_literal) )) ;) (if_statement "if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }" if (parenthesized_expression "(local_108 != 0)" ( (binary_expression "local_108 != 0" identifier != number_literal) )) (compound_statement "{\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }" { (expression_statement "*(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;" (assignment_expression "*(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0" (pointer_expression "*(undefined8 *)(local_108 + (ulong)local_c8 * 8)" * (cast_expression "(undefined8 *)(local_108 + (ulong)local_c8 * 8)" ( (type_descriptor "undefined8 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_108 + (ulong)local_c8 * 8)" ( (binary_expression "local_108 + (ulong)local_c8 * 8" identifier + (binary_expression "(ulong)local_c8 * 8" (cast_expression "(ulong)local_c8" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal)) )))) = number_literal) ;) })) (if_statement "if (param_6 <= pbVar22) goto LAB_00131328;" if (parenthesized_expression "(param_6 <= pbVar22)" ( (binary_expression "param_6 <= pbVar22" identifier <= identifier) )) (goto_statement "goto LAB_00131328;" goto statement_identifier ;)) (expression_statement "pbVar34 = pbVar22;" (assignment_expression "pbVar34 = pbVar22" identifier = identifier) ;) (if_statement "if (*pbVar22 == 0x3b) goto LAB_001334bc;" if (parenthesized_expression "(*pbVar22 == 0x3b)" ( (binary_expression "*pbVar22 == 0x3b" (pointer_expression "*pbVar22" * identifier) == number_literal) )) (goto_statement "goto LAB_001334bc;" goto statement_identifier ;)) }))) (if_statement "if (*pbVar22 == 0x7e) {\n      pbVar40 = pbVar22 + 1;\n      *param_4 = (ulong)pbVar40;\n      if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *param_4 = (ulong)(pbVar40 + 1);\n      iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n      if (iVar5 == 0) goto LAB_00131328;\n      if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }\n      if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;\n      uVar14 = 1;\n      lVar17 = 0;\n    }\n    else {\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }" if (parenthesized_expression "(*pbVar22 == 0x7e)" ( (binary_expression "*pbVar22 == 0x7e" (pointer_expression "*pbVar22" * identifier) == number_literal) )) (compound_statement "{\n      pbVar40 = pbVar22 + 1;\n      *param_4 = (ulong)pbVar40;\n      if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *param_4 = (ulong)(pbVar40 + 1);\n      iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n      if (iVar5 == 0) goto LAB_00131328;\n      if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }\n      if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;\n      uVar14 = 1;\n      lVar17 = 0;\n    }" { (expression_statement "pbVar40 = pbVar22 + 1;" (assignment_expression "pbVar40 = pbVar22 + 1" identifier = (binary_expression "pbVar22 + 1" identifier + number_literal)) ;) (expression_statement "*param_4 = (ulong)pbVar40;" (assignment_expression "*param_4 = (ulong)pbVar40" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar40" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (if_statement "if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }" if (parenthesized_expression "(((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b))" ( (binary_expression "((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)" (parenthesized_expression "((pbVar22[1] & 0xef) == 0x2d)" ( (binary_expression "(pbVar22[1] & 0xef) == 0x2d" (parenthesized_expression "(pbVar22[1] & 0xef)" ( (binary_expression "pbVar22[1] & 0xef" (subscript_expression "pbVar22[1]" identifier [ number_literal ]) & number_literal) )) == number_literal) )) || (parenthesized_expression "(pbVar22[1] == 0x2b)" ( (binary_expression "pbVar22[1] == 0x2b" (subscript_expression "pbVar22[1]" identifier [ number_literal ]) == number_literal) ))) )) (compound_statement "{\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }" { (expression_statement "pbVar40 = pbVar22 + 2;" (assignment_expression "pbVar40 = pbVar22 + 2" identifier = (binary_expression "pbVar22 + 2" identifier + number_literal)) ;) (expression_statement "*param_4 = (ulong)pbVar40;" (assignment_expression "*param_4 = (ulong)pbVar40" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar40" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) })) (if_statement "if (*pbVar40 != 0x25) goto LAB_0013244a;" if (parenthesized_expression "(*pbVar40 != 0x25)" ( (binary_expression "*pbVar40 != 0x25" (pointer_expression "*pbVar40" * identifier) != number_literal) )) (goto_statement "goto LAB_0013244a;" goto statement_identifier ;)) (expression_statement "*param_4 = (ulong)(pbVar40 + 1);" (assignment_expression "*param_4 = (ulong)(pbVar40 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pbVar40 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pbVar40 + 1)" ( (binary_expression "pbVar40 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);" (assignment_expression "iVar5 = FUN_0012e6c0(param_4,&local_68,param_6)" identifier = (call_expression "FUN_0012e6c0(param_4,&local_68,param_6)" identifier (argument_list "(param_4,&local_68,param_6)" ( identifier , (pointer_expression "&local_68" & identifier) , identifier )))) ;) (if_statement "if (iVar5 == 0) goto LAB_00131328;" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00131328;" goto statement_identifier ;)) (if_statement "if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }" if (parenthesized_expression "((uint)local_68 != (uint)local_70)" ( (binary_expression "(uint)local_68 != (uint)local_70" (cast_expression "(uint)local_68" ( (type_descriptor "uint" type_identifier) ) identifier) != (cast_expression "(uint)local_70" ( (type_descriptor "uint" type_identifier) ) identifier)) )) (compound_statement "{\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }" { (labeled_statement "LAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);" statement_identifier : (expression_statement "*param_4 = (ulong)(pbVar40 + 1);" (assignment_expression "*param_4 = (ulong)(pbVar40 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pbVar40 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pbVar40 + 1)" ( (binary_expression "pbVar40 + 1" identifier + number_literal) )))) ;)) (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier = (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" identifier (argument_list "(param_1,param_2,0,param_4,0,param_6)" ( identifier , identifier , number_literal , identifier , number_literal , identifier )))) ;) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" identifier = (cast_expression "(char *)*param_4" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) (expression_statement "cVar4 = *pcVar16;" (assignment_expression "cVar4 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (while_statement "while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }" while (parenthesized_expression "((cVar4 != ';' && (cVar4 != '\0')))" ( (parenthesized_expression "(cVar4 != ';' && (cVar4 != '\0'))" ( (binary_expression "cVar4 != ';' && (cVar4 != '\0')" (binary_expression "cVar4 != ';'" identifier != (char_literal "';'" ' character ')) && (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) ))) )) )) (compound_statement "{\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }" { (expression_statement "pcVar16 = pcVar16 + 1;" (assignment_expression "pcVar16 = pcVar16 + 1" identifier = (binary_expression "pcVar16 + 1" identifier + number_literal)) ;) (expression_statement "cVar4 = *pcVar16;" (assignment_expression "cVar4 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) })) (if_statement "if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }" if (parenthesized_expression "(cVar4 != ';')" ( (binary_expression "cVar4 != ';'" identifier != (char_literal "';'" ' character ')) )) (compound_statement "{\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }" { (labeled_statement "LAB_00132740:\n          FUN_0012e570(pbVar34);" statement_identifier : (expression_statement "FUN_0012e570(pbVar34);" (call_expression "FUN_0012e570(pbVar34)" identifier (argument_list "(pbVar34)" ( identifier ))) ;)) (labeled_statement "LAB_00131328:\n          free(local_130);" statement_identifier : (expression_statement "free(local_130);" (call_expression "free(local_130)" identifier (argument_list "(local_130)" ( identifier ))) ;)) (return_statement "return 0;" return number_literal ;) })) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (goto_statement "goto LAB_0013244c;" goto statement_identifier ;) })) (if_statement "if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;" if (parenthesized_expression "(local_68._4_4_ != local_70._4_4_)" ( (binary_expression "local_68._4_4_ != local_70._4_4_" (field_expression "local_68._4_4_" identifier . field_identifier) != (field_expression "local_70._4_4_" identifier . field_identifier)) )) (goto_statement "goto LAB_00132596;" goto statement_identifier ;)) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" identifier = number_literal) ;) (expression_statement "lVar17 = 0;" (assignment_expression "lVar17 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }" else (compound_statement "{\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }" { (labeled_statement "LAB_0013244a:\n      lVar17 = 0;" statement_identifier : (expression_statement "lVar17 = 0;" (assignment_expression "lVar17 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }" statement_identifier : (if_statement "if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }" if (parenthesized_expression "(((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43))" ( (binary_expression "((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)" (parenthesized_expression "((local_108 == 0 && local_f8 == 0) && lVar17 == 0)" ( (binary_expression "(local_108 == 0 && local_f8 == 0) && lVar17 == 0" (parenthesized_expression "(local_108 == 0 && local_f8 == 0)" ( (binary_expression "local_108 == 0 && local_f8 == 0" (binary_expression "local_108 == 0" identifier == number_literal) && (binary_expression "local_f8 == 0" identifier == number_literal)) )) && (binary_expression "lVar17 == 0" identifier == number_literal)) )) && (parenthesized_expression "(!bVar43)" ( (unary_expression "!bVar43" ! identifier) ))) )) (compound_statement "{\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }" { (expression_statement "lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);" (assignment_expression "lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130)" identifier = (call_expression "FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130)" identifier (argument_list "(param_1,bVar38 == 0x73,uVar8,local_130)" ( identifier , (binary_expression "bVar38 == 0x73" identifier == number_literal) , identifier , identifier )))) ;) (break_statement "break;" break ;) }))) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) }))) (expression_statement "lVar17 = FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14);" (assignment_expression "lVar17 = FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14)" identifier = (call_expression "FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14)" identifier (argument_list "(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14)" ( identifier , (binary_expression "bVar38 == 0x73" identifier == number_literal) , identifier , identifier , identifier , identifier , identifier , identifier )))) ;) (break_statement "break;" break ;)) (case_statement "case 0x78:\n    bVar47 = pbVar22[1];\n    if (bVar47 == 0x65) {\n      uVar32 = 0xb;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }\nLAB_00131e0e:\n    pbVar40 = pbVar40 + 1;\n    *param_4 = (ulong)pbVar40;\n    pcVar15 = strchr((char *)pbVar40,0x3c);\n    pcVar16 = strchr((char *)pbVar40,0x3a);\n    if (pcVar16 != (char *)0x0) {\n      if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }\n      cVar4 = *pcVar15;\n      if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }\n    }\nswitchD_001311d2_caseD_24:\n    FUN_0012e570(pbVar34);\n    return 0;" case number_literal : (expression_statement "bVar47 = pbVar22[1];" (assignment_expression "bVar47 = pbVar22[1]" identifier = (subscript_expression "pbVar22[1]" identifier [ number_literal ])) ;) (if_statement "if (bVar47 == 0x65) {\n      uVar32 = 0xb;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }" if (parenthesized_expression "(bVar47 == 0x65)" ( (binary_expression "bVar47 == 0x65" identifier == number_literal) )) (compound_statement "{\n      uVar32 = 0xb;\n    }" { (expression_statement "uVar32 = 0xb;" (assignment_expression "uVar32 = 0xb" identifier = number_literal) ;) }) (else_clause "else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }" else (compound_statement "{\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }" { (if_statement "if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }" if (parenthesized_expression "((char)bVar47 < 'f')" ( (binary_expression "(char)bVar47 < 'f'" (cast_expression "(char)bVar47" ( (type_descriptor "char" primitive_type) ) identifier) < (char_literal "'f'" ' character ')) )) (compound_statement "{\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }" { (if_statement "if (bVar47 == 0) goto switchD_001311d2_caseD_24;" if (parenthesized_expression "(bVar47 == 0)" ( (binary_expression "bVar47 == 0" identifier == number_literal) )) (goto_statement "goto switchD_001311d2_caseD_24;" goto statement_identifier ;)) }) (else_clause "else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }" else (compound_statement "{\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }" { (expression_statement "uVar32 = 7;" (assignment_expression "uVar32 = 7" identifier = number_literal) ;) (if_statement "if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;" if (parenthesized_expression "((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75))" ( (binary_expression "(bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)" (parenthesized_expression "(bVar47 == 0x73)" ( (binary_expression "bVar47 == 0x73" identifier == number_literal) )) || (parenthesized_expression "(uVar32 = 8, bVar47 == 0x75)" ( (comma_expression "uVar32 = 8, bVar47 == 0x75" (assignment_expression "uVar32 = 8" identifier = number_literal) , (binary_expression "bVar47 == 0x75" identifier == number_literal)) ))) )) (goto_statement "goto LAB_00131e0e;" goto statement_identifier ;)) }))) (expression_statement "uVar32 = 7;" (assignment_expression "uVar32 = 7" identifier = number_literal) ;) (expression_statement "uVar8 = dcgettext(0,"unrecognized cross reference type",5);" (assignment_expression "uVar8 = dcgettext(0,"unrecognized cross reference type",5)" identifier = (call_expression "dcgettext(0,"unrecognized cross reference type",5)" identifier (argument_list "(0,"unrecognized cross reference type",5)" ( number_literal , (string_literal ""unrecognized cross reference type"" " string_content ") , number_literal )))) ;) (expression_statement "FUN_0012e500(pbVar34,uVar8);" (call_expression "FUN_0012e500(pbVar34,uVar8)" identifier (argument_list "(pbVar34,uVar8)" ( identifier , identifier ))) ;) (expression_statement "pbVar40 = (byte *)*param_4;" (assignment_expression "pbVar40 = (byte *)*param_4" identifier = (cast_expression "(byte *)*param_4" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_4" * identifier))) ;) }))) (labeled_statement "LAB_00131e0e:\n    pbVar40 = pbVar40 + 1;" statement_identifier : (expression_statement "pbVar40 = pbVar40 + 1;" (assignment_expression "pbVar40 = pbVar40 + 1" identifier = (binary_expression "pbVar40 + 1" identifier + number_literal)) ;)) (expression_statement "*param_4 = (ulong)pbVar40;" (assignment_expression "*param_4 = (ulong)pbVar40" (pointer_expression "*param_4" * identifier) = (cast_expression "(ulong)pbVar40" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "pcVar15 = strchr((char *)pbVar40,0x3c);" (assignment_expression "pcVar15 = strchr((char *)pbVar40,0x3c)" identifier = (call_expression "strchr((char *)pbVar40,0x3c)" identifier (argument_list "((char *)pbVar40,0x3c)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (expression_statement "pcVar16 = strchr((char *)pbVar40,0x3a);" (assignment_expression "pcVar16 = strchr((char *)pbVar40,0x3a)" identifier = (call_expression "strchr((char *)pbVar40,0x3a)" identifier (argument_list "((char *)pbVar40,0x3a)" ( (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , number_literal )))) ;) (if_statement "if (pcVar16 != (char *)0x0) {\n      if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }\n      cVar4 = *pcVar15;\n      if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }\n    }" if (parenthesized_expression "(pcVar16 != (char *)0x0)" ( (binary_expression "pcVar16 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }\n      cVar4 = *pcVar15;\n      if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }\n    }" { (if_statement "if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }" if (parenthesized_expression "(((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':'))" ( (binary_expression "((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')" (parenthesized_expression "((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15))" ( (binary_expression "(pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)" (parenthesized_expression "(pcVar15 == (char *)0x0)" ( (binary_expression "pcVar15 == (char *)0x0" identifier == (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) || (parenthesized_expression "(pcVar16 <= pcVar15)" ( (binary_expression "pcVar16 <= pcVar15" identifier <= identifier) ))) )) || (parenthesized_expression "(pcVar16[1] != ':')" ( (binary_expression "pcVar16[1] != ':'" (subscript_expression "pcVar16[1]" identifier [ number_literal ]) != (char_literal "':'" ' character ')) ))) )) (compound_statement "{\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }" { (labeled_statement "LAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;" statement_identifier : (expression_statement "uVar35 = (long)pcVar16 - (long)pbVar40;" (assignment_expression "uVar35 = (long)pcVar16 - (long)pbVar40" identifier = (binary_expression "(long)pcVar16 - (long)pbVar40" (cast_expression "(long)pcVar16" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) - (cast_expression "(long)pbVar40" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier))) ;)) (if_statement "if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }" if (parenthesized_expression "(((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0'))" ( (binary_expression "((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')" (parenthesized_expression "((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0))" ( (binary_expression "(param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)" (parenthesized_expression "(param_3 != (char *)0x0)" ( (binary_expression "param_3 != (char *)0x0" identifier != (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) )) && (parenthesized_expression "(iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)" ( (comma_expression "iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0" (assignment_expression "iVar5 = strncmp(param_3,(char *)pbVar40,uVar35)" identifier = (call_expression "strncmp(param_3,(char *)pbVar40,uVar35)" identifier (argument_list "(param_3,(char *)pbVar40,uVar35)" ( identifier , (cast_expression "(char *)pbVar40" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) , (binary_expression "iVar5 == 0" identifier == number_literal)) ))) )) && (parenthesized_expression "(param_3[uVar35] == '\0')" ( (binary_expression "param_3[uVar35] == '\0'" (subscript_expression "param_3[uVar35]" identifier [ identifier ]) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }" { (expression_statement "*(undefined4 *)(param_2 + 0x1a8) = 1;" (assignment_expression "*(undefined4 *)(param_2 + 0x1a8) = 1" (pointer_expression "*(undefined4 *)(param_2 + 0x1a8)" * (cast_expression "(undefined4 *)(param_2 + 0x1a8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 0x1a8)" ( (binary_expression "param_2 + 0x1a8" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);" (assignment_expression "lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32)" identifier = (call_expression "FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32)" identifier (argument_list "(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32)" ( identifier , (binary_expression "param_2 + 0x1a0" identifier + number_literal) , identifier , (binary_expression "uVar35 & 0xffffffff" identifier & number_literal) , identifier )))) ;) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" * identifier) = (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" ( identifier )) (argument_list "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (break_statement "break;" break ;) })) (expression_statement "cVar4 = *pcVar15;" (assignment_expression "cVar4 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (if_statement "if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }" if (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }" { (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "pcVar16 = pcVar15;" (assignment_expression "pcVar16 = pcVar15" identifier = identifier) ;) (do_statement "do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');" do (compound_statement "{\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }" { (if_statement "if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;" if (parenthesized_expression "(cVar4 == '<')" ( (binary_expression "cVar4 == '<'" identifier == (char_literal "'<'" ' character ')) )) (compound_statement "{\n            iVar5 = iVar5 + 1;\n          }" { (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) }) (else_clause "else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;" else (if_statement "if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;" if (parenthesized_expression "(cVar4 == '>')" ( (binary_expression "cVar4 == '>'" identifier == (char_literal "'>'" ' character ')) )) (compound_statement "{\n            iVar5 = iVar5 + -1;\n          }" { (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) }) (else_clause "else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;" else (if_statement "if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;" if (parenthesized_expression "((iVar5 == 0) && (cVar4 == ':'))" ( (binary_expression "(iVar5 == 0) && (cVar4 == ':')" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) && (parenthesized_expression "(cVar4 == ':')" ( (binary_expression "cVar4 == ':'" identifier == (char_literal "':'" ' character ')) ))) )) (goto_statement "goto LAB_00131e52;" goto statement_identifier ;)))))) (expression_statement "pcVar16 = pcVar16 + 1;" (assignment_expression "pcVar16 = pcVar16 + 1" identifier = (binary_expression "pcVar16 + 1" identifier + number_literal)) ;) (expression_statement "cVar4 = *pcVar16;" (assignment_expression "cVar4 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) }) while (parenthesized_expression "(cVar4 != '\0')" ( (binary_expression "cVar4 != '\0'" identifier != (char_literal "'\0'" ' escape_sequence ')) )) ;) })) })) (labeled_statement "switchD_001311d2_caseD_24:\n    FUN_0012e570(pbVar34);" statement_identifier : (expression_statement "FUN_0012e570(pbVar34);" (call_expression "FUN_0012e570(pbVar34)" identifier (argument_list "(pbVar34)" ( identifier ))) ;)) (return_statement "return 0;" return number_literal ;)) })) (if_statement "if (lVar17 != 0) {\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    if (local_13c == -1) {\n      return lVar17;\n    }\n    iVar5 = FUN_0012de60(param_1,lVar17,local_13c);\n    if (iVar5 != 0) {\n      return lVar17;\n    }\n  }" if (parenthesized_expression "(lVar17 != 0)" ( (binary_expression "lVar17 != 0" identifier != number_literal) )) (compound_statement "{\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    if (local_13c == -1) {\n      return lVar17;\n    }\n    iVar5 = FUN_0012de60(param_1,lVar17,local_13c);\n    if (iVar5 != 0) {\n      return lVar17;\n    }\n  }" { (if_statement "if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }" if (parenthesized_expression "((uint)local_70 != -1)" ( (binary_expression "(uint)local_70 != -1" (cast_expression "(uint)local_70" ( (type_descriptor "uint" type_identifier) ) identifier) != number_literal) )) (compound_statement "{\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }" { (expression_statement "plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);" (assignment_expression "plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70)" identifier = (cast_expression "(long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70)" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70)" identifier (argument_list "(param_2 + 0x80,param_2 + 0x88,&local_70)" ( (binary_expression "param_2 + 0x80" identifier + number_literal) , (binary_expression "param_2 + 0x88" identifier + number_literal) , (pointer_expression "&local_70" & identifier) ))))) ;) (if_statement "if (plVar10 == (long *)0x0) {\n        return 0;\n      }" if (parenthesized_expression "(plVar10 == (long *)0x0)" ( (binary_expression "plVar10 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "*plVar10 = lVar17;" (assignment_expression "*plVar10 = lVar17" (pointer_expression "*plVar10" * identifier) = identifier) ;) })) (if_statement "if (local_13c == -1) {\n      return lVar17;\n    }" if (parenthesized_expression "(local_13c == -1)" ( (binary_expression "local_13c == -1" identifier == number_literal) )) (compound_statement "{\n      return lVar17;\n    }" { (return_statement "return lVar17;" return identifier ;) })) (expression_statement "iVar5 = FUN_0012de60(param_1,lVar17,local_13c);" (assignment_expression "iVar5 = FUN_0012de60(param_1,lVar17,local_13c)" identifier = (call_expression "FUN_0012de60(param_1,lVar17,local_13c)" identifier (argument_list "(param_1,lVar17,local_13c)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 != 0) {\n      return lVar17;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      return lVar17;\n    }" { (return_statement "return lVar17;" return identifier ;) })) })) (return_statement "return 0;" return number_literal ;) })))
(translation_unit (function_definition (sized_type_specifier long) (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (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 (pointer_expression * IDENT) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]) & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (return_statement return IDENT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))) )) && (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression IDENT * LIT) ]) & LIT) )) != LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) || (binary_expression IDENT == LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (goto_statement goto statement_identifier ;) })) (while_statement while (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }))) })) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (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 = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT , LIT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= (binary_expression IDENT + LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT << LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_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 = (binary_expression IDENT + (parenthesized_expression ( (binary_expression IDENT - LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) }))) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) }))) (break_statement break ;)) (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) != (field_expression IDENT . field_identifier)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (break_statement break ;)) (case_statement case LIT : (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) != (char_literal ' character ')) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) != (char_literal ' character '))) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) }))) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) && (binary_expression (field_expression IDENT . field_identifier) == LIT)) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) != (char_literal ' character ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) , (binary_expression IDENT == LIT)) ))) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (binary_expression IDENT != LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (break_statement break ;) })) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))) < LIT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT) )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT) )))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (binary_expression IDENT >> LIT) & LIT) , IDENT )))) ;) (break_statement break ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;)) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) < LIT) )) && (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT >> (parenthesized_expression ( (binary_expression IDENT & LIT) ))) & LIT) )) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (binary_expression IDENT != LIT) ))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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 (call_expression IDENT (argument_list ( IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) != (char_literal ' character ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT << LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT << LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (pointer_expression * IDENT)) )) || (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression LIT >> (parenthesized_expression ( (binary_expression 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 (sized_type_specifier long)) ) IDENT) + (binary_expression IDENT * LIT)) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (binary_expression IDENT * LIT)) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , LIT )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (break_statement break ;)) (case_statement case LIT : (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (field_expression IDENT . field_identifier) == (field_expression IDENT . field_identifier))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_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 (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (string_literal " string_content "))) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) != IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") , LIT )))) , (binary_expression IDENT != LIT)) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;)) (break_statement break ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;)) (break_statement break ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (return_statement return LIT ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (break_statement break ;) }))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( IDENT )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (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 { (labeled_statement 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 = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;)) (break_statement break ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) < LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) (break_statement break ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) (break_statement break ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT != LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (unary_expression ! IDENT) )) || (parenthesized_expression ( IDENT ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) && (parenthesized_expression ( (unary_expression ! IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT & LIT) )))) ;) (break_statement break ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) || (parenthesized_expression ( IDENT ))) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (parenthesized_expression ( (unary_expression ! IDENT) ))) )) ))) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT & LIT) )))) ;) (break_statement break ;) })) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )) (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (unary_expression ~ IDENT)) )) || (parenthesized_expression ( (binary_expression IDENT == (binary_expression IDENT + LIT)) ))) )) (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 = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) (break_statement break ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , LIT )))) ;) (break_statement break ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (unary_expression - IDENT) , LIT )))) ;)) }))) (break_statement break ;)) (case_statement case LIT :) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) ))) << LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) }))) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) || (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) ))) )) (goto_statement goto statement_identifier ;)))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression (pointer_expression * IDENT) + LIT)) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return LIT ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) != (char_literal ' character ')) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return LIT ;) })) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) IDENT)) << LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , LIT ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , LIT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) (break_statement break ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression IDENT == (char_literal ' character '))) ))) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (binary_expression IDENT * LIT)) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) ;) (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 = (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (return_statement return LIT ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) || (binary_expression IDENT != LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }))) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (binary_expression IDENT * LIT)) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' character ')) ))) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != (char_literal ' character ')) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , 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 *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (pointer_expression * IDENT)) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = LIT) ;) }))))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement default : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_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) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;))) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT)) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) }))) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (string_literal " string_content ") ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) (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 : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (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 = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") , LIT )))) , (binary_expression IDENT != LIT)) ))) )) (goto_statement goto statement_identifier ;))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) )) (goto_statement goto statement_identifier ;))) (expression_statement (assignment_expression IDENT = BOOL) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]) & LIT) )) == LIT) )) && (parenthesized_expression ( (binary_expression (binary_expression IDENT != LIT) && (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") , LIT )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT ))))) ;) (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 = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != 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 = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - LIT) )))) ;) })) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT == LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) }))))) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) < (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * IDENT) == (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( IDENT )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (unary_expression ! IDENT) && (unary_expression ! IDENT)) )) == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = BOOL) ;) (goto_statement goto statement_identifier ;) }))) (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 = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) })) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " ")) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) , (string_literal " string_content ") ))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , LIT )))) , (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT))) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) , (string_literal " string_content ") , IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) , (string_literal " string_content ") , IDENT , IDENT ))) ;) (expression_statement (assignment_expression (field_expression IDENT . field_identifier) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))))) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (pointer_expression * IDENT) + LIT) & (unary_expression ~ (pointer_expression * IDENT)))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT == LIT) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT >> LIT)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )) - (cast_expression ( (type_descriptor TYPE) ) (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE) ) IDENT) , (cast_expression ( (type_descriptor TYPE) ) IDENT) ))))) )) - (cast_expression ( (type_descriptor TYPE) ) (pointer_expression & IDENT)))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + LIT) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + LIT) )) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) + LIT) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) ))) )) && (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (char_literal ' character ')) ))) )) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , LIT ))))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence string_content escape_sequence escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression (binary_expression IDENT + LIT) + (unary_expression ~ (cast_expression ( (type_descriptor TYPE) ) IDENT))) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT , LIT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) , IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT ))) ;) }))) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT & LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) ))) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression & IDENT)) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) ))) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) || (parenthesized_expression ( IDENT ))) )) (goto_statement goto statement_identifier ;))) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , LIT , (pointer_expression & IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) && (parenthesized_expression ( (binary_expression (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) , (pointer_expression & IDENT) ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_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 (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]) & LIT) )) == LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (binary_expression IDENT != LIT) && (binary_expression IDENT != LIT))) ))) )) (compound_statement { (for_statement for ( ; (binary_expression (pointer_expression * IDENT) == LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , (string_literal " string_content ") )))) ;) (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 (subscript_expression IDENT [ LIT ]) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_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 = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;))) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (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 *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case LIT :) (case_statement case 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 = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , LIT )))) ;) (goto_statement goto statement_identifier ;)) (case_statement default : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (break_statement break ;)) (case_statement case LIT :) (case_statement case 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 = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , 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)) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;)) (case_statement case LIT : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;)) (case_statement case 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 = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , LIT )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , IDENT , (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (goto_statement goto statement_identifier ;) }))) }))) (goto_statement goto statement_identifier ;)) })) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (unary_expression ! IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression & IDENT) , (pointer_expression & IDENT) , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) (goto_statement goto statement_identifier ;)) })) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (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)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT , (string_literal " string_content escape_sequence ") , LIT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement 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)) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) ;) (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = 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 *)) ) (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' character ')) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')))) ))) )) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) << LIT) )))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) )))) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (goto_statement goto statement_identifier ;)) }))) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression & IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT , IDENT , LIT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression IDENT != (char_literal ' character ')) && (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) ))) )) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (return_statement return LIT ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (field_expression IDENT . field_identifier) != (field_expression IDENT . field_identifier)) )) (goto_statement goto statement_identifier ;)) (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 = LIT) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT == LIT) && (binary_expression IDENT == LIT)) )) && (binary_expression IDENT == LIT)) )) && (parenthesized_expression ( (unary_expression ! IDENT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT == LIT) , IDENT , IDENT )))) ;) (break_statement break ;) }))) (expression_statement (assignment_expression IDENT = LIT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT == LIT) , IDENT , IDENT , IDENT , IDENT , IDENT , IDENT )))) ;) (break_statement break ;)) (case_statement case LIT : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = LIT) , (binary_expression IDENT == LIT)) ))) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( LIT , (string_literal " string_content ") , LIT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , LIT )))) ;) (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 (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) || (parenthesized_expression ( (binary_expression IDENT <= IDENT) ))) )) || (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (char_literal ' character ')) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) , IDENT )))) , (binary_expression IDENT == LIT)) ))) )) && (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ IDENT ]) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (binary_expression IDENT + LIT) , IDENT , (binary_expression IDENT & LIT) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + LIT) )))) ;) (break_statement break ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) && (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) ))) )) (goto_statement goto statement_identifier ;)))))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (char_literal ' escape_sequence ')) )) ;) })) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (return_statement return LIT ;)) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , (pointer_expression & IDENT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (return_statement return LIT ;) })) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return IDENT ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return IDENT ;) })) })) (return_statement return LIT ;) })))
(function_definition "long FUN_00131020(void *param_1,long param_2,char *param_3,ulong *param_4,undefined8 *param_5,\n                 byte *param_6)\n\n{\n  char cVar1;\n  undefined8 uVar2;\n  byte bVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  long *plVar10;\n  void *__ptr;\n  ulong uVar11;\n  void *pvVar12;\n  long lVar13;\n  undefined8 uVar14;\n  char *pcVar15;\n  char *pcVar16;\n  long lVar17;\n  long lVar18;\n  undefined8 *puVar19;\n  size_t sVar20;\n  char *pcVar21;\n  byte *pbVar22;\n  undefined *puVar23;\n  int *piVar24;\n  undefined8 uVar25;\n  long lVar26;\n  int iVar27;\n  ulong uVar28;\n  uint *puVar29;\n  uint *puVar30;\n  byte *pbVar31;\n  undefined4 uVar32;\n  byte *pbVar33;\n  byte *pbVar34;\n  ulong uVar35;\n  undefined8 *puVar36;\n  byte *pbVar37;\n  byte bVar38;\n  uint uVar39;\n  byte *pbVar40;\n  bool bVar41;\n  bool bVar42;\n  bool bVar43;\n  bool bVar44;\n  bool bVar45;\n  bool bVar46;\n  byte bVar47;\n  void *local_148;\n  int local_13c;\n  char *local_138;\n  void *local_130;\n  void *local_128;\n  undefined8 local_120;\n  long local_108;\n  long local_100;\n  long local_f8;\n  int local_f0;\n  uint local_ec;\n  uint local_e8;\n  undefined4 local_e4;\n  ulong local_d8;\n  uint local_c8;\n  uint local_c4;\n  char *local_c0;\n  undefined1 local_80 [4];\n  int local_7c;\n  byte *local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  long local_60;\n  undefined8 *local_58;\n  int local_50 [2];\n  void *local_48;\n  undefined4 local_40;\n  undefined4 local_3c;\n  \n  bVar47 = 0;\n  if (param_5 != (undefined8 *)0x0) {\n    *param_5 = 0;\n  }\n  pbVar34 = (byte *)*param_4;\n  if (param_6 <= pbVar34) {\n    return 0;\n  }\n  *(undefined4 *)(param_2 + 0x1a8) = 0;\n  bVar38 = *pbVar34;\n  if (((_sch_istable[(ulong)bVar38 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n    iVar5 = FUN_0012e6c0(param_4,&local_70,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    pcVar16 = (char *)*param_4;\n    if (*pcVar16 != '=') {\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_70);\n      return lVar17;\n    }\n    if (((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)) && (-1 < local_70)) {\n      uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      pcVar16 = (char *)*param_4;\n      *param_5 = uVar8;\n    }\n    uVar8 = 0;\n    *param_4 = (ulong)(pcVar16 + 1);\n    local_13c = -1;\n    pbVar22 = (byte *)(pcVar16 + 1);\n    do {\n      while( true ) {\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }\n      pbVar22 = pbVar40;\n    } while (bVar38 != 0);\n    goto switchD_001311d2_caseD_24;\n  }\n  pbVar40 = pbVar34 + 1;\n  uVar8 = 0;\n  local_13c = -1;\n  local_70 = -1;\n  bVar38 = *pbVar34;\n  pbVar22 = pbVar34;\nLAB_001311b2:\n  *param_4 = (ulong)pbVar40;\n  switch(bVar38) {\n  case 0x23:\n    if (pbVar22[1] == 0x23) {\n      *param_4 = (ulong)(pbVar22 + 2);\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);\n    }\n    else {\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }\n    break;\n  default:\n    goto switchD_001311d2_caseD_24;\n  case 0x26:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d760(param_1,uVar8);\n    break;\n  case 0x28:\n  case 0x2d:\n  case 0x30:\n  case 0x31:\n  case 0x32:\n  case 0x33:\n  case 0x34:\n  case 0x35:\n  case 0x36:\n  case 0x37:\n  case 0x38:\n  case 0x39:\n    *param_4 = (ulong)pbVar22;\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    if ((uint)local_70 == (uint)local_68) {\n      if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;\n      lVar17 = FUN_0012d550(param_1);\n    }\n    else {\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    break;\n  case 0x2a:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6b0(param_1,uVar8);\n    break;\n  case 0x40:\nswitchD_001311d2_caseD_40:\n    lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar17 == 0) {\n      return 0;\n    }\n    if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar18 == 0) {\n      return 0;\n    }\n    lVar17 = FUN_0012d8e0(param_1,lVar17,lVar18);\n    break;\n  case 0x42:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9e0(param_1,uVar8);\n    break;\n  case 0x52:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    lVar17 = FUN_0012e630(param_4,0,param_6);\n    if ((*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')) goto LAB_00132126;\n    if (lVar17 - 3U < 3) {\n      lVar17 = FUN_0012d5a0(param_1,uVar8);\n    }\n    else {\n      lVar17 = FUN_0012d580();\n    }\n    break;\n  case 0x53:\n    uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d880(param_1,uVar14,uVar8);\n    break;\n  case 0x61:\n    if (pbVar22[1] == 0x72) {\n      pbVar22 = pbVar22 + 2;\n      *param_4 = (ulong)pbVar22;\n      if (param_6 <= pbVar22) {\n        return 0;\n      }\n      local_78 = pbVar22;\n      iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }\n      if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }\n      FUN_0012e570(pbVar22);\n      return 0;\n    }\n    goto switchD_001311d2_caseD_24;\n  case 0x62:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    if (pbVar22[1] == 0x73) {\n      uVar8 = 0;\n    }\n    else {\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }\n    *param_4 = (ulong)(pbVar22 + 2);\n    if (((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76)) {\n      *param_4 = (ulong)(pbVar22 + 3);\n    }\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    uVar35 = FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 == ';') {\n      *param_4 = (ulong)((char *)*param_4 + 1);\n    }\n    if (uVar35 != 0) {\n      lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);\n      break;\n    }\nLAB_00133358:\n    lVar17 = FUN_0012d550(param_1);\n    break;\n  case 0x65:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    pbVar34 = pbVar40;\n    if (pbVar22[1] == 0x2d) {\n      do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *param_4 = (ulong)(pbVar22 + 2);\n    }\n    local_148 = (void *)xmalloc(0x50);\n    pvVar12 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    uVar35 = (ulong)*pbVar34;\n    if ((*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }\n    *(undefined8 *)((long)local_148 + uVar28 * 8) = 0;\n    pcVar16 = (char *)*param_4;\n    *(undefined8 *)((long)pvVar12 + uVar28 * 8) = 0;\n    if (*pcVar16 == ';') {\n      *param_4 = (ulong)(pcVar16 + 1);\n    }\n    lVar17 = FUN_0012d670(param_1,local_148,pvVar12);\n    break;\n  case 0x66:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6f0(param_1,uVar8,0,0);\n    break;\n  case 0x6b:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9b0(param_1,uVar8);\n    break;\n  case 0x72:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    bVar43 = false;\n    if ((uint)local_68 == (uint)local_70) {\n      bVar43 = local_68._4_4_ == local_70._4_4_;\n    }\n    pbVar34 = (byte *)*param_4;\n    lVar17 = 0;\n    bVar38 = *pbVar34;\n    if (bVar38 == 0x3d) {\n      *param_4 = (ulong)pbVar40;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      pbVar34 = (byte *)*param_4;\n      bVar38 = *pbVar34;\n    }\n    if (bVar38 == 0x3b) {\n      pbVar34 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar34;\n    }\n    uVar35 = FUN_0012e630(param_4,&local_7c,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    pcVar16 = (char *)*param_4 + 1;\n    *param_4 = (ulong)pcVar16;\n    uVar11 = FUN_0012e630(param_4,&local_78,param_6);\n    iVar5 = local_7c;\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    if (local_7c != 0 || (int)local_78 != 0) {\n      bVar41 = false;\n      bVar44 = lVar17 == 0;\n      if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }\n      lVar18 = 0x18;\n      pbVar22 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }\nLAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);\n      break;\n    }\nLAB_0013197e:\n    if (lVar17 != 0) {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }\n    if ((bVar43) && (uVar35 == 0)) {\n      if (uVar11 == 0) goto LAB_00133358;\n      if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }\n      lVar17 = FUN_0012d560(param_1,4,1);\n    }\n    else {\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }\n    break;\n  case 0x73:\n  case 0x75:\n    uVar8 = FUN_0012e630(param_4,0,param_6);\n    pbVar40 = (byte *)*param_4;\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    local_f8 = 0;\n    if (*pbVar40 == 0x21) {\n      *param_4 = (ulong)(pbVar40 + 1);\n      uVar39 = FUN_0012e630(param_4,0,param_6);\n      if (*(char *)*param_4 != ',') goto LAB_00132126;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);\n      if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }\n      pbVar40 = (byte *)*param_4;\n      *(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;\n      if (param_6 <= pbVar40) {\n        return 0;\n      }\n    }\n    uVar35 = 0;\n    local_130 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    bVar43 = false;\n    bVar3 = *pbVar34;\n    local_138._0_4_ = 10;\n    while (bVar3 != 0x3b) {\n      uVar39 = (int)uVar35 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }\n      if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }\n      pbVar34 = (byte *)*param_4;\n      uVar35 = (ulong)uVar39;\n      bVar3 = *pbVar34;\n    }\n    *(undefined8 *)((long)local_130 + uVar35 * 8) = 0;\n    if (param_6 <= pbVar34) goto LAB_00131328;\n    bVar3 = *pbVar34;\n    if (bVar3 == 0x3b) {\n      local_108 = 0;\nLAB_001334bc:\n      pbVar22 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar22;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }\n    if (*pbVar22 == 0x7e) {\n      pbVar40 = pbVar22 + 1;\n      *param_4 = (ulong)pbVar40;\n      if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *param_4 = (ulong)(pbVar40 + 1);\n      iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n      if (iVar5 == 0) goto LAB_00131328;\n      if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }\n      if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;\n      uVar14 = 1;\n      lVar17 = 0;\n    }\n    else {\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }\n    lVar17 = FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14);\n    break;\n  case 0x78:\n    bVar47 = pbVar22[1];\n    if (bVar47 == 0x65) {\n      uVar32 = 0xb;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }\nLAB_00131e0e:\n    pbVar40 = pbVar40 + 1;\n    *param_4 = (ulong)pbVar40;\n    pcVar15 = strchr((char *)pbVar40,0x3c);\n    pcVar16 = strchr((char *)pbVar40,0x3a);\n    if (pcVar16 != (char *)0x0) {\n      if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }\n      cVar4 = *pcVar15;\n      if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }\n    }\nswitchD_001311d2_caseD_24:\n    FUN_0012e570(pbVar34);\n    return 0;\n  }\n  if (lVar17 != 0) {\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    if (local_13c == -1) {\n      return lVar17;\n    }\n    iVar5 = FUN_0012de60(param_1,lVar17,local_13c);\n    if (iVar5 != 0) {\n      return lVar17;\n    }\n  }\n  return 0;\n}" (sized_type_specifier "long" (long "long")) (function_declarator "FUN_00131020(void *param_1,long param_2,char *param_3,ulong *param_4,undefined8 *param_5,\n                 byte *param_6)" (identifier "FUN_00131020") (parameter_list "(void *param_1,long param_2,char *param_3,ulong *param_4,undefined8 *param_5,\n                 byte *param_6)" (( "(") (parameter_declaration "void *param_1" (primitive_type "void") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "long param_2" (sized_type_specifier "long" (long "long")) (identifier "param_2")) (, ",") (parameter_declaration "char *param_3" (primitive_type "char") (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) (, ",") (parameter_declaration "ulong *param_4" (type_identifier "ulong") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) (, ",") (parameter_declaration "undefined8 *param_5" (type_identifier "undefined8") (pointer_declarator "*param_5" (* "*") (identifier "param_5"))) (, ",") (parameter_declaration "byte *param_6" (type_identifier "byte") (pointer_declarator "*param_6" (* "*") (identifier "param_6"))) () ")"))) (compound_statement "{\n  char cVar1;\n  undefined8 uVar2;\n  byte bVar3;\n  char cVar4;\n  int iVar5;\n  uint uVar6;\n  uint uVar7;\n  undefined8 uVar8;\n  undefined8 uVar9;\n  long *plVar10;\n  void *__ptr;\n  ulong uVar11;\n  void *pvVar12;\n  long lVar13;\n  undefined8 uVar14;\n  char *pcVar15;\n  char *pcVar16;\n  long lVar17;\n  long lVar18;\n  undefined8 *puVar19;\n  size_t sVar20;\n  char *pcVar21;\n  byte *pbVar22;\n  undefined *puVar23;\n  int *piVar24;\n  undefined8 uVar25;\n  long lVar26;\n  int iVar27;\n  ulong uVar28;\n  uint *puVar29;\n  uint *puVar30;\n  byte *pbVar31;\n  undefined4 uVar32;\n  byte *pbVar33;\n  byte *pbVar34;\n  ulong uVar35;\n  undefined8 *puVar36;\n  byte *pbVar37;\n  byte bVar38;\n  uint uVar39;\n  byte *pbVar40;\n  bool bVar41;\n  bool bVar42;\n  bool bVar43;\n  bool bVar44;\n  bool bVar45;\n  bool bVar46;\n  byte bVar47;\n  void *local_148;\n  int local_13c;\n  char *local_138;\n  void *local_130;\n  void *local_128;\n  undefined8 local_120;\n  long local_108;\n  long local_100;\n  long local_f8;\n  int local_f0;\n  uint local_ec;\n  uint local_e8;\n  undefined4 local_e4;\n  ulong local_d8;\n  uint local_c8;\n  uint local_c4;\n  char *local_c0;\n  undefined1 local_80 [4];\n  int local_7c;\n  byte *local_78;\n  undefined8 local_70;\n  undefined8 local_68;\n  long local_60;\n  undefined8 *local_58;\n  int local_50 [2];\n  void *local_48;\n  undefined4 local_40;\n  undefined4 local_3c;\n  \n  bVar47 = 0;\n  if (param_5 != (undefined8 *)0x0) {\n    *param_5 = 0;\n  }\n  pbVar34 = (byte *)*param_4;\n  if (param_6 <= pbVar34) {\n    return 0;\n  }\n  *(undefined4 *)(param_2 + 0x1a8) = 0;\n  bVar38 = *pbVar34;\n  if (((_sch_istable[(ulong)bVar38 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n    iVar5 = FUN_0012e6c0(param_4,&local_70,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    pcVar16 = (char *)*param_4;\n    if (*pcVar16 != '=') {\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_70);\n      return lVar17;\n    }\n    if (((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)) && (-1 < local_70)) {\n      uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      pcVar16 = (char *)*param_4;\n      *param_5 = uVar8;\n    }\n    uVar8 = 0;\n    *param_4 = (ulong)(pcVar16 + 1);\n    local_13c = -1;\n    pbVar22 = (byte *)(pcVar16 + 1);\n    do {\n      while( true ) {\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }\n      pbVar22 = pbVar40;\n    } while (bVar38 != 0);\n    goto switchD_001311d2_caseD_24;\n  }\n  pbVar40 = pbVar34 + 1;\n  uVar8 = 0;\n  local_13c = -1;\n  local_70 = -1;\n  bVar38 = *pbVar34;\n  pbVar22 = pbVar34;\nLAB_001311b2:\n  *param_4 = (ulong)pbVar40;\n  switch(bVar38) {\n  case 0x23:\n    if (pbVar22[1] == 0x23) {\n      *param_4 = (ulong)(pbVar22 + 2);\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);\n    }\n    else {\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }\n    break;\n  default:\n    goto switchD_001311d2_caseD_24;\n  case 0x26:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d760(param_1,uVar8);\n    break;\n  case 0x28:\n  case 0x2d:\n  case 0x30:\n  case 0x31:\n  case 0x32:\n  case 0x33:\n  case 0x34:\n  case 0x35:\n  case 0x36:\n  case 0x37:\n  case 0x38:\n  case 0x39:\n    *param_4 = (ulong)pbVar22;\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    if ((uint)local_70 == (uint)local_68) {\n      if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;\n      lVar17 = FUN_0012d550(param_1);\n    }\n    else {\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    break;\n  case 0x2a:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6b0(param_1,uVar8);\n    break;\n  case 0x40:\nswitchD_001311d2_caseD_40:\n    lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar17 == 0) {\n      return 0;\n    }\n    if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar18 == 0) {\n      return 0;\n    }\n    lVar17 = FUN_0012d8e0(param_1,lVar17,lVar18);\n    break;\n  case 0x42:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9e0(param_1,uVar8);\n    break;\n  case 0x52:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    lVar17 = FUN_0012e630(param_4,0,param_6);\n    if ((*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')) goto LAB_00132126;\n    if (lVar17 - 3U < 3) {\n      lVar17 = FUN_0012d5a0(param_1,uVar8);\n    }\n    else {\n      lVar17 = FUN_0012d580();\n    }\n    break;\n  case 0x53:\n    uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d880(param_1,uVar14,uVar8);\n    break;\n  case 0x61:\n    if (pbVar22[1] == 0x72) {\n      pbVar22 = pbVar22 + 2;\n      *param_4 = (ulong)pbVar22;\n      if (param_6 <= pbVar22) {\n        return 0;\n      }\n      local_78 = pbVar22;\n      iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }\n      if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }\n      FUN_0012e570(pbVar22);\n      return 0;\n    }\n    goto switchD_001311d2_caseD_24;\n  case 0x62:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    if (pbVar22[1] == 0x73) {\n      uVar8 = 0;\n    }\n    else {\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }\n    *param_4 = (ulong)(pbVar22 + 2);\n    if (((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76)) {\n      *param_4 = (ulong)(pbVar22 + 3);\n    }\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    uVar35 = FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 == ';') {\n      *param_4 = (ulong)((char *)*param_4 + 1);\n    }\n    if (uVar35 != 0) {\n      lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);\n      break;\n    }\nLAB_00133358:\n    lVar17 = FUN_0012d550(param_1);\n    break;\n  case 0x65:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    pbVar34 = pbVar40;\n    if (pbVar22[1] == 0x2d) {\n      do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *param_4 = (ulong)(pbVar22 + 2);\n    }\n    local_148 = (void *)xmalloc(0x50);\n    pvVar12 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    uVar35 = (ulong)*pbVar34;\n    if ((*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }\n    *(undefined8 *)((long)local_148 + uVar28 * 8) = 0;\n    pcVar16 = (char *)*param_4;\n    *(undefined8 *)((long)pvVar12 + uVar28 * 8) = 0;\n    if (*pcVar16 == ';') {\n      *param_4 = (ulong)(pcVar16 + 1);\n    }\n    lVar17 = FUN_0012d670(param_1,local_148,pvVar12);\n    break;\n  case 0x66:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6f0(param_1,uVar8,0,0);\n    break;\n  case 0x6b:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9b0(param_1,uVar8);\n    break;\n  case 0x72:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    bVar43 = false;\n    if ((uint)local_68 == (uint)local_70) {\n      bVar43 = local_68._4_4_ == local_70._4_4_;\n    }\n    pbVar34 = (byte *)*param_4;\n    lVar17 = 0;\n    bVar38 = *pbVar34;\n    if (bVar38 == 0x3d) {\n      *param_4 = (ulong)pbVar40;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      pbVar34 = (byte *)*param_4;\n      bVar38 = *pbVar34;\n    }\n    if (bVar38 == 0x3b) {\n      pbVar34 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar34;\n    }\n    uVar35 = FUN_0012e630(param_4,&local_7c,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    pcVar16 = (char *)*param_4 + 1;\n    *param_4 = (ulong)pcVar16;\n    uVar11 = FUN_0012e630(param_4,&local_78,param_6);\n    iVar5 = local_7c;\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    if (local_7c != 0 || (int)local_78 != 0) {\n      bVar41 = false;\n      bVar44 = lVar17 == 0;\n      if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }\n      lVar18 = 0x18;\n      pbVar22 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }\nLAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);\n      break;\n    }\nLAB_0013197e:\n    if (lVar17 != 0) {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }\n    if ((bVar43) && (uVar35 == 0)) {\n      if (uVar11 == 0) goto LAB_00133358;\n      if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }\n      lVar17 = FUN_0012d560(param_1,4,1);\n    }\n    else {\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }\n    break;\n  case 0x73:\n  case 0x75:\n    uVar8 = FUN_0012e630(param_4,0,param_6);\n    pbVar40 = (byte *)*param_4;\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    local_f8 = 0;\n    if (*pbVar40 == 0x21) {\n      *param_4 = (ulong)(pbVar40 + 1);\n      uVar39 = FUN_0012e630(param_4,0,param_6);\n      if (*(char *)*param_4 != ',') goto LAB_00132126;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);\n      if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }\n      pbVar40 = (byte *)*param_4;\n      *(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;\n      if (param_6 <= pbVar40) {\n        return 0;\n      }\n    }\n    uVar35 = 0;\n    local_130 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    bVar43 = false;\n    bVar3 = *pbVar34;\n    local_138._0_4_ = 10;\n    while (bVar3 != 0x3b) {\n      uVar39 = (int)uVar35 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }\n      if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }\n      pbVar34 = (byte *)*param_4;\n      uVar35 = (ulong)uVar39;\n      bVar3 = *pbVar34;\n    }\n    *(undefined8 *)((long)local_130 + uVar35 * 8) = 0;\n    if (param_6 <= pbVar34) goto LAB_00131328;\n    bVar3 = *pbVar34;\n    if (bVar3 == 0x3b) {\n      local_108 = 0;\nLAB_001334bc:\n      pbVar22 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar22;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }\n    if (*pbVar22 == 0x7e) {\n      pbVar40 = pbVar22 + 1;\n      *param_4 = (ulong)pbVar40;\n      if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *param_4 = (ulong)(pbVar40 + 1);\n      iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n      if (iVar5 == 0) goto LAB_00131328;\n      if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }\n      if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;\n      uVar14 = 1;\n      lVar17 = 0;\n    }\n    else {\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }\n    lVar17 = FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14);\n    break;\n  case 0x78:\n    bVar47 = pbVar22[1];\n    if (bVar47 == 0x65) {\n      uVar32 = 0xb;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }\nLAB_00131e0e:\n    pbVar40 = pbVar40 + 1;\n    *param_4 = (ulong)pbVar40;\n    pcVar15 = strchr((char *)pbVar40,0x3c);\n    pcVar16 = strchr((char *)pbVar40,0x3a);\n    if (pcVar16 != (char *)0x0) {\n      if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }\n      cVar4 = *pcVar15;\n      if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }\n    }\nswitchD_001311d2_caseD_24:\n    FUN_0012e570(pbVar34);\n    return 0;\n  }\n  if (lVar17 != 0) {\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    if (local_13c == -1) {\n      return lVar17;\n    }\n    iVar5 = FUN_0012de60(param_1,lVar17,local_13c);\n    if (iVar5 != 0) {\n      return lVar17;\n    }\n  }\n  return 0;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "undefined8 uVar2;" (type_identifier "undefined8") (identifier "uVar2") (; ";")) (declaration "byte bVar3;" (type_identifier "byte") (identifier "bVar3") (; ";")) (declaration "char cVar4;" (primitive_type "char") (identifier "cVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "uint uVar6;" (type_identifier "uint") (identifier "uVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "undefined8 uVar8;" (type_identifier "undefined8") (identifier "uVar8") (; ";")) (declaration "undefined8 uVar9;" (type_identifier "undefined8") (identifier "uVar9") (; ";")) (declaration "long *plVar10;" (sized_type_specifier "long" (long "long")) (pointer_declarator "*plVar10" (* "*") (identifier "plVar10")) (; ";")) (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "ulong uVar11;" (type_identifier "ulong") (identifier "uVar11") (; ";")) (declaration "void *pvVar12;" (primitive_type "void") (pointer_declarator "*pvVar12" (* "*") (identifier "pvVar12")) (; ";")) (declaration "long lVar13;" (sized_type_specifier "long" (long "long")) (identifier "lVar13") (; ";")) (declaration "undefined8 uVar14;" (type_identifier "undefined8") (identifier "uVar14") (; ";")) (declaration "char *pcVar15;" (primitive_type "char") (pointer_declarator "*pcVar15" (* "*") (identifier "pcVar15")) (; ";")) (declaration "char *pcVar16;" (primitive_type "char") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "long lVar17;" (sized_type_specifier "long" (long "long")) (identifier "lVar17") (; ";")) (declaration "long lVar18;" (sized_type_specifier "long" (long "long")) (identifier "lVar18") (; ";")) (declaration "undefined8 *puVar19;" (type_identifier "undefined8") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "size_t sVar20;" (primitive_type "size_t") (identifier "sVar20") (; ";")) (declaration "char *pcVar21;" (primitive_type "char") (pointer_declarator "*pcVar21" (* "*") (identifier "pcVar21")) (; ";")) (declaration "byte *pbVar22;" (type_identifier "byte") (pointer_declarator "*pbVar22" (* "*") (identifier "pbVar22")) (; ";")) (declaration "undefined *puVar23;" (type_identifier "undefined") (pointer_declarator "*puVar23" (* "*") (identifier "puVar23")) (; ";")) (declaration "int *piVar24;" (primitive_type "int") (pointer_declarator "*piVar24" (* "*") (identifier "piVar24")) (; ";")) (declaration "undefined8 uVar25;" (type_identifier "undefined8") (identifier "uVar25") (; ";")) (declaration "long lVar26;" (sized_type_specifier "long" (long "long")) (identifier "lVar26") (; ";")) (declaration "int iVar27;" (primitive_type "int") (identifier "iVar27") (; ";")) (declaration "ulong uVar28;" (type_identifier "ulong") (identifier "uVar28") (; ";")) (declaration "uint *puVar29;" (type_identifier "uint") (pointer_declarator "*puVar29" (* "*") (identifier "puVar29")) (; ";")) (declaration "uint *puVar30;" (type_identifier "uint") (pointer_declarator "*puVar30" (* "*") (identifier "puVar30")) (; ";")) (declaration "byte *pbVar31;" (type_identifier "byte") (pointer_declarator "*pbVar31" (* "*") (identifier "pbVar31")) (; ";")) (declaration "undefined4 uVar32;" (type_identifier "undefined4") (identifier "uVar32") (; ";")) (declaration "byte *pbVar33;" (type_identifier "byte") (pointer_declarator "*pbVar33" (* "*") (identifier "pbVar33")) (; ";")) (declaration "byte *pbVar34;" (type_identifier "byte") (pointer_declarator "*pbVar34" (* "*") (identifier "pbVar34")) (; ";")) (declaration "ulong uVar35;" (type_identifier "ulong") (identifier "uVar35") (; ";")) (declaration "undefined8 *puVar36;" (type_identifier "undefined8") (pointer_declarator "*puVar36" (* "*") (identifier "puVar36")) (; ";")) (declaration "byte *pbVar37;" (type_identifier "byte") (pointer_declarator "*pbVar37" (* "*") (identifier "pbVar37")) (; ";")) (declaration "byte bVar38;" (type_identifier "byte") (identifier "bVar38") (; ";")) (declaration "uint uVar39;" (type_identifier "uint") (identifier "uVar39") (; ";")) (declaration "byte *pbVar40;" (type_identifier "byte") (pointer_declarator "*pbVar40" (* "*") (identifier "pbVar40")) (; ";")) (declaration "bool bVar41;" (primitive_type "bool") (identifier "bVar41") (; ";")) (declaration "bool bVar42;" (primitive_type "bool") (identifier "bVar42") (; ";")) (declaration "bool bVar43;" (primitive_type "bool") (identifier "bVar43") (; ";")) (declaration "bool bVar44;" (primitive_type "bool") (identifier "bVar44") (; ";")) (declaration "bool bVar45;" (primitive_type "bool") (identifier "bVar45") (; ";")) (declaration "bool bVar46;" (primitive_type "bool") (identifier "bVar46") (; ";")) (declaration "byte bVar47;" (type_identifier "byte") (identifier "bVar47") (; ";")) (declaration "void *local_148;" (primitive_type "void") (pointer_declarator "*local_148" (* "*") (identifier "local_148")) (; ";")) (declaration "int local_13c;" (primitive_type "int") (identifier "local_13c") (; ";")) (declaration "char *local_138;" (primitive_type "char") (pointer_declarator "*local_138" (* "*") (identifier "local_138")) (; ";")) (declaration "void *local_130;" (primitive_type "void") (pointer_declarator "*local_130" (* "*") (identifier "local_130")) (; ";")) (declaration "void *local_128;" (primitive_type "void") (pointer_declarator "*local_128" (* "*") (identifier "local_128")) (; ";")) (declaration "undefined8 local_120;" (type_identifier "undefined8") (identifier "local_120") (; ";")) (declaration "long local_108;" (sized_type_specifier "long" (long "long")) (identifier "local_108") (; ";")) (declaration "long local_100;" (sized_type_specifier "long" (long "long")) (identifier "local_100") (; ";")) (declaration "long local_f8;" (sized_type_specifier "long" (long "long")) (identifier "local_f8") (; ";")) (declaration "int local_f0;" (primitive_type "int") (identifier "local_f0") (; ";")) (declaration "uint local_ec;" (type_identifier "uint") (identifier "local_ec") (; ";")) (declaration "uint local_e8;" (type_identifier "uint") (identifier "local_e8") (; ";")) (declaration "undefined4 local_e4;" (type_identifier "undefined4") (identifier "local_e4") (; ";")) (declaration "ulong local_d8;" (type_identifier "ulong") (identifier "local_d8") (; ";")) (declaration "uint local_c8;" (type_identifier "uint") (identifier "local_c8") (; ";")) (declaration "uint local_c4;" (type_identifier "uint") (identifier "local_c4") (; ";")) (declaration "char *local_c0;" (primitive_type "char") (pointer_declarator "*local_c0" (* "*") (identifier "local_c0")) (; ";")) (declaration "undefined1 local_80 [4];" (type_identifier "undefined1") (array_declarator "local_80 [4]" (identifier "local_80") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int local_7c;" (primitive_type "int") (identifier "local_7c") (; ";")) (declaration "byte *local_78;" (type_identifier "byte") (pointer_declarator "*local_78" (* "*") (identifier "local_78")) (; ";")) (declaration "undefined8 local_70;" (type_identifier "undefined8") (identifier "local_70") (; ";")) (declaration "undefined8 local_68;" (type_identifier "undefined8") (identifier "local_68") (; ";")) (declaration "long local_60;" (sized_type_specifier "long" (long "long")) (identifier "local_60") (; ";")) (declaration "undefined8 *local_58;" (type_identifier "undefined8") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "int local_50 [2];" (primitive_type "int") (array_declarator "local_50 [2]" (identifier "local_50") ([ "[") (number_literal "2") (] "]")) (; ";")) (declaration "void *local_48;" (primitive_type "void") (pointer_declarator "*local_48" (* "*") (identifier "local_48")) (; ";")) (declaration "undefined4 local_40;" (type_identifier "undefined4") (identifier "local_40") (; ";")) (declaration "undefined4 local_3c;" (type_identifier "undefined4") (identifier "local_3c") (; ";")) (expression_statement "bVar47 = 0;" (assignment_expression "bVar47 = 0" (identifier "bVar47") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_5 != (undefined8 *)0x0) {\n    *param_5 = 0;\n  }" (if "if") (parenthesized_expression "(param_5 != (undefined8 *)0x0)" (( "(") (binary_expression "param_5 != (undefined8 *)0x0" (identifier "param_5") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *param_5 = 0;\n  }" ({ "{") (expression_statement "*param_5 = 0;" (assignment_expression "*param_5 = 0" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" (identifier "pbVar34") (= "=") (cast_expression "(byte *)*param_4" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (if_statement "if (param_6 <= pbVar34) {\n    return 0;\n  }" (if "if") (parenthesized_expression "(param_6 <= pbVar34)" (( "(") (binary_expression "param_6 <= pbVar34" (identifier "param_6") (<= "<=") (identifier "pbVar34")) () ")")) (compound_statement "{\n    return 0;\n  }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "*(undefined4 *)(param_2 + 0x1a8) = 0;" (assignment_expression "*(undefined4 *)(param_2 + 0x1a8) = 0" (pointer_expression "*(undefined4 *)(param_2 + 0x1a8)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x1a8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1a8)" (( "(") (binary_expression "param_2 + 0x1a8" (identifier "param_2") (+ "+") (number_literal "0x1a8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar38 = *pbVar34;" (assignment_expression "bVar38 = *pbVar34" (identifier "bVar38") (= "=") (pointer_expression "*pbVar34" (* "*") (identifier "pbVar34"))) (; ";")) (if_statement "if (((_sch_istable[(ulong)bVar38 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n    iVar5 = FUN_0012e6c0(param_4,&local_70,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    pcVar16 = (char *)*param_4;\n    if (*pcVar16 != '=') {\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_70);\n      return lVar17;\n    }\n    if (((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)) && (-1 < local_70)) {\n      uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      pcVar16 = (char *)*param_4;\n      *param_5 = uVar8;\n    }\n    uVar8 = 0;\n    *param_4 = (ulong)(pcVar16 + 1);\n    local_13c = -1;\n    pbVar22 = (byte *)(pcVar16 + 1);\n    do {\n      while( true ) {\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }\n      pbVar22 = pbVar40;\n    } while (bVar38 != 0);\n    goto switchD_001311d2_caseD_24;\n  }" (if "if") (parenthesized_expression "(((_sch_istable[(ulong)bVar38 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28))" (( "(") (binary_expression "((_sch_istable[(ulong)bVar38 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)" (parenthesized_expression "((_sch_istable[(ulong)bVar38 * 2] & 4) != 0)" (( "(") (binary_expression "(_sch_istable[(ulong)bVar38 * 2] & 4) != 0" (parenthesized_expression "(_sch_istable[(ulong)bVar38 * 2] & 4)" (( "(") (binary_expression "_sch_istable[(ulong)bVar38 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar38 * 2]" (identifier "_sch_istable") ([ "[") (binary_expression "(ulong)bVar38 * 2" (cast_expression "(ulong)bVar38" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar38")) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(bVar38 == 0x2d || bVar38 == 0x28)" (( "(") (binary_expression "bVar38 == 0x2d || bVar38 == 0x28" (binary_expression "bVar38 == 0x2d" (identifier "bVar38") (== "==") (number_literal "0x2d")) (|| "||") (binary_expression "bVar38 == 0x28" (identifier "bVar38") (== "==") (number_literal "0x28"))) () ")"))) () ")")) (compound_statement "{\n    iVar5 = FUN_0012e6c0(param_4,&local_70,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    pcVar16 = (char *)*param_4;\n    if (*pcVar16 != '=') {\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_70);\n      return lVar17;\n    }\n    if (((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)) && (-1 < local_70)) {\n      uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      pcVar16 = (char *)*param_4;\n      *param_5 = uVar8;\n    }\n    uVar8 = 0;\n    *param_4 = (ulong)(pcVar16 + 1);\n    local_13c = -1;\n    pbVar22 = (byte *)(pcVar16 + 1);\n    do {\n      while( true ) {\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }\n      pbVar22 = pbVar40;\n    } while (bVar38 != 0);\n    goto switchD_001311d2_caseD_24;\n  }" ({ "{") (expression_statement "iVar5 = FUN_0012e6c0(param_4,&local_70,param_6);" (assignment_expression "iVar5 = FUN_0012e6c0(param_4,&local_70,param_6)" (identifier "iVar5") (= "=") (call_expression "FUN_0012e6c0(param_4,&local_70,param_6)" (identifier "FUN_0012e6c0") (argument_list "(param_4,&local_70,param_6)" (( "(") (identifier "param_4") (, ",") (pointer_expression "&local_70" (& "&") (identifier "local_70")) (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" (identifier "pcVar16") (= "=") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (if_statement "if (*pcVar16 != '=') {\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_70);\n      return lVar17;\n    }" (if "if") (parenthesized_expression "(*pcVar16 != '=')" (( "(") (binary_expression "*pcVar16 != '='" (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) (!= "!=") (char_literal "'='" (' "'") (character "=") (' "'"))) () ")")) (compound_statement "{\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_70);\n      return lVar17;\n    }" ({ "{") (expression_statement "lVar17 = FUN_0012e9f0(param_1,param_2,&local_70);" (assignment_expression "lVar17 = FUN_0012e9f0(param_1,param_2,&local_70)" (identifier "lVar17") (= "=") (call_expression "FUN_0012e9f0(param_1,param_2,&local_70)" (identifier "FUN_0012e9f0") (argument_list "(param_1,param_2,&local_70)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (pointer_expression "&local_70" (& "&") (identifier "local_70")) () ")")))) (; ";")) (return_statement "return lVar17;" (return "return") (identifier "lVar17") (; ";")) (} "}"))) (if_statement "if (((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)) && (-1 < local_70)) {\n      uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      pcVar16 = (char *)*param_4;\n      *param_5 = uVar8;\n    }" (if "if") (parenthesized_expression "(((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)) && (-1 < local_70))" (( "(") (binary_expression "((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)) && (-1 < local_70)" (parenthesized_expression "((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70))" (( "(") (binary_expression "(param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)" (parenthesized_expression "(param_5 != (undefined8 *)0x0)" (( "(") (binary_expression "param_5 != (undefined8 *)0x0" (identifier "param_5") (!= "!=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(-1 < (int)(uint)local_70)" (( "(") (binary_expression "-1 < (int)(uint)local_70" (number_literal "-1") (< "<") (cast_expression "(int)(uint)local_70" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (cast_expression "(uint)local_70" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_70")))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(-1 < local_70)" (( "(") (binary_expression "-1 < local_70" (number_literal "-1") (< "<") (identifier "local_70")) () ")"))) () ")")) (compound_statement "{\n      uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      pcVar16 = (char *)*param_4;\n      *param_5 = uVar8;\n    }" ({ "{") (expression_statement "uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);" (assignment_expression "uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70)" (identifier "uVar8") (= "=") (call_expression "FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70)" (identifier "FUN_0012e890") (argument_list "(param_2 + 0x80,param_2 + 0x88,&local_70)" (( "(") (binary_expression "param_2 + 0x80" (identifier "param_2") (+ "+") (number_literal "0x80")) (, ",") (binary_expression "param_2 + 0x88" (identifier "param_2") (+ "+") (number_literal "0x88")) (, ",") (pointer_expression "&local_70" (& "&") (identifier "local_70")) () ")")))) (; ";")) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" (identifier "pcVar16") (= "=") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (expression_statement "*param_5 = uVar8;" (assignment_expression "*param_5 = uVar8" (pointer_expression "*param_5" (* "*") (identifier "param_5")) (= "=") (identifier "uVar8")) (; ";")) (} "}"))) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pcVar16 + 1)" (( "(") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_13c = -1;" (assignment_expression "local_13c = -1" (identifier "local_13c") (= "=") (number_literal "-1")) (; ";")) (expression_statement "pbVar22 = (byte *)(pcVar16 + 1);" (assignment_expression "pbVar22 = (byte *)(pcVar16 + 1)" (identifier "pbVar22") (= "=") (cast_expression "(byte *)(pcVar16 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar16 + 1)" (( "(") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1")) () ")")))) (; ";")) (do_statement "do {\n      while( true ) {\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }\n      pbVar22 = pbVar40;\n    } while (bVar38 != 0);" (do "do") (compound_statement "{\n      while( true ) {\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }\n      pbVar22 = pbVar40;\n    }" ({ "{") (while_statement "while( true ) {\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }\n        if (bVar38 != 0x73) break;\n        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);\n        if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }\n      }" ({ "{") (while_statement "while( true ) {\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n          bVar38 = *pbVar22;\n          pbVar40 = pbVar22 + 1;\n          if (bVar38 != 0x40) goto LAB_001311b2;\n          bVar38 = pbVar22[1];\n          uVar35 = (ulong)bVar38;\n          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }\n          while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }\n          pbVar40 = pbVar40 + 1;\n          *param_4 = (ulong)pbVar40;\n          bVar38 = pbVar22[1];\n          if (bVar38 != 0x53) break;\n          uVar8 = 1;\n          pbVar22 = pbVar40;\n        }" ({ "{") (expression_statement "bVar38 = *pbVar22;" (assignment_expression "bVar38 = *pbVar22" (identifier "bVar38") (= "=") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22"))) (; ";")) (expression_statement "pbVar40 = pbVar22 + 1;" (assignment_expression "pbVar40 = pbVar22 + 1" (identifier "pbVar40") (= "=") (binary_expression "pbVar22 + 1" (identifier "pbVar22") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (bVar38 != 0x40) goto LAB_001311b2;" (if "if") (parenthesized_expression "(bVar38 != 0x40)" (( "(") (binary_expression "bVar38 != 0x40" (identifier "bVar38") (!= "!=") (number_literal "0x40")) () ")")) (goto_statement "goto LAB_001311b2;" (goto "goto") (statement_identifier "LAB_001311b2") (; ";"))) (expression_statement "bVar38 = pbVar22[1];" (assignment_expression "bVar38 = pbVar22[1]" (identifier "bVar38") (= "=") (subscript_expression "pbVar22[1]" (identifier "pbVar22") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "uVar35 = (ulong)bVar38;" (assignment_expression "uVar35 = (ulong)bVar38" (identifier "uVar35") (= "=") (cast_expression "(ulong)bVar38" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar38"))) (; ";")) (if_statement "if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }" (if "if") (parenthesized_expression "(((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28))" (( "(") (binary_expression "((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)" (parenthesized_expression "((_sch_istable[uVar35 * 2] & 4) != 0)" (( "(") (binary_expression "(_sch_istable[uVar35 * 2] & 4) != 0" (parenthesized_expression "(_sch_istable[uVar35 * 2] & 4)" (( "(") (binary_expression "_sch_istable[uVar35 * 2] & 4" (subscript_expression "_sch_istable[uVar35 * 2]" (identifier "_sch_istable") ([ "[") (binary_expression "uVar35 * 2" (identifier "uVar35") (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(bVar38 == 0x2d || bVar38 == 0x28)" (( "(") (binary_expression "bVar38 == 0x2d || bVar38 == 0x28" (binary_expression "bVar38 == 0x2d" (identifier "bVar38") (== "==") (number_literal "0x2d")) (|| "||") (binary_expression "bVar38 == 0x28" (identifier "bVar38") (== "==") (number_literal "0x28"))) () ")"))) () ")")) (compound_statement "{\n            *param_4 = (ulong)pbVar40;\n            goto switchD_001311d2_caseD_40;\n          }" ({ "{") (expression_statement "*param_4 = (ulong)pbVar40;" (assignment_expression "*param_4 = (ulong)pbVar40" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(ulong)pbVar40" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pbVar40"))) (; ";")) (goto_statement "goto switchD_001311d2_caseD_40;" (goto "goto") (statement_identifier "switchD_001311d2_caseD_40") (; ";")) (} "}"))) (while_statement "while ((char)uVar35 != ';') {\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }" (while "while") (parenthesized_expression "((char)uVar35 != ';')" (( "(") (binary_expression "(char)uVar35 != ';'" (cast_expression "(char)uVar35" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar35")) (!= "!=") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")")) (compound_statement "{\n            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;\n            pbVar40 = pbVar40 + 1;\n            uVar35 = (ulong)*pbVar40;\n          }" ({ "{") (if_statement "if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;" (if "if") (parenthesized_expression "((char)uVar35 == '\0')" (( "(") (binary_expression "(char)uVar35 == '\0'" (cast_expression "(char)uVar35" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar35")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto switchD_001311d2_caseD_24;" (goto "goto") (statement_identifier "switchD_001311d2_caseD_24") (; ";"))) (expression_statement "pbVar40 = pbVar40 + 1;" (assignment_expression "pbVar40 = pbVar40 + 1" (identifier "pbVar40") (= "=") (binary_expression "pbVar40 + 1" (identifier "pbVar40") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar35 = (ulong)*pbVar40;" (assignment_expression "uVar35 = (ulong)*pbVar40" (identifier "uVar35") (= "=") (binary_expression "(ulong)*pbVar40" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (identifier "pbVar40"))) (; ";")) (} "}"))) (expression_statement "pbVar40 = pbVar40 + 1;" (assignment_expression "pbVar40 = pbVar40 + 1" (identifier "pbVar40") (= "=") (binary_expression "pbVar40 + 1" (identifier "pbVar40") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_4 = (ulong)pbVar40;" (assignment_expression "*param_4 = (ulong)pbVar40" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(ulong)pbVar40" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pbVar40"))) (; ";")) (expression_statement "bVar38 = pbVar22[1];" (assignment_expression "bVar38 = pbVar22[1]" (identifier "bVar38") (= "=") (subscript_expression "pbVar22[1]" (identifier "pbVar22") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (bVar38 != 0x53) break;" (if "if") (parenthesized_expression "(bVar38 != 0x53)" (( "(") (binary_expression "bVar38 != 0x53" (identifier "bVar38") (!= "!=") (number_literal "0x53")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (expression_statement "pbVar22 = pbVar40;" (assignment_expression "pbVar22 = pbVar40" (identifier "pbVar22") (= "=") (identifier "pbVar40")) (; ";")) (} "}"))) (if_statement "if (bVar38 != 0x73) break;" (if "if") (parenthesized_expression "(bVar38 != 0x73)" (( "(") (binary_expression "bVar38 != 0x73" (identifier "bVar38") (!= "!=") (number_literal "0x73")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);" (assignment_expression "lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10)" (identifier "lVar17") (= "=") (call_expression "strtol((char *)(pbVar22 + 2),(char **)0x0,10)" (identifier "strtol") (argument_list "((char *)(pbVar22 + 2),(char **)0x0,10)" (( "(") (cast_expression "(char *)(pbVar22 + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar22 + 2)" (( "(") (binary_expression "pbVar22 + 2" (identifier "pbVar22") (+ "+") (number_literal "2")) () ")"))) (, ",") (cast_expression "(char **)0x0" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0")) (, ",") (number_literal "10") () ")")))) (; ";")) (if_statement "if ((int)lVar17 < 8) {\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }\n        else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }" (if "if") (parenthesized_expression "((int)lVar17 < 8)" (( "(") (binary_expression "(int)lVar17 < 8" (cast_expression "(int)lVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar17")) (< "<") (number_literal "8")) () ")")) (compound_statement "{\n          local_13c = -1;\n          pbVar22 = (byte *)*param_4;\n        }" ({ "{") (expression_statement "local_13c = -1;" (assignment_expression "local_13c = -1" (identifier "local_13c") (= "=") (number_literal "-1")) (; ";")) (expression_statement "pbVar22 = (byte *)*param_4;" (assignment_expression "pbVar22 = (byte *)*param_4" (identifier "pbVar22") (= "=") (cast_expression "(byte *)*param_4" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (} "}")) (else_clause "else {\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }" (else "else") (compound_statement "{\n          local_13c = (int)lVar17 >> 3;\n          pbVar22 = (byte *)*param_4;\n        }" ({ "{") (expression_statement "local_13c = (int)lVar17 >> 3;" (assignment_expression "local_13c = (int)lVar17 >> 3" (identifier "local_13c") (= "=") (binary_expression "(int)lVar17 >> 3" (cast_expression "(int)lVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar17")) (>> ">>") (number_literal "3"))) (; ";")) (expression_statement "pbVar22 = (byte *)*param_4;" (assignment_expression "pbVar22 = (byte *)*param_4" (identifier "pbVar22") (= "=") (cast_expression "(byte *)*param_4" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (} "}")))) (} "}"))) (expression_statement "pbVar22 = pbVar40;" (assignment_expression "pbVar22 = pbVar40" (identifier "pbVar22") (= "=") (identifier "pbVar40")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar38 != 0)" (( "(") (binary_expression "bVar38 != 0" (identifier "bVar38") (!= "!=") (number_literal "0")) () ")")) (; ";")) (goto_statement "goto switchD_001311d2_caseD_24;" (goto "goto") (statement_identifier "switchD_001311d2_caseD_24") (; ";")) (} "}"))) (expression_statement "pbVar40 = pbVar34 + 1;" (assignment_expression "pbVar40 = pbVar34 + 1" (identifier "pbVar40") (= "=") (binary_expression "pbVar34 + 1" (identifier "pbVar34") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_13c = -1;" (assignment_expression "local_13c = -1" (identifier "local_13c") (= "=") (number_literal "-1")) (; ";")) (expression_statement "local_70 = -1;" (assignment_expression "local_70 = -1" (identifier "local_70") (= "=") (number_literal "-1")) (; ";")) (expression_statement "bVar38 = *pbVar34;" (assignment_expression "bVar38 = *pbVar34" (identifier "bVar38") (= "=") (pointer_expression "*pbVar34" (* "*") (identifier "pbVar34"))) (; ";")) (expression_statement "pbVar22 = pbVar34;" (assignment_expression "pbVar22 = pbVar34" (identifier "pbVar22") (= "=") (identifier "pbVar34")) (; ";")) (labeled_statement "LAB_001311b2:\n  *param_4 = (ulong)pbVar40;" (statement_identifier "LAB_001311b2") (: ":") (expression_statement "*param_4 = (ulong)pbVar40;" (assignment_expression "*param_4 = (ulong)pbVar40" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(ulong)pbVar40" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pbVar40"))) (; ";"))) (switch_statement "switch(bVar38) {\n  case 0x23:\n    if (pbVar22[1] == 0x23) {\n      *param_4 = (ulong)(pbVar22 + 2);\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);\n    }\n    else {\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }\n    break;\n  default:\n    goto switchD_001311d2_caseD_24;\n  case 0x26:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d760(param_1,uVar8);\n    break;\n  case 0x28:\n  case 0x2d:\n  case 0x30:\n  case 0x31:\n  case 0x32:\n  case 0x33:\n  case 0x34:\n  case 0x35:\n  case 0x36:\n  case 0x37:\n  case 0x38:\n  case 0x39:\n    *param_4 = (ulong)pbVar22;\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    if ((uint)local_70 == (uint)local_68) {\n      if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;\n      lVar17 = FUN_0012d550(param_1);\n    }\n    else {\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    break;\n  case 0x2a:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6b0(param_1,uVar8);\n    break;\n  case 0x40:\nswitchD_001311d2_caseD_40:\n    lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar17 == 0) {\n      return 0;\n    }\n    if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar18 == 0) {\n      return 0;\n    }\n    lVar17 = FUN_0012d8e0(param_1,lVar17,lVar18);\n    break;\n  case 0x42:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9e0(param_1,uVar8);\n    break;\n  case 0x52:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    lVar17 = FUN_0012e630(param_4,0,param_6);\n    if ((*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')) goto LAB_00132126;\n    if (lVar17 - 3U < 3) {\n      lVar17 = FUN_0012d5a0(param_1,uVar8);\n    }\n    else {\n      lVar17 = FUN_0012d580();\n    }\n    break;\n  case 0x53:\n    uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d880(param_1,uVar14,uVar8);\n    break;\n  case 0x61:\n    if (pbVar22[1] == 0x72) {\n      pbVar22 = pbVar22 + 2;\n      *param_4 = (ulong)pbVar22;\n      if (param_6 <= pbVar22) {\n        return 0;\n      }\n      local_78 = pbVar22;\n      iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }\n      if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }\n      FUN_0012e570(pbVar22);\n      return 0;\n    }\n    goto switchD_001311d2_caseD_24;\n  case 0x62:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    if (pbVar22[1] == 0x73) {\n      uVar8 = 0;\n    }\n    else {\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }\n    *param_4 = (ulong)(pbVar22 + 2);\n    if (((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76)) {\n      *param_4 = (ulong)(pbVar22 + 3);\n    }\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    uVar35 = FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 == ';') {\n      *param_4 = (ulong)((char *)*param_4 + 1);\n    }\n    if (uVar35 != 0) {\n      lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);\n      break;\n    }\nLAB_00133358:\n    lVar17 = FUN_0012d550(param_1);\n    break;\n  case 0x65:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    pbVar34 = pbVar40;\n    if (pbVar22[1] == 0x2d) {\n      do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *param_4 = (ulong)(pbVar22 + 2);\n    }\n    local_148 = (void *)xmalloc(0x50);\n    pvVar12 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    uVar35 = (ulong)*pbVar34;\n    if ((*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }\n    *(undefined8 *)((long)local_148 + uVar28 * 8) = 0;\n    pcVar16 = (char *)*param_4;\n    *(undefined8 *)((long)pvVar12 + uVar28 * 8) = 0;\n    if (*pcVar16 == ';') {\n      *param_4 = (ulong)(pcVar16 + 1);\n    }\n    lVar17 = FUN_0012d670(param_1,local_148,pvVar12);\n    break;\n  case 0x66:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6f0(param_1,uVar8,0,0);\n    break;\n  case 0x6b:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9b0(param_1,uVar8);\n    break;\n  case 0x72:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    bVar43 = false;\n    if ((uint)local_68 == (uint)local_70) {\n      bVar43 = local_68._4_4_ == local_70._4_4_;\n    }\n    pbVar34 = (byte *)*param_4;\n    lVar17 = 0;\n    bVar38 = *pbVar34;\n    if (bVar38 == 0x3d) {\n      *param_4 = (ulong)pbVar40;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      pbVar34 = (byte *)*param_4;\n      bVar38 = *pbVar34;\n    }\n    if (bVar38 == 0x3b) {\n      pbVar34 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar34;\n    }\n    uVar35 = FUN_0012e630(param_4,&local_7c,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    pcVar16 = (char *)*param_4 + 1;\n    *param_4 = (ulong)pcVar16;\n    uVar11 = FUN_0012e630(param_4,&local_78,param_6);\n    iVar5 = local_7c;\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    if (local_7c != 0 || (int)local_78 != 0) {\n      bVar41 = false;\n      bVar44 = lVar17 == 0;\n      if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }\n      lVar18 = 0x18;\n      pbVar22 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }\nLAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);\n      break;\n    }\nLAB_0013197e:\n    if (lVar17 != 0) {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }\n    if ((bVar43) && (uVar35 == 0)) {\n      if (uVar11 == 0) goto LAB_00133358;\n      if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }\n      lVar17 = FUN_0012d560(param_1,4,1);\n    }\n    else {\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }\n    break;\n  case 0x73:\n  case 0x75:\n    uVar8 = FUN_0012e630(param_4,0,param_6);\n    pbVar40 = (byte *)*param_4;\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    local_f8 = 0;\n    if (*pbVar40 == 0x21) {\n      *param_4 = (ulong)(pbVar40 + 1);\n      uVar39 = FUN_0012e630(param_4,0,param_6);\n      if (*(char *)*param_4 != ',') goto LAB_00132126;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);\n      if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }\n      pbVar40 = (byte *)*param_4;\n      *(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;\n      if (param_6 <= pbVar40) {\n        return 0;\n      }\n    }\n    uVar35 = 0;\n    local_130 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    bVar43 = false;\n    bVar3 = *pbVar34;\n    local_138._0_4_ = 10;\n    while (bVar3 != 0x3b) {\n      uVar39 = (int)uVar35 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }\n      if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }\n      pbVar34 = (byte *)*param_4;\n      uVar35 = (ulong)uVar39;\n      bVar3 = *pbVar34;\n    }\n    *(undefined8 *)((long)local_130 + uVar35 * 8) = 0;\n    if (param_6 <= pbVar34) goto LAB_00131328;\n    bVar3 = *pbVar34;\n    if (bVar3 == 0x3b) {\n      local_108 = 0;\nLAB_001334bc:\n      pbVar22 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar22;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }\n    if (*pbVar22 == 0x7e) {\n      pbVar40 = pbVar22 + 1;\n      *param_4 = (ulong)pbVar40;\n      if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *param_4 = (ulong)(pbVar40 + 1);\n      iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n      if (iVar5 == 0) goto LAB_00131328;\n      if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }\n      if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;\n      uVar14 = 1;\n      lVar17 = 0;\n    }\n    else {\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }\n    lVar17 = FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14);\n    break;\n  case 0x78:\n    bVar47 = pbVar22[1];\n    if (bVar47 == 0x65) {\n      uVar32 = 0xb;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }\nLAB_00131e0e:\n    pbVar40 = pbVar40 + 1;\n    *param_4 = (ulong)pbVar40;\n    pcVar15 = strchr((char *)pbVar40,0x3c);\n    pcVar16 = strchr((char *)pbVar40,0x3a);\n    if (pcVar16 != (char *)0x0) {\n      if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }\n      cVar4 = *pcVar15;\n      if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }\n    }\nswitchD_001311d2_caseD_24:\n    FUN_0012e570(pbVar34);\n    return 0;\n  }" (switch "switch") (parenthesized_expression "(bVar38)" (( "(") (identifier "bVar38") () ")")) (compound_statement "{\n  case 0x23:\n    if (pbVar22[1] == 0x23) {\n      *param_4 = (ulong)(pbVar22 + 2);\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);\n    }\n    else {\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }\n    break;\n  default:\n    goto switchD_001311d2_caseD_24;\n  case 0x26:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d760(param_1,uVar8);\n    break;\n  case 0x28:\n  case 0x2d:\n  case 0x30:\n  case 0x31:\n  case 0x32:\n  case 0x33:\n  case 0x34:\n  case 0x35:\n  case 0x36:\n  case 0x37:\n  case 0x38:\n  case 0x39:\n    *param_4 = (ulong)pbVar22;\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    if ((uint)local_70 == (uint)local_68) {\n      if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;\n      lVar17 = FUN_0012d550(param_1);\n    }\n    else {\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    break;\n  case 0x2a:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6b0(param_1,uVar8);\n    break;\n  case 0x40:\nswitchD_001311d2_caseD_40:\n    lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar17 == 0) {\n      return 0;\n    }\n    if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar18 == 0) {\n      return 0;\n    }\n    lVar17 = FUN_0012d8e0(param_1,lVar17,lVar18);\n    break;\n  case 0x42:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9e0(param_1,uVar8);\n    break;\n  case 0x52:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    lVar17 = FUN_0012e630(param_4,0,param_6);\n    if ((*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')) goto LAB_00132126;\n    if (lVar17 - 3U < 3) {\n      lVar17 = FUN_0012d5a0(param_1,uVar8);\n    }\n    else {\n      lVar17 = FUN_0012d580();\n    }\n    break;\n  case 0x53:\n    uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d880(param_1,uVar14,uVar8);\n    break;\n  case 0x61:\n    if (pbVar22[1] == 0x72) {\n      pbVar22 = pbVar22 + 2;\n      *param_4 = (ulong)pbVar22;\n      if (param_6 <= pbVar22) {\n        return 0;\n      }\n      local_78 = pbVar22;\n      iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }\n      if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }\n      FUN_0012e570(pbVar22);\n      return 0;\n    }\n    goto switchD_001311d2_caseD_24;\n  case 0x62:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    if (pbVar22[1] == 0x73) {\n      uVar8 = 0;\n    }\n    else {\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }\n    *param_4 = (ulong)(pbVar22 + 2);\n    if (((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76)) {\n      *param_4 = (ulong)(pbVar22 + 3);\n    }\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    uVar35 = FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 == ';') {\n      *param_4 = (ulong)((char *)*param_4 + 1);\n    }\n    if (uVar35 != 0) {\n      lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);\n      break;\n    }\nLAB_00133358:\n    lVar17 = FUN_0012d550(param_1);\n    break;\n  case 0x65:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    pbVar34 = pbVar40;\n    if (pbVar22[1] == 0x2d) {\n      do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *param_4 = (ulong)(pbVar22 + 2);\n    }\n    local_148 = (void *)xmalloc(0x50);\n    pvVar12 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    uVar35 = (ulong)*pbVar34;\n    if ((*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }\n    *(undefined8 *)((long)local_148 + uVar28 * 8) = 0;\n    pcVar16 = (char *)*param_4;\n    *(undefined8 *)((long)pvVar12 + uVar28 * 8) = 0;\n    if (*pcVar16 == ';') {\n      *param_4 = (ulong)(pcVar16 + 1);\n    }\n    lVar17 = FUN_0012d670(param_1,local_148,pvVar12);\n    break;\n  case 0x66:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6f0(param_1,uVar8,0,0);\n    break;\n  case 0x6b:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9b0(param_1,uVar8);\n    break;\n  case 0x72:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    bVar43 = false;\n    if ((uint)local_68 == (uint)local_70) {\n      bVar43 = local_68._4_4_ == local_70._4_4_;\n    }\n    pbVar34 = (byte *)*param_4;\n    lVar17 = 0;\n    bVar38 = *pbVar34;\n    if (bVar38 == 0x3d) {\n      *param_4 = (ulong)pbVar40;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      pbVar34 = (byte *)*param_4;\n      bVar38 = *pbVar34;\n    }\n    if (bVar38 == 0x3b) {\n      pbVar34 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar34;\n    }\n    uVar35 = FUN_0012e630(param_4,&local_7c,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    pcVar16 = (char *)*param_4 + 1;\n    *param_4 = (ulong)pcVar16;\n    uVar11 = FUN_0012e630(param_4,&local_78,param_6);\n    iVar5 = local_7c;\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    if (local_7c != 0 || (int)local_78 != 0) {\n      bVar41 = false;\n      bVar44 = lVar17 == 0;\n      if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }\n      lVar18 = 0x18;\n      pbVar22 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }\nLAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);\n      break;\n    }\nLAB_0013197e:\n    if (lVar17 != 0) {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }\n    if ((bVar43) && (uVar35 == 0)) {\n      if (uVar11 == 0) goto LAB_00133358;\n      if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }\n      lVar17 = FUN_0012d560(param_1,4,1);\n    }\n    else {\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }\n    break;\n  case 0x73:\n  case 0x75:\n    uVar8 = FUN_0012e630(param_4,0,param_6);\n    pbVar40 = (byte *)*param_4;\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    local_f8 = 0;\n    if (*pbVar40 == 0x21) {\n      *param_4 = (ulong)(pbVar40 + 1);\n      uVar39 = FUN_0012e630(param_4,0,param_6);\n      if (*(char *)*param_4 != ',') goto LAB_00132126;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);\n      if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }\n      pbVar40 = (byte *)*param_4;\n      *(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;\n      if (param_6 <= pbVar40) {\n        return 0;\n      }\n    }\n    uVar35 = 0;\n    local_130 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    bVar43 = false;\n    bVar3 = *pbVar34;\n    local_138._0_4_ = 10;\n    while (bVar3 != 0x3b) {\n      uVar39 = (int)uVar35 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }\n      if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }\n      pbVar34 = (byte *)*param_4;\n      uVar35 = (ulong)uVar39;\n      bVar3 = *pbVar34;\n    }\n    *(undefined8 *)((long)local_130 + uVar35 * 8) = 0;\n    if (param_6 <= pbVar34) goto LAB_00131328;\n    bVar3 = *pbVar34;\n    if (bVar3 == 0x3b) {\n      local_108 = 0;\nLAB_001334bc:\n      pbVar22 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar22;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }\n    if (*pbVar22 == 0x7e) {\n      pbVar40 = pbVar22 + 1;\n      *param_4 = (ulong)pbVar40;\n      if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *param_4 = (ulong)(pbVar40 + 1);\n      iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n      if (iVar5 == 0) goto LAB_00131328;\n      if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }\n      if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;\n      uVar14 = 1;\n      lVar17 = 0;\n    }\n    else {\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }\n    lVar17 = FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14);\n    break;\n  case 0x78:\n    bVar47 = pbVar22[1];\n    if (bVar47 == 0x65) {\n      uVar32 = 0xb;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }\nLAB_00131e0e:\n    pbVar40 = pbVar40 + 1;\n    *param_4 = (ulong)pbVar40;\n    pcVar15 = strchr((char *)pbVar40,0x3c);\n    pcVar16 = strchr((char *)pbVar40,0x3a);\n    if (pcVar16 != (char *)0x0) {\n      if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }\n      cVar4 = *pcVar15;\n      if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }\n    }\nswitchD_001311d2_caseD_24:\n    FUN_0012e570(pbVar34);\n    return 0;\n  }" ({ "{") (case_statement "case 0x23:\n    if (pbVar22[1] == 0x23) {\n      *param_4 = (ulong)(pbVar22 + 2);\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);\n    }\n    else {\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }\n    break;" (case "case") (number_literal "0x23") (: ":") (if_statement "if (pbVar22[1] == 0x23) {\n      *param_4 = (ulong)(pbVar22 + 2);\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);\n    }\n    else {\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }" (if "if") (parenthesized_expression "(pbVar22[1] == 0x23)" (( "(") (binary_expression "pbVar22[1] == 0x23" (subscript_expression "pbVar22[1]" (identifier "pbVar22") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x23")) () ")")) (compound_statement "{\n      *param_4 = (ulong)(pbVar22 + 2);\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);\n    }" ({ "{") (expression_statement "*param_4 = (ulong)(pbVar22 + 2);" (assignment_expression "*param_4 = (ulong)(pbVar22 + 2)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pbVar22 + 2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pbVar22 + 2)" (( "(") (binary_expression "pbVar22 + 2" (identifier "pbVar22") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "lVar17") (= "=") (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "FUN_00131020") (argument_list "(param_1,param_2,0,param_4,0,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (lVar17 == 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(lVar17 == 0)" (( "(") (binary_expression "lVar17 == 0" (identifier "lVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;" (if "if") (parenthesized_expression "(*(char *)*param_4 != ';')" (( "(") (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" (* "*") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (!= "!=") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")")) (goto_statement "goto switchD_001311d2_caseD_24;" (goto "goto") (statement_identifier "switchD_001311d2_caseD_24") (; ";"))) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((char *)*param_4 + 1)" (( "(") (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);" (assignment_expression "lVar17 = FUN_0012d940(param_1,lVar17,0,0,0)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d940(param_1,lVar17,0,0,0)" (identifier "FUN_0012d940") (argument_list "(param_1,lVar17,0,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "lVar17") (, ",") (number_literal "0") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}")) (else_clause "else {\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }" (else "else") (compound_statement "{\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar18 == 0) {\n        return 0;\n      }\n      uVar11 = 10;\n      puVar19 = (undefined8 *)xmalloc(0x50);\n      uVar35 = 0;\n      while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }\n      uVar8 = 1;\n      *param_4 = (ulong)(pcVar16 + 1);\n      puVar36 = puVar19;\n      if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }\n      *puVar36 = 0;\n      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);\n    }" ({ "{") (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "lVar17") (= "=") (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "FUN_00131020") (argument_list "(param_1,param_2,0,param_4,0,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (lVar17 == 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(lVar17 == 0)" (( "(") (binary_expression "lVar17 == 0" (identifier "lVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;" (if "if") (parenthesized_expression "(*(char *)*param_4 != ',')" (( "(") (binary_expression "*(char *)*param_4 != ','" (pointer_expression "*(char *)*param_4" (* "*") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (!= "!=") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (goto_statement "goto switchD_001311d2_caseD_24;" (goto "goto") (statement_identifier "switchD_001311d2_caseD_24") (; ";"))) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((char *)*param_4 + 1)" (( "(") (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "lVar18") (= "=") (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "FUN_00131020") (argument_list "(param_1,param_2,0,param_4,0,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (lVar18 == 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(lVar18 == 0)" (( "(") (binary_expression "lVar18 == 0" (identifier "lVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar11 = 10;" (assignment_expression "uVar11 = 10" (identifier "uVar11") (= "=") (number_literal "10")) (; ";")) (expression_statement "puVar19 = (undefined8 *)xmalloc(0x50);" (assignment_expression "puVar19 = (undefined8 *)xmalloc(0x50)" (identifier "puVar19") (= "=") (cast_expression "(undefined8 *)xmalloc(0x50)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(0x50)" (identifier "xmalloc") (argument_list "(0x50)" (( "(") (number_literal "0x50") () ")"))))) (; ";")) (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" (identifier "uVar35") (= "=") (number_literal "0")) (; ";")) (while_statement "while( true ) {\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }" (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (compound_statement "{\n        pcVar16 = (char *)*param_4;\n        iVar5 = (int)uVar35;\n        if (*pcVar16 == ';') break;\n        if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }\n        plVar10 = puVar19 + uVar35;\n        lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        uVar35 = (ulong)(iVar5 + 1U);\n        *plVar10 = lVar13;\n        if (lVar13 == 0) {\n          return 0;\n        }\n      }" ({ "{") (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" (identifier "pcVar16") (= "=") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (expression_statement "iVar5 = (int)uVar35;" (assignment_expression "iVar5 = (int)uVar35" (identifier "iVar5") (= "=") (cast_expression "(int)uVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar35"))) (; ";")) (if_statement "if (*pcVar16 == ';') break;" (if "if") (parenthesized_expression "(*pcVar16 == ';')" (( "(") (binary_expression "*pcVar16 == ';'" (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) (== "==") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (*pcVar16 != ',') {\n          FUN_0012e570(pbVar34);\n          return 0;\n        }" (if "if") (parenthesized_expression "(*pcVar16 != ',')" (( "(") (binary_expression "*pcVar16 != ','" (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) (!= "!=") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (compound_statement "{\n          FUN_0012e570(pbVar34);\n          return 0;\n        }" ({ "{") (expression_statement "FUN_0012e570(pbVar34);" (call_expression "FUN_0012e570(pbVar34)" (identifier "FUN_0012e570") (argument_list "(pbVar34)" (( "(") (identifier "pbVar34") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pcVar16 + 1)" (( "(") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((uint)uVar11 <= iVar5 + 1U) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }" (if "if") (parenthesized_expression "((uint)uVar11 <= iVar5 + 1U)" (( "(") (binary_expression "(uint)uVar11 <= iVar5 + 1U" (cast_expression "(uint)uVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar11")) (<= "<=") (binary_expression "iVar5 + 1U" (identifier "iVar5") (+ "+") (number_literal "1U"))) () ")")) (compound_statement "{\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);\n        }" ({ "{") (expression_statement "uVar11 = (ulong)((uint)uVar11 + 10);" (assignment_expression "uVar11 = (ulong)((uint)uVar11 + 10)" (identifier "uVar11") (= "=") (call_expression "(ulong)((uint)uVar11 + 10)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((uint)uVar11 + 10)" (( "(") (binary_expression "(uint)uVar11 + 10" (cast_expression "(uint)uVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar11")) (+ "+") (number_literal "10")) () ")")))) (; ";")) (expression_statement "puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);" (assignment_expression "puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3)" (identifier "puVar19") (= "=") (cast_expression "(undefined8 *)xrealloc(puVar19,uVar11 << 3)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xrealloc(puVar19,uVar11 << 3)" (identifier "xrealloc") (argument_list "(puVar19,uVar11 << 3)" (( "(") (identifier "puVar19") (, ",") (binary_expression "uVar11 << 3" (identifier "uVar11") (<< "<<") (number_literal "3")) () ")"))))) (; ";")) (} "}"))) (expression_statement "plVar10 = puVar19 + uVar35;" (assignment_expression "plVar10 = puVar19 + uVar35" (identifier "plVar10") (= "=") (binary_expression "puVar19 + uVar35" (identifier "puVar19") (+ "+") (identifier "uVar35"))) (; ";")) (expression_statement "lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "lVar13") (= "=") (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "FUN_00131020") (argument_list "(param_1,param_2,0,param_4,0,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (expression_statement "uVar35 = (ulong)(iVar5 + 1U);" (assignment_expression "uVar35 = (ulong)(iVar5 + 1U)" (identifier "uVar35") (= "=") (call_expression "(ulong)(iVar5 + 1U)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(iVar5 + 1U)" (( "(") (binary_expression "iVar5 + 1U" (identifier "iVar5") (+ "+") (number_literal "1U")) () ")")))) (; ";")) (expression_statement "*plVar10 = lVar13;" (assignment_expression "*plVar10 = lVar13" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (= "=") (identifier "lVar13")) (; ";")) (if_statement "if (lVar13 == 0) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(lVar13 == 0)" (( "(") (binary_expression "lVar13 == 0" (identifier "lVar13") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pcVar16 + 1)" (( "(") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "puVar36 = puVar19;" (assignment_expression "puVar36 = puVar19" (identifier "puVar36") (= "=") (identifier "puVar19")) (; ";")) (if_statement "if (iVar5 != 0) {\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        puVar36 = puVar19 + (iVar5 - 1);\n        iVar5 = FUN_0012e080(param_1,*puVar36);\n        if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }\n      }" ({ "{") (expression_statement "puVar36 = puVar19 + (iVar5 - 1);" (assignment_expression "puVar36 = puVar19 + (iVar5 - 1)" (identifier "puVar36") (= "=") (binary_expression "puVar19 + (iVar5 - 1)" (identifier "puVar19") (+ "+") (parenthesized_expression "(iVar5 - 1)" (( "(") (binary_expression "iVar5 - 1" (identifier "iVar5") (- "-") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar5 = FUN_0012e080(param_1,*puVar36);" (assignment_expression "iVar5 = FUN_0012e080(param_1,*puVar36)" (identifier "iVar5") (= "=") (call_expression "FUN_0012e080(param_1,*puVar36)" (identifier "FUN_0012e080") (argument_list "(param_1,*puVar36)" (( "(") (identifier "param_1") (, ",") (pointer_expression "*puVar36" (* "*") (identifier "puVar36")) () ")")))) (; ";")) (if_statement "if (iVar5 == 2) {\n          uVar8 = 0;\n        }\n        else {\n          puVar36 = puVar19 + uVar35;\n        }" (if "if") (parenthesized_expression "(iVar5 == 2)" (( "(") (binary_expression "iVar5 == 2" (identifier "iVar5") (== "==") (number_literal "2")) () ")")) (compound_statement "{\n          uVar8 = 0;\n        }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          puVar36 = puVar19 + uVar35;\n        }" (else "else") (compound_statement "{\n          puVar36 = puVar19 + uVar35;\n        }" ({ "{") (expression_statement "puVar36 = puVar19 + uVar35;" (assignment_expression "puVar36 = puVar19 + uVar35" (identifier "puVar36") (= "=") (binary_expression "puVar19 + uVar35" (identifier "puVar19") (+ "+") (identifier "uVar35"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "*puVar36 = 0;" (assignment_expression "*puVar36 = 0" (pointer_expression "*puVar36" (* "*") (identifier "puVar36")) (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);" (assignment_expression "lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8)" (identifier "FUN_0012d940") (argument_list "(param_1,lVar18,lVar17,puVar19,uVar8)" (( "(") (identifier "param_1") (, ",") (identifier "lVar18") (, ",") (identifier "lVar17") (, ",") (identifier "puVar19") (, ",") (identifier "uVar8") () ")")))) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    goto switchD_001311d2_caseD_24;" (default "default") (: ":") (goto_statement "goto switchD_001311d2_caseD_24;" (goto "goto") (statement_identifier "switchD_001311d2_caseD_24") (; ";"))) (case_statement "case 0x26:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d760(param_1,uVar8);\n    break;" (case "case") (number_literal "0x26") (: ":") (expression_statement "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "uVar8") (= "=") (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "FUN_00131020") (argument_list "(param_1,param_2,0,param_4,0,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (expression_statement "lVar17 = FUN_0012d760(param_1,uVar8);" (assignment_expression "lVar17 = FUN_0012d760(param_1,uVar8)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d760(param_1,uVar8)" (identifier "FUN_0012d760") (argument_list "(param_1,uVar8)" (( "(") (identifier "param_1") (, ",") (identifier "uVar8") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x28:" (case "case") (number_literal "0x28") (: ":")) (case_statement "case 0x2d:" (case "case") (number_literal "0x2d") (: ":")) (case_statement "case 0x30:" (case "case") (number_literal "0x30") (: ":")) (case_statement "case 0x31:" (case "case") (number_literal "0x31") (: ":")) (case_statement "case 0x32:" (case "case") (number_literal "0x32") (: ":")) (case_statement "case 0x33:" (case "case") (number_literal "0x33") (: ":")) (case_statement "case 0x34:" (case "case") (number_literal "0x34") (: ":")) (case_statement "case 0x35:" (case "case") (number_literal "0x35") (: ":")) (case_statement "case 0x36:" (case "case") (number_literal "0x36") (: ":")) (case_statement "case 0x37:" (case "case") (number_literal "0x37") (: ":")) (case_statement "case 0x38:" (case "case") (number_literal "0x38") (: ":")) (case_statement "case 0x39:\n    *param_4 = (ulong)pbVar22;\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    if ((uint)local_70 == (uint)local_68) {\n      if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;\n      lVar17 = FUN_0012d550(param_1);\n    }\n    else {\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    break;" (case "case") (number_literal "0x39") (: ":") (expression_statement "*param_4 = (ulong)pbVar22;" (assignment_expression "*param_4 = (ulong)pbVar22" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(ulong)pbVar22" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pbVar22"))) (; ";")) (expression_statement "iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);" (assignment_expression "iVar5 = FUN_0012e6c0(param_4,&local_68,param_6)" (identifier "iVar5") (= "=") (call_expression "FUN_0012e6c0(param_4,&local_68,param_6)" (identifier "FUN_0012e6c0") (argument_list "(param_4,&local_68,param_6)" (( "(") (identifier "param_4") (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if ((uint)local_70 == (uint)local_68) {\n      if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;\n      lVar17 = FUN_0012d550(param_1);\n    }\n    else {\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }" (if "if") (parenthesized_expression "((uint)local_70 == (uint)local_68)" (( "(") (binary_expression "(uint)local_70 == (uint)local_68" (cast_expression "(uint)local_70" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_70")) (== "==") (cast_expression "(uint)local_68" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_68"))) () ")")) (compound_statement "{\n      if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;\n      lVar17 = FUN_0012d550(param_1);\n    }" ({ "{") (if_statement "if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;" (if "if") (parenthesized_expression "(local_70._4_4_ != local_68._4_4_)" (( "(") (binary_expression "local_70._4_4_ != local_68._4_4_" (field_expression "local_70._4_4_" (identifier "local_70") (. ".") (field_identifier "_4_4_")) (!= "!=") (field_expression "local_68._4_4_" (identifier "local_68") (. ".") (field_identifier "_4_4_"))) () ")")) (goto_statement "goto LAB_00132079;" (goto "goto") (statement_identifier "LAB_00132079") (; ";"))) (expression_statement "lVar17 = FUN_0012d550(param_1);" (assignment_expression "lVar17 = FUN_0012d550(param_1)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d550(param_1)" (identifier "FUN_0012d550") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";")) (} "}")) (else_clause "else {\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }" (else "else") (compound_statement "{\nLAB_00132079:\n      *param_4 = (ulong)pbVar22;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n    }" ({ "{") (labeled_statement "LAB_00132079:\n      *param_4 = (ulong)pbVar22;" (statement_identifier "LAB_00132079") (: ":") (expression_statement "*param_4 = (ulong)pbVar22;" (assignment_expression "*param_4 = (ulong)pbVar22" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(ulong)pbVar22" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pbVar22"))) (; ";"))) (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "lVar17") (= "=") (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "FUN_00131020") (argument_list "(param_1,param_2,0,param_4,0,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (lVar17 == 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(lVar17 == 0)" (( "(") (binary_expression "lVar17 == 0" (identifier "lVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}")))) (if_statement "if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }" (if "if") (parenthesized_expression "((uint)local_70 != -1)" (( "(") (binary_expression "(uint)local_70 != -1" (cast_expression "(uint)local_70" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_70")) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }" ({ "{") (expression_statement "plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);" (assignment_expression "plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70)" (identifier "plVar10") (= "=") (cast_expression "(long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70)" (identifier "FUN_0012e890") (argument_list "(param_2 + 0x80,param_2 + 0x88,&local_70)" (( "(") (binary_expression "param_2 + 0x80" (identifier "param_2") (+ "+") (number_literal "0x80")) (, ",") (binary_expression "param_2 + 0x88" (identifier "param_2") (+ "+") (number_literal "0x88")) (, ",") (pointer_expression "&local_70" (& "&") (identifier "local_70")) () ")"))))) (; ";")) (if_statement "if (plVar10 == (long *)0x0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(plVar10 == (long *)0x0)" (( "(") (binary_expression "plVar10 == (long *)0x0" (identifier "plVar10") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "*plVar10 = lVar17;" (assignment_expression "*plVar10 = lVar17" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (= "=") (identifier "lVar17")) (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x2a:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6b0(param_1,uVar8);\n    break;" (case "case") (number_literal "0x2a") (: ":") (expression_statement "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "uVar8") (= "=") (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "FUN_00131020") (argument_list "(param_1,param_2,0,param_4,0,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (expression_statement "lVar17 = FUN_0012d6b0(param_1,uVar8);" (assignment_expression "lVar17 = FUN_0012d6b0(param_1,uVar8)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d6b0(param_1,uVar8)" (identifier "FUN_0012d6b0") (argument_list "(param_1,uVar8)" (( "(") (identifier "param_1") (, ",") (identifier "uVar8") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x40:\nswitchD_001311d2_caseD_40:\n    lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar17 == 0) {\n      return 0;\n    }\n    if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    if (lVar18 == 0) {\n      return 0;\n    }\n    lVar17 = FUN_0012d8e0(param_1,lVar17,lVar18);\n    break;" (case "case") (number_literal "0x40") (: ":") (labeled_statement "switchD_001311d2_caseD_40:\n    lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (statement_identifier "switchD_001311d2_caseD_40") (: ":") (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "lVar17") (= "=") (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "FUN_00131020") (argument_list "(param_1,param_2,0,param_4,0,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";"))) (if_statement "if (lVar17 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(lVar17 == 0)" (( "(") (binary_expression "lVar17 == 0" (identifier "lVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;" (if "if") (parenthesized_expression "(*(char *)*param_4 != ',')" (( "(") (binary_expression "*(char *)*param_4 != ','" (pointer_expression "*(char *)*param_4" (* "*") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (!= "!=") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (goto_statement "goto switchD_001311d2_caseD_24;" (goto "goto") (statement_identifier "switchD_001311d2_caseD_24") (; ";"))) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((char *)*param_4 + 1)" (( "(") (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "lVar18") (= "=") (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "FUN_00131020") (argument_list "(param_1,param_2,0,param_4,0,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (lVar18 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(lVar18 == 0)" (( "(") (binary_expression "lVar18 == 0" (identifier "lVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "lVar17 = FUN_0012d8e0(param_1,lVar17,lVar18);" (assignment_expression "lVar17 = FUN_0012d8e0(param_1,lVar17,lVar18)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d8e0(param_1,lVar17,lVar18)" (identifier "FUN_0012d8e0") (argument_list "(param_1,lVar17,lVar18)" (( "(") (identifier "param_1") (, ",") (identifier "lVar17") (, ",") (identifier "lVar18") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x42:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9e0(param_1,uVar8);\n    break;" (case "case") (number_literal "0x42") (: ":") (expression_statement "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "uVar8") (= "=") (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "FUN_00131020") (argument_list "(param_1,param_2,0,param_4,0,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (expression_statement "lVar17 = FUN_0012d9e0(param_1,uVar8);" (assignment_expression "lVar17 = FUN_0012d9e0(param_1,uVar8)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d9e0(param_1,uVar8)" (identifier "FUN_0012d9e0") (argument_list "(param_1,uVar8)" (( "(") (identifier "param_1") (, ",") (identifier "uVar8") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x52:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    lVar17 = FUN_0012e630(param_4,0,param_6);\n    if ((*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')) goto LAB_00132126;\n    if (lVar17 - 3U < 3) {\n      lVar17 = FUN_0012d5a0(param_1,uVar8);\n    }\n    else {\n      lVar17 = FUN_0012d580();\n    }\n    break;" (case "case") (number_literal "0x52") (: ":") (if_statement "if (param_6 <= pbVar40) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(param_6 <= pbVar40)" (( "(") (binary_expression "param_6 <= pbVar40" (identifier "param_6") (<= "<=") (identifier "pbVar40")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "lVar17 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "lVar17 = FUN_0012e630(param_4,0,param_6)" (identifier "lVar17") (= "=") (call_expression "FUN_0012e630(param_4,0,param_6)" (identifier "FUN_0012e630") (argument_list "(param_4,0,param_6)" (( "(") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if ((*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')) goto LAB_00132126;" (if "if") (parenthesized_expression "((*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';'))" (( "(") (binary_expression "(*(char *)*param_4 != ';') ||\n       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')" (parenthesized_expression "(*(char *)*param_4 != ';')" (( "(") (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" (* "*") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (!= "!=") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')" (( "(") (comma_expression "uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';'" (assignment_expression "uVar8 = FUN_0012e630(param_4,0,param_6)" (identifier "uVar8") (= "=") (call_expression "FUN_0012e630(param_4,0,param_6)" (identifier "FUN_0012e630") (argument_list "(param_4,0,param_6)" (( "(") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (, ",") (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" (* "*") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (!= "!=") (char_literal "';'" (' "'") (character ";") (' "'")))) () ")"))) () ")")) (goto_statement "goto LAB_00132126;" (goto "goto") (statement_identifier "LAB_00132126") (; ";"))) (if_statement "if (lVar17 - 3U < 3) {\n      lVar17 = FUN_0012d5a0(param_1,uVar8);\n    }\n    else {\n      lVar17 = FUN_0012d580();\n    }" (if "if") (parenthesized_expression "(lVar17 - 3U < 3)" (( "(") (binary_expression "lVar17 - 3U < 3" (binary_expression "lVar17 - 3U" (identifier "lVar17") (- "-") (number_literal "3U")) (< "<") (number_literal "3")) () ")")) (compound_statement "{\n      lVar17 = FUN_0012d5a0(param_1,uVar8);\n    }" ({ "{") (expression_statement "lVar17 = FUN_0012d5a0(param_1,uVar8);" (assignment_expression "lVar17 = FUN_0012d5a0(param_1,uVar8)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d5a0(param_1,uVar8)" (identifier "FUN_0012d5a0") (argument_list "(param_1,uVar8)" (( "(") (identifier "param_1") (, ",") (identifier "uVar8") () ")")))) (; ";")) (} "}")) (else_clause "else {\n      lVar17 = FUN_0012d580();\n    }" (else "else") (compound_statement "{\n      lVar17 = FUN_0012d580();\n    }" ({ "{") (expression_statement "lVar17 = FUN_0012d580();" (assignment_expression "lVar17 = FUN_0012d580()" (identifier "lVar17") (= "=") (call_expression "FUN_0012d580()" (identifier "FUN_0012d580") (argument_list "()" (( "(") () ")")))) (; ";")) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x53:\n    uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d880(param_1,uVar14,uVar8);\n    break;" (case "case") (number_literal "0x53") (: ":") (expression_statement "uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "uVar14") (= "=") (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "FUN_00131020") (argument_list "(param_1,param_2,0,param_4,0,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (expression_statement "lVar17 = FUN_0012d880(param_1,uVar14,uVar8);" (assignment_expression "lVar17 = FUN_0012d880(param_1,uVar14,uVar8)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d880(param_1,uVar14,uVar8)" (identifier "FUN_0012d880") (argument_list "(param_1,uVar14,uVar8)" (( "(") (identifier "param_1") (, ",") (identifier "uVar14") (, ",") (identifier "uVar8") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x61:\n    if (pbVar22[1] == 0x72) {\n      pbVar22 = pbVar22 + 2;\n      *param_4 = (ulong)pbVar22;\n      if (param_6 <= pbVar22) {\n        return 0;\n      }\n      local_78 = pbVar22;\n      iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }\n      if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }\n      FUN_0012e570(pbVar22);\n      return 0;\n    }\n    goto switchD_001311d2_caseD_24;" (case "case") (number_literal "0x61") (: ":") (if_statement "if (pbVar22[1] == 0x72) {\n      pbVar22 = pbVar22 + 2;\n      *param_4 = (ulong)pbVar22;\n      if (param_6 <= pbVar22) {\n        return 0;\n      }\n      local_78 = pbVar22;\n      iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }\n      if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }\n      FUN_0012e570(pbVar22);\n      return 0;\n    }" (if "if") (parenthesized_expression "(pbVar22[1] == 0x72)" (( "(") (binary_expression "pbVar22[1] == 0x72" (subscript_expression "pbVar22[1]" (identifier "pbVar22") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x72")) () ")")) (compound_statement "{\n      pbVar22 = pbVar22 + 2;\n      *param_4 = (ulong)pbVar22;\n      if (param_6 <= pbVar22) {\n        return 0;\n      }\n      local_78 = pbVar22;\n      iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);\n      if (iVar5 == 0) {\n        return 0;\n      }\n      if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }\n      if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }\n      FUN_0012e570(pbVar22);\n      return 0;\n    }" ({ "{") (expression_statement "pbVar22 = pbVar22 + 2;" (assignment_expression "pbVar22 = pbVar22 + 2" (identifier "pbVar22") (= "=") (binary_expression "pbVar22 + 2" (identifier "pbVar22") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*param_4 = (ulong)pbVar22;" (assignment_expression "*param_4 = (ulong)pbVar22" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(ulong)pbVar22" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pbVar22"))) (; ";")) (if_statement "if (param_6 <= pbVar22) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(param_6 <= pbVar22)" (( "(") (binary_expression "param_6 <= pbVar22" (identifier "param_6") (<= "<=") (identifier "pbVar22")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "local_78 = pbVar22;" (assignment_expression "local_78 = pbVar22" (identifier "local_78") (= "=") (identifier "pbVar22")) (; ";")) (expression_statement "iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);" (assignment_expression "iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6)" (identifier "iVar5") (= "=") (call_expression "FUN_0012e6c0(&local_78,&local_68,param_6)" (identifier "FUN_0012e6c0") (argument_list "(&local_78,&local_68,param_6)" (( "(") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }\n      else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }" (if "if") (parenthesized_expression "(((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '='))" (( "(") (binary_expression "((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')" (parenthesized_expression "((uint)local_68 == 0 && local_68._4_4_ == 0)" (( "(") (binary_expression "(uint)local_68 == 0 && local_68._4_4_ == 0" (binary_expression "(uint)local_68 == 0" (cast_expression "(uint)local_68" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_68")) (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_68._4_4_ == 0" (field_expression "local_68._4_4_" (identifier "local_68") (. ".") (field_identifier "_4_4_")) (== "==") (number_literal "0"))) () ")")) (&& "&&") (parenthesized_expression "(*(char *)*param_4 != '=')" (( "(") (binary_expression "*(char *)*param_4 != '='" (pointer_expression "*(char *)*param_4" (* "*") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (!= "!=") (char_literal "'='" (' "'") (character "=") (' "'"))) () ")"))) () ")")) (compound_statement "{\n        lVar17 = FUN_0012dec0(param_1,"int");\n        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }\n        *param_4 = (ulong)local_78;\n        pbVar34 = local_78;\n      }" ({ "{") (expression_statement "lVar17 = FUN_0012dec0(param_1,"int");" (assignment_expression "lVar17 = FUN_0012dec0(param_1,"int")" (identifier "lVar17") (= "=") (call_expression "FUN_0012dec0(param_1,"int")" (identifier "FUN_0012dec0") (argument_list "(param_1,"int")" (( "(") (identifier "param_1") (, ",") (string_literal ""int"" (" """) (string_content "int") (" """)) () ")")))) (; ";")) (if_statement "if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {\n          return 0;\n        }" (if "if") (parenthesized_expression "((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0))" (( "(") (binary_expression "(lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)" (parenthesized_expression "(lVar17 == 0)" (( "(") (binary_expression "lVar17 == 0" (identifier "lVar17") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)" (( "(") (comma_expression "lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0" (assignment_expression "lVar17 = FUN_0012d560(param_1,4,0)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d560(param_1,4,0)" (identifier "FUN_0012d560") (argument_list "(param_1,4,0)" (( "(") (identifier "param_1") (, ",") (number_literal "4") (, ",") (number_literal "0") () ")")))) (, ",") (binary_expression "lVar17 == 0" (identifier "lVar17") (== "==") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "*param_4 = (ulong)local_78;" (assignment_expression "*param_4 = (ulong)local_78" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(ulong)local_78" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_78"))) (; ";")) (expression_statement "pbVar34 = local_78;" (assignment_expression "pbVar34 = local_78" (identifier "pbVar34") (= "=") (identifier "local_78")) (; ";")) (} "}")) (else_clause "else {\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }" (else "else") (compound_statement "{\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pbVar34 = (byte *)*param_4;\n      }" ({ "{") (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "lVar17") (= "=") (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "FUN_00131020") (argument_list "(param_1,param_2,0,param_4,0,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" (identifier "pbVar34") (= "=") (cast_expression "(byte *)*param_4" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (} "}")))) (if_statement "if (*pbVar34 == 0x3b) {\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(*pbVar34 == 0x3b)" (( "(") (binary_expression "*pbVar34 == 0x3b" (pointer_expression "*pbVar34" (* "*") (identifier "pbVar34")) (== "==") (number_literal "0x3b")) () ")")) (compound_statement "{\n        *param_4 = (ulong)(pbVar34 + 1);\n        bVar47 = pbVar34[1];\n        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }\n        uVar14 = FUN_0012e630(param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }\n      }" ({ "{") (expression_statement "*param_4 = (ulong)(pbVar34 + 1);" (assignment_expression "*param_4 = (ulong)(pbVar34 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pbVar34 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pbVar34 + 1)" (( "(") (binary_expression "pbVar34 + 1" (identifier "pbVar34") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "bVar47 = pbVar34[1];" (assignment_expression "bVar47 = pbVar34[1]" (identifier "bVar47") (= "=") (subscript_expression "pbVar34[1]" (identifier "pbVar34") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }\n        else {\n          bVar43 = false;\n        }" (if "if") (parenthesized_expression "(((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d))" (( "(") (binary_expression "((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)" (parenthesized_expression "((_sch_istable[(ulong)bVar47 * 2] & 4) == 0)" (( "(") (binary_expression "(_sch_istable[(ulong)bVar47 * 2] & 4) == 0" (parenthesized_expression "(_sch_istable[(ulong)bVar47 * 2] & 4)" (( "(") (binary_expression "_sch_istable[(ulong)bVar47 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar47 * 2]" (identifier "_sch_istable") ([ "[") (binary_expression "(ulong)bVar47 * 2" (cast_expression "(ulong)bVar47" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar47")) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(bVar47 != 0 && bVar47 != 0x2d)" (( "(") (binary_expression "bVar47 != 0 && bVar47 != 0x2d" (binary_expression "bVar47 != 0" (identifier "bVar47") (!= "!=") (number_literal "0")) (&& "&&") (binary_expression "bVar47 != 0x2d" (identifier "bVar47") (!= "!=") (number_literal "0x2d"))) () ")"))) () ")")) (compound_statement "{\n          bVar43 = true;\n          *param_4 = (ulong)(pbVar34 + 2);\n        }" ({ "{") (expression_statement "bVar43 = true;" (assignment_expression "bVar43 = true" (identifier "bVar43") (= "=") (true "true")) (; ";")) (expression_statement "*param_4 = (ulong)(pbVar34 + 2);" (assignment_expression "*param_4 = (ulong)(pbVar34 + 2)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pbVar34 + 2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pbVar34 + 2)" (( "(") (binary_expression "pbVar34 + 2" (identifier "pbVar34") (+ "+") (number_literal "2")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          bVar43 = false;\n        }" (else "else") (compound_statement "{\n          bVar43 = false;\n        }" ({ "{") (expression_statement "bVar43 = false;" (assignment_expression "bVar43 = false" (identifier "bVar43") (= "=") (false "false")) (; ";")) (} "}")))) (expression_statement "uVar14 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar14 = FUN_0012e630(param_4,0,param_6)" (identifier "uVar14") (= "=") (call_expression "FUN_0012e630(param_4,0,param_6)" (identifier "FUN_0012e630") (argument_list "(param_4,0,param_6)" (( "(") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" (identifier "pcVar16") (= "=") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (if_statement "if (*pcVar16 == ';') {\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }" (if "if") (parenthesized_expression "(*pcVar16 == ';')" (( "(") (binary_expression "*pcVar16 == ';'" (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) (== "==") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")")) (compound_statement "{\n          *param_4 = (ulong)(pcVar16 + 1);\n          bVar47 = pcVar16[1];\n          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }\n        }" ({ "{") (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pcVar16 + 1)" (( "(") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "bVar47 = pcVar16[1];" (assignment_expression "bVar47 = pcVar16[1]" (identifier "bVar47") (= "=") (subscript_expression "pcVar16[1]" (identifier "pcVar16") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }" (if "if") (parenthesized_expression "(((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0))" (( "(") (binary_expression "((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)" (parenthesized_expression "((_sch_istable[(ulong)bVar47 * 2] & 4) == 0)" (( "(") (binary_expression "(_sch_istable[(ulong)bVar47 * 2] & 4) == 0" (parenthesized_expression "(_sch_istable[(ulong)bVar47 * 2] & 4)" (( "(") (binary_expression "_sch_istable[(ulong)bVar47 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar47 * 2]" (identifier "_sch_istable") ([ "[") (binary_expression "(ulong)bVar47 * 2" (cast_expression "(ulong)bVar47" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar47")) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(bVar47 != 0x2d && bVar47 != 0)" (( "(") (binary_expression "bVar47 != 0x2d && bVar47 != 0" (binary_expression "bVar47 != 0x2d" (identifier "bVar47") (!= "!=") (number_literal "0x2d")) (&& "&&") (binary_expression "bVar47 != 0" (identifier "bVar47") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n            bVar43 = true;\n            *param_4 = (ulong)(pcVar16 + 2);\n          }" ({ "{") (expression_statement "bVar43 = true;" (assignment_expression "bVar43 = true" (identifier "bVar43") (= "=") (true "true")) (; ";")) (expression_statement "*param_4 = (ulong)(pcVar16 + 2);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 2)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pcVar16 + 2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pcVar16 + 2)" (( "(") (binary_expression "pcVar16 + 2" (identifier "pcVar16") (+ "+") (number_literal "2")) () ")")))) (; ";")) (} "}"))) (expression_statement "uVar9 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar9 = FUN_0012e630(param_4,0,param_6)" (identifier "uVar9") (= "=") (call_expression "FUN_0012e630(param_4,0,param_6)" (identifier "FUN_0012e630") (argument_list "(param_4,0,param_6)" (( "(") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (*(char *)*param_4 == ';') {\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }" (if "if") (parenthesized_expression "(*(char *)*param_4 == ';')" (( "(") (binary_expression "*(char *)*param_4 == ';'" (pointer_expression "*(char *)*param_4" (* "*") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (== "==") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")")) (compound_statement "{\n            *param_4 = (ulong)((char *)*param_4 + 1);\n            lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar18 == 0) {\n              return 0;\n            }\n            uVar25 = 0;\n            uVar2 = 0xffffffffffffffff;\n            if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }\n            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);\n            break;\n          }" ({ "{") (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((char *)*param_4 + 1)" (( "(") (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar18 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "lVar18") (= "=") (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "FUN_00131020") (argument_list "(param_1,param_2,0,param_4,0,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (lVar18 == 0) {\n              return 0;\n            }" (if "if") (parenthesized_expression "(lVar18 == 0)" (( "(") (binary_expression "lVar18 == 0" (identifier "lVar18") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              return 0;\n            }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "uVar25 = 0;" (assignment_expression "uVar25 = 0" (identifier "uVar25") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar2 = 0xffffffffffffffff;" (assignment_expression "uVar2 = 0xffffffffffffffff" (identifier "uVar2") (= "=") (number_literal "0xffffffffffffffff")) (; ";")) (if_statement "if (!bVar43) {\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }" (if "if") (parenthesized_expression "(!bVar43)" (( "(") (unary_expression "!bVar43" (! "!") (identifier "bVar43")) () ")")) (compound_statement "{\n              uVar25 = uVar14;\n              uVar2 = uVar9;\n            }" ({ "{") (expression_statement "uVar25 = uVar14;" (assignment_expression "uVar25 = uVar14" (identifier "uVar25") (= "=") (identifier "uVar14")) (; ";")) (expression_statement "uVar2 = uVar9;" (assignment_expression "uVar2 = uVar9" (identifier "uVar2") (= "=") (identifier "uVar9")) (; ";")) (} "}"))) (expression_statement "lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);" (assignment_expression "lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8)" (identifier "FUN_0012d800") (argument_list "(param_1,lVar18,lVar17,uVar25,uVar2,uVar8)" (( "(") (identifier "param_1") (, ",") (identifier "lVar18") (, ",") (identifier "lVar17") (, ",") (identifier "uVar25") (, ",") (identifier "uVar2") (, ",") (identifier "uVar8") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (} "}"))) (} "}"))) (expression_statement "FUN_0012e570(pbVar22);" (call_expression "FUN_0012e570(pbVar22)" (identifier "FUN_0012e570") (argument_list "(pbVar22)" (( "(") (identifier "pbVar22") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (goto_statement "goto switchD_001311d2_caseD_24;" (goto "goto") (statement_identifier "switchD_001311d2_caseD_24") (; ";"))) (case_statement "case 0x62:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    if (pbVar22[1] == 0x73) {\n      uVar8 = 0;\n    }\n    else {\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }\n    *param_4 = (ulong)(pbVar22 + 2);\n    if (((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76)) {\n      *param_4 = (ulong)(pbVar22 + 3);\n    }\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    uVar35 = FUN_0012e630(param_4,0,param_6);\n    if (*(char *)*param_4 == ';') {\n      *param_4 = (ulong)((char *)*param_4 + 1);\n    }\n    if (uVar35 != 0) {\n      lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);\n      break;\n    }\nLAB_00133358:\n    lVar17 = FUN_0012d550(param_1);\n    break;" (case "case") (number_literal "0x62") (: ":") (if_statement "if (param_6 <= pbVar40) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(param_6 <= pbVar40)" (( "(") (binary_expression "param_6 <= pbVar40" (identifier "param_6") (<= "<=") (identifier "pbVar40")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (pbVar22[1] == 0x73) {\n      uVar8 = 0;\n    }\n    else {\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }" (if "if") (parenthesized_expression "(pbVar22[1] == 0x73)" (( "(") (binary_expression "pbVar22[1] == 0x73" (subscript_expression "pbVar22[1]" (identifier "pbVar22") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x73")) () ")")) (compound_statement "{\n      uVar8 = 0;\n    }" ({ "{") (expression_statement "uVar8 = 0;" (assignment_expression "uVar8 = 0" (identifier "uVar8") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }" (else "else") (compound_statement "{\n      if (pbVar22[1] != 0x75) goto LAB_00132126;\n      uVar8 = 1;\n    }" ({ "{") (if_statement "if (pbVar22[1] != 0x75) goto LAB_00132126;" (if "if") (parenthesized_expression "(pbVar22[1] != 0x75)" (( "(") (binary_expression "pbVar22[1] != 0x75" (subscript_expression "pbVar22[1]" (identifier "pbVar22") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0x75")) () ")")) (goto_statement "goto LAB_00132126;" (goto "goto") (statement_identifier "LAB_00132126") (; ";"))) (expression_statement "uVar8 = 1;" (assignment_expression "uVar8 = 1" (identifier "uVar8") (= "=") (number_literal "1")) (; ";")) (} "}")))) (expression_statement "*param_4 = (ulong)(pbVar22 + 2);" (assignment_expression "*param_4 = (ulong)(pbVar22 + 2)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pbVar22 + 2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pbVar22 + 2)" (( "(") (binary_expression "pbVar22 + 2" (identifier "pbVar22") (+ "+") (number_literal "2")) () ")")))) (; ";")) (if_statement "if (((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76)) {\n      *param_4 = (ulong)(pbVar22 + 3);\n    }" (if "if") (parenthesized_expression "(((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76))" (( "(") (binary_expression "((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76)" (parenthesized_expression "((byte)(pbVar22[2] + 0x9e) < 2)" (( "(") (binary_expression "(byte)(pbVar22[2] + 0x9e) < 2" (call_expression "(byte)(pbVar22[2] + 0x9e)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(pbVar22[2] + 0x9e)" (( "(") (binary_expression "pbVar22[2] + 0x9e" (subscript_expression "pbVar22[2]" (identifier "pbVar22") ([ "[") (number_literal "2") (] "]")) (+ "+") (number_literal "0x9e")) () ")"))) (< "<") (number_literal "2")) () ")")) (|| "||") (parenthesized_expression "(pbVar22[2] == 0x76)" (( "(") (binary_expression "pbVar22[2] == 0x76" (subscript_expression "pbVar22[2]" (identifier "pbVar22") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0x76")) () ")"))) () ")")) (compound_statement "{\n      *param_4 = (ulong)(pbVar22 + 3);\n    }" ({ "{") (expression_statement "*param_4 = (ulong)(pbVar22 + 3);" (assignment_expression "*param_4 = (ulong)(pbVar22 + 3)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pbVar22 + 3)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pbVar22 + 3)" (( "(") (binary_expression "pbVar22 + 3" (identifier "pbVar22") (+ "+") (number_literal "3")) () ")")))) (; ";")) (} "}"))) (expression_statement "FUN_0012e630(param_4,0,param_6);" (call_expression "FUN_0012e630(param_4,0,param_6)" (identifier "FUN_0012e630") (argument_list "(param_4,0,param_6)" (( "(") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")"))) (; ";")) (if_statement "if (*(char *)*param_4 != ';') goto LAB_00132126;" (if "if") (parenthesized_expression "(*(char *)*param_4 != ';')" (( "(") (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" (* "*") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (!= "!=") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")")) (goto_statement "goto LAB_00132126;" (goto "goto") (statement_identifier "LAB_00132126") (; ";"))) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((char *)*param_4 + 1)" (( "(") (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "FUN_0012e630(param_4,0,param_6);" (call_expression "FUN_0012e630(param_4,0,param_6)" (identifier "FUN_0012e630") (argument_list "(param_4,0,param_6)" (( "(") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")"))) (; ";")) (if_statement "if (*(char *)*param_4 != ';') goto LAB_00132126;" (if "if") (parenthesized_expression "(*(char *)*param_4 != ';')" (( "(") (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" (* "*") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (!= "!=") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")")) (goto_statement "goto LAB_00132126;" (goto "goto") (statement_identifier "LAB_00132126") (; ";"))) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((char *)*param_4 + 1)" (( "(") (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar35 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar35 = FUN_0012e630(param_4,0,param_6)" (identifier "uVar35") (= "=") (call_expression "FUN_0012e630(param_4,0,param_6)" (identifier "FUN_0012e630") (argument_list "(param_4,0,param_6)" (( "(") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (*(char *)*param_4 == ';') {\n      *param_4 = (ulong)((char *)*param_4 + 1);\n    }" (if "if") (parenthesized_expression "(*(char *)*param_4 == ';')" (( "(") (binary_expression "*(char *)*param_4 == ';'" (pointer_expression "*(char *)*param_4" (* "*") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (== "==") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")")) (compound_statement "{\n      *param_4 = (ulong)((char *)*param_4 + 1);\n    }" ({ "{") (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((char *)*param_4 + 1)" (( "(") (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (if_statement "if (uVar35 != 0) {\n      lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);\n      break;\n    }" (if "if") (parenthesized_expression "(uVar35 != 0)" (( "(") (binary_expression "uVar35 != 0" (identifier "uVar35") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);\n      break;\n    }" ({ "{") (expression_statement "lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);" (assignment_expression "lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8)" (identifier "FUN_0012d560") (argument_list "(param_1,uVar35 >> 3 & 0xffffffff,uVar8)" (( "(") (identifier "param_1") (, ",") (binary_expression "uVar35 >> 3 & 0xffffffff" (binary_expression "uVar35 >> 3" (identifier "uVar35") (>> ">>") (number_literal "3")) (& "&") (number_literal "0xffffffff")) (, ",") (identifier "uVar8") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (labeled_statement "LAB_00133358:\n    lVar17 = FUN_0012d550(param_1);" (statement_identifier "LAB_00133358") (: ":") (expression_statement "lVar17 = FUN_0012d550(param_1);" (assignment_expression "lVar17 = FUN_0012d550(param_1)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d550(param_1)" (identifier "FUN_0012d550") (argument_list "(param_1)" (( "(") (identifier "param_1") () ")")))) (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x65:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    pbVar34 = pbVar40;\n    if (pbVar22[1] == 0x2d) {\n      do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *param_4 = (ulong)(pbVar22 + 2);\n    }\n    local_148 = (void *)xmalloc(0x50);\n    pvVar12 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    uVar35 = (ulong)*pbVar34;\n    if ((*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }\n    *(undefined8 *)((long)local_148 + uVar28 * 8) = 0;\n    pcVar16 = (char *)*param_4;\n    *(undefined8 *)((long)pvVar12 + uVar28 * 8) = 0;\n    if (*pcVar16 == ';') {\n      *param_4 = (ulong)(pcVar16 + 1);\n    }\n    lVar17 = FUN_0012d670(param_1,local_148,pvVar12);\n    break;" (case "case") (number_literal "0x65") (: ":") (if_statement "if (param_6 <= pbVar40) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(param_6 <= pbVar40)" (( "(") (binary_expression "param_6 <= pbVar40" (identifier "param_6") (<= "<=") (identifier "pbVar40")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "pbVar34 = pbVar40;" (assignment_expression "pbVar34 = pbVar40" (identifier "pbVar34") (= "=") (identifier "pbVar40")) (; ";")) (if_statement "if (pbVar22[1] == 0x2d) {\n      do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *param_4 = (ulong)(pbVar22 + 2);\n    }" (if "if") (parenthesized_expression "(pbVar22[1] == 0x2d)" (( "(") (binary_expression "pbVar22[1] == 0x2d" (subscript_expression "pbVar22[1]" (identifier "pbVar22") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x2d")) () ")")) (compound_statement "{\n      do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);\n      if (bVar47 == 0) goto LAB_00132126;\n      *param_4 = (ulong)(pbVar22 + 2);\n    }" ({ "{") (do_statement "do {\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      } while (bVar47 != 0);" (do "do") (compound_statement "{\n        pbVar22 = pbVar34;\n        *param_4 = (ulong)(pbVar22 + 1);\n        bVar47 = pbVar22[1];\n        if (bVar47 == 0x3a) break;\n        pbVar34 = pbVar22 + 1;\n      }" ({ "{") (expression_statement "pbVar22 = pbVar34;" (assignment_expression "pbVar22 = pbVar34" (identifier "pbVar22") (= "=") (identifier "pbVar34")) (; ";")) (expression_statement "*param_4 = (ulong)(pbVar22 + 1);" (assignment_expression "*param_4 = (ulong)(pbVar22 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pbVar22 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pbVar22 + 1)" (( "(") (binary_expression "pbVar22 + 1" (identifier "pbVar22") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "bVar47 = pbVar22[1];" (assignment_expression "bVar47 = pbVar22[1]" (identifier "bVar47") (= "=") (subscript_expression "pbVar22[1]" (identifier "pbVar22") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (bVar47 == 0x3a) break;" (if "if") (parenthesized_expression "(bVar47 == 0x3a)" (( "(") (binary_expression "bVar47 == 0x3a" (identifier "bVar47") (== "==") (number_literal "0x3a")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pbVar34 = pbVar22 + 1;" (assignment_expression "pbVar34 = pbVar22 + 1" (identifier "pbVar34") (= "=") (binary_expression "pbVar22 + 1" (identifier "pbVar22") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar47 != 0)" (( "(") (binary_expression "bVar47 != 0" (identifier "bVar47") (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if (bVar47 == 0) goto LAB_00132126;" (if "if") (parenthesized_expression "(bVar47 == 0)" (( "(") (binary_expression "bVar47 == 0" (identifier "bVar47") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00132126;" (goto "goto") (statement_identifier "LAB_00132126") (; ";"))) (expression_statement "*param_4 = (ulong)(pbVar22 + 2);" (assignment_expression "*param_4 = (ulong)(pbVar22 + 2)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pbVar22 + 2)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pbVar22 + 2)" (( "(") (binary_expression "pbVar22 + 2" (identifier "pbVar22") (+ "+") (number_literal "2")) () ")")))) (; ";")) (} "}"))) (expression_statement "local_148 = (void *)xmalloc(0x50);" (assignment_expression "local_148 = (void *)xmalloc(0x50)" (identifier "local_148") (= "=") (cast_expression "(void *)xmalloc(0x50)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(0x50)" (identifier "xmalloc") (argument_list "(0x50)" (( "(") (number_literal "0x50") () ")"))))) (; ";")) (expression_statement "pvVar12 = (void *)xmalloc(0x50);" (assignment_expression "pvVar12 = (void *)xmalloc(0x50)" (identifier "pvVar12") (= "=") (cast_expression "(void *)xmalloc(0x50)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(0x50)" (identifier "xmalloc") (argument_list "(0x50)" (( "(") (number_literal "0x50") () ")"))))) (; ";")) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" (identifier "pbVar34") (= "=") (cast_expression "(byte *)*param_4" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (expression_statement "uVar35 = (ulong)*pbVar34;" (assignment_expression "uVar35 = (ulong)*pbVar34" (identifier "uVar35") (= "=") (binary_expression "(ulong)*pbVar34" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (identifier "pbVar34"))) (; ";")) (if_statement "if ((*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)) {\n      uVar28 = 0;\n    }\n    else {\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }" (if "if") (parenthesized_expression "((*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0))" (( "(") (binary_expression "(*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)" (parenthesized_expression "(*pbVar34 < 0x3c)" (( "(") (binary_expression "*pbVar34 < 0x3c" (pointer_expression "*pbVar34" (* "*") (identifier "pbVar34")) (< "<") (number_literal "0x3c")) () ")")) (&& "&&") (parenthesized_expression "((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)" (( "(") (binary_expression "(0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0" (parenthesized_expression "(0x800100000000001U >> (uVar35 & 0x3f) & 1)" (( "(") (binary_expression "0x800100000000001U >> (uVar35 & 0x3f) & 1" (binary_expression "0x800100000000001U >> (uVar35 & 0x3f)" (number_literal "0x800100000000001U") (>> ">>") (parenthesized_expression "(uVar35 & 0x3f)" (( "(") (binary_expression "uVar35 & 0x3f" (identifier "uVar35") (& "&") (number_literal "0x3f")) () ")"))) (& "&") (number_literal "1")) () ")")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      uVar28 = 0;\n    }" ({ "{") (expression_statement "uVar28 = 0;" (assignment_expression "uVar28 = 0" (identifier "uVar28") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }" (else "else") (compound_statement "{\n      uVar11 = 10;\n      uVar39 = 0;\n      do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));\n    }" ({ "{") (expression_statement "uVar11 = 10;" (assignment_expression "uVar11 = 10" (identifier "uVar11") (= "=") (number_literal "10")) (; ";")) (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" (identifier "uVar39") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));" (do "do") (compound_statement "{\n        bVar47 = (byte)uVar35;\n        pbVar22 = pbVar34;\n        while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }\n        if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }\n        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);\n        *param_4 = (ulong)(pbVar22 + 1);\n        uVar8 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }\n        uVar7 = uVar39 + 1;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }\n        uVar28 = (ulong)uVar7;\n        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;\n        pbVar34 = (byte *)*param_4;\n        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;\n        uVar35 = (ulong)*pbVar34;\n        uVar39 = uVar7;\n      }" ({ "{") (expression_statement "bVar47 = (byte)uVar35;" (assignment_expression "bVar47 = (byte)uVar35" (identifier "bVar47") (= "=") (cast_expression "(byte)uVar35" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar35"))) (; ";")) (expression_statement "pbVar22 = pbVar34;" (assignment_expression "pbVar22 = pbVar34" (identifier "pbVar22") (= "=") (identifier "pbVar34")) (; ";")) (while_statement "while ((bVar47 != 0x3a && (bVar47 != 0))) {\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }" (while "while") (parenthesized_expression "((bVar47 != 0x3a && (bVar47 != 0)))" (( "(") (parenthesized_expression "(bVar47 != 0x3a && (bVar47 != 0))" (( "(") (binary_expression "bVar47 != 0x3a && (bVar47 != 0)" (binary_expression "bVar47 != 0x3a" (identifier "bVar47") (!= "!=") (number_literal "0x3a")) (&& "&&") (parenthesized_expression "(bVar47 != 0)" (( "(") (binary_expression "bVar47 != 0" (identifier "bVar47") (!= "!=") (number_literal "0")) () ")"))) () ")")) () ")")) (compound_statement "{\n          pbVar22 = pbVar22 + 1;\n          bVar47 = *pbVar22;\n        }" ({ "{") (expression_statement "pbVar22 = pbVar22 + 1;" (assignment_expression "pbVar22 = pbVar22 + 1" (identifier "pbVar22") (= "=") (binary_expression "pbVar22 + 1" (identifier "pbVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "bVar47 = *pbVar22;" (assignment_expression "bVar47 = *pbVar22" (identifier "bVar47") (= "=") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22"))) (; ";")) (} "}"))) (if_statement "if (bVar47 == 0) {\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }" (if "if") (parenthesized_expression "(bVar47 == 0)" (( "(") (binary_expression "bVar47 == 0" (identifier "bVar47") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          FUN_0012e570(pbVar40);\nLAB_00132cf2:\n          free(local_148);\n          free(pvVar12);\n          return 0;\n        }" ({ "{") (expression_statement "FUN_0012e570(pbVar40);" (call_expression "FUN_0012e570(pbVar40)" (identifier "FUN_0012e570") (argument_list "(pbVar40)" (( "(") (identifier "pbVar40") () ")"))) (; ";")) (labeled_statement "LAB_00132cf2:\n          free(local_148);" (statement_identifier "LAB_00132cf2") (: ":") (expression_statement "free(local_148);" (call_expression "free(local_148)" (identifier "free") (argument_list "(local_148)" (( "(") (identifier "local_148") () ")"))) (; ";"))) (expression_statement "free(pvVar12);" (call_expression "free(pvVar12)" (identifier "free") (argument_list "(pvVar12)" (( "(") (identifier "pvVar12") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "__ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);" (assignment_expression "__ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34)" (identifier "__ptr") (= "=") (cast_expression "(void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34)" (identifier "FUN_0012e600") (argument_list "(pbVar34,(long)pbVar22 - (long)pbVar34)" (( "(") (identifier "pbVar34") (, ",") (binary_expression "(long)pbVar22 - (long)pbVar34" (cast_expression "(long)pbVar22" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pbVar22")) (- "-") (cast_expression "(long)pbVar34" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pbVar34"))) () ")"))))) (; ";")) (expression_statement "*param_4 = (ulong)(pbVar22 + 1);" (assignment_expression "*param_4 = (ulong)(pbVar22 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pbVar22 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pbVar22 + 1)" (( "(") (binary_expression "pbVar22 + 1" (identifier "pbVar22") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar8 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar8 = FUN_0012e630(param_4,0,param_6)" (identifier "uVar8") (= "=") (call_expression "FUN_0012e630(param_4,0,param_6)" (identifier "FUN_0012e630") (argument_list "(param_4,0,param_6)" (( "(") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (*(char *)*param_4 != ',') {\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }" (if "if") (parenthesized_expression "(*(char *)*param_4 != ',')" (( "(") (binary_expression "*(char *)*param_4 != ','" (pointer_expression "*(char *)*param_4" (* "*") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (!= "!=") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (compound_statement "{\n          FUN_0012e570(pbVar40);\n          free(__ptr);\n          goto LAB_00132cf2;\n        }" ({ "{") (expression_statement "FUN_0012e570(pbVar40);" (call_expression "FUN_0012e570(pbVar40)" (identifier "FUN_0012e570") (argument_list "(pbVar40)" (( "(") (identifier "pbVar40") () ")"))) (; ";")) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (goto_statement "goto LAB_00132cf2;" (goto "goto") (statement_identifier "LAB_00132cf2") (; ";")) (} "}"))) (expression_statement "uVar7 = uVar39 + 1;" (assignment_expression "uVar7 = uVar39 + 1" (identifier "uVar7") (= "=") (binary_expression "uVar39 + 1" (identifier "uVar39") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((char *)*param_4 + 1)" (( "(") (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((uint)uVar11 <= uVar7) {\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }" (if "if") (parenthesized_expression "((uint)uVar11 <= uVar7)" (( "(") (binary_expression "(uint)uVar11 <= uVar7" (cast_expression "(uint)uVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar11")) (<= "<=") (identifier "uVar7")) () ")")) (compound_statement "{\n          uVar11 = (ulong)((uint)uVar11 + 10);\n          local_148 = (void *)xrealloc(local_148,uVar11 << 3);\n          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);\n        }" ({ "{") (expression_statement "uVar11 = (ulong)((uint)uVar11 + 10);" (assignment_expression "uVar11 = (ulong)((uint)uVar11 + 10)" (identifier "uVar11") (= "=") (call_expression "(ulong)((uint)uVar11 + 10)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((uint)uVar11 + 10)" (( "(") (binary_expression "(uint)uVar11 + 10" (cast_expression "(uint)uVar11" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "uVar11")) (+ "+") (number_literal "10")) () ")")))) (; ";")) (expression_statement "local_148 = (void *)xrealloc(local_148,uVar11 << 3);" (assignment_expression "local_148 = (void *)xrealloc(local_148,uVar11 << 3)" (identifier "local_148") (= "=") (cast_expression "(void *)xrealloc(local_148,uVar11 << 3)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xrealloc(local_148,uVar11 << 3)" (identifier "xrealloc") (argument_list "(local_148,uVar11 << 3)" (( "(") (identifier "local_148") (, ",") (binary_expression "uVar11 << 3" (identifier "uVar11") (<< "<<") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);" (assignment_expression "pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3)" (identifier "pvVar12") (= "=") (cast_expression "(void *)xrealloc(pvVar12,uVar11 << 3)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xrealloc(pvVar12,uVar11 << 3)" (identifier "xrealloc") (argument_list "(pvVar12,uVar11 << 3)" (( "(") (identifier "pvVar12") (, ",") (binary_expression "uVar11 << 3" (identifier "uVar11") (<< "<<") (number_literal "3")) () ")"))))) (; ";")) (} "}"))) (expression_statement "uVar28 = (ulong)uVar7;" (assignment_expression "uVar28 = (ulong)uVar7" (identifier "uVar28") (= "=") (cast_expression "(ulong)uVar7" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar7"))) (; ";")) (expression_statement "*(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;" (assignment_expression "*(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr" (pointer_expression "*(void **)((long)local_148 + (ulong)uVar39 * 8)" (* "*") (cast_expression "(void **)((long)local_148 + (ulong)uVar39 * 8)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((long)local_148 + (ulong)uVar39 * 8)" (( "(") (binary_expression "(long)local_148 + (ulong)uVar39 * 8" (cast_expression "(long)local_148" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_148")) (+ "+") (binary_expression "(ulong)uVar39 * 8" (cast_expression "(ulong)uVar39" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar39")) (* "*") (number_literal "8"))) () ")")))) (= "=") (identifier "__ptr")) (; ";")) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" (identifier "pbVar34") (= "=") (cast_expression "(byte *)*param_4" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (expression_statement "*(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;" (assignment_expression "*(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8" (pointer_expression "*(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8)" (* "*") (cast_expression "(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar12 + (ulong)uVar39 * 8)" (( "(") (binary_expression "(long)pvVar12 + (ulong)uVar39 * 8" (cast_expression "(long)pvVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar12")) (+ "+") (binary_expression "(ulong)uVar39 * 8" (cast_expression "(ulong)uVar39" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar39")) (* "*") (number_literal "8"))) () ")")))) (= "=") (identifier "uVar8")) (; ";")) (expression_statement "uVar35 = (ulong)*pbVar34;" (assignment_expression "uVar35 = (ulong)*pbVar34" (identifier "uVar35") (= "=") (binary_expression "(ulong)*pbVar34" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (identifier "pbVar34"))) (; ";")) (expression_statement "uVar39 = uVar7;" (assignment_expression "uVar39 = uVar7" (identifier "uVar39") (= "=") (identifier "uVar7")) (; ";")) (} "}")) (while "while") (parenthesized_expression "((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0))" (( "(") (binary_expression "(0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0)" (parenthesized_expression "(0x3b < *pbVar34)" (( "(") (binary_expression "0x3b < *pbVar34" (number_literal "0x3b") (< "<") (pointer_expression "*pbVar34" (* "*") (identifier "pbVar34"))) () ")")) (|| "||") (parenthesized_expression "((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0)" (( "(") (binary_expression "(0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0" (parenthesized_expression "(0x800100000000001U >> (uVar35 & 0x3f) & 1)" (( "(") (binary_expression "0x800100000000001U >> (uVar35 & 0x3f) & 1" (binary_expression "0x800100000000001U >> (uVar35 & 0x3f)" (number_literal "0x800100000000001U") (>> ">>") (parenthesized_expression "(uVar35 & 0x3f)" (( "(") (binary_expression "uVar35 & 0x3f" (identifier "uVar35") (& "&") (number_literal "0x3f")) () ")"))) (& "&") (number_literal "1")) () ")")) (== "==") (number_literal "0")) () ")"))) () ")")) (; ";")) (} "}")))) (expression_statement "*(undefined8 *)((long)local_148 + uVar28 * 8) = 0;" (assignment_expression "*(undefined8 *)((long)local_148 + uVar28 * 8) = 0" (pointer_expression "*(undefined8 *)((long)local_148 + uVar28 * 8)" (* "*") (cast_expression "(undefined8 *)((long)local_148 + uVar28 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_148 + uVar28 * 8)" (( "(") (binary_expression "(long)local_148 + uVar28 * 8" (cast_expression "(long)local_148" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_148")) (+ "+") (binary_expression "uVar28 * 8" (identifier "uVar28") (* "*") (number_literal "8"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" (identifier "pcVar16") (= "=") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (expression_statement "*(undefined8 *)((long)pvVar12 + uVar28 * 8) = 0;" (assignment_expression "*(undefined8 *)((long)pvVar12 + uVar28 * 8) = 0" (pointer_expression "*(undefined8 *)((long)pvVar12 + uVar28 * 8)" (* "*") (cast_expression "(undefined8 *)((long)pvVar12 + uVar28 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)pvVar12 + uVar28 * 8)" (( "(") (binary_expression "(long)pvVar12 + uVar28 * 8" (cast_expression "(long)pvVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pvVar12")) (+ "+") (binary_expression "uVar28 * 8" (identifier "uVar28") (* "*") (number_literal "8"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (*pcVar16 == ';') {\n      *param_4 = (ulong)(pcVar16 + 1);\n    }" (if "if") (parenthesized_expression "(*pcVar16 == ';')" (( "(") (binary_expression "*pcVar16 == ';'" (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) (== "==") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")")) (compound_statement "{\n      *param_4 = (ulong)(pcVar16 + 1);\n    }" ({ "{") (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pcVar16 + 1)" (( "(") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (expression_statement "lVar17 = FUN_0012d670(param_1,local_148,pvVar12);" (assignment_expression "lVar17 = FUN_0012d670(param_1,local_148,pvVar12)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d670(param_1,local_148,pvVar12)" (identifier "FUN_0012d670") (argument_list "(param_1,local_148,pvVar12)" (( "(") (identifier "param_1") (, ",") (identifier "local_148") (, ",") (identifier "pvVar12") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x66:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d6f0(param_1,uVar8,0,0);\n    break;" (case "case") (number_literal "0x66") (: ":") (expression_statement "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "uVar8") (= "=") (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "FUN_00131020") (argument_list "(param_1,param_2,0,param_4,0,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (expression_statement "lVar17 = FUN_0012d6f0(param_1,uVar8,0,0);" (assignment_expression "lVar17 = FUN_0012d6f0(param_1,uVar8,0,0)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d6f0(param_1,uVar8,0,0)" (identifier "FUN_0012d6f0") (argument_list "(param_1,uVar8,0,0)" (( "(") (identifier "param_1") (, ",") (identifier "uVar8") (, ",") (number_literal "0") (, ",") (number_literal "0") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x6b:\n    uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n    lVar17 = FUN_0012d9b0(param_1,uVar8);\n    break;" (case "case") (number_literal "0x6b") (: ":") (expression_statement "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "uVar8 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "uVar8") (= "=") (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "FUN_00131020") (argument_list "(param_1,param_2,0,param_4,0,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (expression_statement "lVar17 = FUN_0012d9b0(param_1,uVar8);" (assignment_expression "lVar17 = FUN_0012d9b0(param_1,uVar8)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d9b0(param_1,uVar8)" (identifier "FUN_0012d9b0") (argument_list "(param_1,uVar8)" (( "(") (identifier "param_1") (, ",") (identifier "uVar8") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x72:\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n    if (iVar5 == 0) {\n      return 0;\n    }\n    bVar43 = false;\n    if ((uint)local_68 == (uint)local_70) {\n      bVar43 = local_68._4_4_ == local_70._4_4_;\n    }\n    pbVar34 = (byte *)*param_4;\n    lVar17 = 0;\n    bVar38 = *pbVar34;\n    if (bVar38 == 0x3d) {\n      *param_4 = (ulong)pbVar40;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      pbVar34 = (byte *)*param_4;\n      bVar38 = *pbVar34;\n    }\n    if (bVar38 == 0x3b) {\n      pbVar34 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar34;\n    }\n    uVar35 = FUN_0012e630(param_4,&local_7c,param_6);\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    pcVar16 = (char *)*param_4 + 1;\n    *param_4 = (ulong)pcVar16;\n    uVar11 = FUN_0012e630(param_4,&local_78,param_6);\n    iVar5 = local_7c;\n    if (*(char *)*param_4 != ';') goto LAB_00132126;\n    *param_4 = (ulong)((char *)*param_4 + 1);\n    if (local_7c != 0 || (int)local_78 != 0) {\n      bVar41 = false;\n      bVar44 = lVar17 == 0;\n      if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }\n      lVar18 = 0x18;\n      pbVar22 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }\nLAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);\n      break;\n    }\nLAB_0013197e:\n    if (lVar17 != 0) {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }\n    if ((bVar43) && (uVar35 == 0)) {\n      if (uVar11 == 0) goto LAB_00133358;\n      if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }\n      lVar17 = FUN_0012d560(param_1,4,1);\n    }\n    else {\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }\n    break;" (case "case") (number_literal "0x72") (: ":") (if_statement "if (param_6 <= pbVar40) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(param_6 <= pbVar40)" (( "(") (binary_expression "param_6 <= pbVar40" (identifier "param_6") (<= "<=") (identifier "pbVar40")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);" (assignment_expression "iVar5 = FUN_0012e6c0(param_4,&local_68,param_6)" (identifier "iVar5") (= "=") (call_expression "FUN_0012e6c0(param_4,&local_68,param_6)" (identifier "FUN_0012e6c0") (argument_list "(param_4,&local_68,param_6)" (( "(") (identifier "param_4") (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "bVar43 = false;" (assignment_expression "bVar43 = false" (identifier "bVar43") (= "=") (false "false")) (; ";")) (if_statement "if ((uint)local_68 == (uint)local_70) {\n      bVar43 = local_68._4_4_ == local_70._4_4_;\n    }" (if "if") (parenthesized_expression "((uint)local_68 == (uint)local_70)" (( "(") (binary_expression "(uint)local_68 == (uint)local_70" (cast_expression "(uint)local_68" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_68")) (== "==") (cast_expression "(uint)local_70" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_70"))) () ")")) (compound_statement "{\n      bVar43 = local_68._4_4_ == local_70._4_4_;\n    }" ({ "{") (expression_statement "bVar43 = local_68._4_4_ == local_70._4_4_;" (assignment_expression "bVar43 = local_68._4_4_ == local_70._4_4_" (identifier "bVar43") (= "=") (binary_expression "local_68._4_4_ == local_70._4_4_" (field_expression "local_68._4_4_" (identifier "local_68") (. ".") (field_identifier "_4_4_")) (== "==") (field_expression "local_70._4_4_" (identifier "local_70") (. ".") (field_identifier "_4_4_")))) (; ";")) (} "}"))) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" (identifier "pbVar34") (= "=") (cast_expression "(byte *)*param_4" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (expression_statement "lVar17 = 0;" (assignment_expression "lVar17 = 0" (identifier "lVar17") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar38 = *pbVar34;" (assignment_expression "bVar38 = *pbVar34" (identifier "bVar38") (= "=") (pointer_expression "*pbVar34" (* "*") (identifier "pbVar34"))) (; ";")) (if_statement "if (bVar38 == 0x3d) {\n      *param_4 = (ulong)pbVar40;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      pbVar34 = (byte *)*param_4;\n      bVar38 = *pbVar34;\n    }" (if "if") (parenthesized_expression "(bVar38 == 0x3d)" (( "(") (binary_expression "bVar38 == 0x3d" (identifier "bVar38") (== "==") (number_literal "0x3d")) () ")")) (compound_statement "{\n      *param_4 = (ulong)pbVar40;\n      lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n      if (lVar17 == 0) {\n        return 0;\n      }\n      pbVar34 = (byte *)*param_4;\n      bVar38 = *pbVar34;\n    }" ({ "{") (expression_statement "*param_4 = (ulong)pbVar40;" (assignment_expression "*param_4 = (ulong)pbVar40" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(ulong)pbVar40" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pbVar40"))) (; ";")) (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "lVar17") (= "=") (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "FUN_00131020") (argument_list "(param_1,param_2,0,param_4,0,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (lVar17 == 0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(lVar17 == 0)" (( "(") (binary_expression "lVar17 == 0" (identifier "lVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" (identifier "pbVar34") (= "=") (cast_expression "(byte *)*param_4" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (expression_statement "bVar38 = *pbVar34;" (assignment_expression "bVar38 = *pbVar34" (identifier "bVar38") (= "=") (pointer_expression "*pbVar34" (* "*") (identifier "pbVar34"))) (; ";")) (} "}"))) (if_statement "if (bVar38 == 0x3b) {\n      pbVar34 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar34;\n    }" (if "if") (parenthesized_expression "(bVar38 == 0x3b)" (( "(") (binary_expression "bVar38 == 0x3b" (identifier "bVar38") (== "==") (number_literal "0x3b")) () ")")) (compound_statement "{\n      pbVar34 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar34;\n    }" ({ "{") (expression_statement "pbVar34 = pbVar34 + 1;" (assignment_expression "pbVar34 = pbVar34 + 1" (identifier "pbVar34") (= "=") (binary_expression "pbVar34 + 1" (identifier "pbVar34") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_4 = (ulong)pbVar34;" (assignment_expression "*param_4 = (ulong)pbVar34" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(ulong)pbVar34" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pbVar34"))) (; ";")) (} "}"))) (expression_statement "uVar35 = FUN_0012e630(param_4,&local_7c,param_6);" (assignment_expression "uVar35 = FUN_0012e630(param_4,&local_7c,param_6)" (identifier "uVar35") (= "=") (call_expression "FUN_0012e630(param_4,&local_7c,param_6)" (identifier "FUN_0012e630") (argument_list "(param_4,&local_7c,param_6)" (( "(") (identifier "param_4") (, ",") (pointer_expression "&local_7c" (& "&") (identifier "local_7c")) (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (*(char *)*param_4 != ';') goto LAB_00132126;" (if "if") (parenthesized_expression "(*(char *)*param_4 != ';')" (( "(") (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" (* "*") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (!= "!=") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")")) (goto_statement "goto LAB_00132126;" (goto "goto") (statement_identifier "LAB_00132126") (; ";"))) (expression_statement "pcVar16 = (char *)*param_4 + 1;" (assignment_expression "pcVar16 = (char *)*param_4 + 1" (identifier "pcVar16") (= "=") (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_4 = (ulong)pcVar16;" (assignment_expression "*param_4 = (ulong)pcVar16" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(ulong)pcVar16" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pcVar16"))) (; ";")) (expression_statement "uVar11 = FUN_0012e630(param_4,&local_78,param_6);" (assignment_expression "uVar11 = FUN_0012e630(param_4,&local_78,param_6)" (identifier "uVar11") (= "=") (call_expression "FUN_0012e630(param_4,&local_78,param_6)" (identifier "FUN_0012e630") (argument_list "(param_4,&local_78,param_6)" (( "(") (identifier "param_4") (, ",") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (identifier "param_6") () ")")))) (; ";")) (expression_statement "iVar5 = local_7c;" (assignment_expression "iVar5 = local_7c" (identifier "iVar5") (= "=") (identifier "local_7c")) (; ";")) (if_statement "if (*(char *)*param_4 != ';') goto LAB_00132126;" (if "if") (parenthesized_expression "(*(char *)*param_4 != ';')" (( "(") (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" (* "*") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (!= "!=") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")")) (goto_statement "goto LAB_00132126;" (goto "goto") (statement_identifier "LAB_00132126") (; ";"))) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((char *)*param_4 + 1)" (( "(") (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (local_7c != 0 || (int)local_78 != 0) {\n      bVar41 = false;\n      bVar44 = lVar17 == 0;\n      if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }\n      lVar18 = 0x18;\n      pbVar22 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }\nLAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);\n      break;\n    }" (if "if") (parenthesized_expression "(local_7c != 0 || (int)local_78 != 0)" (( "(") (binary_expression "local_7c != 0 || (int)local_78 != 0" (binary_expression "local_7c != 0" (identifier "local_7c") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "(int)local_78 != 0" (cast_expression "(int)local_78" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_78")) (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n      bVar41 = false;\n      bVar44 = lVar17 == 0;\n      if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }\n      lVar18 = 0x18;\n      pbVar22 = (byte *)"01000000000000000000000;";\n      do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);\n      if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }\nLAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);\n      break;\n    }" ({ "{") (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" (identifier "bVar41") (= "=") (false "false")) (; ";")) (expression_statement "bVar44 = lVar17 == 0;" (assignment_expression "bVar44 = lVar17 == 0" (identifier "bVar44") (= "=") (binary_expression "lVar17 == 0" (identifier "lVar17") (== "==") (number_literal "0"))) (; ";")) (if_statement "if (!bVar44) {\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }" (if "if") (parenthesized_expression "(!bVar44)" (( "(") (unary_expression "!bVar44" (! "!") (identifier "bVar44")) () ")")) (compound_statement "{\nLAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);\n        FUN_0012e500(pbVar40,uVar8);\n        goto LAB_0013197e;\n      }" ({ "{") (labeled_statement "LAB_00131960:\n        uVar8 = dcgettext(0,"numeric overflow",5);" (statement_identifier "LAB_00131960") (: ":") (expression_statement "uVar8 = dcgettext(0,"numeric overflow",5);" (assignment_expression "uVar8 = dcgettext(0,"numeric overflow",5)" (identifier "uVar8") (= "=") (call_expression "dcgettext(0,"numeric overflow",5)" (identifier "dcgettext") (argument_list "(0,"numeric overflow",5)" (( "(") (number_literal "0") (, ",") (string_literal ""numeric overflow"" (" """) (string_content "numeric overflow") (" """)) (, ",") (number_literal "5") () ")")))) (; ";"))) (expression_statement "FUN_0012e500(pbVar40,uVar8);" (call_expression "FUN_0012e500(pbVar40,uVar8)" (identifier "FUN_0012e500") (argument_list "(pbVar40,uVar8)" (( "(") (identifier "pbVar40") (, ",") (identifier "uVar8") () ")"))) (; ";")) (goto_statement "goto LAB_0013197e;" (goto "goto") (statement_identifier "LAB_0013197e") (; ";")) (} "}"))) (expression_statement "lVar18 = 0x18;" (assignment_expression "lVar18 = 0x18" (identifier "lVar18") (= "=") (number_literal "0x18")) (; ";")) (expression_statement "pbVar22 = (byte *)"01000000000000000000000;";" (assignment_expression "pbVar22 = (byte *)"01000000000000000000000;"" (identifier "pbVar22") (= "=") (cast_expression "(byte *)"01000000000000000000000;"" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (string_literal ""01000000000000000000000;"" (" """) (string_content "01000000000000000000000;") (" """)))) (; ";")) (do_statement "do {\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      } while (bVar44);" (do "do") (compound_statement "{\n        if (lVar18 == 0) break;\n        lVar18 = lVar18 + -1;\n        bVar41 = *pbVar34 < *pbVar22;\n        bVar44 = *pbVar34 == *pbVar22;\n        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;\n        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;\n      }" ({ "{") (if_statement "if (lVar18 == 0) break;" (if "if") (parenthesized_expression "(lVar18 == 0)" (( "(") (binary_expression "lVar18 == 0" (identifier "lVar18") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar18 = lVar18 + -1;" (assignment_expression "lVar18 = lVar18 + -1" (identifier "lVar18") (= "=") (binary_expression "lVar18 + -1" (identifier "lVar18") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar41 = *pbVar34 < *pbVar22;" (assignment_expression "bVar41 = *pbVar34 < *pbVar22" (identifier "bVar41") (= "=") (binary_expression "*pbVar34 < *pbVar22" (pointer_expression "*pbVar34" (* "*") (identifier "pbVar34")) (< "<") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")))) (; ";")) (expression_statement "bVar44 = *pbVar34 == *pbVar22;" (assignment_expression "bVar44 = *pbVar34 == *pbVar22" (identifier "bVar44") (= "=") (binary_expression "*pbVar34 == *pbVar22" (pointer_expression "*pbVar34" (* "*") (identifier "pbVar34")) (== "==") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")))) (; ";")) (expression_statement "pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1" (identifier "pbVar34") (= "=") (binary_expression "pbVar34 + (ulong)bVar47 * -2 + 1" (binary_expression "pbVar34 + (ulong)bVar47 * -2" (identifier "pbVar34") (+ "+") (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar47")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1" (identifier "pbVar22") (= "=") (binary_expression "pbVar22 + (ulong)bVar47 * -2 + 1" (binary_expression "pbVar22 + (ulong)bVar47 * -2" (identifier "pbVar22") (+ "+") (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar47")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar44)" (( "(") (identifier "bVar44") () ")")) (; ";")) (if_statement "if (((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }" (if "if") (parenthesized_expression "(((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0))" (( "(") (binary_expression "((!bVar41 && !bVar44) != bVar41) ||\n         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)" (parenthesized_expression "((!bVar41 && !bVar44) != bVar41)" (( "(") (binary_expression "(!bVar41 && !bVar44) != bVar41" (parenthesized_expression "(!bVar41 && !bVar44)" (( "(") (binary_expression "!bVar41 && !bVar44" (unary_expression "!bVar41" (! "!") (identifier "bVar41")) (&& "&&") (unary_expression "!bVar44" (! "!") (identifier "bVar44"))) () ")")) (!= "!=") (identifier "bVar41")) () ")")) (|| "||") (parenthesized_expression "(iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)" (( "(") (comma_expression "iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0" (assignment_expression "iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17)" (identifier "iVar27") (= "=") (call_expression "strncmp(pcVar16,"0777777777777777777777;",0x17)" (identifier "strncmp") (argument_list "(pcVar16,"0777777777777777777777;",0x17)" (( "(") (identifier "pcVar16") (, ",") (string_literal ""0777777777777777777777;"" (" """) (string_content "0777777777777777777777;") (" """)) (, ",") (number_literal "0x17") () ")")))) (, ",") (binary_expression "iVar27 != 0" (identifier "iVar27") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n        if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;\nLAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);\n        break;\n      }" ({ "{") (if_statement "if ((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))\n        goto LAB_00131960;" (if "if") (parenthesized_expression "((uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))" (( "(") (binary_expression "(uVar35 != 0) ||\n           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0)))" (parenthesized_expression "(uVar35 != 0)" (( "(") (binary_expression "uVar35 != 0" (identifier "uVar35") (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0)))" (( "(") (parenthesized_expression "(iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))" (( "(") (binary_expression "iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0)" (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) (|| "||") (parenthesized_expression "(iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0)" (( "(") (comma_expression "iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0" (assignment_expression "iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18)" (identifier "iVar5") (= "=") (call_expression "strncmp(pcVar16,"01777777777777777777777;",0x18)" (identifier "strncmp") (argument_list "(pcVar16,"01777777777777777777777;",0x18)" (( "(") (identifier "pcVar16") (, ",") (string_literal ""01777777777777777777777;"" (" """) (string_content "01777777777777777777777;") (" """)) (, ",") (number_literal "0x18") () ")")))) (, ",") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0"))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00131960;" (goto "goto") (statement_identifier "LAB_00131960") (; ";"))) (labeled_statement "LAB_0013348a:\n        lVar17 = FUN_0012d560(param_1,8,1);" (statement_identifier "LAB_0013348a") (: ":") (expression_statement "lVar17 = FUN_0012d560(param_1,8,1);" (assignment_expression "lVar17 = FUN_0012d560(param_1,8,1)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d560(param_1,8,1)" (identifier "FUN_0012d560") (argument_list "(param_1,8,1)" (( "(") (identifier "param_1") (, ",") (number_literal "8") (, ",") (number_literal "1") () ")")))) (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (labeled_statement "LAB_0013373f:\n      lVar17 = FUN_0012d560(param_1,8,0);" (statement_identifier "LAB_0013373f") (: ":") (expression_statement "lVar17 = FUN_0012d560(param_1,8,0);" (assignment_expression "lVar17 = FUN_0012d560(param_1,8,0)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d560(param_1,8,0)" (identifier "FUN_0012d560") (argument_list "(param_1,8,0)" (( "(") (identifier "param_1") (, ",") (number_literal "8") (, ",") (number_literal "0") () ")")))) (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (labeled_statement "LAB_0013197e:\n    if (lVar17 != 0) {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }" (statement_identifier "LAB_0013197e") (: ":") (if_statement "if (lVar17 != 0) {\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }" (if "if") (parenthesized_expression "(lVar17 != 0)" (( "(") (binary_expression "lVar17 != 0" (identifier "lVar17") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }\n      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);\n      if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }\n      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);\n      break;\n    }" ({ "{") (labeled_statement "LAB_00131987:\n      if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }" (statement_identifier "LAB_00131987") (: ":") (if_statement "if (bVar43) {\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }" (if "if") (parenthesized_expression "(bVar43)" (( "(") (identifier "bVar43") () ")")) (compound_statement "{\nLAB_00132126:\n        FUN_0012e570(pbVar40);\n        return 0;\n      }" ({ "{") (labeled_statement "LAB_00132126:\n        FUN_0012e570(pbVar40);" (statement_identifier "LAB_00132126") (: ":") (expression_statement "FUN_0012e570(pbVar40);" (call_expression "FUN_0012e570(pbVar40)" (identifier "FUN_0012e570") (argument_list "(pbVar40)" (( "(") (identifier "pbVar40") () ")"))) (; ";"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))) (expression_statement "lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);" (assignment_expression "lVar17 = FUN_0012e9f0(param_1,param_2,&local_68)" (identifier "lVar17") (= "=") (call_expression "FUN_0012e9f0(param_1,param_2,&local_68)" (identifier "FUN_0012e9f0") (argument_list "(param_1,param_2,&local_68)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) () ")")))) (; ";")) (if_statement "if (lVar17 == 0) {\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }" (if "if") (parenthesized_expression "(lVar17 == 0)" (( "(") (binary_expression "lVar17 == 0" (identifier "lVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        uVar8 = dcgettext(0,"missing index type",5);\n        FUN_0012e500(pbVar40,uVar8);\n        lVar17 = FUN_0012d560(param_1,4,0);\n      }" ({ "{") (expression_statement "uVar8 = dcgettext(0,"missing index type",5);" (assignment_expression "uVar8 = dcgettext(0,"missing index type",5)" (identifier "uVar8") (= "=") (call_expression "dcgettext(0,"missing index type",5)" (identifier "dcgettext") (argument_list "(0,"missing index type",5)" (( "(") (number_literal "0") (, ",") (string_literal ""missing index type"" (" """) (string_content "missing index type") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0012e500(pbVar40,uVar8);" (call_expression "FUN_0012e500(pbVar40,uVar8)" (identifier "FUN_0012e500") (argument_list "(pbVar40,uVar8)" (( "(") (identifier "pbVar40") (, ",") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "lVar17 = FUN_0012d560(param_1,4,0);" (assignment_expression "lVar17 = FUN_0012d560(param_1,4,0)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d560(param_1,4,0)" (identifier "FUN_0012d560") (argument_list "(param_1,4,0)" (( "(") (identifier "param_1") (, ",") (number_literal "4") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}"))) (expression_statement "lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);" (assignment_expression "lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d790(param_1,lVar17,uVar35,uVar11)" (identifier "FUN_0012d790") (argument_list "(param_1,lVar17,uVar35,uVar11)" (( "(") (identifier "param_1") (, ",") (identifier "lVar17") (, ",") (identifier "uVar35") (, ",") (identifier "uVar11") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}")))) (if_statement "if ((bVar43) && (uVar35 == 0)) {\n      if (uVar11 == 0) goto LAB_00133358;\n      if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }\n      lVar17 = FUN_0012d560(param_1,4,1);\n    }\n    else {\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }" (if "if") (parenthesized_expression "((bVar43) && (uVar35 == 0))" (( "(") (binary_expression "(bVar43) && (uVar35 == 0)" (parenthesized_expression "(bVar43)" (( "(") (identifier "bVar43") () ")")) (&& "&&") (parenthesized_expression "(uVar35 == 0)" (( "(") (binary_expression "uVar35 == 0" (identifier "uVar35") (== "==") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n      if (uVar11 == 0) goto LAB_00133358;\n      if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }\n      lVar17 = FUN_0012d560(param_1,4,1);\n    }" ({ "{") (if_statement "if (uVar11 == 0) goto LAB_00133358;" (if "if") (parenthesized_expression "(uVar11 == 0)" (( "(") (binary_expression "uVar11 == 0" (identifier "uVar11") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00133358;" (goto "goto") (statement_identifier "LAB_00133358") (; ";"))) (if_statement "if (uVar11 == 0xffffffffffffffff) {\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }\n      else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }" (if "if") (parenthesized_expression "(uVar11 == 0xffffffffffffffff)" (( "(") (binary_expression "uVar11 == 0xffffffffffffffff" (identifier "uVar11") (== "==") (number_literal "0xffffffffffffffff")) () ")")) (compound_statement "{\nLAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }\n      }" ({ "{") (labeled_statement "LAB_00133395:\n        if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }" (statement_identifier "LAB_00133395") (: ":") (if_statement "if (param_3 != (char *)0x0) {\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }" (if "if") (parenthesized_expression "(param_3 != (char *)0x0)" (( "(") (binary_expression "param_3 != (char *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          iVar5 = strcmp(param_3,"long long int");\n          if (iVar5 == 0) goto LAB_0013373f;\n          iVar5 = strcmp(param_3,"long long unsigned int");\n          if (iVar5 == 0) goto LAB_0013348a;\n        }" ({ "{") (expression_statement "iVar5 = strcmp(param_3,"long long int");" (assignment_expression "iVar5 = strcmp(param_3,"long long int")" (identifier "iVar5") (= "=") (call_expression "strcmp(param_3,"long long int")" (identifier "strcmp") (argument_list "(param_3,"long long int")" (( "(") (identifier "param_3") (, ",") (string_literal ""long long int"" (" """) (string_content "long long int") (" """)) () ")")))) (; ";")) (if_statement "if (iVar5 == 0) goto LAB_0013373f;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0013373f;" (goto "goto") (statement_identifier "LAB_0013373f") (; ";"))) (expression_statement "iVar5 = strcmp(param_3,"long long unsigned int");" (assignment_expression "iVar5 = strcmp(param_3,"long long unsigned int")" (identifier "iVar5") (= "=") (call_expression "strcmp(param_3,"long long unsigned int")" (identifier "strcmp") (argument_list "(param_3,"long long unsigned int")" (( "(") (identifier "param_3") (, ",") (string_literal ""long long unsigned int"" (" """) (string_content "long long unsigned int") (" """)) () ")")))) (; ";")) (if_statement "if (iVar5 == 0) goto LAB_0013348a;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0013348a;" (goto "goto") (statement_identifier "LAB_0013348a") (; ";"))) (} "}")))) (} "}")) (else_clause "else {\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }" (else "else") (compound_statement "{\n        if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }\nLAB_00133a66:\n        iVar5 = (int)uVar11;\n        if ((long)uVar11 < 0) goto LAB_00133b55;\n        if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }\n        if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }\n        if (uVar11 != 0xffffffff) goto LAB_00131987;\n      }" ({ "{") (if_statement "if (uVar11 == 0x7f) {\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }" (if "if") (parenthesized_expression "(uVar11 == 0x7f)" (( "(") (binary_expression "uVar11 == 0x7f" (identifier "uVar11") (== "==") (number_literal "0x7f")) () ")")) (compound_statement "{\nLAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);\n          break;\n        }" ({ "{") (labeled_statement "LAB_00133dee:\n          lVar17 = FUN_0012d560(param_1,1,0);" (statement_identifier "LAB_00133dee") (: ":") (expression_statement "lVar17 = FUN_0012d560(param_1,1,0);" (assignment_expression "lVar17 = FUN_0012d560(param_1,1,0)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d560(param_1,1,0)" (identifier "FUN_0012d560") (argument_list "(param_1,1,0)" (( "(") (identifier "param_1") (, ",") (number_literal "1") (, ",") (number_literal "0") () ")")))) (; ";"))) (break_statement "break;" (break "break") (; ";")) (} "}"))) (labeled_statement "LAB_00133a66:\n        iVar5 = (int)uVar11;" (statement_identifier "LAB_00133a66") (: ":") (expression_statement "iVar5 = (int)uVar11;" (assignment_expression "iVar5 = (int)uVar11" (identifier "iVar5") (= "=") (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11"))) (; ";"))) (if_statement "if ((long)uVar11 < 0) goto LAB_00133b55;" (if "if") (parenthesized_expression "((long)uVar11 < 0)" (( "(") (binary_expression "(long)uVar11 < 0" (cast_expression "(long)uVar11" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar11")) (< "<") (number_literal "0")) () ")")) (goto_statement "goto LAB_00133b55;" (goto "goto") (statement_identifier "LAB_00133b55") (; ";"))) (if_statement "if (uVar11 == 0xff) {\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }" (if "if") (parenthesized_expression "(uVar11 == 0xff)" (( "(") (binary_expression "uVar11 == 0xff" (identifier "uVar11") (== "==") (number_literal "0xff")) () ")")) (compound_statement "{\n          lVar17 = FUN_0012d560(param_1,1,1);\n          break;\n        }" ({ "{") (expression_statement "lVar17 = FUN_0012d560(param_1,1,1);" (assignment_expression "lVar17 = FUN_0012d560(param_1,1,1)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d560(param_1,1,1)" (identifier "FUN_0012d560") (argument_list "(param_1,1,1)" (( "(") (identifier "param_1") (, ",") (number_literal "1") (, ",") (number_literal "1") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if (uVar11 == 0xffff) {\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }" (if "if") (parenthesized_expression "(uVar11 == 0xffff)" (( "(") (binary_expression "uVar11 == 0xffff" (identifier "uVar11") (== "==") (number_literal "0xffff")) () ")")) (compound_statement "{\n          lVar17 = FUN_0012d560(param_1,2,1);\n          break;\n        }" ({ "{") (expression_statement "lVar17 = FUN_0012d560(param_1,2,1);" (assignment_expression "lVar17 = FUN_0012d560(param_1,2,1)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d560(param_1,2,1)" (identifier "FUN_0012d560") (argument_list "(param_1,2,1)" (( "(") (identifier "param_1") (, ",") (number_literal "2") (, ",") (number_literal "1") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if (uVar11 != 0xffffffff) goto LAB_00131987;" (if "if") (parenthesized_expression "(uVar11 != 0xffffffff)" (( "(") (binary_expression "uVar11 != 0xffffffff" (identifier "uVar11") (!= "!=") (number_literal "0xffffffff")) () ")")) (goto_statement "goto LAB_00131987;" (goto "goto") (statement_identifier "LAB_00131987") (; ";"))) (} "}")))) (expression_statement "lVar17 = FUN_0012d560(param_1,4,1);" (assignment_expression "lVar17 = FUN_0012d560(param_1,4,1)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d560(param_1,4,1)" (identifier "FUN_0012d560") (argument_list "(param_1,4,1)" (( "(") (identifier "param_1") (, ",") (number_literal "4") (, ",") (number_literal "1") () ")")))) (; ";")) (} "}")) (else_clause "else {\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }" (else "else") (compound_statement "{\n      bVar41 = uVar11 != 0;\n      if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }\n      iVar5 = (int)uVar35;\nLAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);\n    }" ({ "{") (expression_statement "bVar41 = uVar11 != 0;" (assignment_expression "bVar41 = uVar11 != 0" (identifier "bVar41") (= "=") (binary_expression "uVar11 != 0" (identifier "uVar11") (!= "!=") (number_literal "0"))) (; ";")) (if_statement "if ((!bVar43) || (bVar41)) {\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }\n      else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }" (if "if") (parenthesized_expression "((!bVar43) || (bVar41))" (( "(") (binary_expression "(!bVar43) || (bVar41)" (parenthesized_expression "(!bVar43)" (( "(") (unary_expression "!bVar43" (! "!") (identifier "bVar43")) () ")")) (|| "||") (parenthesized_expression "(bVar41)" (( "(") (identifier "bVar41") () ")"))) () ")")) (compound_statement "{\n        if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;\n        if (uVar35 == 0) goto LAB_00133a66;\n        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;\n      }" ({ "{") (if_statement "if ((0 < (long)uVar35) && (!bVar41)) {\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }" (if "if") (parenthesized_expression "((0 < (long)uVar35) && (!bVar41))" (( "(") (binary_expression "(0 < (long)uVar35) && (!bVar41)" (parenthesized_expression "(0 < (long)uVar35)" (( "(") (binary_expression "0 < (long)uVar35" (number_literal "0") (< "<") (cast_expression "(long)uVar35" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar35"))) () ")")) (&& "&&") (parenthesized_expression "(!bVar41)" (( "(") (unary_expression "!bVar41" (! "!") (identifier "bVar41")) () ")"))) () ")")) (compound_statement "{\n          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);\n          break;\n        }" ({ "{") (expression_statement "lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);" (assignment_expression "lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d580(param_1,uVar35 & 0xffffffff)" (identifier "FUN_0012d580") (argument_list "(param_1,uVar35 & 0xffffffff)" (( "(") (identifier "param_1") (, ",") (binary_expression "uVar35 & 0xffffffff" (identifier "uVar35") (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;" (if "if") (parenthesized_expression "((uVar11 == 0xffffffffffffffff) && (uVar35 == 0))" (( "(") (binary_expression "(uVar11 == 0xffffffffffffffff) && (uVar35 == 0)" (parenthesized_expression "(uVar11 == 0xffffffffffffffff)" (( "(") (binary_expression "uVar11 == 0xffffffffffffffff" (identifier "uVar11") (== "==") (number_literal "0xffffffffffffffff")) () ")")) (&& "&&") (parenthesized_expression "(uVar35 == 0)" (( "(") (binary_expression "uVar35 == 0" (identifier "uVar35") (== "==") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00133395;" (goto "goto") (statement_identifier "LAB_00133395") (; ";"))) (if_statement "if (uVar35 == 0) goto LAB_00133a66;" (if "if") (parenthesized_expression "(uVar35 == 0)" (( "(") (binary_expression "uVar35 == 0" (identifier "uVar35") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00133a66;" (goto "goto") (statement_identifier "LAB_00133a66") (; ";"))) (if_statement "if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))\n        goto LAB_001336f0;" (if "if") (parenthesized_expression "(((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))" (( "(") (binary_expression "((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43)))" (parenthesized_expression "((-1 < (long)uVar35) || (bVar41))" (( "(") (binary_expression "(-1 < (long)uVar35) || (bVar41)" (parenthesized_expression "(-1 < (long)uVar35)" (( "(") (binary_expression "-1 < (long)uVar35" (number_literal "-1") (< "<") (cast_expression "(long)uVar35" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar35"))) () ")")) (|| "||") (parenthesized_expression "(bVar41)" (( "(") (identifier "bVar41") () ")"))) () ")")) (|| "||") (parenthesized_expression "((uVar35 != 0xfffffffffffffff8 && (!bVar43)))" (( "(") (parenthesized_expression "(uVar35 != 0xfffffffffffffff8 && (!bVar43))" (( "(") (binary_expression "uVar35 != 0xfffffffffffffff8 && (!bVar43)" (binary_expression "uVar35 != 0xfffffffffffffff8" (identifier "uVar35") (!= "!=") (number_literal "0xfffffffffffffff8")) (&& "&&") (parenthesized_expression "(!bVar43)" (( "(") (unary_expression "!bVar43" (! "!") (identifier "bVar43")) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_001336f0;" (goto "goto") (statement_identifier "LAB_001336f0") (; ";"))) (} "}")) (else_clause "else {\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }" (else "else") (compound_statement "{\n        if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }\n        if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }\n      }" ({ "{") (if_statement "if (0 < (long)uVar35) {\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }" (if "if") (parenthesized_expression "(0 < (long)uVar35)" (( "(") (binary_expression "0 < (long)uVar35" (number_literal "0") (< "<") (cast_expression "(long)uVar35" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar35"))) () ")")) (compound_statement "{\n          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);\n          break;\n        }" ({ "{") (expression_statement "lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);" (assignment_expression "lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d5a0(param_1,uVar35 & 0xffffffff)" (identifier "FUN_0012d5a0") (argument_list "(param_1,uVar35 & 0xffffffff)" (( "(") (identifier "param_1") (, ",") (binary_expression "uVar35 & 0xffffffff" (identifier "uVar35") (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if (-1 < (long)uVar35) {\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }" (if "if") (parenthesized_expression "(-1 < (long)uVar35)" (( "(") (binary_expression "-1 < (long)uVar35" (number_literal "-1") (< "<") (cast_expression "(long)uVar35" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "uVar35"))) () ")")) (compound_statement "{\nLAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }\n          goto LAB_00131987;\n        }" ({ "{") (labeled_statement "LAB_001336f0:\n          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }" (statement_identifier "LAB_001336f0") (: ":") (if_statement "if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }" (if "if") (parenthesized_expression "((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1))" (( "(") (binary_expression "(uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)" (parenthesized_expression "(uVar35 == ~uVar11)" (( "(") (binary_expression "uVar35 == ~uVar11" (identifier "uVar35") (== "==") (unary_expression "~uVar11" (~ "~") (identifier "uVar11"))) () ")")) (|| "||") (parenthesized_expression "(uVar35 == uVar11 + 1)" (( "(") (binary_expression "uVar35 == uVar11 + 1" (identifier "uVar35") (== "==") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1"))) () ")"))) () ")")) (compound_statement "{\n            if (uVar11 == 0x7f) goto LAB_00133dee;\n            if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }\n            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;\n          }" ({ "{") (if_statement "if (uVar11 == 0x7f) goto LAB_00133dee;" (if "if") (parenthesized_expression "(uVar11 == 0x7f)" (( "(") (binary_expression "uVar11 == 0x7f" (identifier "uVar11") (== "==") (number_literal "0x7f")) () ")")) (goto_statement "goto LAB_00133dee;" (goto "goto") (statement_identifier "LAB_00133dee") (; ";"))) (if_statement "if (uVar11 == 0x7fff) {\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }" (if "if") (parenthesized_expression "(uVar11 == 0x7fff)" (( "(") (binary_expression "uVar11 == 0x7fff" (identifier "uVar11") (== "==") (number_literal "0x7fff")) () ")")) (compound_statement "{\n              lVar17 = FUN_0012d560(param_1,2,0);\n              break;\n            }" ({ "{") (expression_statement "lVar17 = FUN_0012d560(param_1,2,0);" (assignment_expression "lVar17 = FUN_0012d560(param_1,2,0)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d560(param_1,2,0)" (identifier "FUN_0012d560") (argument_list "(param_1,2,0)" (( "(") (identifier "param_1") (, ",") (number_literal "2") (, ",") (number_literal "0") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if (uVar11 == 0x7fffffff) {\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }" (if "if") (parenthesized_expression "(uVar11 == 0x7fffffff)" (( "(") (binary_expression "uVar11 == 0x7fffffff" (identifier "uVar11") (== "==") (number_literal "0x7fffffff")) () ")")) (compound_statement "{\n              lVar17 = FUN_0012d560(param_1,4,0);\n              break;\n            }" ({ "{") (expression_statement "lVar17 = FUN_0012d560(param_1,4,0);" (assignment_expression "lVar17 = FUN_0012d560(param_1,4,0)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d560(param_1,4,0)" (identifier "FUN_0012d560") (argument_list "(param_1,4,0)" (( "(") (identifier "param_1") (, ",") (number_literal "4") (, ",") (number_literal "0") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (if_statement "if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;" (if "if") (parenthesized_expression "(uVar11 == 0x7fffffffffffffff)" (( "(") (binary_expression "uVar11 == 0x7fffffffffffffff" (identifier "uVar11") (== "==") (number_literal "0x7fffffffffffffff")) () ")")) (goto_statement "goto LAB_0013373f;" (goto "goto") (statement_identifier "LAB_0013373f") (; ";"))) (} "}")))) (goto_statement "goto LAB_00131987;" (goto "goto") (statement_identifier "LAB_00131987") (; ";")) (} "}"))) (} "}")))) (expression_statement "iVar5 = (int)uVar35;" (assignment_expression "iVar5 = (int)uVar35" (identifier "iVar5") (= "=") (cast_expression "(int)uVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar35"))) (; ";")) (labeled_statement "LAB_00133b55:\n      lVar17 = FUN_0012d560(param_1,-iVar5,1);" (statement_identifier "LAB_00133b55") (: ":") (expression_statement "lVar17 = FUN_0012d560(param_1,-iVar5,1);" (assignment_expression "lVar17 = FUN_0012d560(param_1,-iVar5,1)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d560(param_1,-iVar5,1)" (identifier "FUN_0012d560") (argument_list "(param_1,-iVar5,1)" (( "(") (identifier "param_1") (, ",") (unary_expression "-iVar5" (- "-") (identifier "iVar5")) (, ",") (number_literal "1") () ")")))) (; ";"))) (} "}")))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x73:" (case "case") (number_literal "0x73") (: ":")) (case_statement "case 0x75:\n    uVar8 = FUN_0012e630(param_4,0,param_6);\n    pbVar40 = (byte *)*param_4;\n    if (param_6 <= pbVar40) {\n      return 0;\n    }\n    local_f8 = 0;\n    if (*pbVar40 == 0x21) {\n      *param_4 = (ulong)(pbVar40 + 1);\n      uVar39 = FUN_0012e630(param_4,0,param_6);\n      if (*(char *)*param_4 != ',') goto LAB_00132126;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);\n      if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }\n      pbVar40 = (byte *)*param_4;\n      *(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;\n      if (param_6 <= pbVar40) {\n        return 0;\n      }\n    }\n    uVar35 = 0;\n    local_130 = (void *)xmalloc(0x50);\n    pbVar34 = (byte *)*param_4;\n    bVar43 = false;\n    bVar3 = *pbVar34;\n    local_138._0_4_ = 10;\n    while (bVar3 != 0x3b) {\n      uVar39 = (int)uVar35 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }\n      if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }\n      pbVar34 = (byte *)*param_4;\n      uVar35 = (ulong)uVar39;\n      bVar3 = *pbVar34;\n    }\n    *(undefined8 *)((long)local_130 + uVar35 * 8) = 0;\n    if (param_6 <= pbVar34) goto LAB_00131328;\n    bVar3 = *pbVar34;\n    if (bVar3 == 0x3b) {\n      local_108 = 0;\nLAB_001334bc:\n      pbVar22 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar22;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }\n    if (*pbVar22 == 0x7e) {\n      pbVar40 = pbVar22 + 1;\n      *param_4 = (ulong)pbVar40;\n      if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *param_4 = (ulong)(pbVar40 + 1);\n      iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n      if (iVar5 == 0) goto LAB_00131328;\n      if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }\n      if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;\n      uVar14 = 1;\n      lVar17 = 0;\n    }\n    else {\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }\n    lVar17 = FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14);\n    break;" (case "case") (number_literal "0x75") (: ":") (expression_statement "uVar8 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar8 = FUN_0012e630(param_4,0,param_6)" (identifier "uVar8") (= "=") (call_expression "FUN_0012e630(param_4,0,param_6)" (identifier "FUN_0012e630") (argument_list "(param_4,0,param_6)" (( "(") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (expression_statement "pbVar40 = (byte *)*param_4;" (assignment_expression "pbVar40 = (byte *)*param_4" (identifier "pbVar40") (= "=") (cast_expression "(byte *)*param_4" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (if_statement "if (param_6 <= pbVar40) {\n      return 0;\n    }" (if "if") (parenthesized_expression "(param_6 <= pbVar40)" (( "(") (binary_expression "param_6 <= pbVar40" (identifier "param_6") (<= "<=") (identifier "pbVar40")) () ")")) (compound_statement "{\n      return 0;\n    }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "local_f8 = 0;" (assignment_expression "local_f8 = 0" (identifier "local_f8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (*pbVar40 == 0x21) {\n      *param_4 = (ulong)(pbVar40 + 1);\n      uVar39 = FUN_0012e630(param_4,0,param_6);\n      if (*(char *)*param_4 != ',') goto LAB_00132126;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);\n      if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }\n      pbVar40 = (byte *)*param_4;\n      *(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;\n      if (param_6 <= pbVar40) {\n        return 0;\n      }\n    }" (if "if") (parenthesized_expression "(*pbVar40 == 0x21)" (( "(") (binary_expression "*pbVar40 == 0x21" (pointer_expression "*pbVar40" (* "*") (identifier "pbVar40")) (== "==") (number_literal "0x21")) () ")")) (compound_statement "{\n      *param_4 = (ulong)(pbVar40 + 1);\n      uVar39 = FUN_0012e630(param_4,0,param_6);\n      if (*(char *)*param_4 != ',') goto LAB_00132126;\n      *param_4 = (ulong)((char *)*param_4 + 1);\n      local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);\n      if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }\n      pbVar40 = (byte *)*param_4;\n      *(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;\n      if (param_6 <= pbVar40) {\n        return 0;\n      }\n    }" ({ "{") (expression_statement "*param_4 = (ulong)(pbVar40 + 1);" (assignment_expression "*param_4 = (ulong)(pbVar40 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pbVar40 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pbVar40 + 1)" (( "(") (binary_expression "pbVar40 + 1" (identifier "pbVar40") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar39 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar39 = FUN_0012e630(param_4,0,param_6)" (identifier "uVar39") (= "=") (call_expression "FUN_0012e630(param_4,0,param_6)" (identifier "FUN_0012e630") (argument_list "(param_4,0,param_6)" (( "(") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (*(char *)*param_4 != ',') goto LAB_00132126;" (if "if") (parenthesized_expression "(*(char *)*param_4 != ',')" (( "(") (binary_expression "*(char *)*param_4 != ','" (pointer_expression "*(char *)*param_4" (* "*") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (!= "!=") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (goto_statement "goto LAB_00132126;" (goto "goto") (statement_identifier "LAB_00132126") (; ";"))) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((char *)*param_4 + 1)" (( "(") (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);" (assignment_expression "local_f8 = xmalloc((ulong)(uVar39 + 1) << 3)" (identifier "local_f8") (= "=") (call_expression "xmalloc((ulong)(uVar39 + 1) << 3)" (identifier "xmalloc") (argument_list "((ulong)(uVar39 + 1) << 3)" (( "(") (binary_expression "(ulong)(uVar39 + 1) << 3" (call_expression "(ulong)(uVar39 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(uVar39 + 1)" (( "(") (binary_expression "uVar39 + 1" (identifier "uVar39") (+ "+") (number_literal "1")) () ")"))) (<< "<<") (number_literal "3")) () ")")))) (; ";")) (if_statement "if (uVar39 != 0) {\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }" (if "if") (parenthesized_expression "(uVar39 != 0)" (( "(") (binary_expression "uVar39 != 0" (identifier "uVar39") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        uVar7 = uVar39 - 1;\n        uVar35 = 0;\n        cVar4 = *(char *)*param_4;\n        if (cVar4 == '0') goto LAB_00132b2f;\nLAB_00132a1e:\n        uVar11 = uVar35;\n        if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }\n        do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );\n      }" ({ "{") (expression_statement "uVar7 = uVar39 - 1;" (assignment_expression "uVar7 = uVar39 - 1" (identifier "uVar7") (= "=") (binary_expression "uVar39 - 1" (identifier "uVar39") (- "-") (number_literal "1"))) (; ";")) (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" (identifier "uVar35") (= "=") (number_literal "0")) (; ";")) (expression_statement "cVar4 = *(char *)*param_4;" (assignment_expression "cVar4 = *(char *)*param_4" (identifier "cVar4") (= "=") (pointer_expression "*(char *)*param_4" (* "*") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))))) (; ";")) (if_statement "if (cVar4 == '0') goto LAB_00132b2f;" (if "if") (parenthesized_expression "(cVar4 == '0')" (( "(") (binary_expression "cVar4 == '0'" (identifier "cVar4") (== "==") (char_literal "'0'" (' "'") (character "0") (' "'"))) () ")")) (goto_statement "goto LAB_00132b2f;" (goto "goto") (statement_identifier "LAB_00132b2f") (; ";"))) (labeled_statement "LAB_00132a1e:\n        uVar11 = uVar35;" (statement_identifier "LAB_00132a1e") (: ":") (expression_statement "uVar11 = uVar35;" (assignment_expression "uVar11 = uVar35" (identifier "uVar11") (= "=") (identifier "uVar35")) (; ";"))) (if_statement "if (cVar4 == '1') {\n          uVar14 = 1;\n        }\n        else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }" (if "if") (parenthesized_expression "(cVar4 == '1')" (( "(") (binary_expression "cVar4 == '1'" (identifier "cVar4") (== "==") (char_literal "'1'" (' "'") (character "1") (' "'"))) () ")")) (compound_statement "{\n          uVar14 = 1;\n        }" ({ "{") (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" (identifier "uVar14") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }" (else "else") (compound_statement "{\n          if (cVar4 == '\0') goto LAB_00132126;\n          uVar14 = 0;\n          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);\n          FUN_0012e500(pbVar40,uVar9);\n        }" ({ "{") (if_statement "if (cVar4 == '\0') goto LAB_00132126;" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00132126;" (goto "goto") (statement_identifier "LAB_00132126") (; ";"))) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);" (assignment_expression "uVar9 = dcgettext(0,"unknown virtual character for baseclass",5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,"unknown virtual character for baseclass",5)" (identifier "dcgettext") (argument_list "(0,"unknown virtual character for baseclass",5)" (( "(") (number_literal "0") (, ",") (string_literal ""unknown virtual character for baseclass"" (" """) (string_content "unknown virtual character for baseclass") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0012e500(pbVar40,uVar9);" (call_expression "FUN_0012e500(pbVar40,uVar9)" (identifier "FUN_0012e500") (argument_list "(pbVar40,uVar9)" (( "(") (identifier "pbVar40") (, ",") (identifier "uVar9") () ")"))) (; ";")) (} "}")))) (do_statement "do {\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        } while( true );" (do "do") (compound_statement "{\n          uVar35 = *param_4;\n          *param_4 = uVar35 + 1;\n          cVar4 = *(char *)(uVar35 + 1);\n          if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }\nLAB_00132a81:\n          *param_4 = *param_4 + 1;\n          uVar9 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132126;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n          if (lVar17 == 0) {\n            return 0;\n          }\n          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);\n          *(long *)(local_f8 + uVar11 * 8) = lVar17;\n          if (lVar17 == 0) {\n            return 0;\n          }\n          if (*(char *)*param_4 != ';') {\n            return 0;\n          }\n          pcVar16 = (char *)*param_4 + 1;\n          uVar39 = (int)uVar11 + 1;\n          uVar35 = uVar11 + 1;\n          *param_4 = (ulong)pcVar16;\n          if (uVar11 == uVar7) break;\n          cVar4 = *pcVar16;\n          if (cVar4 != '0') goto LAB_00132a1e;\nLAB_00132b2f:\n          uVar14 = 0;\n          uVar11 = uVar35;\n        }" ({ "{") (expression_statement "uVar35 = *param_4;" (assignment_expression "uVar35 = *param_4" (identifier "uVar35") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (expression_statement "*param_4 = uVar35 + 1;" (assignment_expression "*param_4 = uVar35 + 1" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (binary_expression "uVar35 + 1" (identifier "uVar35") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar4 = *(char *)(uVar35 + 1);" (assignment_expression "cVar4 = *(char *)(uVar35 + 1)" (identifier "cVar4") (= "=") (pointer_expression "*(char *)(uVar35 + 1)" (* "*") (cast_expression "(char *)(uVar35 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar35 + 1)" (( "(") (binary_expression "uVar35 + 1" (identifier "uVar35") (+ "+") (number_literal "1")) () ")"))))) (; ";")) (if_statement "if (cVar4 != '0') {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }" (if "if") (parenthesized_expression "(cVar4 != '0')" (( "(") (binary_expression "cVar4 != '0'" (identifier "cVar4") (!= "!=") (char_literal "'0'" (' "'") (character "0") (' "'"))) () ")")) (compound_statement "{\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;\n            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);\n            FUN_0012e500(pbVar40,uVar9);\n          }" ({ "{") (if_statement "if (cVar4 < '1') {\n              if (cVar4 == '\0') goto LAB_00132126;\n            }\n            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;" (if "if") (parenthesized_expression "(cVar4 < '1')" (( "(") (binary_expression "cVar4 < '1'" (identifier "cVar4") (< "<") (char_literal "'1'" (' "'") (character "1") (' "'"))) () ")")) (compound_statement "{\n              if (cVar4 == '\0') goto LAB_00132126;\n            }" ({ "{") (if_statement "if (cVar4 == '\0') goto LAB_00132126;" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00132126;" (goto "goto") (statement_identifier "LAB_00132126") (; ";"))) (} "}")) (else_clause "else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;" (else "else") (if_statement "if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;" (if "if") (parenthesized_expression "((cVar4 == '1') || (cVar4 == '2'))" (( "(") (binary_expression "(cVar4 == '1') || (cVar4 == '2')" (parenthesized_expression "(cVar4 == '1')" (( "(") (binary_expression "cVar4 == '1'" (identifier "cVar4") (== "==") (char_literal "'1'" (' "'") (character "1") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(cVar4 == '2')" (( "(") (binary_expression "cVar4 == '2'" (identifier "cVar4") (== "==") (char_literal "'2'" (' "'") (character "2") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_00132a81;" (goto "goto") (statement_identifier "LAB_00132a81") (; ";"))))) (expression_statement "uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);" (assignment_expression "uVar9 = dcgettext(0,"unknown visibility character for baseclass",5)" (identifier "uVar9") (= "=") (call_expression "dcgettext(0,"unknown visibility character for baseclass",5)" (identifier "dcgettext") (argument_list "(0,"unknown visibility character for baseclass",5)" (( "(") (number_literal "0") (, ",") (string_literal ""unknown visibility character for baseclass"" (" """) (string_content "unknown visibility character for baseclass") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0012e500(pbVar40,uVar9);" (call_expression "FUN_0012e500(pbVar40,uVar9)" (identifier "FUN_0012e500") (argument_list "(pbVar40,uVar9)" (( "(") (identifier "pbVar40") (, ",") (identifier "uVar9") () ")"))) (; ";")) (} "}"))) (labeled_statement "LAB_00132a81:\n          *param_4 = *param_4 + 1;" (statement_identifier "LAB_00132a81") (: ":") (expression_statement "*param_4 = *param_4 + 1;" (assignment_expression "*param_4 = *param_4 + 1" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (binary_expression "*param_4 + 1" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "uVar9 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar9 = FUN_0012e630(param_4,0,param_6)" (identifier "uVar9") (= "=") (call_expression "FUN_0012e630(param_4,0,param_6)" (identifier "FUN_0012e630") (argument_list "(param_4,0,param_6)" (( "(") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (*(char *)*param_4 != ',') goto LAB_00132126;" (if "if") (parenthesized_expression "(*(char *)*param_4 != ',')" (( "(") (binary_expression "*(char *)*param_4 != ','" (pointer_expression "*(char *)*param_4" (* "*") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (!= "!=") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (goto_statement "goto LAB_00132126;" (goto "goto") (statement_identifier "LAB_00132126") (; ";"))) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((char *)*param_4 + 1)" (( "(") (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "lVar17") (= "=") (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "FUN_00131020") (argument_list "(param_1,param_2,0,param_4,0,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (lVar17 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(lVar17 == 0)" (( "(") (binary_expression "lVar17 == 0" (identifier "lVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);" (assignment_expression "lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14)" (identifier "lVar17") (= "=") (call_expression "FUN_0012da10(param_1,lVar17,uVar9,uVar14)" (identifier "FUN_0012da10") (argument_list "(param_1,lVar17,uVar9,uVar14)" (( "(") (identifier "param_1") (, ",") (identifier "lVar17") (, ",") (identifier "uVar9") (, ",") (identifier "uVar14") () ")")))) (; ";")) (expression_statement "*(long *)(local_f8 + uVar11 * 8) = lVar17;" (assignment_expression "*(long *)(local_f8 + uVar11 * 8) = lVar17" (pointer_expression "*(long *)(local_f8 + uVar11 * 8)" (* "*") (cast_expression "(long *)(local_f8 + uVar11 * 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_f8 + uVar11 * 8)" (( "(") (binary_expression "local_f8 + uVar11 * 8" (identifier "local_f8") (+ "+") (binary_expression "uVar11 * 8" (identifier "uVar11") (* "*") (number_literal "8"))) () ")")))) (= "=") (identifier "lVar17")) (; ";")) (if_statement "if (lVar17 == 0) {\n            return 0;\n          }" (if "if") (parenthesized_expression "(lVar17 == 0)" (( "(") (binary_expression "lVar17 == 0" (identifier "lVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (if_statement "if (*(char *)*param_4 != ';') {\n            return 0;\n          }" (if "if") (parenthesized_expression "(*(char *)*param_4 != ';')" (( "(") (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" (* "*") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (!= "!=") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")")) (compound_statement "{\n            return 0;\n          }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "pcVar16 = (char *)*param_4 + 1;" (assignment_expression "pcVar16 = (char *)*param_4 + 1" (identifier "pcVar16") (= "=") (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar39 = (int)uVar11 + 1;" (assignment_expression "uVar39 = (int)uVar11 + 1" (identifier "uVar39") (= "=") (binary_expression "(int)uVar11 + 1" (cast_expression "(int)uVar11" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar11")) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar35 = uVar11 + 1;" (assignment_expression "uVar35 = uVar11 + 1" (identifier "uVar35") (= "=") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_4 = (ulong)pcVar16;" (assignment_expression "*param_4 = (ulong)pcVar16" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(ulong)pcVar16" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pcVar16"))) (; ";")) (if_statement "if (uVar11 == uVar7) break;" (if "if") (parenthesized_expression "(uVar11 == uVar7)" (( "(") (binary_expression "uVar11 == uVar7" (identifier "uVar11") (== "==") (identifier "uVar7")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "cVar4 = *pcVar16;" (assignment_expression "cVar4 = *pcVar16" (identifier "cVar4") (= "=") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16"))) (; ";")) (if_statement "if (cVar4 != '0') goto LAB_00132a1e;" (if "if") (parenthesized_expression "(cVar4 != '0')" (( "(") (binary_expression "cVar4 != '0'" (identifier "cVar4") (!= "!=") (char_literal "'0'" (' "'") (character "0") (' "'"))) () ")")) (goto_statement "goto LAB_00132a1e;" (goto "goto") (statement_identifier "LAB_00132a1e") (; ";"))) (labeled_statement "LAB_00132b2f:\n          uVar14 = 0;" (statement_identifier "LAB_00132b2f") (: ":") (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";"))) (expression_statement "uVar11 = uVar35;" (assignment_expression "uVar11 = uVar35" (identifier "uVar11") (= "=") (identifier "uVar35")) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "pbVar40 = (byte *)*param_4;" (assignment_expression "pbVar40 = (byte *)*param_4" (identifier "pbVar40") (= "=") (cast_expression "(byte *)*param_4" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (expression_statement "*(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;" (assignment_expression "*(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0" (pointer_expression "*(undefined8 *)(local_f8 + (ulong)uVar39 * 8)" (* "*") (cast_expression "(undefined8 *)(local_f8 + (ulong)uVar39 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_f8 + (ulong)uVar39 * 8)" (( "(") (binary_expression "local_f8 + (ulong)uVar39 * 8" (identifier "local_f8") (+ "+") (binary_expression "(ulong)uVar39 * 8" (cast_expression "(ulong)uVar39" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar39")) (* "*") (number_literal "8"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_6 <= pbVar40) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(param_6 <= pbVar40)" (( "(") (binary_expression "param_6 <= pbVar40" (identifier "param_6") (<= "<=") (identifier "pbVar40")) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar35 = 0;" (assignment_expression "uVar35 = 0" (identifier "uVar35") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_130 = (void *)xmalloc(0x50);" (assignment_expression "local_130 = (void *)xmalloc(0x50)" (identifier "local_130") (= "=") (cast_expression "(void *)xmalloc(0x50)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(0x50)" (identifier "xmalloc") (argument_list "(0x50)" (( "(") (number_literal "0x50") () ")"))))) (; ";")) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" (identifier "pbVar34") (= "=") (cast_expression "(byte *)*param_4" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (expression_statement "bVar43 = false;" (assignment_expression "bVar43 = false" (identifier "bVar43") (= "=") (false "false")) (; ";")) (expression_statement "bVar3 = *pbVar34;" (assignment_expression "bVar3 = *pbVar34" (identifier "bVar3") (= "=") (pointer_expression "*pbVar34" (* "*") (identifier "pbVar34"))) (; ";")) (expression_statement "local_138._0_4_ = 10;" (assignment_expression "local_138._0_4_ = 10" (field_expression "local_138._0_4_" (identifier "local_138") (. ".") (field_identifier "_0_4_")) (= "=") (number_literal "10")) (; ";")) (while_statement "while (bVar3 != 0x3b) {\n      uVar39 = (int)uVar35 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }\n      if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }\n      pbVar34 = (byte *)*param_4;\n      uVar35 = (ulong)uVar39;\n      bVar3 = *pbVar34;\n    }" (while "while") (parenthesized_expression "(bVar3 != 0x3b)" (( "(") (binary_expression "bVar3 != 0x3b" (identifier "bVar3") (!= "!=") (number_literal "0x3b")) () ")")) (compound_statement "{\n      uVar39 = (int)uVar35 + 1;\n      if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }\n      if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }\n      pbVar34 = (byte *)*param_4;\n      uVar35 = (ulong)uVar39;\n      bVar3 = *pbVar34;\n    }" ({ "{") (expression_statement "uVar39 = (int)uVar35 + 1;" (assignment_expression "uVar39 = (int)uVar35 + 1" (identifier "uVar39") (= "=") (binary_expression "(int)uVar35 + 1" (cast_expression "(int)uVar35" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar35")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if ((uint)local_138 <= uVar39) {\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }" (if "if") (parenthesized_expression "((uint)local_138 <= uVar39)" (( "(") (binary_expression "(uint)local_138 <= uVar39" (cast_expression "(uint)local_138" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_138")) (<= "<=") (identifier "uVar39")) () ")")) (compound_statement "{\n        local_138._0_4_ = (uint)local_138 + 10;\n        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);\n        bVar3 = *pbVar34;\n      }" ({ "{") (expression_statement "local_138._0_4_ = (uint)local_138 + 10;" (assignment_expression "local_138._0_4_ = (uint)local_138 + 10" (field_expression "local_138._0_4_" (identifier "local_138") (. ".") (field_identifier "_0_4_")) (= "=") (binary_expression "(uint)local_138 + 10" (cast_expression "(uint)local_138" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_138")) (+ "+") (number_literal "10"))) (; ";")) (expression_statement "local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);" (assignment_expression "local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3)" (identifier "local_130") (= "=") (cast_expression "(void *)xrealloc(local_130,(ulong)(uint)local_138 << 3)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xrealloc(local_130,(ulong)(uint)local_138 << 3)" (identifier "xrealloc") (argument_list "(local_130,(ulong)(uint)local_138 << 3)" (( "(") (identifier "local_130") (, ",") (binary_expression "(ulong)(uint)local_138 << 3" (cast_expression "(ulong)(uint)local_138" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(uint)local_138" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_138"))) (<< "<<") (number_literal "3")) () ")"))))) (; ";")) (expression_statement "bVar3 = *pbVar34;" (assignment_expression "bVar3 = *pbVar34" (identifier "bVar3") (= "=") (pointer_expression "*pbVar34" (* "*") (identifier "pbVar34"))) (; ";")) (} "}"))) (if_statement "if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }\n      else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }" (if "if") (parenthesized_expression "(((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f))" (( "(") (binary_expression "((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)" (parenthesized_expression "((bVar3 == 0x24) || (bVar3 == 0x2e))" (( "(") (binary_expression "(bVar3 == 0x24) || (bVar3 == 0x2e)" (parenthesized_expression "(bVar3 == 0x24)" (( "(") (binary_expression "bVar3 == 0x24" (identifier "bVar3") (== "==") (number_literal "0x24")) () ")")) (|| "||") (parenthesized_expression "(bVar3 == 0x2e)" (( "(") (binary_expression "bVar3 == 0x2e" (identifier "bVar3") (== "==") (number_literal "0x2e")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(pbVar34[1] != 0x5f)" (( "(") (binary_expression "pbVar34[1] != 0x5f" (subscript_expression "pbVar34[1]" (identifier "pbVar34") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0x5f")) () ")"))) () ")")) (compound_statement "{\n        uVar11 = *param_4;\n        pbVar34 = (byte *)(uVar11 + 1);\n        plVar10 = (long *)((long)local_130 + uVar35 * 8);\n        *param_4 = (ulong)pbVar34;\n        *plVar10 = 0;\n        if (param_6 <= pbVar34) goto LAB_00131328;\n        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;\n        *param_4 = uVar11 + 2;\n        cVar4 = *(char *)(uVar11 + 2);\n        if (cVar4 == '\0') goto LAB_00132740;\n        *param_4 = uVar11 + 3;\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) goto LAB_00131328;\n        if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }\n        if (*(char *)*param_4 != ':') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (*(char *)*param_4 != ',') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        uVar9 = FUN_0012e630(param_4,0,param_6);\n        if (*(char *)*param_4 != ';') goto LAB_00132740;\n        *param_4 = (ulong)((char *)*param_4 + 1);\n        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);\n        *plVar10 = lVar17;\n        if (lVar17 == 0) goto LAB_00131328;\n      }" ({ "{") (expression_statement "uVar11 = *param_4;" (assignment_expression "uVar11 = *param_4" (identifier "uVar11") (= "=") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (; ";")) (expression_statement "pbVar34 = (byte *)(uVar11 + 1);" (assignment_expression "pbVar34 = (byte *)(uVar11 + 1)" (identifier "pbVar34") (= "=") (cast_expression "(byte *)(uVar11 + 1)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar11 + 1)" (( "(") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "plVar10 = (long *)((long)local_130 + uVar35 * 8);" (assignment_expression "plVar10 = (long *)((long)local_130 + uVar35 * 8)" (identifier "plVar10") (= "=") (cast_expression "(long *)((long)local_130 + uVar35 * 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_130 + uVar35 * 8)" (( "(") (binary_expression "(long)local_130 + uVar35 * 8" (cast_expression "(long)local_130" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_130")) (+ "+") (binary_expression "uVar35 * 8" (identifier "uVar35") (* "*") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "*param_4 = (ulong)pbVar34;" (assignment_expression "*param_4 = (ulong)pbVar34" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(ulong)pbVar34" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pbVar34"))) (; ";")) (expression_statement "*plVar10 = 0;" (assignment_expression "*plVar10 = 0" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_6 <= pbVar34) goto LAB_00131328;" (if "if") (parenthesized_expression "(param_6 <= pbVar34)" (( "(") (binary_expression "param_6 <= pbVar34" (identifier "param_6") (<= "<=") (identifier "pbVar34")) () ")")) (goto_statement "goto LAB_00131328;" (goto "goto") (statement_identifier "LAB_00131328") (; ";"))) (if_statement "if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;" (if "if") (parenthesized_expression "(*(char *)(uVar11 + 1) != 'v')" (( "(") (binary_expression "*(char *)(uVar11 + 1) != 'v'" (pointer_expression "*(char *)(uVar11 + 1)" (* "*") (cast_expression "(char *)(uVar11 + 1)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar11 + 1)" (( "(") (binary_expression "uVar11 + 1" (identifier "uVar11") (+ "+") (number_literal "1")) () ")")))) (!= "!=") (char_literal "'v'" (' "'") (character "v") (' "'"))) () ")")) (goto_statement "goto LAB_00132740;" (goto "goto") (statement_identifier "LAB_00132740") (; ";"))) (expression_statement "*param_4 = uVar11 + 2;" (assignment_expression "*param_4 = uVar11 + 2" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (binary_expression "uVar11 + 2" (identifier "uVar11") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "cVar4 = *(char *)(uVar11 + 2);" (assignment_expression "cVar4 = *(char *)(uVar11 + 2)" (identifier "cVar4") (= "=") (pointer_expression "*(char *)(uVar11 + 2)" (* "*") (cast_expression "(char *)(uVar11 + 2)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(uVar11 + 2)" (( "(") (binary_expression "uVar11 + 2" (identifier "uVar11") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (if_statement "if (cVar4 == '\0') goto LAB_00132740;" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00132740;" (goto "goto") (statement_identifier "LAB_00132740") (; ";"))) (expression_statement "*param_4 = uVar11 + 3;" (assignment_expression "*param_4 = uVar11 + 3" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (binary_expression "uVar11 + 3" (identifier "uVar11") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "lVar17") (= "=") (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "FUN_00131020") (argument_list "(param_1,param_2,0,param_4,0,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (lVar17 == 0) goto LAB_00131328;" (if "if") (parenthesized_expression "(lVar17 == 0)" (( "(") (binary_expression "lVar17 == 0" (identifier "lVar17") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00131328;" (goto "goto") (statement_identifier "LAB_00131328") (; ";"))) (if_statement "if (cVar4 == 'b') {\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }\n        else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }" (if "if") (parenthesized_expression "(cVar4 == 'b')" (( "(") (binary_expression "cVar4 == 'b'" (identifier "cVar4") (== "==") (char_literal "'b'" (' "'") (character "b") (' "'"))) () ")")) (compound_statement "{\n          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);\n          if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }\n          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);\n        }" ({ "{") (expression_statement "puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);" (assignment_expression "puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17)" (identifier "puVar23") (= "=") (cast_expression "(undefined *)FUN_0012e0c0(param_1,lVar17)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0012e0c0(param_1,lVar17)" (identifier "FUN_0012e0c0") (argument_list "(param_1,lVar17)" (( "(") (identifier "param_1") (, ",") (identifier "lVar17") () ")"))))) (; ";")) (if_statement "if (puVar23 == (undefined *)0x0) {\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }" (if "if") (parenthesized_expression "(puVar23 == (undefined *)0x0)" (( "(") (binary_expression "puVar23 == (undefined *)0x0" (identifier "puVar23") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n            uVar14 = dcgettext(0,"unnamed $vb type",5);\n            FUN_0012e500(pbVar34,uVar14);\n            puVar23 = &DAT_00146979;\n          }" ({ "{") (expression_statement "uVar14 = dcgettext(0,"unnamed $vb type",5);" (assignment_expression "uVar14 = dcgettext(0,"unnamed $vb type",5)" (identifier "uVar14") (= "=") (call_expression "dcgettext(0,"unnamed $vb type",5)" (identifier "dcgettext") (argument_list "(0,"unnamed $vb type",5)" (( "(") (number_literal "0") (, ",") (string_literal ""unnamed $vb type"" (" """) (string_content "unnamed $vb type") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0012e500(pbVar34,uVar14);" (call_expression "FUN_0012e500(pbVar34,uVar14)" (identifier "FUN_0012e500") (argument_list "(pbVar34,uVar14)" (( "(") (identifier "pbVar34") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "puVar23 = &DAT_00146979;" (assignment_expression "puVar23 = &DAT_00146979" (identifier "puVar23") (= "=") (pointer_expression "&DAT_00146979" (& "&") (identifier "DAT_00146979"))) (; ";")) (} "}"))) (expression_statement "pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);" (assignment_expression "pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0)" (identifier "pcVar16") (= "=") (cast_expression "(char *)concat(&DAT_00146a0b,puVar23,0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "concat(&DAT_00146a0b,puVar23,0)" (identifier "concat") (argument_list "(&DAT_00146a0b,puVar23,0)" (( "(") (pointer_expression "&DAT_00146a0b" (& "&") (identifier "DAT_00146a0b")) (, ",") (identifier "puVar23") (, ",") (number_literal "0") () ")"))))) (; ";")) (} "}")) (else_clause "else {\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }" (else "else") (compound_statement "{\n          pcVar16 = "_vptr$";\n          if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }\n        }" ({ "{") (expression_statement "pcVar16 = "_vptr$";" (assignment_expression "pcVar16 = "_vptr$"" (identifier "pcVar16") (= "=") (string_literal ""_vptr$"" (" """) (string_content "_vptr$") (" """))) (; ";")) (if_statement "if (cVar4 != 'f') {\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }" (if "if") (parenthesized_expression "(cVar4 != 'f')" (( "(") (binary_expression "cVar4 != 'f'" (identifier "cVar4") (!= "!=") (char_literal "'f'" (' "'") (character "f") (' "'"))) () ")")) (compound_statement "{\n            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);\n            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";\n            FUN_0012e500(pbVar34,uVar14);\n          }" ({ "{") (expression_statement "uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);" (assignment_expression "uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5)" (identifier "uVar14") (= "=") (call_expression "dcgettext(0,"unrecognized C++ abbreviation",5)" (identifier "dcgettext") (argument_list "(0,"unrecognized C++ abbreviation",5)" (( "(") (number_literal "0") (, ",") (string_literal ""unrecognized C++ abbreviation"" (" """) (string_content "unrecognized C++ abbreviation") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "pcVar16 = "INVALID_CPLUSPLUS_ABBREV";" (assignment_expression "pcVar16 = "INVALID_CPLUSPLUS_ABBREV"" (identifier "pcVar16") (= "=") (string_literal ""INVALID_CPLUSPLUS_ABBREV"" (" """) (string_content "INVALID_CPLUSPLUS_ABBREV") (" """))) (; ";")) (expression_statement "FUN_0012e500(pbVar34,uVar14);" (call_expression "FUN_0012e500(pbVar34,uVar14)" (identifier "FUN_0012e500") (argument_list "(pbVar34,uVar14)" (( "(") (identifier "pbVar34") (, ",") (identifier "uVar14") () ")"))) (; ";")) (} "}"))) (} "}")))) (if_statement "if (*(char *)*param_4 != ':') goto LAB_00132740;" (if "if") (parenthesized_expression "(*(char *)*param_4 != ':')" (( "(") (binary_expression "*(char *)*param_4 != ':'" (pointer_expression "*(char *)*param_4" (* "*") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (!= "!=") (char_literal "':'" (' "'") (character ":") (' "'"))) () ")")) (goto_statement "goto LAB_00132740;" (goto "goto") (statement_identifier "LAB_00132740") (; ";"))) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((char *)*param_4 + 1)" (( "(") (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "uVar14 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "uVar14") (= "=") (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "FUN_00131020") (argument_list "(param_1,param_2,0,param_4,0,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (*(char *)*param_4 != ',') goto LAB_00132740;" (if "if") (parenthesized_expression "(*(char *)*param_4 != ',')" (( "(") (binary_expression "*(char *)*param_4 != ','" (pointer_expression "*(char *)*param_4" (* "*") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (!= "!=") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (goto_statement "goto LAB_00132740;" (goto "goto") (statement_identifier "LAB_00132740") (; ";"))) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((char *)*param_4 + 1)" (( "(") (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar9 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar9 = FUN_0012e630(param_4,0,param_6)" (identifier "uVar9") (= "=") (call_expression "FUN_0012e630(param_4,0,param_6)" (identifier "FUN_0012e630") (argument_list "(param_4,0,param_6)" (( "(") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (*(char *)*param_4 != ';') goto LAB_00132740;" (if "if") (parenthesized_expression "(*(char *)*param_4 != ';')" (( "(") (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" (* "*") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (!= "!=") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")")) (goto_statement "goto LAB_00132740;" (goto "goto") (statement_identifier "LAB_00132740") (; ";"))) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((char *)*param_4 + 1)" (( "(") (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);" (assignment_expression "lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2)" (identifier "lVar17") (= "=") (call_expression "FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2)" (identifier "FUN_0012da50") (argument_list "(param_1,pcVar16,uVar14,uVar9,0,2)" (( "(") (identifier "param_1") (, ",") (identifier "pcVar16") (, ",") (identifier "uVar14") (, ",") (identifier "uVar9") (, ",") (number_literal "0") (, ",") (number_literal "2") () ")")))) (; ";")) (expression_statement "*plVar10 = lVar17;" (assignment_expression "*plVar10 = lVar17" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (= "=") (identifier "lVar17")) (; ";")) (if_statement "if (lVar17 == 0) goto LAB_00131328;" (if "if") (parenthesized_expression "(lVar17 == 0)" (( "(") (binary_expression "lVar17 == 0" (identifier "lVar17") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00131328;" (goto "goto") (statement_identifier "LAB_00131328") (; ";"))) (} "}")) (else_clause "else {\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }" (else "else") (compound_statement "{\n        pcVar16 = strchr((char *)pbVar34,0x3a);\n        if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }\n        pbVar34 = (byte *)*param_4;\n        if (pcVar16[1] == ':') break;\n        if (param_6 <= pbVar34) {\n          return 0;\n        }\n        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);\n        *param_4 = (ulong)(pcVar16 + 1);\n        if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }\n        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);\n        pcVar16 = (char *)*param_4;\n        if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }\n      }" ({ "{") (expression_statement "pcVar16 = strchr((char *)pbVar34,0x3a);" (assignment_expression "pcVar16 = strchr((char *)pbVar34,0x3a)" (identifier "pcVar16") (= "=") (call_expression "strchr((char *)pbVar34,0x3a)" (identifier "strchr") (argument_list "((char *)pbVar34,0x3a)" (( "(") (cast_expression "(char *)pbVar34" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar34")) (, ",") (number_literal "0x3a") () ")")))) (; ";")) (if_statement "if (pcVar16 == (char *)0x0) {\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }" (if "if") (parenthesized_expression "(pcVar16 == (char *)0x0)" (( "(") (binary_expression "pcVar16 == (char *)0x0" (identifier "pcVar16") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          FUN_0012e570(pbVar40);\n          free(local_130);\n          return 0;\n        }" ({ "{") (expression_statement "FUN_0012e570(pbVar40);" (call_expression "FUN_0012e570(pbVar40)" (identifier "FUN_0012e570") (argument_list "(pbVar40)" (( "(") (identifier "pbVar40") () ")"))) (; ";")) (expression_statement "free(local_130);" (call_expression "free(local_130)" (identifier "free") (argument_list "(local_130)" (( "(") (identifier "local_130") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" (identifier "pbVar34") (= "=") (cast_expression "(byte *)*param_4" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (if_statement "if (pcVar16[1] == ':') break;" (if "if") (parenthesized_expression "(pcVar16[1] == ':')" (( "(") (binary_expression "pcVar16[1] == ':'" (subscript_expression "pcVar16[1]" (identifier "pcVar16") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "':'" (' "'") (character ":") (' "'"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (if_statement "if (param_6 <= pbVar34) {\n          return 0;\n        }" (if "if") (parenthesized_expression "(param_6 <= pbVar34)" (( "(") (binary_expression "param_6 <= pbVar34" (identifier "param_6") (<= "<=") (identifier "pbVar34")) () ")")) (compound_statement "{\n          return 0;\n        }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);" (assignment_expression "pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34)" (identifier "pvVar12") (= "=") (cast_expression "(void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34)" (identifier "FUN_0012e600") (argument_list "(pbVar34,(long)pcVar16 - (long)pbVar34)" (( "(") (identifier "pbVar34") (, ",") (binary_expression "(long)pcVar16 - (long)pbVar34" (cast_expression "(long)pcVar16" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar16")) (- "-") (cast_expression "(long)pbVar34" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pbVar34"))) () ")"))))) (; ";")) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pcVar16 + 1)" (( "(") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (pcVar16[1] == '/') {\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }\n        else {\n          local_120 = 0;\n        }" (if "if") (parenthesized_expression "(pcVar16[1] == '/')" (( "(") (binary_expression "pcVar16[1] == '/'" (subscript_expression "pcVar16[1]" (identifier "pcVar16") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'/'" (' "'") (character "/") (' "'"))) () ")")) (compound_statement "{\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }\nLAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);\n        }" ({ "{") (expression_statement "pcVar15 = pcVar16 + 2;" (assignment_expression "pcVar15 = pcVar16 + 2" (identifier "pcVar15") (= "=") (binary_expression "pcVar16 + 2" (identifier "pcVar16") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*param_4 = (ulong)pcVar15;" (assignment_expression "*param_4 = (ulong)pcVar15" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(ulong)pcVar15" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pcVar15"))) (; ";")) (expression_statement "cVar4 = pcVar16[2];" (assignment_expression "cVar4 = pcVar16[2]" (identifier "cVar4") (= "=") (subscript_expression "pcVar16[2]" (identifier "pcVar16") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if (cVar4 == '0') {\n            local_120 = 2;\n          }\n          else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }" (if "if") (parenthesized_expression "(cVar4 == '0')" (( "(") (binary_expression "cVar4 == '0'" (identifier "cVar4") (== "==") (char_literal "'0'" (' "'") (character "0") (' "'"))) () ")")) (compound_statement "{\n            local_120 = 2;\n          }" ({ "{") (expression_statement "local_120 = 2;" (assignment_expression "local_120 = 2" (identifier "local_120") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else {\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }" (else "else") (compound_statement "{\n            if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }\n            uVar14 = dcgettext(0,"unknown visibility character for field",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            local_120 = 0;\n          }" ({ "{") (if_statement "if (cVar4 < '1') {\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }\n            else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }" (if "if") (parenthesized_expression "(cVar4 < '1')" (( "(") (binary_expression "cVar4 < '1'" (identifier "cVar4") (< "<") (char_literal "'1'" (' "'") (character "1") (' "'"))) () ")")) (compound_statement "{\n              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;\n            }" ({ "{") (if_statement "if (cVar4 == '\0') goto switchD_001311d2_caseD_24;" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto switchD_001311d2_caseD_24;" (goto "goto") (statement_identifier "switchD_001311d2_caseD_24") (; ";"))) (} "}")) (else_clause "else {\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }" (else "else") (compound_statement "{\n              local_120 = 1;\n              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;\n            }" ({ "{") (expression_statement "local_120 = 1;" (assignment_expression "local_120 = 1" (identifier "local_120") (= "=") (number_literal "1")) (; ";")) (if_statement "if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;" (if "if") (parenthesized_expression "((cVar4 == '1') || (local_120 = 0, cVar4 == '2'))" (( "(") (binary_expression "(cVar4 == '1') || (local_120 = 0, cVar4 == '2')" (parenthesized_expression "(cVar4 == '1')" (( "(") (binary_expression "cVar4 == '1'" (identifier "cVar4") (== "==") (char_literal "'1'" (' "'") (character "1") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(local_120 = 0, cVar4 == '2')" (( "(") (comma_expression "local_120 = 0, cVar4 == '2'" (assignment_expression "local_120 = 0" (identifier "local_120") (= "=") (number_literal "0")) (, ",") (binary_expression "cVar4 == '2'" (identifier "cVar4") (== "==") (char_literal "'2'" (' "'") (character "2") (' "'")))) () ")"))) () ")")) (goto_statement "goto LAB_00131b6d;" (goto "goto") (statement_identifier "LAB_00131b6d") (; ";"))) (} "}")))) (expression_statement "uVar14 = dcgettext(0,"unknown visibility character for field",5);" (assignment_expression "uVar14 = dcgettext(0,"unknown visibility character for field",5)" (identifier "uVar14") (= "=") (call_expression "dcgettext(0,"unknown visibility character for field",5)" (identifier "dcgettext") (argument_list "(0,"unknown visibility character for field",5)" (( "(") (number_literal "0") (, ",") (string_literal ""unknown visibility character for field"" (" """) (string_content "unknown visibility character for field") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0012e500(pbVar34,uVar14);" (call_expression "FUN_0012e500(pbVar34,uVar14)" (identifier "FUN_0012e500") (argument_list "(pbVar34,uVar14)" (( "(") (identifier "pbVar34") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "pcVar15 = (char *)*param_4;" (assignment_expression "pcVar15 = (char *)*param_4" (identifier "pcVar15") (= "=") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (expression_statement "local_120 = 0;" (assignment_expression "local_120 = 0" (identifier "local_120") (= "=") (number_literal "0")) (; ";")) (} "}")))) (labeled_statement "LAB_00131b6d:\n          *param_4 = (ulong)(pcVar15 + 1);" (statement_identifier "LAB_00131b6d") (: ":") (expression_statement "*param_4 = (ulong)(pcVar15 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar15 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pcVar15 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pcVar15 + 1)" (( "(") (binary_expression "pcVar15 + 1" (identifier "pcVar15") (+ "+") (number_literal "1")) () ")")))) (; ";"))) (} "}")) (else_clause "else {\n          local_120 = 0;\n        }" (else "else") (compound_statement "{\n          local_120 = 0;\n        }" ({ "{") (expression_statement "local_120 = 0;" (assignment_expression "local_120 = 0" (identifier "local_120") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "lVar17") (= "=") (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "FUN_00131020") (argument_list "(param_1,param_2,0,param_4,0,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (lVar17 == 0) {\n          free(pvVar12);\n          return 0;\n        }" (if "if") (parenthesized_expression "(lVar17 == 0)" (( "(") (binary_expression "lVar17 == 0" (identifier "lVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          free(pvVar12);\n          return 0;\n        }" ({ "{") (expression_statement "free(pvVar12);" (call_expression "free(pvVar12)" (identifier "free") (argument_list "(pvVar12)" (( "(") (identifier "pvVar12") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);" (assignment_expression "puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8)" (identifier "puVar19") (= "=") (cast_expression "(undefined8 *)((long)local_130 + uVar35 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_130 + uVar35 * 8)" (( "(") (binary_expression "(long)local_130 + uVar35 * 8" (cast_expression "(long)local_130" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_130")) (+ "+") (binary_expression "uVar35 * 8" (identifier "uVar35") (* "*") (number_literal "8"))) () ")")))) (; ";")) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" (identifier "pcVar16") (= "=") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (if_statement "if (*pcVar16 == ':') {\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }\n        else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }" (if "if") (parenthesized_expression "(*pcVar16 == ':')" (( "(") (binary_expression "*pcVar16 == ':'" (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) (== "==") (char_literal "':'" (' "'") (character ":") (' "'"))) () ")")) (compound_statement "{\n          pcVar16 = pcVar16 + 1;\n          *param_4 = (ulong)pcVar16;\n          pcVar15 = strchr(pcVar16,0x3b);\n          if (pcVar15 == (char *)0x0) goto LAB_00132614;\n          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);\n          *param_4 = (ulong)(pcVar15 + 1);\n          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);\n          bVar43 = true;\n          *puVar19 = uVar14;\n        }" ({ "{") (expression_statement "pcVar16 = pcVar16 + 1;" (assignment_expression "pcVar16 = pcVar16 + 1" (identifier "pcVar16") (= "=") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_4 = (ulong)pcVar16;" (assignment_expression "*param_4 = (ulong)pcVar16" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(ulong)pcVar16" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pcVar16"))) (; ";")) (expression_statement "pcVar15 = strchr(pcVar16,0x3b);" (assignment_expression "pcVar15 = strchr(pcVar16,0x3b)" (identifier "pcVar15") (= "=") (call_expression "strchr(pcVar16,0x3b)" (identifier "strchr") (argument_list "(pcVar16,0x3b)" (( "(") (identifier "pcVar16") (, ",") (number_literal "0x3b") () ")")))) (; ";")) (if_statement "if (pcVar15 == (char *)0x0) goto LAB_00132614;" (if "if") (parenthesized_expression "(pcVar15 == (char *)0x0)" (( "(") (binary_expression "pcVar15 == (char *)0x0" (identifier "pcVar15") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00132614;" (goto "goto") (statement_identifier "LAB_00132614") (; ";"))) (expression_statement "uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);" (assignment_expression "uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16)" (identifier "uVar14") (= "=") (call_expression "FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16)" (identifier "FUN_0012e600") (argument_list "(pcVar16,(long)pcVar15 - (long)pcVar16)" (( "(") (identifier "pcVar16") (, ",") (binary_expression "(long)pcVar15 - (long)pcVar16" (cast_expression "(long)pcVar15" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar15")) (- "-") (cast_expression "(long)pcVar16" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar16"))) () ")")))) (; ";")) (expression_statement "*param_4 = (ulong)(pcVar15 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar15 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pcVar15 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pcVar15 + 1)" (( "(") (binary_expression "pcVar15 + 1" (identifier "pcVar15") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);" (assignment_expression "uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14)" (identifier "uVar14") (= "=") (call_expression "FUN_0012daa0(param_1,pvVar12,lVar17,uVar14)" (identifier "FUN_0012daa0") (argument_list "(param_1,pvVar12,lVar17,uVar14)" (( "(") (identifier "param_1") (, ",") (identifier "pvVar12") (, ",") (identifier "lVar17") (, ",") (identifier "uVar14") () ")")))) (; ";")) (expression_statement "bVar43 = true;" (assignment_expression "bVar43 = true" (identifier "bVar43") (= "=") (true "true")) (; ";")) (expression_statement "*puVar19 = uVar14;" (assignment_expression "*puVar19 = uVar14" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (identifier "uVar14")) (; ";")) (} "}")) (else_clause "else {\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }" (else "else") (compound_statement "{\n          if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }\n          *param_4 = (ulong)(pcVar16 + 1);\n          lVar18 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ',') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          lVar13 = FUN_0012e630(param_4,0,param_6);\n          if (*(char *)*param_4 != ';') goto LAB_00132614;\n          *param_4 = (ulong)((char *)*param_4 + 1);\n          uVar14 = 3;\n          if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }\n          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);\n          *puVar19 = uVar14;\n        }" ({ "{") (if_statement "if (*pcVar16 != ',') {\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }" (if "if") (parenthesized_expression "(*pcVar16 != ',')" (( "(") (binary_expression "*pcVar16 != ','" (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) (!= "!=") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (compound_statement "{\nLAB_00132614:\n            FUN_0012e570(pbVar34);\n            free(pvVar12);\n            return 0;\n          }" ({ "{") (labeled_statement "LAB_00132614:\n            FUN_0012e570(pbVar34);" (statement_identifier "LAB_00132614") (: ":") (expression_statement "FUN_0012e570(pbVar34);" (call_expression "FUN_0012e570(pbVar34)" (identifier "FUN_0012e570") (argument_list "(pbVar34)" (( "(") (identifier "pbVar34") () ")"))) (; ";"))) (expression_statement "free(pvVar12);" (call_expression "free(pvVar12)" (identifier "free") (argument_list "(pvVar12)" (( "(") (identifier "pvVar12") () ")"))) (; ";")) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pcVar16 + 1)" (( "(") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "lVar18 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "lVar18 = FUN_0012e630(param_4,0,param_6)" (identifier "lVar18") (= "=") (call_expression "FUN_0012e630(param_4,0,param_6)" (identifier "FUN_0012e630") (argument_list "(param_4,0,param_6)" (( "(") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (*(char *)*param_4 != ',') goto LAB_00132614;" (if "if") (parenthesized_expression "(*(char *)*param_4 != ',')" (( "(") (binary_expression "*(char *)*param_4 != ','" (pointer_expression "*(char *)*param_4" (* "*") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (!= "!=") (char_literal "','" (' "'") (character ",") (' "'"))) () ")")) (goto_statement "goto LAB_00132614;" (goto "goto") (statement_identifier "LAB_00132614") (; ";"))) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((char *)*param_4 + 1)" (( "(") (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "lVar13 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "lVar13 = FUN_0012e630(param_4,0,param_6)" (identifier "lVar13") (= "=") (call_expression "FUN_0012e630(param_4,0,param_6)" (identifier "FUN_0012e630") (argument_list "(param_4,0,param_6)" (( "(") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (*(char *)*param_4 != ';') goto LAB_00132614;" (if "if") (parenthesized_expression "(*(char *)*param_4 != ';')" (( "(") (binary_expression "*(char *)*param_4 != ';'" (pointer_expression "*(char *)*param_4" (* "*") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (!= "!=") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")")) (goto_statement "goto LAB_00132614;" (goto "goto") (statement_identifier "LAB_00132614") (; ";"))) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((char *)*param_4 + 1)" (( "(") (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar14 = 3;" (assignment_expression "uVar14 = 3" (identifier "uVar14") (= "=") (number_literal "3")) (; ";")) (if_statement "if (lVar18 != 0 || lVar13 != 0) {\n            uVar14 = local_120;\n          }" (if "if") (parenthesized_expression "(lVar18 != 0 || lVar13 != 0)" (( "(") (binary_expression "lVar18 != 0 || lVar13 != 0" (binary_expression "lVar18 != 0" (identifier "lVar18") (!= "!=") (number_literal "0")) (|| "||") (binary_expression "lVar13 != 0" (identifier "lVar13") (!= "!=") (number_literal "0"))) () ")")) (compound_statement "{\n            uVar14 = local_120;\n          }" ({ "{") (expression_statement "uVar14 = local_120;" (assignment_expression "uVar14 = local_120" (identifier "uVar14") (= "=") (identifier "local_120")) (; ";")) (} "}"))) (expression_statement "uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);" (assignment_expression "uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14)" (identifier "uVar14") (= "=") (call_expression "FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14)" (identifier "FUN_0012da50") (argument_list "(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14)" (( "(") (identifier "param_1") (, ",") (identifier "pvVar12") (, ",") (identifier "lVar17") (, ",") (identifier "lVar18") (, ",") (identifier "lVar13") (, ",") (identifier "uVar14") () ")")))) (; ";")) (expression_statement "*puVar19 = uVar14;" (assignment_expression "*puVar19 = uVar14" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (identifier "uVar14")) (; ";")) (} "}")))) (} "}")))) (expression_statement "pbVar34 = (byte *)*param_4;" (assignment_expression "pbVar34 = (byte *)*param_4" (identifier "pbVar34") (= "=") (cast_expression "(byte *)*param_4" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (expression_statement "uVar35 = (ulong)uVar39;" (assignment_expression "uVar35 = (ulong)uVar39" (identifier "uVar35") (= "=") (cast_expression "(ulong)uVar39" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar39"))) (; ";")) (expression_statement "bVar3 = *pbVar34;" (assignment_expression "bVar3 = *pbVar34" (identifier "bVar3") (= "=") (pointer_expression "*pbVar34" (* "*") (identifier "pbVar34"))) (; ";")) (} "}"))) (expression_statement "*(undefined8 *)((long)local_130 + uVar35 * 8) = 0;" (assignment_expression "*(undefined8 *)((long)local_130 + uVar35 * 8) = 0" (pointer_expression "*(undefined8 *)((long)local_130 + uVar35 * 8)" (* "*") (cast_expression "(undefined8 *)((long)local_130 + uVar35 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_130 + uVar35 * 8)" (( "(") (binary_expression "(long)local_130 + uVar35 * 8" (cast_expression "(long)local_130" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_130")) (+ "+") (binary_expression "uVar35 * 8" (identifier "uVar35") (* "*") (number_literal "8"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_6 <= pbVar34) goto LAB_00131328;" (if "if") (parenthesized_expression "(param_6 <= pbVar34)" (( "(") (binary_expression "param_6 <= pbVar34" (identifier "param_6") (<= "<=") (identifier "pbVar34")) () ")")) (goto_statement "goto LAB_00131328;" (goto "goto") (statement_identifier "LAB_00131328") (; ";"))) (expression_statement "bVar3 = *pbVar34;" (assignment_expression "bVar3 = *pbVar34" (identifier "bVar3") (= "=") (pointer_expression "*pbVar34" (* "*") (identifier "pbVar34"))) (; ";")) (if_statement "if (bVar3 == 0x3b) {\n      local_108 = 0;\nLAB_001334bc:\n      pbVar22 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar22;\n    }\n    else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }" (if "if") (parenthesized_expression "(bVar3 == 0x3b)" (( "(") (binary_expression "bVar3 == 0x3b" (identifier "bVar3") (== "==") (number_literal "0x3b")) () ")")) (compound_statement "{\n      local_108 = 0;\nLAB_001334bc:\n      pbVar22 = pbVar34 + 1;\n      *param_4 = (ulong)pbVar22;\n    }" ({ "{") (expression_statement "local_108 = 0;" (assignment_expression "local_108 = 0" (identifier "local_108") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_001334bc:\n      pbVar22 = pbVar34 + 1;" (statement_identifier "LAB_001334bc") (: ":") (expression_statement "pbVar22 = pbVar34 + 1;" (assignment_expression "pbVar22 = pbVar34 + 1" (identifier "pbVar22") (= "=") (binary_expression "pbVar34 + 1" (identifier "pbVar34") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "*param_4 = (ulong)pbVar22;" (assignment_expression "*param_4 = (ulong)pbVar22" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(ulong)pbVar22" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pbVar22"))) (; ";")) (} "}")) (else_clause "else {\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }" (else "else") (compound_statement "{\n      pbVar40 = (byte *)0x0;\n      local_128 = (void *)0x0;\n      local_108 = 0;\n      local_c4 = 0;\n      local_c8 = 0;\n      local_138 = (char *)0x0;\n      pbVar22 = pbVar34;\n      do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);\n      if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }\n      if (param_6 <= pbVar22) goto LAB_00131328;\n      pbVar34 = pbVar22;\n      if (*pbVar22 == 0x3b) goto LAB_001334bc;\n    }" ({ "{") (expression_statement "pbVar40 = (byte *)0x0;" (assignment_expression "pbVar40 = (byte *)0x0" (identifier "pbVar40") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_128 = (void *)0x0;" (assignment_expression "local_128 = (void *)0x0" (identifier "local_128") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_108 = 0;" (assignment_expression "local_108 = 0" (identifier "local_108") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_c4 = 0;" (assignment_expression "local_c4 = 0" (identifier "local_c4") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_c8 = 0;" (assignment_expression "local_c8 = 0" (identifier "local_c8") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_138 = (char *)0x0;" (assignment_expression "local_138 = (char *)0x0" (identifier "local_138") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pbVar22 = pbVar34;" (assignment_expression "pbVar22 = pbVar34" (identifier "pbVar22") (= "=") (identifier "pbVar34")) (; ";")) (do_statement "do {\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      } while (bVar3 != 0x3b);" (do "do") (compound_statement "{\n        pcVar16 = strchr((char *)pbVar22,0x3a);\n        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;\n        pcVar15 = pcVar16 + 2;\n        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }\n        local_128 = (void *)xmalloc(0x50);\n        local_ec = 0;\n        local_e8 = 10;\n        lVar17 = 0;\n        do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));\n        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;\n        if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        uVar39 = local_c8 + 1;\n        if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }\n        uVar14 = FUN_0012dae0(param_1,local_138,local_128);\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;\n        pbVar22 = (byte *)*param_4;\n        bVar3 = *pbVar22;\n        local_c8 = uVar39;\n      }" ({ "{") (expression_statement "pcVar16 = strchr((char *)pbVar22,0x3a);" (assignment_expression "pcVar16 = strchr((char *)pbVar22,0x3a)" (identifier "pcVar16") (= "=") (call_expression "strchr((char *)pbVar22,0x3a)" (identifier "strchr") (argument_list "((char *)pbVar22,0x3a)" (( "(") (cast_expression "(char *)pbVar22" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar22")) (, ",") (number_literal "0x3a") () ")")))) (; ";")) (if_statement "if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;" (if "if") (parenthesized_expression "((pcVar16 == (char *)0x0) || (pcVar16[1] != ':'))" (( "(") (binary_expression "(pcVar16 == (char *)0x0) || (pcVar16[1] != ':')" (parenthesized_expression "(pcVar16 == (char *)0x0)" (( "(") (binary_expression "pcVar16 == (char *)0x0" (identifier "pcVar16") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(pcVar16[1] != ':')" (( "(") (binary_expression "pcVar16[1] != ':'" (subscript_expression "pcVar16[1]" (identifier "pcVar16") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "':'" (' "'") (character ":") (' "'"))) () ")"))) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pcVar15 = pcVar16 + 2;" (assignment_expression "pcVar15 = pcVar16 + 2" (identifier "pcVar15") (= "=") (binary_expression "pcVar16 + 2" (identifier "pcVar16") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }\n        else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }" (if "if") (parenthesized_expression "((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24))))" (( "(") (binary_expression "(bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))" (parenthesized_expression "(bVar3 == 0x6f)" (( "(") (binary_expression "bVar3 == 0x6f" (identifier "bVar3") (== "==") (number_literal "0x6f")) () ")")) (&& "&&") (parenthesized_expression "((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))" (( "(") (parenthesized_expression "(pbVar22[1] == 0x70 && (pbVar22[2] == 0x24))" (( "(") (binary_expression "pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)" (binary_expression "pbVar22[1] == 0x70" (subscript_expression "pbVar22[1]" (identifier "pbVar22") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x70")) (&& "&&") (parenthesized_expression "(pbVar22[2] == 0x24)" (( "(") (binary_expression "pbVar22[2] == 0x24" (subscript_expression "pbVar22[2]" (identifier "pbVar22") ([ "[") (number_literal "2") (] "]")) (== "==") (number_literal "0x24")) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          pcVar16 = pcVar15;\n          while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }\n          if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }\n          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);\n          *param_4 = (ulong)(pcVar16 + 1);\n        }" ({ "{") (expression_statement "*param_4 = (ulong)pcVar15;" (assignment_expression "*param_4 = (ulong)pcVar15" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(ulong)pcVar15" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pcVar15"))) (; ";")) (expression_statement "cVar4 = pcVar16[2];" (assignment_expression "cVar4 = pcVar16[2]" (identifier "cVar4") (= "=") (subscript_expression "pcVar16[2]" (identifier "pcVar16") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pcVar16 = pcVar15;" (assignment_expression "pcVar16 = pcVar15" (identifier "pcVar16") (= "=") (identifier "pcVar15")) (; ";")) (while_statement "while ((cVar4 != '.' && (cVar4 != '\0'))) {\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }" (while "while") (parenthesized_expression "((cVar4 != '.' && (cVar4 != '\0')))" (( "(") (parenthesized_expression "(cVar4 != '.' && (cVar4 != '\0'))" (( "(") (binary_expression "cVar4 != '.' && (cVar4 != '\0')" (binary_expression "cVar4 != '.'" (identifier "cVar4") (!= "!=") (char_literal "'.'" (' "'") (character ".") (' "'"))) (&& "&&") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) () ")")) (compound_statement "{\n            pcVar16 = pcVar16 + 1;\n            cVar4 = *pcVar16;\n          }" ({ "{") (expression_statement "pcVar16 = pcVar16 + 1;" (assignment_expression "pcVar16 = pcVar16 + 1" (identifier "pcVar16") (= "=") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar4 = *pcVar16;" (assignment_expression "cVar4 = *pcVar16" (identifier "cVar4") (= "=") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16"))) (; ";")) (} "}"))) (if_statement "if (cVar4 != '.') {\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }" (if "if") (parenthesized_expression "(cVar4 != '.')" (( "(") (binary_expression "cVar4 != '.'" (identifier "cVar4") (!= "!=") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (compound_statement "{\n            FUN_0012e570(pbVar34);\n            if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }\n            if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }\n            if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }\n            goto LAB_00131328;\n          }" ({ "{") (expression_statement "FUN_0012e570(pbVar34);" (call_expression "FUN_0012e570(pbVar34)" (identifier "FUN_0012e570") (argument_list "(pbVar34)" (( "(") (identifier "pbVar34") () ")"))) (; ";")) (if_statement "if (local_138 != (char *)0x0) {\nLAB_0013279c:\n              free(local_138);\n            }" (if "if") (parenthesized_expression "(local_138 != (char *)0x0)" (( "(") (binary_expression "local_138 != (char *)0x0" (identifier "local_138") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0013279c:\n              free(local_138);\n            }" ({ "{") (labeled_statement "LAB_0013279c:\n              free(local_138);" (statement_identifier "LAB_0013279c") (: ":") (expression_statement "free(local_138);" (call_expression "free(local_138)" (identifier "free") (argument_list "(local_138)" (( "(") (identifier "local_138") () ")"))) (; ";"))) (} "}"))) (if_statement "if (local_128 != (void *)0x0) {\nLAB_00132d1b:\n              free(local_128);\n            }" (if "if") (parenthesized_expression "(local_128 != (void *)0x0)" (( "(") (binary_expression "local_128 != (void *)0x0" (identifier "local_128") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00132d1b:\n              free(local_128);\n            }" ({ "{") (labeled_statement "LAB_00132d1b:\n              free(local_128);" (statement_identifier "LAB_00132d1b") (: ":") (expression_statement "free(local_128);" (call_expression "free(local_128)" (identifier "free") (argument_list "(local_128)" (( "(") (identifier "local_128") () ")"))) (; ";"))) (} "}"))) (if_statement "if (pbVar40 != (byte *)0x0) {\n              free(pbVar40);\n            }" (if "if") (parenthesized_expression "(pbVar40 != (byte *)0x0)" (( "(") (binary_expression "pbVar40 != (byte *)0x0" (identifier "pbVar40") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              free(pbVar40);\n            }" ({ "{") (expression_statement "free(pbVar40);" (call_expression "free(pbVar40)" (identifier "free") (argument_list "(pbVar40)" (( "(") (identifier "pbVar40") () ")"))) (; ";")) (} "}"))) (goto_statement "goto LAB_00131328;" (goto "goto") (statement_identifier "LAB_00131328") (; ";")) (} "}"))) (expression_statement "local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);" (assignment_expression "local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15)" (identifier "local_138") (= "=") (cast_expression "(char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15)" (identifier "FUN_0012e600") (argument_list "(pcVar15,(long)pcVar16 - (long)pcVar15)" (( "(") (identifier "pcVar15") (, ",") (binary_expression "(long)pcVar16 - (long)pcVar15" (cast_expression "(long)pcVar16" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar16")) (- "-") (cast_expression "(long)pcVar15" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar15"))) () ")"))))) (; ";")) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pcVar16 + 1)" (( "(") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }" (else "else") (compound_statement "{\n          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);\n          *param_4 = (ulong)pcVar15;\n        }" ({ "{") (expression_statement "local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);" (assignment_expression "local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22)" (identifier "local_138") (= "=") (cast_expression "(char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22)" (identifier "FUN_0012e600") (argument_list "(pbVar22,(int)pcVar16 - (int)pbVar22)" (( "(") (identifier "pbVar22") (, ",") (binary_expression "(int)pcVar16 - (int)pbVar22" (cast_expression "(int)pcVar16" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar16")) (- "-") (cast_expression "(int)pbVar22" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pbVar22"))) () ")"))))) (; ";")) (expression_statement "*param_4 = (ulong)pcVar15;" (assignment_expression "*param_4 = (ulong)pcVar15" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(ulong)pcVar15" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pcVar15"))) (; ";")) (} "}")))) (expression_statement "local_128 = (void *)xmalloc(0x50);" (assignment_expression "local_128 = (void *)xmalloc(0x50)" (identifier "local_128") (= "=") (cast_expression "(void *)xmalloc(0x50)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(0x50)" (identifier "xmalloc") (argument_list "(0x50)" (( "(") (number_literal "0x50") () ")"))))) (; ";")) (expression_statement "local_ec = 0;" (assignment_expression "local_ec = 0" (identifier "local_ec") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_e8 = 10;" (assignment_expression "local_e8 = 10" (identifier "local_e8") (= "=") (number_literal "10")) (; ";")) (expression_statement "lVar17 = 0;" (assignment_expression "lVar17 = 0" (identifier "lVar17") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));" (do "do") (compound_statement "{\n          if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }\n          pcVar16 = (char *)*param_4;\nLAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);\n          pcVar16 = strchr(pcVar16 + 1,0x3b);\n          if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }\n          iVar5 = FUN_0012e080(param_1,lVar17);\n          bVar41 = false;\n          if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }\n          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);\n          *param_4 = (ulong)(pcVar16 + 1);\n          cVar4 = pcVar16[1];\n          if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }\n          pcVar15 = pcVar16 + 2;\n          *param_4 = (ulong)pcVar15;\n          cVar4 = pcVar16[2];\n          switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }\n          pbVar22 = pbVar40;\n          if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }\n          uVar7 = local_ec + 1;\n          if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }\n          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);\n          if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }\n          if (lVar17 == 0) goto LAB_00132793;\n          pcVar16 = (char *)*param_4;\n        }" ({ "{") (if_statement "if (lVar17 == 0) {\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }" (if "if") (parenthesized_expression "(lVar17 == 0)" (( "(") (binary_expression "lVar17 == 0" (identifier "lVar17") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n            lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n            if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }\nLAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;\n            goto LAB_0013279c;\n          }" ({ "{") (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "lVar17") (= "=") (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "FUN_00131020") (argument_list "(param_1,param_2,0,param_4,0,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (lVar17 != 0) {\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }" (if "if") (parenthesized_expression "(lVar17 != 0)" (( "(") (binary_expression "lVar17 != 0" (identifier "lVar17") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n              pcVar16 = (char *)*param_4;\n              if (*pcVar16 == ':') goto LAB_00131d3f;\n              goto LAB_00132781;\n            }" ({ "{") (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" (identifier "pcVar16") (= "=") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (if_statement "if (*pcVar16 == ':') goto LAB_00131d3f;" (if "if") (parenthesized_expression "(*pcVar16 == ':')" (( "(") (binary_expression "*pcVar16 == ':'" (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) (== "==") (char_literal "':'" (' "'") (character ":") (' "'"))) () ")")) (goto_statement "goto LAB_00131d3f;" (goto "goto") (statement_identifier "LAB_00131d3f") (; ";"))) (goto_statement "goto LAB_00132781;" (goto "goto") (statement_identifier "LAB_00132781") (; ";")) (} "}"))) (labeled_statement "LAB_00132793:\n            if (local_138 == (char *)0x0) goto LAB_00132d1b;" (statement_identifier "LAB_00132793") (: ":") (if_statement "if (local_138 == (char *)0x0) goto LAB_00132d1b;" (if "if") (parenthesized_expression "(local_138 == (char *)0x0)" (( "(") (binary_expression "local_138 == (char *)0x0" (identifier "local_138") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00132d1b;" (goto "goto") (statement_identifier "LAB_00132d1b") (; ";")))) (goto_statement "goto LAB_0013279c;" (goto "goto") (statement_identifier "LAB_0013279c") (; ";")) (} "}"))) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" (identifier "pcVar16") (= "=") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (labeled_statement "LAB_00131d3f:\n          *param_4 = (ulong)(pcVar16 + 1);" (statement_identifier "LAB_00131d3f") (: ":") (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pcVar16 + 1)" (( "(") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1")) () ")")))) (; ";"))) (expression_statement "pcVar16 = strchr(pcVar16 + 1,0x3b);" (assignment_expression "pcVar16 = strchr(pcVar16 + 1,0x3b)" (identifier "pcVar16") (= "=") (call_expression "strchr(pcVar16 + 1,0x3b)" (identifier "strchr") (argument_list "(pcVar16 + 1,0x3b)" (( "(") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1")) (, ",") (number_literal "0x3b") () ")")))) (; ";")) (if_statement "if (pcVar16 == (char *)0x0) {\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }" (if "if") (parenthesized_expression "(pcVar16 == (char *)0x0)" (( "(") (binary_expression "pcVar16 == (char *)0x0" (identifier "pcVar16") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_00132781:\n            FUN_0012e570(pbVar34);\n            goto LAB_00132793;\n          }" ({ "{") (labeled_statement "LAB_00132781:\n            FUN_0012e570(pbVar34);" (statement_identifier "LAB_00132781") (: ":") (expression_statement "FUN_0012e570(pbVar34);" (call_expression "FUN_0012e570(pbVar34)" (identifier "FUN_0012e570") (argument_list "(pbVar34)" (( "(") (identifier "pbVar34") () ")"))) (; ";"))) (goto_statement "goto LAB_00132793;" (goto "goto") (statement_identifier "LAB_00132793") (; ";")) (} "}"))) (expression_statement "iVar5 = FUN_0012e080(param_1,lVar17);" (assignment_expression "iVar5 = FUN_0012e080(param_1,lVar17)" (identifier "iVar5") (= "=") (call_expression "FUN_0012e080(param_1,lVar17)" (identifier "FUN_0012e080") (argument_list "(param_1,lVar17)" (( "(") (identifier "param_1") (, ",") (identifier "lVar17") () ")")))) (; ";")) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" (identifier "bVar41") (= "=") (false "false")) (; ";")) (if_statement "if (iVar5 == 0x13) {\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }" (if "if") (parenthesized_expression "(iVar5 == 0x13)" (( "(") (binary_expression "iVar5 == 0x13" (identifier "iVar5") (== "==") (number_literal "0x13")) () ")")) (compound_statement "{\n            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);\n            bVar41 = lVar18 == 0;\n          }" ({ "{") (expression_statement "lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);" (assignment_expression "lVar18 = FUN_0012e1b0(param_1,lVar17,local_80)" (identifier "lVar18") (= "=") (call_expression "FUN_0012e1b0(param_1,lVar17,local_80)" (identifier "FUN_0012e1b0") (argument_list "(param_1,lVar17,local_80)" (( "(") (identifier "param_1") (, ",") (identifier "lVar17") (, ",") (identifier "local_80") () ")")))) (; ";")) (expression_statement "bVar41 = lVar18 == 0;" (assignment_expression "bVar41 = lVar18 == 0" (identifier "bVar41") (= "=") (binary_expression "lVar18 == 0" (identifier "lVar18") (== "==") (number_literal "0"))) (; ";")) (} "}"))) (expression_statement "pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);" (assignment_expression "pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4)" (identifier "pbVar40") (= "=") (cast_expression "(byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0012e600(*param_4,(long)pcVar16 - *param_4)" (identifier "FUN_0012e600") (argument_list "(*param_4,(long)pcVar16 - *param_4)" (( "(") (pointer_expression "*param_4" (* "*") (identifier "param_4")) (, ",") (binary_expression "(long)pcVar16 - *param_4" (cast_expression "(long)pcVar16" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar16")) (- "-") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) () ")"))))) (; ";")) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pcVar16 + 1)" (( "(") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "cVar4 = pcVar16[1];" (assignment_expression "cVar4 = pcVar16[1]" (identifier "cVar4") (= "=") (subscript_expression "pcVar16[1]" (identifier "pcVar16") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (cVar4 == '0') {\n            local_e4 = 2;\n          }\n          else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }" (if "if") (parenthesized_expression "(cVar4 == '0')" (( "(") (binary_expression "cVar4 == '0'" (identifier "cVar4") (== "==") (char_literal "'0'" (' "'") (character "0") (' "'"))) () ")")) (compound_statement "{\n            local_e4 = 2;\n          }" ({ "{") (expression_statement "local_e4 = 2;" (assignment_expression "local_e4 = 2" (identifier "local_e4") (= "=") (number_literal "2")) (; ";")) (} "}")) (else_clause "else if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }" (else "else") (if_statement "if (cVar4 == '1') {\n            local_e4 = 1;\n          }\n          else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }" (if "if") (parenthesized_expression "(cVar4 == '1')" (( "(") (binary_expression "cVar4 == '1'" (identifier "cVar4") (== "==") (char_literal "'1'" (' "'") (character "1") (' "'"))) () ")")) (compound_statement "{\n            local_e4 = 1;\n          }" ({ "{") (expression_statement "local_e4 = 1;" (assignment_expression "local_e4 = 1" (identifier "local_e4") (= "=") (number_literal "1")) (; ";")) (} "}")) (else_clause "else {\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }" (else "else") (compound_statement "{\n            if (cVar4 == '\0') goto LAB_00132781;\n            local_e4 = 0;\n          }" ({ "{") (if_statement "if (cVar4 == '\0') goto LAB_00132781;" (if "if") (parenthesized_expression "(cVar4 == '\0')" (( "(") (binary_expression "cVar4 == '\0'" (identifier "cVar4") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00132781;" (goto "goto") (statement_identifier "LAB_00132781") (; ";"))) (expression_statement "local_e4 = 0;" (assignment_expression "local_e4 = 0" (identifier "local_e4") (= "=") (number_literal "0")) (; ";")) (} "}")))))) (expression_statement "pcVar15 = pcVar16 + 2;" (assignment_expression "pcVar15 = pcVar16 + 2" (identifier "pcVar15") (= "=") (binary_expression "pcVar16 + 2" (identifier "pcVar16") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*param_4 = (ulong)pcVar15;" (assignment_expression "*param_4 = (ulong)pcVar15" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(ulong)pcVar15" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pcVar15"))) (; ";")) (expression_statement "cVar4 = pcVar16[2];" (assignment_expression "cVar4 = pcVar16[2]" (identifier "cVar4") (= "=") (subscript_expression "pcVar16[2]" (identifier "pcVar16") ([ "[") (number_literal "2") (] "]"))) (; ";")) (switch_statement "switch(cVar4) {\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }" (switch "switch") (parenthesized_expression "(cVar4)" (( "(") (identifier "cVar4") () ")")) (compound_statement "{\n          case '*':\n          case '.':\n          case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;\n          default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;\n          case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;\n          case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;\n          case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n          }" ({ "{") (case_statement "case '*':" (case "case") (char_literal "'*'" (' "'") (character "*") (' "'")) (: ":")) (case_statement "case '.':" (case "case") (char_literal "'.'" (' "'") (character ".") (' "'")) (: ":")) (case_statement "case '?':\n            iVar5 = 0;\n            local_f0 = 0;\n            break;" (case "case") (char_literal "'?'" (' "'") (character "?") (' "'")) (: ":") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" (identifier "local_f0") (= "=") (number_literal "0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n            uVar14 = dcgettext(0,"const/volatile indicator missing",5);\n            FUN_0012e500(pbVar34,uVar14);\n            pcVar15 = (char *)*param_4;\n            iVar5 = 0;\n            local_f0 = 0;\n            cVar4 = *pcVar15;\n            break;" (default "default") (: ":") (expression_statement "uVar14 = dcgettext(0,"const/volatile indicator missing",5);" (assignment_expression "uVar14 = dcgettext(0,"const/volatile indicator missing",5)" (identifier "uVar14") (= "=") (call_expression "dcgettext(0,"const/volatile indicator missing",5)" (identifier "dcgettext") (argument_list "(0,"const/volatile indicator missing",5)" (( "(") (number_literal "0") (, ",") (string_literal ""const/volatile indicator missing"" (" """) (string_content "const/volatile indicator missing") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0012e500(pbVar34,uVar14);" (call_expression "FUN_0012e500(pbVar34,uVar14)" (identifier "FUN_0012e500") (argument_list "(pbVar34,uVar14)" (( "(") (identifier "pbVar34") (, ",") (identifier "uVar14") () ")"))) (; ";")) (expression_statement "pcVar15 = (char *)*param_4;" (assignment_expression "pcVar15 = (char *)*param_4" (identifier "pcVar15") (= "=") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" (identifier "local_f0") (= "=") (number_literal "0")) (; ";")) (expression_statement "cVar4 = *pcVar15;" (assignment_expression "cVar4 = *pcVar15" (identifier "cVar4") (= "=") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'A':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;" (case "case") (char_literal "'A'" (' "'") (character "A") (' "'")) (: ":") (expression_statement "pcVar15 = pcVar16 + 3;" (assignment_expression "pcVar15 = pcVar16 + 3" (identifier "pcVar15") (= "=") (binary_expression "pcVar16 + 3" (identifier "pcVar16") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_4 = (ulong)pcVar15;" (assignment_expression "*param_4 = (ulong)pcVar15" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(ulong)pcVar15" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pcVar15"))) (; ";")) (expression_statement "cVar4 = pcVar16[3];" (assignment_expression "cVar4 = pcVar16[3]" (identifier "cVar4") (= "=") (subscript_expression "pcVar16[3]" (identifier "pcVar16") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" (identifier "local_f0") (= "=") (number_literal "0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'B':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 0;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 1;\n            break;" (case "case") (char_literal "'B'" (' "'") (character "B") (' "'")) (: ":") (expression_statement "pcVar15 = pcVar16 + 3;" (assignment_expression "pcVar15 = pcVar16 + 3" (identifier "pcVar15") (= "=") (binary_expression "pcVar16 + 3" (identifier "pcVar16") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_4 = (ulong)pcVar15;" (assignment_expression "*param_4 = (ulong)pcVar15" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(ulong)pcVar15" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pcVar15"))) (; ";")) (expression_statement "cVar4 = pcVar16[3];" (assignment_expression "cVar4 = pcVar16[3]" (identifier "cVar4") (= "=") (subscript_expression "pcVar16[3]" (identifier "pcVar16") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_f0 = 1;" (assignment_expression "local_f0 = 1" (identifier "local_f0") (= "=") (number_literal "1")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'C':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];\n            local_f0 = 0;\n            break;" (case "case") (char_literal "'C'" (' "'") (character "C") (' "'")) (: ":") (expression_statement "pcVar15 = pcVar16 + 3;" (assignment_expression "pcVar15 = pcVar16 + 3" (identifier "pcVar15") (= "=") (binary_expression "pcVar16 + 3" (identifier "pcVar16") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (; ";")) (expression_statement "*param_4 = (ulong)pcVar15;" (assignment_expression "*param_4 = (ulong)pcVar15" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(ulong)pcVar15" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pcVar15"))) (; ";")) (expression_statement "cVar4 = pcVar16[3];" (assignment_expression "cVar4 = pcVar16[3]" (identifier "cVar4") (= "=") (subscript_expression "pcVar16[3]" (identifier "pcVar16") ([ "[") (number_literal "3") (] "]"))) (; ";")) (expression_statement "local_f0 = 0;" (assignment_expression "local_f0 = 0" (identifier "local_f0") (= "=") (number_literal "0")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'D':\n            pcVar15 = pcVar16 + 3;\n            iVar5 = 1;\n            local_f0 = 1;\n            *param_4 = (ulong)pcVar15;\n            cVar4 = pcVar16[3];" (case "case") (char_literal "'D'" (' "'") (character "D") (' "'")) (: ":") (expression_statement "pcVar15 = pcVar16 + 3;" (assignment_expression "pcVar15 = pcVar16 + 3" (identifier "pcVar15") (= "=") (binary_expression "pcVar16 + 3" (identifier "pcVar16") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (; ";")) (expression_statement "local_f0 = 1;" (assignment_expression "local_f0 = 1" (identifier "local_f0") (= "=") (number_literal "1")) (; ";")) (expression_statement "*param_4 = (ulong)pcVar15;" (assignment_expression "*param_4 = (ulong)pcVar15" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(ulong)pcVar15" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pcVar15"))) (; ";")) (expression_statement "cVar4 = pcVar16[3];" (assignment_expression "cVar4 = pcVar16[3]" (identifier "cVar4") (= "=") (subscript_expression "pcVar16[3]" (identifier "pcVar16") ([ "[") (number_literal "3") (] "]"))) (; ";"))) (} "}"))) (expression_statement "pbVar22 = pbVar40;" (assignment_expression "pbVar22 = pbVar40" (identifier "pbVar22") (= "=") (identifier "pbVar40")) (; ";")) (if_statement "if (cVar4 == '.') {\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }\n          else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }" (if "if") (parenthesized_expression "(cVar4 == '.')" (( "(") (binary_expression "cVar4 == '.'" (identifier "cVar4") (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")")) (compound_statement "{\n            bVar44 = false;\n            lVar18 = 0;\n            *param_4 = (ulong)(pcVar15 + 1);\n            local_100 = 0;\n            uVar39 = 0;\nLAB_001322ba:\n            if (bVar41) goto LAB_0013282f;\n          }" ({ "{") (expression_statement "bVar44 = false;" (assignment_expression "bVar44 = false" (identifier "bVar44") (= "=") (false "false")) (; ";")) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" (identifier "lVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "*param_4 = (ulong)(pcVar15 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar15 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pcVar15 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pcVar15 + 1)" (( "(") (binary_expression "pcVar15 + 1" (identifier "pcVar15") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" (identifier "local_100") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" (identifier "uVar39") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_001322ba:\n            if (bVar41) goto LAB_0013282f;" (statement_identifier "LAB_001322ba") (: ":") (if_statement "if (bVar41) goto LAB_0013282f;" (if "if") (parenthesized_expression "(bVar41)" (( "(") (identifier "bVar41") () ")")) (goto_statement "goto LAB_0013282f;" (goto "goto") (statement_identifier "LAB_0013282f") (; ";")))) (} "}")) (else_clause "else {\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }" (else "else") (compound_statement "{\n            if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }\n            *param_4 = (ulong)(pcVar15 + 1);\n            sVar20 = strlen(local_138);\n            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);\n            if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }\n            local_100 = 0;\n            lVar18 = 0;\n            uVar39 = 0;\n            bVar44 = true;\nLAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);\n            if (lVar13 == 0) goto LAB_00132793;\n            lVar17 = FUN_0012e160(param_1,lVar17);\n            if (lVar17 == 0) goto LAB_00132781;\n            bVar41 = *pbVar40 < 0x5f;\n            bVar45 = *pbVar40 == 0x5f;\n            if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a76;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);\n            bVar46 = (!bVar41 && !bVar45) == bVar41;\n            if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            bVar42 = false;\n            lVar26 = 4;\n            pbVar37 = pbVar40;\n            pbVar33 = &DAT_00146a4b;\n            do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);\n            if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }\n            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);\n            if (lVar17 == 0) goto LAB_00132793;\n          }" ({ "{") (if_statement "if (cVar4 != '?') {\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }" (if "if") (parenthesized_expression "(cVar4 != '?')" (( "(") (binary_expression "cVar4 != '?'" (identifier "cVar4") (!= "!=") (char_literal "'?'" (' "'") (character "?") (' "'"))) () ")")) (compound_statement "{\n              if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }\n              goto LAB_001322ba;\n            }" ({ "{") (if_statement "if (cVar4 == '*') {\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }\n              else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }" (if "if") (parenthesized_expression "(cVar4 == '*')" (( "(") (binary_expression "cVar4 == '*'" (identifier "cVar4") (== "==") (char_literal "'*'" (' "'") (character "*") (' "'"))) () ")")) (compound_statement "{\n                *param_4 = (ulong)(pcVar15 + 1);\n                uVar39 = FUN_0012e630(param_4,0,param_6);\n                pcVar16 = (char *)*param_4;\n                if (*pcVar16 != ';') goto LAB_00132781;\n                uVar39 = uVar39 & 0x7fffffff;\n                *param_4 = (ulong)(pcVar16 + 1);\n                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }\n              }" ({ "{") (expression_statement "*param_4 = (ulong)(pcVar15 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar15 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pcVar15 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pcVar15 + 1)" (( "(") (binary_expression "pcVar15 + 1" (identifier "pcVar15") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "uVar39 = FUN_0012e630(param_4,0,param_6);" (assignment_expression "uVar39 = FUN_0012e630(param_4,0,param_6)" (identifier "uVar39") (= "=") (call_expression "FUN_0012e630(param_4,0,param_6)" (identifier "FUN_0012e630") (argument_list "(param_4,0,param_6)" (( "(") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" (identifier "pcVar16") (= "=") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (if_statement "if (*pcVar16 != ';') goto LAB_00132781;" (if "if") (parenthesized_expression "(*pcVar16 != ';')" (( "(") (binary_expression "*pcVar16 != ';'" (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) (!= "!=") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")")) (goto_statement "goto LAB_00132781;" (goto "goto") (statement_identifier "LAB_00132781") (; ";"))) (expression_statement "uVar39 = uVar39 & 0x7fffffff;" (assignment_expression "uVar39 = uVar39 & 0x7fffffff" (identifier "uVar39") (= "=") (binary_expression "uVar39 & 0x7fffffff" (identifier "uVar39") (& "&") (number_literal "0x7fffffff"))) (; ";")) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pcVar16 + 1)" (( "(") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }\n                else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }" (if "if") (parenthesized_expression "((pcVar16[1] == ';') || (pcVar16[1] == '\0'))" (( "(") (binary_expression "(pcVar16[1] == ';') || (pcVar16[1] == '\0')" (parenthesized_expression "(pcVar16[1] == ';')" (( "(") (binary_expression "pcVar16[1] == ';'" (subscript_expression "pcVar16[1]" (identifier "pcVar16") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")")) (|| "||") (parenthesized_expression "(pcVar16[1] == '\0')" (( "(") (binary_expression "pcVar16[1] == '\0'" (subscript_expression "pcVar16[1]" (identifier "pcVar16") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n                  local_100 = 0;\n                  lVar18 = 0;\n                  bVar44 = false;\n                }" ({ "{") (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" (identifier "local_100") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" (identifier "lVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar44 = false;" (assignment_expression "bVar44 = false" (identifier "bVar44") (= "=") (false "false")) (; ";")) (} "}")) (else_clause "else {\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }" (else "else") (compound_statement "{\n                  lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n                  cVar4 = *(char *)*param_4;\n                  if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }\n                }" ({ "{") (expression_statement "lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar13 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "lVar13") (= "=") (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "FUN_00131020") (argument_list "(param_1,param_2,0,param_4,0,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (expression_statement "cVar4 = *(char *)*param_4;" (assignment_expression "cVar4 = *(char *)*param_4" (identifier "cVar4") (= "=") (pointer_expression "*(char *)*param_4" (* "*") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))))) (; ";")) (if_statement "if (cVar4 == ':') {\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }\n                  else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }" (if "if") (parenthesized_expression "(cVar4 == ':')" (( "(") (binary_expression "cVar4 == ':'" (identifier "cVar4") (== "==") (char_literal "':'" (' "'") (character ":") (' "'"))) () ")")) (compound_statement "{\n                    local_100 = 0;\n                    bVar44 = false;\n                    lVar18 = lVar13;\n                  }" ({ "{") (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" (identifier "local_100") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar44 = false;" (assignment_expression "bVar44 = false" (identifier "bVar44") (= "=") (false "false")) (; ";")) (expression_statement "lVar18 = lVar13;" (assignment_expression "lVar18 = lVar13" (identifier "lVar18") (= "=") (identifier "lVar13")) (; ";")) (} "}")) (else_clause "else {\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }" (else "else") (compound_statement "{\n                    if (cVar4 != ';') goto LAB_00132781;\n                    *param_4 = (ulong)((char *)*param_4 + 1);\n                    bVar44 = false;\n                    lVar18 = 0;\n                    local_100 = lVar13;\n                  }" ({ "{") (if_statement "if (cVar4 != ';') goto LAB_00132781;" (if "if") (parenthesized_expression "(cVar4 != ';')" (( "(") (binary_expression "cVar4 != ';'" (identifier "cVar4") (!= "!=") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")")) (goto_statement "goto LAB_00132781;" (goto "goto") (statement_identifier "LAB_00132781") (; ";"))) (expression_statement "*param_4 = (ulong)((char *)*param_4 + 1);" (assignment_expression "*param_4 = (ulong)((char *)*param_4 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)((char *)*param_4 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "((char *)*param_4 + 1)" (( "(") (binary_expression "(char *)*param_4 + 1" (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "bVar44 = false;" (assignment_expression "bVar44 = false" (identifier "bVar44") (= "=") (false "false")) (; ";")) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" (identifier "lVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_100 = lVar13;" (assignment_expression "local_100 = lVar13" (identifier "local_100") (= "=") (identifier "lVar13")) (; ";")) (} "}")))) (} "}")))) (} "}")) (else_clause "else {\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }" (else "else") (compound_statement "{\n                FUN_0012e500(pbVar34,"member function type missing");\n                bVar44 = false;\n                local_100 = 0;\n                uVar39 = 0;\n                lVar18 = 0;\n              }" ({ "{") (expression_statement "FUN_0012e500(pbVar34,"member function type missing");" (call_expression "FUN_0012e500(pbVar34,"member function type missing")" (identifier "FUN_0012e500") (argument_list "(pbVar34,"member function type missing")" (( "(") (identifier "pbVar34") (, ",") (string_literal ""member function type missing"" (" """) (string_content "member function type missing") (" """)) () ")"))) (; ";")) (expression_statement "bVar44 = false;" (assignment_expression "bVar44 = false" (identifier "bVar44") (= "=") (false "false")) (; ";")) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" (identifier "local_100") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" (identifier "uVar39") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" (identifier "lVar18") (= "=") (number_literal "0")) (; ";")) (} "}")))) (goto_statement "goto LAB_001322ba;" (goto "goto") (statement_identifier "LAB_001322ba") (; ";")) (} "}"))) (expression_statement "*param_4 = (ulong)(pcVar15 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar15 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pcVar15 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pcVar15 + 1)" (( "(") (binary_expression "pcVar15 + 1" (identifier "pcVar15") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "sVar20 = strlen(local_138);" (assignment_expression "sVar20 = strlen(local_138)" (identifier "sVar20") (= "=") (call_expression "strlen(local_138)" (identifier "strlen") (argument_list "(local_138)" (( "(") (identifier "local_138") () ")")))) (; ";")) (expression_statement "iVar27 = strncmp((char *)pbVar40,local_138,sVar20);" (assignment_expression "iVar27 = strncmp((char *)pbVar40,local_138,sVar20)" (identifier "iVar27") (= "=") (call_expression "strncmp((char *)pbVar40,local_138,sVar20)" (identifier "strncmp") (argument_list "((char *)pbVar40,local_138,sVar20)" (( "(") (cast_expression "(char *)pbVar40" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar40")) (, ",") (identifier "local_138") (, ",") (identifier "sVar20") () ")")))) (; ";")) (if_statement "if (iVar27 == 0) {\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }" (if "if") (parenthesized_expression "(iVar27 == 0)" (( "(") (binary_expression "iVar27 == 0" (identifier "iVar27") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n              local_100 = 0;\n              lVar18 = 0;\n              uVar39 = 0;\n              bVar44 = true;\n              goto LAB_001322ba;\n            }" ({ "{") (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" (identifier "local_100") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" (identifier "lVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" (identifier "uVar39") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar44 = true;" (assignment_expression "bVar44 = true" (identifier "bVar44") (= "=") (true "true")) (; ";")) (goto_statement "goto LAB_001322ba;" (goto "goto") (statement_identifier "LAB_001322ba") (; ";")) (} "}"))) (expression_statement "local_100 = 0;" (assignment_expression "local_100 = 0" (identifier "local_100") (= "=") (number_literal "0")) (; ";")) (expression_statement "lVar18 = 0;" (assignment_expression "lVar18 = 0" (identifier "lVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar39 = 0;" (assignment_expression "uVar39 = 0" (identifier "uVar39") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar44 = true;" (assignment_expression "bVar44 = true" (identifier "bVar44") (= "=") (true "true")) (; ";")) (labeled_statement "LAB_0013282f:\n            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);" (statement_identifier "LAB_0013282f") (: ":") (expression_statement "lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);" (assignment_expression "lVar13 = FUN_0012e9f0(param_1,param_2,&local_70)" (identifier "lVar13") (= "=") (call_expression "FUN_0012e9f0(param_1,param_2,&local_70)" (identifier "FUN_0012e9f0") (argument_list "(param_1,param_2,&local_70)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (pointer_expression "&local_70" (& "&") (identifier "local_70")) () ")")))) (; ";"))) (if_statement "if (lVar13 == 0) goto LAB_00132793;" (if "if") (parenthesized_expression "(lVar13 == 0)" (( "(") (binary_expression "lVar13 == 0" (identifier "lVar13") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00132793;" (goto "goto") (statement_identifier "LAB_00132793") (; ";"))) (expression_statement "lVar17 = FUN_0012e160(param_1,lVar17);" (assignment_expression "lVar17 = FUN_0012e160(param_1,lVar17)" (identifier "lVar17") (= "=") (call_expression "FUN_0012e160(param_1,lVar17)" (identifier "FUN_0012e160") (argument_list "(param_1,lVar17)" (( "(") (identifier "param_1") (, ",") (identifier "lVar17") () ")")))) (; ";")) (if_statement "if (lVar17 == 0) goto LAB_00132781;" (if "if") (parenthesized_expression "(lVar17 == 0)" (( "(") (binary_expression "lVar17 == 0" (identifier "lVar17") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00132781;" (goto "goto") (statement_identifier "LAB_00132781") (; ";"))) (expression_statement "bVar41 = *pbVar40 < 0x5f;" (assignment_expression "bVar41 = *pbVar40 < 0x5f" (identifier "bVar41") (= "=") (binary_expression "*pbVar40 < 0x5f" (pointer_expression "*pbVar40" (* "*") (identifier "pbVar40")) (< "<") (number_literal "0x5f"))) (; ";")) (expression_statement "bVar45 = *pbVar40 == 0x5f;" (assignment_expression "bVar45 = *pbVar40 == 0x5f" (identifier "bVar45") (= "=") (binary_expression "*pbVar40 == 0x5f" (pointer_expression "*pbVar40" (* "*") (identifier "pbVar40")) (== "==") (number_literal "0x5f"))) (; ";")) (if_statement "if (bVar45) {\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }" (if "if") (parenthesized_expression "(bVar45)" (( "(") (identifier "bVar45") () ")")) (compound_statement "{\n              if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }\n              bVar3 = pbVar40[2];\n              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }\nLAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;\n              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar40;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\nLAB_0013360b:\n              pbVar33 = local_78;\n              local_40 = 0;\n              pbVar37 = local_78;\n              do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);\n              if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }\nLAB_00133635:\n              FUN_0012e540(pbVar33);\nLAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }\n              goto LAB_00132793;\n            }" ({ "{") (if_statement "if (pbVar40[1] != 0x5f) {\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }" (if "if") (parenthesized_expression "(pbVar40[1] != 0x5f)" (( "(") (binary_expression "pbVar40[1] != 0x5f" (subscript_expression "pbVar40[1]" (identifier "pbVar40") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0x5f")) () ")")) (compound_statement "{\n                iVar27 = strncmp((char *)pbVar40,"__ct",4);\n                if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }\nLAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;\nLAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;\n                bVar41 = true;\nLAB_001336b5:\n                local_d8 = 0;\n                goto LAB_0013302f;\n              }" ({ "{") (expression_statement "iVar27 = strncmp((char *)pbVar40,"__ct",4);" (assignment_expression "iVar27 = strncmp((char *)pbVar40,"__ct",4)" (identifier "iVar27") (= "=") (call_expression "strncmp((char *)pbVar40,"__ct",4)" (identifier "strncmp") (argument_list "((char *)pbVar40,"__ct",4)" (( "(") (cast_expression "(char *)pbVar40" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar40")) (, ",") (string_literal ""__ct"" (" """) (string_content "__ct") (" """)) (, ",") (number_literal "4") () ")")))) (; ";")) (if_statement "if (iVar27 == 0) {\n                  bVar45 = true;\n                  bVar41 = true;\n                }\n                else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }" (if "if") (parenthesized_expression "(iVar27 == 0)" (( "(") (binary_expression "iVar27 == 0" (identifier "iVar27") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                  bVar45 = true;\n                  bVar41 = true;\n                }" ({ "{") (expression_statement "bVar45 = true;" (assignment_expression "bVar45 = true" (identifier "bVar45") (= "=") (true "true")) (; ";")) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" (identifier "bVar41") (= "=") (true "true")) (; ";")) (} "}")) (else_clause "else {\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }" (else "else") (compound_statement "{\n                  if (param_3 != (char *)0x0) goto LAB_001338f6;\n                  bVar45 = false;\n                  bVar41 = false;\n                }" ({ "{") (if_statement "if (param_3 != (char *)0x0) goto LAB_001338f6;" (if "if") (parenthesized_expression "(param_3 != (char *)0x0)" (( "(") (binary_expression "param_3 != (char *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_001338f6;" (goto "goto") (statement_identifier "LAB_001338f6") (; ";"))) (expression_statement "bVar45 = false;" (assignment_expression "bVar45 = false" (identifier "bVar45") (= "=") (false "false")) (; ";")) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" (identifier "bVar41") (= "=") (false "false")) (; ";")) (} "}")))) (labeled_statement "LAB_00133557:\n                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;" (statement_identifier "LAB_00133557") (: ":") (if_statement "if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;" (if "if") (parenthesized_expression "((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0))" (( "(") (binary_expression "(((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&\n                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)" (parenthesized_expression "(((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f))" (( "(") (binary_expression "((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)" (parenthesized_expression "((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e))" (( "(") (binary_expression "(pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)" (parenthesized_expression "(pbVar40[1] != 0x24)" (( "(") (binary_expression "pbVar40[1] != 0x24" (subscript_expression "pbVar40[1]" (identifier "pbVar40") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0x24")) () ")")) (&& "&&") (parenthesized_expression "(pbVar40[1] != 0x2e)" (( "(") (binary_expression "pbVar40[1] != 0x2e" (subscript_expression "pbVar40[1]" (identifier "pbVar40") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0x2e")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(pbVar40[2] != 0x5f)" (( "(") (binary_expression "pbVar40[2] != 0x5f" (subscript_expression "pbVar40[2]" (identifier "pbVar40") ([ "[") (number_literal "2") (] "]")) (!= "!=") (number_literal "0x5f")) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)" (( "(") (comma_expression "iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0" (assignment_expression "iVar27 = strncmp((char *)pbVar40,"__dt",4)" (identifier "iVar27") (= "=") (call_expression "strncmp((char *)pbVar40,"__dt",4)" (identifier "strncmp") (argument_list "((char *)pbVar40,"__dt",4)" (( "(") (cast_expression "(char *)pbVar40" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar40")) (, ",") (string_literal ""__dt"" (" """) (string_content "__dt") (" """)) (, ",") (number_literal "4") () ")")))) (, ",") (binary_expression "iVar27 != 0" (identifier "iVar27") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0013358b;" (goto "goto") (statement_identifier "LAB_0013358b") (; ";")))) (labeled_statement "LAB_001336a5:\n                if (pbVar40[1] == 0x5a) goto LAB_001328ca;" (statement_identifier "LAB_001336a5") (: ":") (if_statement "if (pbVar40[1] == 0x5a) goto LAB_001328ca;" (if "if") (parenthesized_expression "(pbVar40[1] == 0x5a)" (( "(") (binary_expression "pbVar40[1] == 0x5a" (subscript_expression "pbVar40[1]" (identifier "pbVar40") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x5a")) () ")")) (goto_statement "goto LAB_001328ca;" (goto "goto") (statement_identifier "LAB_001328ca") (; ";")))) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" (identifier "bVar41") (= "=") (true "true")) (; ";")) (labeled_statement "LAB_001336b5:\n                local_d8 = 0;" (statement_identifier "LAB_001336b5") (: ":") (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" (identifier "local_d8") (= "=") (number_literal "0")) (; ";"))) (goto_statement "goto LAB_0013302f;" (goto "goto") (statement_identifier "LAB_0013302f") (; ";")) (} "}"))) (expression_statement "bVar3 = pbVar40[2];" (assignment_expression "bVar3 = pbVar40[2]" (identifier "bVar3") (= "=") (subscript_expression "pbVar40[2]" (identifier "pbVar40") ([ "[") (number_literal "2") (] "]"))) (; ";")) (if_statement "if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }\n              else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }" (if "if") (parenthesized_expression "((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0))" (( "(") (binary_expression "(((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))\n                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)" (parenthesized_expression "(((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))" (( "(") (binary_expression "((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74)" (parenthesized_expression "((_sch_istable[(ulong)bVar3 * 2] & 4) == 0)" (( "(") (binary_expression "(_sch_istable[(ulong)bVar3 * 2] & 4) == 0" (parenthesized_expression "(_sch_istable[(ulong)bVar3 * 2] & 4)" (( "(") (binary_expression "_sch_istable[(ulong)bVar3 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar3 * 2]" (identifier "_sch_istable") ([ "[") (binary_expression "(ulong)bVar3 * 2" (cast_expression "(ulong)bVar3" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar3")) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(bVar3 != 0x51 && bVar3 != 0x74)" (( "(") (binary_expression "bVar3 != 0x51 && bVar3 != 0x74" (binary_expression "bVar3 != 0x51" (identifier "bVar3") (!= "!=") (number_literal "0x51")) (&& "&&") (binary_expression "bVar3 != 0x74" (identifier "bVar3") (!= "!=") (number_literal "0x74"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)" (( "(") (comma_expression "iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0" (assignment_expression "iVar27 = strncmp((char *)pbVar40,"__ct",4)" (identifier "iVar27") (= "=") (call_expression "strncmp((char *)pbVar40,"__ct",4)" (identifier "strncmp") (argument_list "((char *)pbVar40,"__ct",4)" (( "(") (cast_expression "(char *)pbVar40" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar40")) (, ",") (string_literal ""__ct"" (" """) (string_content "__ct") (" """)) (, ",") (number_literal "4") () ")")))) (, ",") (binary_expression "iVar27 != 0" (identifier "iVar27") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n                if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar45 = false;\n                bVar41 = false;\n              }" ({ "{") (if_statement "if (param_3 != (char *)0x0) {\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }" (if "if") (parenthesized_expression "(param_3 != (char *)0x0)" (( "(") (binary_expression "param_3 != (char *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);\n                  bVar45 = iVar27 == 0;\n                  bVar41 = false;\n                  goto LAB_00133557;\n                }" ({ "{") (labeled_statement "LAB_001338f6:\n                  iVar27 = strcmp(local_138,param_3);" (statement_identifier "LAB_001338f6") (: ":") (expression_statement "iVar27 = strcmp(local_138,param_3);" (assignment_expression "iVar27 = strcmp(local_138,param_3)" (identifier "iVar27") (= "=") (call_expression "strcmp(local_138,param_3)" (identifier "strcmp") (argument_list "(local_138,param_3)" (( "(") (identifier "local_138") (, ",") (identifier "param_3") () ")")))) (; ";"))) (expression_statement "bVar45 = iVar27 == 0;" (assignment_expression "bVar45 = iVar27 == 0" (identifier "bVar45") (= "=") (binary_expression "iVar27 == 0" (identifier "iVar27") (== "==") (number_literal "0"))) (; ";")) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" (identifier "bVar41") (= "=") (false "false")) (; ";")) (goto_statement "goto LAB_00133557;" (goto "goto") (statement_identifier "LAB_00133557") (; ";")) (} "}"))) (expression_statement "iVar27 = strncmp((char *)pbVar40,"__dt",4);" (assignment_expression "iVar27 = strncmp((char *)pbVar40,"__dt",4)" (identifier "iVar27") (= "=") (call_expression "strncmp((char *)pbVar40,"__dt",4)" (identifier "strncmp") (argument_list "((char *)pbVar40,"__dt",4)" (( "(") (cast_expression "(char *)pbVar40" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar40")) (, ",") (string_literal ""__dt"" (" """) (string_content "__dt") (" """)) (, ",") (number_literal "4") () ")")))) (; ";")) (if_statement "if (iVar27 == 0) goto LAB_001336a5;" (if "if") (parenthesized_expression "(iVar27 == 0)" (( "(") (binary_expression "iVar27 == 0" (identifier "iVar27") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001336a5;" (goto "goto") (statement_identifier "LAB_001336a5") (; ";"))) (expression_statement "bVar45 = false;" (assignment_expression "bVar45 = false" (identifier "bVar45") (= "=") (false "false")) (; ";")) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" (identifier "bVar41") (= "=") (false "false")) (; ";")) (} "}")) (else_clause "else {\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }" (else "else") (compound_statement "{\n                iVar27 = strncmp((char *)pbVar40,"__dt",4);\n                if (iVar27 == 0) goto LAB_001336a5;\n                bVar41 = true;\n                bVar45 = true;\n              }" ({ "{") (expression_statement "iVar27 = strncmp((char *)pbVar40,"__dt",4);" (assignment_expression "iVar27 = strncmp((char *)pbVar40,"__dt",4)" (identifier "iVar27") (= "=") (call_expression "strncmp((char *)pbVar40,"__dt",4)" (identifier "strncmp") (argument_list "((char *)pbVar40,"__dt",4)" (( "(") (cast_expression "(char *)pbVar40" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar40")) (, ",") (string_literal ""__dt"" (" """) (string_content "__dt") (" """)) (, ",") (number_literal "4") () ")")))) (; ";")) (if_statement "if (iVar27 == 0) goto LAB_001336a5;" (if "if") (parenthesized_expression "(iVar27 == 0)" (( "(") (binary_expression "iVar27 == 0" (identifier "iVar27") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_001336a5;" (goto "goto") (statement_identifier "LAB_001336a5") (; ";"))) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" (identifier "bVar41") (= "=") (true "true")) (; ";")) (expression_statement "bVar45 = true;" (assignment_expression "bVar45 = true" (identifier "bVar45") (= "=") (true "true")) (; ";")) (} "}")))) (labeled_statement "LAB_0013358b:\n              if (pbVar40[1] != 0x5a) goto LAB_00132deb;" (statement_identifier "LAB_0013358b") (: ":") (if_statement "if (pbVar40[1] != 0x5a) goto LAB_00132deb;" (if "if") (parenthesized_expression "(pbVar40[1] != 0x5a)" (( "(") (binary_expression "pbVar40[1] != 0x5a" (subscript_expression "pbVar40[1]" (identifier "pbVar40") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0x5a")) () ")")) (goto_statement "goto LAB_00132deb;" (goto "goto") (statement_identifier "LAB_00132deb") (; ";")))) (if_statement "if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;" (if "if") (parenthesized_expression "((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a))" (( "(") (binary_expression "(*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)" (parenthesized_expression "(*pbVar40 == 0x5f)" (( "(") (binary_expression "*pbVar40 == 0x5f" (pointer_expression "*pbVar40" (* "*") (identifier "pbVar40")) (== "==") (number_literal "0x5f")) () ")")) (&& "&&") (parenthesized_expression "(pbVar40[1] == 0x5a)" (( "(") (binary_expression "pbVar40[1] == 0x5a" (subscript_expression "pbVar40[1]" (identifier "pbVar40") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x5a")) () ")"))) () ")")) (goto_statement "goto LAB_00133b71;" (goto "goto") (statement_identifier "LAB_00133b71") (; ";"))) (expression_statement "local_58 = (undefined8 *)0x0;" (assignment_expression "local_58 = (undefined8 *)0x0" (identifier "local_58") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_50[0] = 0;" (assignment_expression "local_50[0] = 0" (subscript_expression "local_50[0]" (identifier "local_50") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_3c = 10;" (assignment_expression "local_3c = 10" (identifier "local_3c") (= "=") (number_literal "10")) (; ";")) (expression_statement "local_78 = pbVar40;" (assignment_expression "local_78 = pbVar40" (identifier "local_78") (= "=") (identifier "pbVar40")) (; ";")) (expression_statement "local_68 = param_1;" (assignment_expression "local_68 = param_1" (identifier "local_68") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_60 = param_2;" (assignment_expression "local_60 = param_2" (identifier "local_60") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_48 = (void *)xmalloc(0xa0);" (assignment_expression "local_48 = (void *)xmalloc(0xa0)" (identifier "local_48") (= "=") (cast_expression "(void *)xmalloc(0xa0)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(0xa0)" (identifier "xmalloc") (argument_list "(0xa0)" (( "(") (number_literal "0xa0") () ")"))))) (; ";")) (labeled_statement "LAB_0013360b:\n              pbVar33 = local_78;" (statement_identifier "LAB_0013360b") (: ":") (expression_statement "pbVar33 = local_78;" (assignment_expression "pbVar33 = local_78" (identifier "pbVar33") (= "=") (identifier "local_78")) (; ";"))) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (expression_statement "pbVar37 = local_78;" (assignment_expression "pbVar37 = local_78" (identifier "pbVar37") (= "=") (identifier "local_78")) (; ";")) (do_statement "do {\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              } while (pbVar31[1] != 0x5f);" (do "do") (compound_statement "{\n                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);\n                if (pbVar31 == (byte *)0x0) goto LAB_00133635;\n                pbVar37 = pbVar31 + 1;\n              }" ({ "{") (expression_statement "pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);" (assignment_expression "pbVar31 = (byte *)strchr((char *)pbVar37,0x5f)" (identifier "pbVar31") (= "=") (cast_expression "(byte *)strchr((char *)pbVar37,0x5f)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "strchr((char *)pbVar37,0x5f)" (identifier "strchr") (argument_list "((char *)pbVar37,0x5f)" (( "(") (cast_expression "(char *)pbVar37" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar37")) (, ",") (number_literal "0x5f") () ")"))))) (; ";")) (if_statement "if (pbVar31 == (byte *)0x0) goto LAB_00133635;" (if "if") (parenthesized_expression "(pbVar31 == (byte *)0x0)" (( "(") (binary_expression "pbVar31 == (byte *)0x0" (identifier "pbVar31") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00133635;" (goto "goto") (statement_identifier "LAB_00133635") (; ";"))) (expression_statement "pbVar37 = pbVar31 + 1;" (assignment_expression "pbVar37 = pbVar31 + 1" (identifier "pbVar37") (= "=") (binary_expression "pbVar31 + 1" (identifier "pbVar31") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(pbVar31[1] != 0x5f)" (( "(") (binary_expression "pbVar31[1] != 0x5f" (subscript_expression "pbVar31[1]" (identifier "pbVar31") ([ "[") (number_literal "1") (] "]")) (!= "!=") (number_literal "0x5f")) () ")")) (; ";")) (if_statement "if (pbVar37 != (byte *)0x0) {\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }" (if "if") (parenthesized_expression "(pbVar37 != (byte *)0x0)" (( "(") (binary_expression "pbVar37 != (byte *)0x0" (identifier "pbVar37") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                sVar20 = strspn((char *)pbVar31,"_");\n                if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }\n                goto LAB_001330d0;\n              }" ({ "{") (expression_statement "sVar20 = strspn((char *)pbVar31,"_");" (assignment_expression "sVar20 = strspn((char *)pbVar31,"_")" (identifier "sVar20") (= "=") (call_expression "strspn((char *)pbVar31,"_")" (identifier "strspn") (argument_list "((char *)pbVar31,"_")" (( "(") (cast_expression "(char *)pbVar31" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar31")) (, ",") (string_literal ""_"" (" """) (string_content "_") (" """)) () ")")))) (; ";")) (if_statement "if (2 < (uint)sVar20) {\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }" (if "if") (parenthesized_expression "(2 < (uint)sVar20)" (( "(") (binary_expression "2 < (uint)sVar20" (number_literal "2") (< "<") (cast_expression "(uint)sVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "sVar20"))) () ")")) (compound_statement "{\n                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);\n                }" ({ "{") (expression_statement "pbVar31 = pbVar31 + ((uint)sVar20 - 2);" (assignment_expression "pbVar31 = pbVar31 + ((uint)sVar20 - 2)" (identifier "pbVar31") (= "=") (binary_expression "pbVar31 + ((uint)sVar20 - 2)" (identifier "pbVar31") (+ "+") (parenthesized_expression "((uint)sVar20 - 2)" (( "(") (binary_expression "(uint)sVar20 - 2" (cast_expression "(uint)sVar20" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "sVar20")) (- "-") (number_literal "2")) () ")")))) (; ";")) (} "}"))) (goto_statement "goto LAB_001330d0;" (goto "goto") (statement_identifier "LAB_001330d0") (; ";")) (} "}"))) (labeled_statement "LAB_00133635:\n              FUN_0012e540(pbVar33);" (statement_identifier "LAB_00133635") (: ":") (expression_statement "FUN_0012e540(pbVar33);" (call_expression "FUN_0012e540(pbVar33)" (identifier "FUN_0012e540") (argument_list "(pbVar33)" (( "(") (identifier "pbVar33") () ")"))) (; ";"))) (labeled_statement "LAB_0013323f:\n              if (local_48 != (void *)0x0) {\n                free(local_48);\n              }" (statement_identifier "LAB_0013323f") (: ":") (if_statement "if (local_48 != (void *)0x0) {\n                free(local_48);\n              }" (if "if") (parenthesized_expression "(local_48 != (void *)0x0)" (( "(") (binary_expression "local_48 != (void *)0x0" (identifier "local_48") (!= "!=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                free(local_48);\n              }" ({ "{") (expression_statement "free(local_48);" (call_expression "free(local_48)" (identifier "free") (argument_list "(local_48)" (( "(") (identifier "local_48") () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_00132793;" (goto "goto") (statement_identifier "LAB_00132793") (; ";")) (} "}"))) (expression_statement "lVar26 = 4;" (assignment_expression "lVar26 = 4" (identifier "lVar26") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar37 = pbVar40;" (assignment_expression "pbVar37 = pbVar40" (identifier "pbVar37") (= "=") (identifier "pbVar40")) (; ";")) (expression_statement "pbVar33 = &DAT_00146a76;" (assignment_expression "pbVar33 = &DAT_00146a76" (identifier "pbVar33") (= "=") (pointer_expression "&DAT_00146a76" (& "&") (identifier "DAT_00146a76"))) (; ";")) (do_statement "do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar45);" (do "do") (compound_statement "{\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar41 = *pbVar37 < *pbVar33;\n              bVar45 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            }" ({ "{") (if_statement "if (lVar26 == 0) break;" (if "if") (parenthesized_expression "(lVar26 == 0)" (( "(") (binary_expression "lVar26 == 0" (identifier "lVar26") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar26 = lVar26 + -1;" (assignment_expression "lVar26 = lVar26 + -1" (identifier "lVar26") (= "=") (binary_expression "lVar26 + -1" (identifier "lVar26") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar41 = *pbVar37 < *pbVar33;" (assignment_expression "bVar41 = *pbVar37 < *pbVar33" (identifier "bVar41") (= "=") (binary_expression "*pbVar37 < *pbVar33" (pointer_expression "*pbVar37" (* "*") (identifier "pbVar37")) (< "<") (pointer_expression "*pbVar33" (* "*") (identifier "pbVar33")))) (; ";")) (expression_statement "bVar45 = *pbVar37 == *pbVar33;" (assignment_expression "bVar45 = *pbVar37 == *pbVar33" (identifier "bVar45") (= "=") (binary_expression "*pbVar37 == *pbVar33" (pointer_expression "*pbVar37" (* "*") (identifier "pbVar37")) (== "==") (pointer_expression "*pbVar33" (* "*") (identifier "pbVar33")))) (; ";")) (expression_statement "pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1" (identifier "pbVar37") (= "=") (binary_expression "pbVar37 + (ulong)bVar47 * -2 + 1" (binary_expression "pbVar37 + (ulong)bVar47 * -2" (identifier "pbVar37") (+ "+") (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar47")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1" (identifier "pbVar33") (= "=") (binary_expression "pbVar33 + (ulong)bVar47 * -2 + 1" (binary_expression "pbVar33 + (ulong)bVar47 * -2" (identifier "pbVar33") (+ "+") (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar47")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar45)" (( "(") (identifier "bVar45") () ")")) (; ";")) (expression_statement "bVar46 = (!bVar41 && !bVar45) == bVar41;" (assignment_expression "bVar46 = (!bVar41 && !bVar45) == bVar41" (identifier "bVar46") (= "=") (binary_expression "(!bVar41 && !bVar45) == bVar41" (parenthesized_expression "(!bVar41 && !bVar45)" (( "(") (binary_expression "!bVar41 && !bVar45" (unary_expression "!bVar41" (! "!") (identifier "bVar41")) (&& "&&") (unary_expression "!bVar45" (! "!") (identifier "bVar45"))) () ")")) (== "==") (identifier "bVar41"))) (; ";")) (if_statement "if (bVar46) {\n              bVar45 = true;\n              bVar41 = true;\n            }\n            else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }" (if "if") (parenthesized_expression "(bVar46)" (( "(") (identifier "bVar46") () ")")) (compound_statement "{\n              bVar45 = true;\n              bVar41 = true;\n            }" ({ "{") (expression_statement "bVar45 = true;" (assignment_expression "bVar45 = true" (identifier "bVar45") (= "=") (true "true")) (; ";")) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" (identifier "bVar41") (= "=") (true "true")) (; ";")) (} "}")) (else_clause "else if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }" (else "else") (if_statement "if (param_3 == (char *)0x0) {\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }\n            else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }" (if "if") (parenthesized_expression "(param_3 == (char *)0x0)" (( "(") (binary_expression "param_3 == (char *)0x0" (identifier "param_3") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n              bVar45 = false;\n              bVar41 = false;\n              bVar46 = true;\n            }" ({ "{") (expression_statement "bVar45 = false;" (assignment_expression "bVar45 = false" (identifier "bVar45") (= "=") (false "false")) (; ";")) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" (identifier "bVar41") (= "=") (false "false")) (; ";")) (expression_statement "bVar46 = true;" (assignment_expression "bVar46 = true" (identifier "bVar46") (= "=") (true "true")) (; ";")) (} "}")) (else_clause "else {\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }" (else "else") (compound_statement "{\n              iVar27 = strcmp(local_138,param_3);\n              bVar45 = iVar27 == 0;\n              bVar41 = false;\n              bVar46 = true;\n            }" ({ "{") (expression_statement "iVar27 = strcmp(local_138,param_3);" (assignment_expression "iVar27 = strcmp(local_138,param_3)" (identifier "iVar27") (= "=") (call_expression "strcmp(local_138,param_3)" (identifier "strcmp") (argument_list "(local_138,param_3)" (( "(") (identifier "local_138") (, ",") (identifier "param_3") () ")")))) (; ";")) (expression_statement "bVar45 = iVar27 == 0;" (assignment_expression "bVar45 = iVar27 == 0" (identifier "bVar45") (= "=") (binary_expression "iVar27 == 0" (identifier "iVar27") (== "==") (number_literal "0"))) (; ";")) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" (identifier "bVar41") (= "=") (false "false")) (; ";")) (expression_statement "bVar46 = true;" (assignment_expression "bVar46 = true" (identifier "bVar46") (= "=") (true "true")) (; ";")) (} "}")))))) (expression_statement "bVar42 = false;" (assignment_expression "bVar42 = false" (identifier "bVar42") (= "=") (false "false")) (; ";")) (expression_statement "lVar26 = 4;" (assignment_expression "lVar26 = 4" (identifier "lVar26") (= "=") (number_literal "4")) (; ";")) (expression_statement "pbVar37 = pbVar40;" (assignment_expression "pbVar37 = pbVar40" (identifier "pbVar37") (= "=") (identifier "pbVar40")) (; ";")) (expression_statement "pbVar33 = &DAT_00146a4b;" (assignment_expression "pbVar33 = &DAT_00146a4b" (identifier "pbVar33") (= "=") (pointer_expression "&DAT_00146a4b" (& "&") (identifier "DAT_00146a4b"))) (; ";")) (do_statement "do {\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            } while (bVar46);" (do "do") (compound_statement "{\n              if (lVar26 == 0) break;\n              lVar26 = lVar26 + -1;\n              bVar42 = *pbVar37 < *pbVar33;\n              bVar46 = *pbVar37 == *pbVar33;\n              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;\n              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;\n            }" ({ "{") (if_statement "if (lVar26 == 0) break;" (if "if") (parenthesized_expression "(lVar26 == 0)" (( "(") (binary_expression "lVar26 == 0" (identifier "lVar26") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar26 = lVar26 + -1;" (assignment_expression "lVar26 = lVar26 + -1" (identifier "lVar26") (= "=") (binary_expression "lVar26 + -1" (identifier "lVar26") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "bVar42 = *pbVar37 < *pbVar33;" (assignment_expression "bVar42 = *pbVar37 < *pbVar33" (identifier "bVar42") (= "=") (binary_expression "*pbVar37 < *pbVar33" (pointer_expression "*pbVar37" (* "*") (identifier "pbVar37")) (< "<") (pointer_expression "*pbVar33" (* "*") (identifier "pbVar33")))) (; ";")) (expression_statement "bVar46 = *pbVar37 == *pbVar33;" (assignment_expression "bVar46 = *pbVar37 == *pbVar33" (identifier "bVar46") (= "=") (binary_expression "*pbVar37 == *pbVar33" (pointer_expression "*pbVar37" (* "*") (identifier "pbVar37")) (== "==") (pointer_expression "*pbVar33" (* "*") (identifier "pbVar33")))) (; ";")) (expression_statement "pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1" (identifier "pbVar37") (= "=") (binary_expression "pbVar37 + (ulong)bVar47 * -2 + 1" (binary_expression "pbVar37 + (ulong)bVar47 * -2" (identifier "pbVar37") (+ "+") (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar47")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1" (identifier "pbVar33") (= "=") (binary_expression "pbVar33 + (ulong)bVar47 * -2 + 1" (binary_expression "pbVar33 + (ulong)bVar47 * -2" (identifier "pbVar33") (+ "+") (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar47")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar46)" (( "(") (identifier "bVar46") () ")")) (; ";")) (if_statement "if ((!bVar42 && !bVar46) == bVar42) {\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }\n            else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }" (if "if") (parenthesized_expression "((!bVar42 && !bVar46) == bVar42)" (( "(") (binary_expression "(!bVar42 && !bVar46) == bVar42" (parenthesized_expression "(!bVar42 && !bVar46)" (( "(") (binary_expression "!bVar42 && !bVar46" (unary_expression "!bVar42" (! "!") (identifier "bVar42")) (&& "&&") (unary_expression "!bVar46" (! "!") (identifier "bVar46"))) () ")")) (== "==") (identifier "bVar42")) () ")")) (compound_statement "{\nLAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);\n              *puVar19 = 0;\n              iVar27 = 0;\n            }" ({ "{") (labeled_statement "LAB_001328ca:\n              puVar19 = (undefined8 *)xmalloc(8);" (statement_identifier "LAB_001328ca") (: ":") (expression_statement "puVar19 = (undefined8 *)xmalloc(8);" (assignment_expression "puVar19 = (undefined8 *)xmalloc(8)" (identifier "puVar19") (= "=") (cast_expression "(undefined8 *)xmalloc(8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(8)" (identifier "xmalloc") (argument_list "(8)" (( "(") (number_literal "8") () ")"))))) (; ";"))) (expression_statement "*puVar19 = 0;" (assignment_expression "*puVar19 = 0" (pointer_expression "*puVar19" (* "*") (identifier "puVar19")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar27 = 0;" (assignment_expression "iVar27 = 0" (identifier "iVar27") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }" (else "else") (compound_statement "{\nLAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }\n              local_d8 = 0;\n              if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }\n              pcVar15 = "C";\n              pcVar16 = "V";\n              if (local_f0 == 0) {\n                pcVar15 = "";\n              }\n              if (iVar5 == 0) {\n                pcVar16 = "";\n              }\n              local_c0 = param_3;\n              if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }\n              puVar30 = (uint *)&local_68;\n              do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);\n              bVar41 = (uVar6 & 0x8080) == 0;\n              if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }\n              cVar4 = *local_138;\n              if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }\n              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;\n              sVar20 = strlen((char *)pbVar40);\n              if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }\n              sVar20 = strlen((char *)pbVar22);\n              local_d8 = sVar20 & 0xffffffff;\n              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);\n              if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }\n              strcat((char *)pbVar22,(char *)pbVar40);\n              bVar41 = false;\nLAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;\n              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }\n              local_58 = (undefined8 *)0x0;\n              local_50[0] = 0;\n              local_3c = 10;\n              local_78 = pbVar22;\n              local_68 = param_1;\n              local_60 = param_2;\n              local_48 = (void *)xmalloc(0xa0);\n              local_40 = 0;\n              if ((int)local_d8 == 0) goto LAB_0013360b;\n              pbVar31 = local_78 + local_d8;\n              pbVar33 = local_78;\nLAB_001330d0:\n              bVar3 = pbVar31[2];\n              if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }\n              pbVar37 = local_78;\n              bVar3 = *local_78;\n              if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }\n              free(local_48);\n              local_48 = (void *)0x0;\n              if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }\n              local_7c = local_50[0];\n              puVar19 = local_58;\nLAB_00133211:\n              iVar27 = local_7c;\n              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;\n            }" ({ "{") (labeled_statement "LAB_00132deb:\n              if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }" (statement_identifier "LAB_00132deb") (: ":") (if_statement "if (bVar41) {\n                bVar41 = false;\n                goto LAB_001336b5;\n              }" (if "if") (parenthesized_expression "(bVar41)" (( "(") (identifier "bVar41") () ")")) (compound_statement "{\n                bVar41 = false;\n                goto LAB_001336b5;\n              }" ({ "{") (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" (identifier "bVar41") (= "=") (false "false")) (; ";")) (goto_statement "goto LAB_001336b5;" (goto "goto") (statement_identifier "LAB_001336b5") (; ";")) (} "}")))) (expression_statement "local_d8 = 0;" (assignment_expression "local_d8 = 0" (identifier "local_d8") (= "=") (number_literal "0")) (; ";")) (if_statement "if (param_3 != (char *)0x0) {\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }" (if "if") (parenthesized_expression "(param_3 != (char *)0x0)" (( "(") (binary_expression "param_3 != (char *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                sVar20 = strlen(param_3);\n                local_d8 = sVar20 & 0xffffffff;\n              }" ({ "{") (expression_statement "sVar20 = strlen(param_3);" (assignment_expression "sVar20 = strlen(param_3)" (identifier "sVar20") (= "=") (call_expression "strlen(param_3)" (identifier "strlen") (argument_list "(param_3)" (( "(") (identifier "param_3") () ")")))) (; ";")) (expression_statement "local_d8 = sVar20 & 0xffffffff;" (assignment_expression "local_d8 = sVar20 & 0xffffffff" (identifier "local_d8") (= "=") (binary_expression "sVar20 & 0xffffffff" (identifier "sVar20") (& "&") (number_literal "0xffffffff"))) (; ";")) (} "}"))) (expression_statement "pcVar15 = "C";" (assignment_expression "pcVar15 = "C"" (identifier "pcVar15") (= "=") (string_literal ""C"" (" """) (string_content "C") (" """))) (; ";")) (expression_statement "pcVar16 = "V";" (assignment_expression "pcVar16 = "V"" (identifier "pcVar16") (= "=") (string_literal ""V"" (" """) (string_content "V") (" """))) (; ";")) (if_statement "if (local_f0 == 0) {\n                pcVar15 = "";\n              }" (if "if") (parenthesized_expression "(local_f0 == 0)" (( "(") (binary_expression "local_f0 == 0" (identifier "local_f0") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                pcVar15 = "";\n              }" ({ "{") (expression_statement "pcVar15 = "";" (assignment_expression "pcVar15 = """ (identifier "pcVar15") (= "=") (string_literal """" (" """) (" """))) (; ";")) (} "}"))) (if_statement "if (iVar5 == 0) {\n                pcVar16 = "";\n              }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                pcVar16 = "";\n              }" ({ "{") (expression_statement "pcVar16 = "";" (assignment_expression "pcVar16 = """ (identifier "pcVar16") (= "=") (string_literal """" (" """) (" """))) (; ";")) (} "}"))) (expression_statement "local_c0 = param_3;" (assignment_expression "local_c0 = param_3" (identifier "local_c0") (= "=") (identifier "param_3")) (; ";")) (if_statement "if ((int)local_d8 == 0) {\n                sprintf((char *)&local_68,"__%s%s");\n              }\n              else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }" (if "if") (parenthesized_expression "((int)local_d8 == 0)" (( "(") (binary_expression "(int)local_d8 == 0" (cast_expression "(int)local_d8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_d8")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                sprintf((char *)&local_68,"__%s%s");\n              }" ({ "{") (expression_statement "sprintf((char *)&local_68,"__%s%s");" (call_expression "sprintf((char *)&local_68,"__%s%s")" (identifier "sprintf") (argument_list "((char *)&local_68,"__%s%s")" (( "(") (cast_expression "(char *)&local_68" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_68" (& "&") (identifier "local_68"))) (, ",") (string_literal ""__%s%s"" (" """) (string_content "__%s%s") (" """)) () ")"))) (; ";")) (} "}")) (else_clause "else if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }" (else "else") (if_statement "if ((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }\n              else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }" (if "if") (parenthesized_expression "((param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0))" (( "(") (binary_expression "(param_3 == (char *)0x0) ||\n                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)" (parenthesized_expression "(param_3 == (char *)0x0)" (( "(") (binary_expression "param_3 == (char *)0x0" (identifier "param_3") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)" (( "(") (comma_expression "pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0" (assignment_expression "pcVar21 = strchr(param_3,0x3c)" (identifier "pcVar21") (= "=") (call_expression "strchr(param_3,0x3c)" (identifier "strchr") (argument_list "(param_3,0x3c)" (( "(") (identifier "param_3") (, ",") (number_literal "0x3c") () ")")))) (, ",") (binary_expression "pcVar21 == (char *)0x0" (identifier "pcVar21") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0")))) () ")"))) () ")")) (compound_statement "{\n                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);\n              }" ({ "{") (expression_statement "sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);" (call_expression "sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8)" (identifier "sprintf") (argument_list "((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8)" (( "(") (cast_expression "(char *)&local_68" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_68" (& "&") (identifier "local_68"))) (, ",") (string_literal ""__%s%s%d"" (" """) (string_content "__%s%s%d") (" """)) (, ",") (identifier "pcVar15") (, ",") (identifier "pcVar16") (, ",") (identifier "local_d8") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }" (else "else") (compound_statement "{\n                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);\n                local_d8._0_4_ = 0;\n                local_c0 = (char *)0x0;\n              }" ({ "{") (expression_statement "sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);" (call_expression "sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16)" (identifier "sprintf") (argument_list "((char *)&local_68,"__%s%s",pcVar15,pcVar16)" (( "(") (cast_expression "(char *)&local_68" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_68" (& "&") (identifier "local_68"))) (, ",") (string_literal ""__%s%s"" (" """) (string_content "__%s%s") (" """)) (, ",") (identifier "pcVar15") (, ",") (identifier "pcVar16") () ")"))) (; ";")) (expression_statement "local_d8._0_4_ = 0;" (assignment_expression "local_d8._0_4_ = 0" (field_expression "local_d8._0_4_" (identifier "local_d8") (. ".") (field_identifier "_0_4_")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_c0 = (char *)0x0;" (assignment_expression "local_c0 = (char *)0x0" (identifier "local_c0") (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))))) (expression_statement "puVar30 = (uint *)&local_68;" (assignment_expression "puVar30 = (uint *)&local_68" (identifier "puVar30") (= "=") (cast_expression "(uint *)&local_68" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_68" (& "&") (identifier "local_68")))) (; ";")) (do_statement "do {\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              } while (uVar7 == 0);" (do "do") (compound_statement "{\n                puVar29 = puVar30;\n                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;\n                uVar7 = uVar6 & 0x80808080;\n                puVar30 = puVar29 + 1;\n              }" ({ "{") (expression_statement "puVar29 = puVar30;" (assignment_expression "puVar29 = puVar30" (identifier "puVar29") (= "=") (identifier "puVar30")) (; ";")) (expression_statement "uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;" (assignment_expression "uVar6 = *puVar29 + 0xfefefeff & ~*puVar29" (identifier "uVar6") (= "=") (binary_expression "*puVar29 + 0xfefefeff & ~*puVar29" (binary_expression "*puVar29 + 0xfefefeff" (pointer_expression "*puVar29" (* "*") (identifier "puVar29")) (+ "+") (number_literal "0xfefefeff")) (& "&") (unary_expression "~*puVar29" (~ "~") (pointer_expression "*puVar29" (* "*") (identifier "puVar29"))))) (; ";")) (expression_statement "uVar7 = uVar6 & 0x80808080;" (assignment_expression "uVar7 = uVar6 & 0x80808080" (identifier "uVar7") (= "=") (binary_expression "uVar6 & 0x80808080" (identifier "uVar6") (& "&") (number_literal "0x80808080"))) (; ";")) (expression_statement "puVar30 = puVar29 + 1;" (assignment_expression "puVar30 = puVar29 + 1" (identifier "puVar30") (= "=") (binary_expression "puVar29 + 1" (identifier "puVar29") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar7 == 0)" (( "(") (binary_expression "uVar7 == 0" (identifier "uVar7") (== "==") (number_literal "0")) () ")")) (; ";")) (expression_statement "bVar41 = (uVar6 & 0x8080) == 0;" (assignment_expression "bVar41 = (uVar6 & 0x8080) == 0" (identifier "bVar41") (= "=") (binary_expression "(uVar6 & 0x8080) == 0" (parenthesized_expression "(uVar6 & 0x8080)" (( "(") (binary_expression "uVar6 & 0x8080" (identifier "uVar6") (& "&") (number_literal "0x8080")) () ")")) (== "==") (number_literal "0"))) (; ";")) (if_statement "if (bVar41) {\n                uVar7 = uVar7 >> 0x10;\n              }" (if "if") (parenthesized_expression "(bVar41)" (( "(") (identifier "bVar41") () ")")) (compound_statement "{\n                uVar7 = uVar7 >> 0x10;\n              }" ({ "{") (expression_statement "uVar7 = uVar7 >> 0x10;" (assignment_expression "uVar7 = uVar7 >> 0x10" (identifier "uVar7") (= "=") (binary_expression "uVar7 >> 0x10" (identifier "uVar7") (>> ">>") (number_literal "0x10"))) (; ";")) (} "}"))) (expression_statement "cVar4 = *local_138;" (assignment_expression "cVar4 = *local_138" (identifier "cVar4") (= "=") (pointer_expression "*local_138" (* "*") (identifier "local_138"))) (; ";")) (if_statement "if (bVar41) {\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }" (if "if") (parenthesized_expression "(bVar41)" (( "(") (identifier "bVar41") () ")")) (compound_statement "{\n                puVar30 = (uint *)((long)puVar29 + 6);\n              }" ({ "{") (expression_statement "puVar30 = (uint *)((long)puVar29 + 6);" (assignment_expression "puVar30 = (uint *)((long)puVar29 + 6)" (identifier "puVar30") (= "=") (cast_expression "(uint *)((long)puVar29 + 6)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)puVar29 + 6)" (( "(") (binary_expression "(long)puVar29 + 6" (cast_expression "(long)puVar29" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "puVar29")) (+ "+") (number_literal "6")) () ")")))) (; ";")) (} "}"))) (expression_statement "iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68;" (assignment_expression "iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68" (identifier "iVar27") (= "=") (binary_expression "(((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -\n                       (int)&local_68" (parenthesized_expression "(((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7))" (( "(") (binary_expression "((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)" (parenthesized_expression "((int)puVar30 + -3)" (( "(") (binary_expression "(int)puVar30 + -3" (cast_expression "(int)puVar30" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "puVar30")) (+ "+") (number_literal "-3")) () ")")) (- "-") (cast_expression "(uint)CARRY1((byte)uVar7,(byte)uVar7)" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (call_expression "CARRY1((byte)uVar7,(byte)uVar7)" (identifier "CARRY1") (argument_list "((byte)uVar7,(byte)uVar7)" (( "(") (cast_expression "(byte)uVar7" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar7")) (, ",") (cast_expression "(byte)uVar7" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uVar7")) () ")"))))) () ")")) (- "-") (cast_expression "(int)&local_68" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (pointer_expression "&local_68" (& "&") (identifier "local_68"))))) (; ";")) (expression_statement "sVar20 = strlen((char *)pbVar40);" (assignment_expression "sVar20 = strlen((char *)pbVar40)" (identifier "sVar20") (= "=") (call_expression "strlen((char *)pbVar40)" (identifier "strlen") (argument_list "((char *)pbVar40)" (( "(") (cast_expression "(char *)pbVar40" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar40")) () ")")))) (; ";")) (if_statement "if (bVar45) {\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }\n              else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }" (if "if") (parenthesized_expression "(bVar45)" (( "(") (identifier "bVar45") () ")")) (compound_statement "{\n                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;\n                pbVar22 = (byte *)xmalloc(iVar27);\n                *pbVar22 = 0;\n              }" ({ "{") (expression_statement "iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;" (assignment_expression "iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20" (identifier "iVar27") (= "=") (binary_expression "iVar27 + (int)local_d8 + 1 + (int)sVar20" (binary_expression "iVar27 + (int)local_d8 + 1" (binary_expression "iVar27 + (int)local_d8" (identifier "iVar27") (+ "+") (cast_expression "(int)local_d8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_d8"))) (+ "+") (number_literal "1")) (+ "+") (cast_expression "(int)sVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar20")))) (; ";")) (if_statement "if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;" (if "if") (parenthesized_expression "(((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.'))))" (( "(") (binary_expression "((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))" (parenthesized_expression "((cVar4 == 'o') && (local_138[1] == 'p'))" (( "(") (binary_expression "(cVar4 == 'o') && (local_138[1] == 'p')" (parenthesized_expression "(cVar4 == 'o')" (( "(") (binary_expression "cVar4 == 'o'" (identifier "cVar4") (== "==") (char_literal "'o'" (' "'") (character "o") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(local_138[1] == 'p')" (( "(") (binary_expression "local_138[1] == 'p'" (subscript_expression "local_138[1]" (identifier "local_138") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'p'" (' "'") (character "p") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((local_138[2] == '$' || (local_138[2] == '.')))" (( "(") (parenthesized_expression "(local_138[2] == '$' || (local_138[2] == '.'))" (( "(") (binary_expression "local_138[2] == '$' || (local_138[2] == '.')" (binary_expression "local_138[2] == '$'" (subscript_expression "local_138[2]" (identifier "local_138") ([ "[") (number_literal "2") (] "]")) (== "==") (char_literal "'$'" (' "'") (character "$") (' "'"))) (|| "||") (parenthesized_expression "(local_138[2] == '.')" (( "(") (binary_expression "local_138[2] == '.'" (subscript_expression "local_138[2]" (identifier "local_138") ([ "[") (number_literal "2") (] "]")) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00132f86;" (goto "goto") (statement_identifier "LAB_00132f86") (; ";"))) (expression_statement "pbVar22 = (byte *)xmalloc(iVar27);" (assignment_expression "pbVar22 = (byte *)xmalloc(iVar27)" (identifier "pbVar22") (= "=") (cast_expression "(byte *)xmalloc(iVar27)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(iVar27)" (identifier "xmalloc") (argument_list "(iVar27)" (( "(") (identifier "iVar27") () ")"))))) (; ";")) (expression_statement "*pbVar22 = 0;" (assignment_expression "*pbVar22 = 0" (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }" (else "else") (compound_statement "{\n                lVar26 = -1;\n                pcVar16 = local_138;\n                do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');\n                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;\n                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }\n              }" ({ "{") (expression_statement "lVar26 = -1;" (assignment_expression "lVar26 = -1" (identifier "lVar26") (= "=") (number_literal "-1")) (; ";")) (expression_statement "pcVar16 = local_138;" (assignment_expression "pcVar16 = local_138" (identifier "pcVar16") (= "=") (identifier "local_138")) (; ";")) (do_statement "do {\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                } while (cVar1 != '\0');" (do "do") (compound_statement "{\n                  if (lVar26 == 0) break;\n                  lVar26 = lVar26 + -1;\n                  cVar1 = *pcVar16;\n                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;\n                }" ({ "{") (if_statement "if (lVar26 == 0) break;" (if "if") (parenthesized_expression "(lVar26 == 0)" (( "(") (binary_expression "lVar26 == 0" (identifier "lVar26") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar26 = lVar26 + -1;" (assignment_expression "lVar26 = lVar26 + -1" (identifier "lVar26") (= "=") (binary_expression "lVar26 + -1" (identifier "lVar26") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" (identifier "cVar1") (= "=") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16"))) (; ";")) (expression_statement "pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1" (identifier "pcVar16") (= "=") (binary_expression "pcVar16 + (ulong)bVar47 * -2 + 1" (binary_expression "pcVar16 + (ulong)bVar47 * -2" (identifier "pcVar16") (+ "+") (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar47")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar1 != '\0')" (( "(") (binary_expression "cVar1 != '\0'" (identifier "cVar1") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;" (assignment_expression "iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20" (identifier "iVar27") (= "=") (binary_expression "((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20" (binary_expression "((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2" (parenthesized_expression "((iVar27 + (int)local_d8 + 1) - (int)lVar26)" (( "(") (binary_expression "(iVar27 + (int)local_d8 + 1) - (int)lVar26" (parenthesized_expression "(iVar27 + (int)local_d8 + 1)" (( "(") (binary_expression "iVar27 + (int)local_d8 + 1" (binary_expression "iVar27 + (int)local_d8" (identifier "iVar27") (+ "+") (cast_expression "(int)local_d8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_d8"))) (+ "+") (number_literal "1")) () ")")) (- "-") (cast_expression "(int)lVar26" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "lVar26"))) () ")")) (+ "+") (number_literal "-2")) (+ "+") (cast_expression "(int)sVar20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "sVar20")))) (; ";")) (if_statement "if (((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))) {\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }\n                else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }" (if "if") (parenthesized_expression "(((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.'))))" (( "(") (binary_expression "((cVar4 == 'o') && (local_138[1] == 'p')) &&\n                   ((local_138[2] == '$' || (local_138[2] == '.')))" (parenthesized_expression "((cVar4 == 'o') && (local_138[1] == 'p'))" (( "(") (binary_expression "(cVar4 == 'o') && (local_138[1] == 'p')" (parenthesized_expression "(cVar4 == 'o')" (( "(") (binary_expression "cVar4 == 'o'" (identifier "cVar4") (== "==") (char_literal "'o'" (' "'") (character "o") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(local_138[1] == 'p')" (( "(") (binary_expression "local_138[1] == 'p'" (subscript_expression "local_138[1]" (identifier "local_138") ([ "[") (number_literal "1") (] "]")) (== "==") (char_literal "'p'" (' "'") (character "p") (' "'"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "((local_138[2] == '$' || (local_138[2] == '.')))" (( "(") (parenthesized_expression "(local_138[2] == '$' || (local_138[2] == '.'))" (( "(") (binary_expression "local_138[2] == '$' || (local_138[2] == '.')" (binary_expression "local_138[2] == '$'" (subscript_expression "local_138[2]" (identifier "local_138") ([ "[") (number_literal "2") (] "]")) (== "==") (char_literal "'$'" (' "'") (character "$") (' "'"))) (|| "||") (parenthesized_expression "(local_138[2] == '.')" (( "(") (binary_expression "local_138[2] == '.'" (subscript_expression "local_138[2]" (identifier "local_138") ([ "[") (number_literal "2") (] "]")) (== "==") (char_literal "'.'" (' "'") (character ".") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (compound_statement "{\nLAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);\n                  if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }\n                  lVar26 = -1;\n                  pcVar15 = pcVar16;\n                  do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');\n                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);\n                  strncpy((char *)pbVar22,local_138,3);\n                  strcpy((char *)(pbVar22 + 3),pcVar16);\n                }" ({ "{") (labeled_statement "LAB_00132f86:\n                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);" (statement_identifier "LAB_00132f86") (: ":") (expression_statement "pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);" (assignment_expression "pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0)" (identifier "pcVar16") (= "=") (cast_expression "(char *)cplus_mangle_opname(local_138 + 3,0)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "cplus_mangle_opname(local_138 + 3,0)" (identifier "cplus_mangle_opname") (argument_list "(local_138 + 3,0)" (( "(") (binary_expression "local_138 + 3" (identifier "local_138") (+ "+") (number_literal "3")) (, ",") (number_literal "0") () ")"))))) (; ";"))) (if_statement "if (pcVar16 == (char *)0x0) {\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }" (if "if") (parenthesized_expression "(pcVar16 == (char *)0x0)" (( "(") (binary_expression "pcVar16 == (char *)0x0" (identifier "pcVar16") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);\n                    fprintf(stderr,pcVar16,local_138);\n                    goto LAB_0013279c;\n                  }" ({ "{") (expression_statement "pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);" (assignment_expression "pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5)" (identifier "pcVar16") (= "=") (cast_expression "(char *)dcgettext(0,"No mangling for \"%s\"\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"No mangling for \"%s\"\n",5)" (identifier "dcgettext") (argument_list "(0,"No mangling for \"%s\"\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""No mangling for \"%s\"\n"" (" """) (string_content "No mangling for ") (escape_sequence "\"") (string_content "%s") (escape_sequence "\"") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf(stderr,pcVar16,local_138);" (call_expression "fprintf(stderr,pcVar16,local_138)" (identifier "fprintf") (argument_list "(stderr,pcVar16,local_138)" (( "(") (identifier "stderr") (, ",") (identifier "pcVar16") (, ",") (identifier "local_138") () ")"))) (; ";")) (goto_statement "goto LAB_0013279c;" (goto "goto") (statement_identifier "LAB_0013279c") (; ";")) (} "}"))) (expression_statement "lVar26 = -1;" (assignment_expression "lVar26 = -1" (identifier "lVar26") (= "=") (number_literal "-1")) (; ";")) (expression_statement "pcVar15 = pcVar16;" (assignment_expression "pcVar15 = pcVar16" (identifier "pcVar15") (= "=") (identifier "pcVar16")) (; ";")) (do_statement "do {\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  } while (cVar4 != '\0');" (do "do") (compound_statement "{\n                    if (lVar26 == 0) break;\n                    lVar26 = lVar26 + -1;\n                    cVar4 = *pcVar15;\n                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;\n                  }" ({ "{") (if_statement "if (lVar26 == 0) break;" (if "if") (parenthesized_expression "(lVar26 == 0)" (( "(") (binary_expression "lVar26 == 0" (identifier "lVar26") (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "lVar26 = lVar26 + -1;" (assignment_expression "lVar26 = lVar26 + -1" (identifier "lVar26") (= "=") (binary_expression "lVar26 + -1" (identifier "lVar26") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "cVar4 = *pcVar15;" (assignment_expression "cVar4 = *pcVar15" (identifier "cVar4") (= "=") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15"))) (; ";")) (expression_statement "pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;" (assignment_expression "pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1" (identifier "pcVar15") (= "=") (binary_expression "pcVar15 + (ulong)bVar47 * -2 + 1" (binary_expression "pcVar15 + (ulong)bVar47 * -2" (identifier "pcVar15") (+ "+") (binary_expression "(ulong)bVar47 * -2" (cast_expression "(ulong)bVar47" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar47")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (expression_statement "pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);" (assignment_expression "pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26)" (identifier "pbVar22") (= "=") (cast_expression "(byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(iVar27 + -1 + ~(uint)lVar26)" (identifier "xmalloc") (argument_list "(iVar27 + -1 + ~(uint)lVar26)" (( "(") (binary_expression "iVar27 + -1 + ~(uint)lVar26" (binary_expression "iVar27 + -1" (identifier "iVar27") (+ "+") (number_literal "-1")) (+ "+") (unary_expression "~(uint)lVar26" (~ "~") (cast_expression "(uint)lVar26" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "lVar26")))) () ")"))))) (; ";")) (expression_statement "strncpy((char *)pbVar22,local_138,3);" (call_expression "strncpy((char *)pbVar22,local_138,3)" (identifier "strncpy") (argument_list "((char *)pbVar22,local_138,3)" (( "(") (cast_expression "(char *)pbVar22" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar22")) (, ",") (identifier "local_138") (, ",") (number_literal "3") () ")"))) (; ";")) (expression_statement "strcpy((char *)(pbVar22 + 3),pcVar16);" (call_expression "strcpy((char *)(pbVar22 + 3),pcVar16)" (identifier "strcpy") (argument_list "((char *)(pbVar22 + 3),pcVar16)" (( "(") (cast_expression "(char *)(pbVar22 + 3)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar22 + 3)" (( "(") (binary_expression "pbVar22 + 3" (identifier "pbVar22") (+ "+") (number_literal "3")) () ")"))) (, ",") (identifier "pcVar16") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }" (else "else") (compound_statement "{\n                  pbVar22 = (byte *)xmalloc(iVar27);\n                  strcpy((char *)pbVar22,local_138);\n                }" ({ "{") (expression_statement "pbVar22 = (byte *)xmalloc(iVar27);" (assignment_expression "pbVar22 = (byte *)xmalloc(iVar27)" (identifier "pbVar22") (= "=") (cast_expression "(byte *)xmalloc(iVar27)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(iVar27)" (identifier "xmalloc") (argument_list "(iVar27)" (( "(") (identifier "iVar27") () ")"))))) (; ";")) (expression_statement "strcpy((char *)pbVar22,local_138);" (call_expression "strcpy((char *)pbVar22,local_138)" (identifier "strcpy") (argument_list "((char *)pbVar22,local_138)" (( "(") (cast_expression "(char *)pbVar22" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar22")) (, ",") (identifier "local_138") () ")"))) (; ";")) (} "}")))) (} "}")))) (expression_statement "sVar20 = strlen((char *)pbVar22);" (assignment_expression "sVar20 = strlen((char *)pbVar22)" (identifier "sVar20") (= "=") (call_expression "strlen((char *)pbVar22)" (identifier "strlen") (argument_list "((char *)pbVar22)" (( "(") (cast_expression "(char *)pbVar22" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar22")) () ")")))) (; ";")) (expression_statement "local_d8 = sVar20 & 0xffffffff;" (assignment_expression "local_d8 = sVar20 & 0xffffffff" (identifier "local_d8") (= "=") (binary_expression "sVar20 & 0xffffffff" (identifier "sVar20") (& "&") (number_literal "0xffffffff"))) (; ";")) (expression_statement "pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);" (assignment_expression "pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68)" (identifier "pcVar16") (= "=") (call_expression "stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68)" (identifier "stpcpy") (argument_list "((char *)(pbVar22 + sVar20),(char *)&local_68)" (( "(") (cast_expression "(char *)(pbVar22 + sVar20)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pbVar22 + sVar20)" (( "(") (binary_expression "pbVar22 + sVar20" (identifier "pbVar22") (+ "+") (identifier "sVar20")) () ")"))) (, ",") (cast_expression "(char *)&local_68" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "&local_68" (& "&") (identifier "local_68"))) () ")")))) (; ";")) (if_statement "if (local_c0 != (char *)0x0) {\n                strcpy(pcVar16,local_c0);\n              }" (if "if") (parenthesized_expression "(local_c0 != (char *)0x0)" (( "(") (binary_expression "local_c0 != (char *)0x0" (identifier "local_c0") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                strcpy(pcVar16,local_c0);\n              }" ({ "{") (expression_statement "strcpy(pcVar16,local_c0);" (call_expression "strcpy(pcVar16,local_c0)" (identifier "strcpy") (argument_list "(pcVar16,local_c0)" (( "(") (identifier "pcVar16") (, ",") (identifier "local_c0") () ")"))) (; ";")) (} "}"))) (expression_statement "strcat((char *)pbVar22,(char *)pbVar40);" (call_expression "strcat((char *)pbVar22,(char *)pbVar40)" (identifier "strcat") (argument_list "((char *)pbVar22,(char *)pbVar40)" (( "(") (cast_expression "(char *)pbVar22" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar22")) (, ",") (cast_expression "(char *)pbVar40" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar40")) () ")"))) (; ";")) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" (identifier "bVar41") (= "=") (false "false")) (; ";")) (labeled_statement "LAB_0013302f:\n              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;" (statement_identifier "LAB_0013302f") (: ":") (if_statement "if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;" (if "if") (parenthesized_expression "((*pbVar40 == 0) || (bVar41))" (( "(") (binary_expression "(*pbVar40 == 0) || (bVar41)" (parenthesized_expression "(*pbVar40 == 0)" (( "(") (binary_expression "*pbVar40 == 0" (pointer_expression "*pbVar40" (* "*") (identifier "pbVar40")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(bVar41)" (( "(") (identifier "bVar41") () ")"))) () ")")) (goto_statement "goto LAB_001328ca;" (goto "goto") (statement_identifier "LAB_001328ca") (; ";")))) (if_statement "if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }" (if "if") (parenthesized_expression "((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a))" (( "(") (binary_expression "(*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)" (parenthesized_expression "(*pbVar22 == 0x5f)" (( "(") (binary_expression "*pbVar22 == 0x5f" (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")) (== "==") (number_literal "0x5f")) () ")")) (&& "&&") (parenthesized_expression "(pbVar22[1] == 0x5a)" (( "(") (binary_expression "pbVar22[1] == 0x5a" (subscript_expression "pbVar22[1]" (identifier "pbVar22") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x5a")) () ")"))) () ")")) (compound_statement "{\nLAB_00133b71:\n                local_78 = pbVar22;\n                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);\n                if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }\n                goto LAB_00132793;\n              }" ({ "{") (labeled_statement "LAB_00133b71:\n                local_78 = pbVar22;" (statement_identifier "LAB_00133b71") (: ":") (expression_statement "local_78 = pbVar22;" (assignment_expression "local_78 = pbVar22" (identifier "local_78") (= "=") (identifier "pbVar22")) (; ";"))) (expression_statement "piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);" (assignment_expression "piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68)" (identifier "piVar24") (= "=") (cast_expression "(int *)FUN_001390d0(pbVar22,3,&local_68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_001390d0(pbVar22,3,&local_68)" (identifier "FUN_001390d0") (argument_list "(pbVar22,3,&local_68)" (( "(") (identifier "pbVar22") (, ",") (number_literal "3") (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) () ")"))))) (; ";")) (if_statement "if (piVar24 == (int *)0x0) {\n                  FUN_0012e540(pbVar22);\n                }\n                else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }" (if "if") (parenthesized_expression "(piVar24 == (int *)0x0)" (( "(") (binary_expression "piVar24 == (int *)0x0" (identifier "piVar24") (== "==") (cast_expression "(int *)0x0" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                  FUN_0012e540(pbVar22);\n                }" ({ "{") (expression_statement "FUN_0012e540(pbVar22);" (call_expression "FUN_0012e540(pbVar22)" (identifier "FUN_0012e540") (argument_list "(pbVar22)" (( "(") (identifier "pbVar22") () ")"))) (; ";")) (} "}")) (else_clause "else {\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }" (else "else") (compound_statement "{\n                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }\n                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);\n                  fprintf(stderr,pcVar16);\n                  free(local_68);\n                }" ({ "{") (if_statement "if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }" (if "if") (parenthesized_expression "((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29))" (( "(") (binary_expression "(*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)" (parenthesized_expression "(*piVar24 == 3)" (( "(") (binary_expression "*piVar24 == 3" (pointer_expression "*piVar24" (* "*") (identifier "piVar24")) (== "==") (number_literal "3")) () ")")) (&& "&&") (parenthesized_expression "(**(int **)(piVar24 + 4) == 0x29)" (( "(") (binary_expression "**(int **)(piVar24 + 4) == 0x29" (pointer_expression "**(int **)(piVar24 + 4)" (* "*") (pointer_expression "*(int **)(piVar24 + 4)" (* "*") (cast_expression "(int **)(piVar24 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar24 + 4)" (( "(") (binary_expression "piVar24 + 4" (identifier "piVar24") (+ "+") (number_literal "4")) () ")"))))) (== "==") (number_literal "0x29")) () ")"))) () ")")) (compound_statement "{\n                    puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);\n                    free(local_68);\n                    goto LAB_00133211;\n                  }" ({ "{") (expression_statement "puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);" (assignment_expression "puVar19 = (undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c)" (identifier "puVar19") (= "=") (cast_expression "(undefined8 *)\n                              FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0012f7f0(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c)" (identifier "FUN_0012f7f0") (argument_list "(param_1,param_2,\n                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (pointer_expression "*(undefined8 *)(*(int **)(piVar24 + 4) + 4)" (* "*") (cast_expression "(undefined8 *)(*(int **)(piVar24 + 4) + 4)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int **)(piVar24 + 4) + 4)" (( "(") (binary_expression "*(int **)(piVar24 + 4) + 4" (pointer_expression "*(int **)(piVar24 + 4)" (* "*") (cast_expression "(int **)(piVar24 + 4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(piVar24 + 4)" (( "(") (binary_expression "piVar24 + 4" (identifier "piVar24") (+ "+") (number_literal "4")) () ")")))) (+ "+") (number_literal "4")) () ")")))) (, ",") (pointer_expression "&local_7c" (& "&") (identifier "local_7c")) () ")"))))) (; ";")) (expression_statement "free(local_68);" (call_expression "free(local_68)" (identifier "free") (argument_list "(local_68)" (( "(") (identifier "local_68") () ")"))) (; ";")) (goto_statement "goto LAB_00133211;" (goto "goto") (statement_identifier "LAB_00133211") (; ";")) (} "}"))) (expression_statement "pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);" (assignment_expression "pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5)" (identifier "pcVar16") (= "=") (cast_expression "(char *)dcgettext(0,"Demangled name is not a function\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"Demangled name is not a function\n",5)" (identifier "dcgettext") (argument_list "(0,"Demangled name is not a function\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""Demangled name is not a function\n"" (" """) (string_content "Demangled name is not a function") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf(stderr,pcVar16);" (call_expression "fprintf(stderr,pcVar16)" (identifier "fprintf") (argument_list "(stderr,pcVar16)" (( "(") (identifier "stderr") (, ",") (identifier "pcVar16") () ")"))) (; ";")) (expression_statement "free(local_68);" (call_expression "free(local_68)" (identifier "free") (argument_list "(local_68)" (( "(") (identifier "local_68") () ")"))) (; ";")) (} "}")))) (goto_statement "goto LAB_00132793;" (goto "goto") (statement_identifier "LAB_00132793") (; ";")) (} "}"))) (expression_statement "local_58 = (undefined8 *)0x0;" (assignment_expression "local_58 = (undefined8 *)0x0" (identifier "local_58") (= "=") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_50[0] = 0;" (assignment_expression "local_50[0] = 0" (subscript_expression "local_50[0]" (identifier "local_50") ([ "[") (number_literal "0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_3c = 10;" (assignment_expression "local_3c = 10" (identifier "local_3c") (= "=") (number_literal "10")) (; ";")) (expression_statement "local_78 = pbVar22;" (assignment_expression "local_78 = pbVar22" (identifier "local_78") (= "=") (identifier "pbVar22")) (; ";")) (expression_statement "local_68 = param_1;" (assignment_expression "local_68 = param_1" (identifier "local_68") (= "=") (identifier "param_1")) (; ";")) (expression_statement "local_60 = param_2;" (assignment_expression "local_60 = param_2" (identifier "local_60") (= "=") (identifier "param_2")) (; ";")) (expression_statement "local_48 = (void *)xmalloc(0xa0);" (assignment_expression "local_48 = (void *)xmalloc(0xa0)" (identifier "local_48") (= "=") (cast_expression "(void *)xmalloc(0xa0)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xmalloc(0xa0)" (identifier "xmalloc") (argument_list "(0xa0)" (( "(") (number_literal "0xa0") () ")"))))) (; ";")) (expression_statement "local_40 = 0;" (assignment_expression "local_40 = 0" (identifier "local_40") (= "=") (number_literal "0")) (; ";")) (if_statement "if ((int)local_d8 == 0) goto LAB_0013360b;" (if "if") (parenthesized_expression "((int)local_d8 == 0)" (( "(") (binary_expression "(int)local_d8 == 0" (cast_expression "(int)local_d8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_d8")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0013360b;" (goto "goto") (statement_identifier "LAB_0013360b") (; ";"))) (expression_statement "pbVar31 = local_78 + local_d8;" (assignment_expression "pbVar31 = local_78 + local_d8" (identifier "pbVar31") (= "=") (binary_expression "local_78 + local_d8" (identifier "local_78") (+ "+") (identifier "local_d8"))) (; ";")) (expression_statement "pbVar33 = local_78;" (assignment_expression "pbVar33 = local_78" (identifier "pbVar33") (= "=") (identifier "local_78")) (; ";")) (labeled_statement "LAB_001330d0:\n              bVar3 = pbVar31[2];" (statement_identifier "LAB_001330d0") (: ":") (expression_statement "bVar3 = pbVar31[2];" (assignment_expression "bVar3 = pbVar31[2]" (identifier "bVar3") (= "=") (subscript_expression "pbVar31[2]" (identifier "pbVar31") ([ "[") (number_literal "2") (] "]"))) (; ";"))) (if_statement "if (pbVar33 == pbVar31) {\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }\n              else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }" (if "if") (parenthesized_expression "(pbVar33 == pbVar31)" (( "(") (binary_expression "pbVar33 == pbVar31" (identifier "pbVar33") (== "==") (identifier "pbVar31")) () ")")) (compound_statement "{\n                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }\n                local_78 = pbVar31 + 2;\n              }" ({ "{") (if_statement "if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }" (if "if") (parenthesized_expression "(((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74))" (( "(") (binary_expression "((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&\n                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)" (parenthesized_expression "((_sch_istable[(ulong)bVar3 * 2] & 4) == 0)" (( "(") (binary_expression "(_sch_istable[(ulong)bVar3 * 2] & 4) == 0" (parenthesized_expression "(_sch_istable[(ulong)bVar3 * 2] & 4)" (( "(") (binary_expression "_sch_istable[(ulong)bVar3 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar3 * 2]" (identifier "_sch_istable") ([ "[") (binary_expression "(ulong)bVar3 * 2" (cast_expression "(ulong)bVar3" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar3")) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)" (( "(") (comma_expression "pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74" (assignment_expression "pbVar37 = pbVar31" (identifier "pbVar37") (= "=") (identifier "pbVar31")) (, ",") (binary_expression "bVar3 != 0x51 && bVar3 != 0x74" (binary_expression "bVar3 != 0x51" (identifier "bVar3") (!= "!=") (number_literal "0x51")) (&& "&&") (binary_expression "bVar3 != 0x74" (identifier "bVar3") (!= "!=") (number_literal "0x74")))) () ")"))) () ")")) (compound_statement "{\n                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }\n                  pcVar16 = strstr((char *)pbVar37,"__");\n                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }\n                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);\n                  goto LAB_001330fd;\n                }" ({ "{") (for_statement "for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {\n                  }" (for "for") (( "(") (; ";") (binary_expression "*pbVar37 == 0x5f" (pointer_expression "*pbVar37" (* "*") (identifier "pbVar37")) (== "==") (number_literal "0x5f")) (; ";") (assignment_expression "pbVar37 = pbVar37 + 1" (identifier "pbVar37") (= "=") (binary_expression "pbVar37 + 1" (identifier "pbVar37") (+ "+") (number_literal "1"))) () ")") (compound_statement "{\n                  }" ({ "{") (} "}"))) (expression_statement "pcVar16 = strstr((char *)pbVar37,"__");" (assignment_expression "pcVar16 = strstr((char *)pbVar37,"__")" (identifier "pcVar16") (= "=") (call_expression "strstr((char *)pbVar37,"__")" (identifier "strstr") (argument_list "((char *)pbVar37,"__")" (( "(") (cast_expression "(char *)pbVar37" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar37")) (, ",") (string_literal ""__"" (" """) (string_content "__") (" """)) () ")")))) (; ";")) (if_statement "if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }" (if "if") (parenthesized_expression "((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0'))" (( "(") (binary_expression "(pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')" (parenthesized_expression "(pcVar16 == (char *)0x0)" (( "(") (binary_expression "pcVar16 == (char *)0x0" (identifier "pcVar16") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(pcVar16[2] == '\0')" (( "(") (binary_expression "pcVar16[2] == '\0'" (subscript_expression "pcVar16[2]" (identifier "pcVar16") ([ "[") (number_literal "2") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n                    FUN_0012e540(pbVar31);\n                    goto LAB_0013323f;\n                  }" ({ "{") (expression_statement "FUN_0012e540(pbVar31);" (call_expression "FUN_0012e540(pbVar31)" (identifier "FUN_0012e540") (argument_list "(pbVar31)" (( "(") (identifier "pbVar31") () ")"))) (; ";")) (goto_statement "goto LAB_0013323f;" (goto "goto") (statement_identifier "LAB_0013323f") (; ";")) (} "}"))) (expression_statement "iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);" (assignment_expression "iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16)" (identifier "iVar27") (= "=") (call_expression "FUN_00130f70(&local_68,&local_78,pcVar16)" (identifier "FUN_00130f70") (argument_list "(&local_68,&local_78,pcVar16)" (( "(") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (identifier "pcVar16") () ")")))) (; ";")) (goto_statement "goto LAB_001330fd;" (goto "goto") (statement_identifier "LAB_001330fd") (; ";")) (} "}"))) (expression_statement "local_78 = pbVar31 + 2;" (assignment_expression "local_78 = pbVar31 + 2" (identifier "local_78") (= "=") (binary_expression "pbVar31 + 2" (identifier "pbVar31") (+ "+") (number_literal "2"))) (; ";")) (} "}")) (else_clause "else {\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }" (else "else") (compound_statement "{\n                if (bVar3 == 0) goto LAB_00133635;\n                iVar27 = FUN_00130f70(&local_68,&local_78);\nLAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;\n              }" ({ "{") (if_statement "if (bVar3 == 0) goto LAB_00133635;" (if "if") (parenthesized_expression "(bVar3 == 0)" (( "(") (binary_expression "bVar3 == 0" (identifier "bVar3") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00133635;" (goto "goto") (statement_identifier "LAB_00133635") (; ";"))) (expression_statement "iVar27 = FUN_00130f70(&local_68,&local_78);" (assignment_expression "iVar27 = FUN_00130f70(&local_68,&local_78)" (identifier "iVar27") (= "=") (call_expression "FUN_00130f70(&local_68,&local_78)" (identifier "FUN_00130f70") (argument_list "(&local_68,&local_78)" (( "(") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (pointer_expression "&local_78" (& "&") (identifier "local_78")) () ")")))) (; ";")) (labeled_statement "LAB_001330fd:\n                if (iVar27 == 0) goto LAB_0013323f;" (statement_identifier "LAB_001330fd") (: ":") (if_statement "if (iVar27 == 0) goto LAB_0013323f;" (if "if") (parenthesized_expression "(iVar27 == 0)" (( "(") (binary_expression "iVar27 == 0" (identifier "iVar27") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0013323f;" (goto "goto") (statement_identifier "LAB_0013323f") (; ";")))) (} "}")))) (expression_statement "pbVar37 = local_78;" (assignment_expression "pbVar37 = local_78" (identifier "pbVar37") (= "=") (identifier "local_78")) (; ";")) (expression_statement "bVar3 = *local_78;" (assignment_expression "bVar3 = *local_78" (identifier "bVar3") (= "=") (pointer_expression "*local_78" (* "*") (identifier "local_78"))) (; ";")) (if_statement "if (bVar3 != 0) {\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }" (if "if") (parenthesized_expression "(bVar3 != 0)" (( "(") (binary_expression "bVar3 != 0" (identifier "bVar3") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                pbVar33 = (byte *)0x0;\n                bVar45 = false;\n                bVar41 = false;\n                do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);\n                if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;\n              }" ({ "{") (expression_statement "pbVar33 = (byte *)0x0;" (assignment_expression "pbVar33 = (byte *)0x0" (identifier "pbVar33") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "bVar45 = false;" (assignment_expression "bVar45 = false" (identifier "bVar45") (= "=") (false "false")) (; ";")) (expression_statement "bVar41 = false;" (assignment_expression "bVar41 = false" (identifier "bVar41") (= "=") (false "false")) (; ";")) (do_statement "do {\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                } while (bVar3 != 0);" (do "do") (compound_statement "{\n                  pbVar31 = local_78;\n                  switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }\n                  if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }\n                  bVar3 = *local_78;\n                }" ({ "{") (expression_statement "pbVar31 = local_78;" (assignment_expression "pbVar31 = local_78" (identifier "pbVar31") (= "=") (identifier "local_78")) (; ";")) (switch_statement "switch(bVar3) {\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }" (switch "switch") (parenthesized_expression "(bVar3)" (( "(") (identifier "bVar3") () ")")) (compound_statement "{\n                  case 0x30:\n                  case 0x31:\n                  case 0x32:\n                  case 0x33:\n                  case 0x34:\n                  case 0x35:\n                  case 0x36:\n                  case 0x37:\n                  case 0x38:\n                  case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;\n                  default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;\n                  case 0x43:\n                  case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;\n                  case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;\n                  case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;\n                  case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;\n                  case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;\n                  }" ({ "{") (case_statement "case 0x30:" (case "case") (number_literal "0x30") (: ":")) (case_statement "case 0x31:" (case "case") (number_literal "0x31") (: ":")) (case_statement "case 0x32:" (case "case") (number_literal "0x32") (: ":")) (case_statement "case 0x33:" (case "case") (number_literal "0x33") (: ":")) (case_statement "case 0x34:" (case "case") (number_literal "0x34") (: ":")) (case_statement "case 0x35:" (case "case") (number_literal "0x35") (: ":")) (case_statement "case 0x36:" (case "case") (number_literal "0x36") (: ":")) (case_statement "case 0x37:" (case "case") (number_literal "0x37") (: ":")) (case_statement "case 0x38:" (case "case") (number_literal "0x38") (: ":")) (case_statement "case 0x39:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_0012eea0(&local_78,0);\n                    goto joined_r0x0013334c;" (case "case") (number_literal "0x39") (: ":") (if_statement "if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }" (if "if") (parenthesized_expression "(pbVar33 == (byte *)0x0)" (( "(") (binary_expression "pbVar33 == (byte *)0x0" (identifier "pbVar33") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                      pbVar33 = local_78;\n                    }" ({ "{") (expression_statement "pbVar33 = local_78;" (assignment_expression "pbVar33 = local_78" (identifier "pbVar33") (= "=") (identifier "local_78")) (; ";")) (} "}"))) (expression_statement "iVar27 = FUN_0012eea0(&local_78,0);" (assignment_expression "iVar27 = FUN_0012eea0(&local_78,0)" (identifier "iVar27") (= "=") (call_expression "FUN_0012eea0(&local_78,0)" (identifier "FUN_0012eea0") (argument_list "(&local_78,0)" (( "(") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (number_literal "0") () ")")))) (; ";")) (goto_statement "goto joined_r0x0013334c;" (goto "goto") (statement_identifier "joined_r0x0013334c") (; ";"))) (case_statement "default:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar41 = true;\n                    break;" (default "default") (: ":") (expression_statement "iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);" (assignment_expression "iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50)" (identifier "iVar27") (= "=") (call_expression "FUN_00130da0(&local_68,&local_78,&local_58,local_50)" (identifier "FUN_00130da0") (argument_list "(&local_68,&local_78,&local_58,local_50)" (( "(") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "local_50") () ")")))) (; ";")) (if_statement "if (iVar27 == 0) goto LAB_0013323f;" (if "if") (parenthesized_expression "(iVar27 == 0)" (( "(") (binary_expression "iVar27 == 0" (identifier "iVar27") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0013323f;" (goto "goto") (statement_identifier "LAB_0013323f") (; ";"))) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" (identifier "bVar41") (= "=") (true "true")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x43:" (case "case") (number_literal "0x43") (: ":")) (case_statement "case 0x53:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    local_78 = local_78 + 1;\n                    break;" (case "case") (number_literal "0x53") (: ":") (if_statement "if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }" (if "if") (parenthesized_expression "(pbVar33 == (byte *)0x0)" (( "(") (binary_expression "pbVar33 == (byte *)0x0" (identifier "pbVar33") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                      pbVar33 = local_78;\n                    }" ({ "{") (expression_statement "pbVar33 = local_78;" (assignment_expression "pbVar33 = local_78" (identifier "pbVar33") (= "=") (identifier "local_78")) (; ";")) (} "}"))) (expression_statement "local_78 = local_78 + 1;" (assignment_expression "local_78 = local_78 + 1" (identifier "local_78") (= "=") (binary_expression "local_78 + 1" (identifier "local_78") (+ "+") (number_literal "1"))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x46:\n                    local_78 = local_78 + 1;\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    pbVar33 = (byte *)0x0;\n                    bVar41 = true;\n                    break;" (case "case") (number_literal "0x46") (: ":") (expression_statement "local_78 = local_78 + 1;" (assignment_expression "local_78 = local_78 + 1" (identifier "local_78") (= "=") (binary_expression "local_78 + 1" (identifier "local_78") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);" (assignment_expression "iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50)" (identifier "iVar27") (= "=") (call_expression "FUN_00130da0(&local_68,&local_78,&local_58,local_50)" (identifier "FUN_00130da0") (argument_list "(&local_68,&local_78,&local_58,local_50)" (( "(") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "local_50") () ")")))) (; ";")) (if_statement "if (iVar27 == 0) goto LAB_0013323f;" (if "if") (parenthesized_expression "(iVar27 == 0)" (( "(") (binary_expression "iVar27 == 0" (identifier "iVar27") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0013323f;" (goto "goto") (statement_identifier "LAB_0013323f") (; ";"))) (expression_statement "pbVar33 = (byte *)0x0;" (assignment_expression "pbVar33 = (byte *)0x0" (identifier "pbVar33") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" (identifier "bVar41") (= "=") (true "true")) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x51:\n                    iVar27 = FUN_00130930(&local_68,&local_78,0);\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }\n                    goto LAB_0013323f;" (case "case") (number_literal "0x51") (: ":") (expression_statement "iVar27 = FUN_00130930(&local_68,&local_78,0);" (assignment_expression "iVar27 = FUN_00130930(&local_68,&local_78,0)" (identifier "iVar27") (= "=") (call_expression "FUN_00130930(&local_68,&local_78,0)" (identifier "FUN_00130930") (argument_list "(&local_68,&local_78,0)" (( "(") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (number_literal "0") () ")")))) (; ";")) (if_statement "if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }" (if "if") (parenthesized_expression "(iVar27 != 0)" (( "(") (binary_expression "iVar27 != 0" (identifier "iVar27") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);\n                      goto joined_r0x001332f4;\n                    }" ({ "{") (expression_statement "iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);" (assignment_expression "iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31)" (identifier "iVar27") (= "=") (call_expression "FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31)" (identifier "FUN_0012e5a0") (argument_list "(&local_68,pbVar31,(long)local_78 - (long)pbVar31)" (( "(") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (identifier "pbVar31") (, ",") (binary_expression "(long)local_78 - (long)pbVar31" (cast_expression "(long)local_78" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_78")) (- "-") (cast_expression "(long)pbVar31" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pbVar31"))) () ")")))) (; ";")) (goto_statement "goto joined_r0x001332f4;" (goto "goto") (statement_identifier "joined_r0x001332f4") (; ";")) (} "}"))) (goto_statement "goto LAB_0013323f;" (goto "goto") (statement_identifier "LAB_0013323f") (; ";"))) (case_statement "case 0x5f:\n                    FUN_0012e540(pbVar37);\n                    goto LAB_0013323f;" (case "case") (number_literal "0x5f") (: ":") (expression_statement "FUN_0012e540(pbVar37);" (call_expression "FUN_0012e540(pbVar37)" (identifier "FUN_0012e540") (argument_list "(pbVar37)" (( "(") (identifier "pbVar37") () ")"))) (; ";")) (goto_statement "goto LAB_0013323f;" (goto "goto") (statement_identifier "LAB_0013323f") (; ";"))) (case_statement "case 0x74:\n                    if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }\n                    iVar27 = FUN_00130390(&local_68,&local_78,0);\njoined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }\n                    goto LAB_0013323f;" (case "case") (number_literal "0x74") (: ":") (if_statement "if (pbVar33 == (byte *)0x0) {\n                      pbVar33 = local_78;\n                    }" (if "if") (parenthesized_expression "(pbVar33 == (byte *)0x0)" (( "(") (binary_expression "pbVar33 == (byte *)0x0" (identifier "pbVar33") (== "==") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                      pbVar33 = local_78;\n                    }" ({ "{") (expression_statement "pbVar33 = local_78;" (assignment_expression "pbVar33 = local_78" (identifier "pbVar33") (= "=") (identifier "local_78")) (; ";")) (} "}"))) (expression_statement "iVar27 = FUN_00130390(&local_68,&local_78,0);" (assignment_expression "iVar27 = FUN_00130390(&local_68,&local_78,0)" (identifier "iVar27") (= "=") (call_expression "FUN_00130390(&local_68,&local_78,0)" (identifier "FUN_00130390") (argument_list "(&local_68,&local_78,0)" (( "(") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (number_literal "0") () ")")))) (; ";")) (labeled_statement "joined_r0x0013334c:\n                    if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }" (statement_identifier "joined_r0x0013334c") (: ":") (if_statement "if (iVar27 != 0) {\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }" (if "if") (parenthesized_expression "(iVar27 != 0)" (( "(") (binary_expression "iVar27 != 0" (identifier "iVar27") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);\njoined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }\n                    }" ({ "{") (expression_statement "iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);" (assignment_expression "iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33)" (identifier "iVar27") (= "=") (call_expression "FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33)" (identifier "FUN_0012e5a0") (argument_list "(&local_68,pbVar33,(long)local_78 - (long)pbVar33)" (( "(") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (identifier "pbVar33") (, ",") (binary_expression "(long)local_78 - (long)pbVar33" (cast_expression "(long)local_78" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_78")) (- "-") (cast_expression "(long)pbVar33" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pbVar33"))) () ")")))) (; ";")) (labeled_statement "joined_r0x001332f4:\n                      if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }" (statement_identifier "joined_r0x001332f4") (: ":") (if_statement "if (iVar27 != 0) {\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }" (if "if") (parenthesized_expression "(iVar27 != 0)" (( "(") (binary_expression "iVar27 != 0" (identifier "iVar27") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n                        pbVar33 = (byte *)0x0;\n                        goto LAB_0013328f;\n                      }" ({ "{") (expression_statement "pbVar33 = (byte *)0x0;" (assignment_expression "pbVar33 = (byte *)0x0" (identifier "pbVar33") (= "=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0013328f;" (goto "goto") (statement_identifier "LAB_0013328f") (; ";")) (} "}")))) (} "}")))) (goto_statement "goto LAB_0013323f;" (goto "goto") (statement_identifier "LAB_0013323f") (; ";"))) (} "}"))) (if_statement "if (bVar45) {\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }" (if "if") (parenthesized_expression "(bVar45)" (( "(") (identifier "bVar45") () ")")) (compound_statement "{\nLAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);\n                    if (iVar27 == 0) goto LAB_0013323f;\n                    bVar45 = true;\n                    bVar41 = true;\n                  }" ({ "{") (labeled_statement "LAB_0013328f:\n                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);" (statement_identifier "LAB_0013328f") (: ":") (expression_statement "iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);" (assignment_expression "iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50)" (identifier "iVar27") (= "=") (call_expression "FUN_00130da0(&local_68,&local_78,&local_58,local_50)" (identifier "FUN_00130da0") (argument_list "(&local_68,&local_78,&local_58,local_50)" (( "(") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "local_50") () ")")))) (; ";"))) (if_statement "if (iVar27 == 0) goto LAB_0013323f;" (if "if") (parenthesized_expression "(iVar27 == 0)" (( "(") (binary_expression "iVar27 == 0" (identifier "iVar27") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0013323f;" (goto "goto") (statement_identifier "LAB_0013323f") (; ";"))) (expression_statement "bVar45 = true;" (assignment_expression "bVar45 = true" (identifier "bVar45") (= "=") (true "true")) (; ";")) (expression_statement "bVar41 = true;" (assignment_expression "bVar41 = true" (identifier "bVar41") (= "=") (true "true")) (; ";")) (} "}"))) (expression_statement "bVar3 = *local_78;" (assignment_expression "bVar3 = *local_78" (identifier "bVar3") (= "=") (pointer_expression "*local_78" (* "*") (identifier "local_78"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar3 != 0)" (( "(") (binary_expression "bVar3 != 0" (identifier "bVar3") (!= "!=") (number_literal "0")) () ")")) (; ";")) (if_statement "if ((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))\n                goto LAB_0013323f;" (if "if") (parenthesized_expression "((!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))" (( "(") (binary_expression "(!bVar41) &&\n                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0)" (parenthesized_expression "(!bVar41)" (( "(") (unary_expression "!bVar41" (! "!") (identifier "bVar41")) () ")")) (&& "&&") (parenthesized_expression "(iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0)" (( "(") (comma_expression "iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0" (assignment_expression "iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50)" (identifier "iVar27") (= "=") (call_expression "FUN_00130da0(&local_68,&local_78,&local_58,local_50)" (identifier "FUN_00130da0") (argument_list "(&local_68,&local_78,&local_58,local_50)" (( "(") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (pointer_expression "&local_78" (& "&") (identifier "local_78")) (, ",") (pointer_expression "&local_58" (& "&") (identifier "local_58")) (, ",") (identifier "local_50") () ")")))) (, ",") (binary_expression "iVar27 == 0" (identifier "iVar27") (== "==") (number_literal "0"))) () ")"))) () ")")) (goto_statement "goto LAB_0013323f;" (goto "goto") (statement_identifier "LAB_0013323f") (; ";"))) (} "}"))) (expression_statement "free(local_48);" (call_expression "free(local_48)" (identifier "free") (argument_list "(local_48)" (( "(") (identifier "local_48") () ")"))) (; ";")) (expression_statement "local_48 = (void *)0x0;" (assignment_expression "local_48 = (void *)0x0" (identifier "local_48") (= "=") (cast_expression "(void *)0x0" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (if_statement "if (local_58 == (undefined8 *)0x0) {\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }" (if "if") (parenthesized_expression "(local_58 == (undefined8 *)0x0)" (( "(") (binary_expression "local_58 == (undefined8 *)0x0" (identifier "local_58") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);\n                fprintf(stderr,pcVar16);\n              }" ({ "{") (expression_statement "pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);" (assignment_expression "pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5)" (identifier "pcVar16") (= "=") (cast_expression "(char *)dcgettext(0,"no argument types in mangled string\n",5)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "dcgettext(0,"no argument types in mangled string\n",5)" (identifier "dcgettext") (argument_list "(0,"no argument types in mangled string\n",5)" (( "(") (number_literal "0") (, ",") (string_literal ""no argument types in mangled string\n"" (" """) (string_content "no argument types in mangled string") (escape_sequence "\n") (" """)) (, ",") (number_literal "5") () ")"))))) (; ";")) (expression_statement "fprintf(stderr,pcVar16);" (call_expression "fprintf(stderr,pcVar16)" (identifier "fprintf") (argument_list "(stderr,pcVar16)" (( "(") (identifier "stderr") (, ",") (identifier "pcVar16") () ")"))) (; ";")) (} "}"))) (expression_statement "local_7c = local_50[0];" (assignment_expression "local_7c = local_50[0]" (identifier "local_7c") (= "=") (subscript_expression "local_50[0]" (identifier "local_50") ([ "[") (number_literal "0") (] "]"))) (; ";")) (expression_statement "puVar19 = local_58;" (assignment_expression "puVar19 = local_58" (identifier "puVar19") (= "=") (identifier "local_58")) (; ";")) (labeled_statement "LAB_00133211:\n              iVar27 = local_7c;" (statement_identifier "LAB_00133211") (: ":") (expression_statement "iVar27 = local_7c;" (assignment_expression "iVar27 = local_7c" (identifier "iVar27") (= "=") (identifier "local_7c")) (; ";"))) (if_statement "if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;" (if "if") (parenthesized_expression "(puVar19 == (undefined8 *)0x0)" (( "(") (binary_expression "puVar19 == (undefined8 *)0x0" (identifier "puVar19") (== "==") (cast_expression "(undefined8 *)0x0" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00132793;" (goto "goto") (statement_identifier "LAB_00132793") (; ";"))) (} "}")))) (expression_statement "lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);" (assignment_expression "lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27)" (identifier "FUN_0012d940") (argument_list "(param_1,lVar17,lVar13,puVar19,iVar27)" (( "(") (identifier "param_1") (, ",") (identifier "lVar17") (, ",") (identifier "lVar13") (, ",") (identifier "puVar19") (, ",") (identifier "iVar27") () ")")))) (; ";")) (if_statement "if (lVar17 == 0) goto LAB_00132793;" (if "if") (parenthesized_expression "(lVar17 == 0)" (( "(") (binary_expression "lVar17 == 0" (identifier "lVar17") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00132793;" (goto "goto") (statement_identifier "LAB_00132793") (; ";"))) (} "}")))) (expression_statement "uVar7 = local_ec + 1;" (assignment_expression "uVar7 = local_ec + 1" (identifier "uVar7") (= "=") (binary_expression "local_ec + 1" (identifier "local_ec") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_e8 <= uVar7) {\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }" (if "if") (parenthesized_expression "(local_e8 <= uVar7)" (( "(") (binary_expression "local_e8 <= uVar7" (identifier "local_e8") (<= "<=") (identifier "uVar7")) () ")")) (compound_statement "{\n            local_e8 = local_e8 + 10;\n            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);\n          }" ({ "{") (expression_statement "local_e8 = local_e8 + 10;" (assignment_expression "local_e8 = local_e8 + 10" (identifier "local_e8") (= "=") (binary_expression "local_e8 + 10" (identifier "local_e8") (+ "+") (number_literal "10"))) (; ";")) (expression_statement "local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);" (assignment_expression "local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3)" (identifier "local_128") (= "=") (cast_expression "(void *)xrealloc(local_128,(ulong)local_e8 << 3)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "xrealloc(local_128,(ulong)local_e8 << 3)" (identifier "xrealloc") (argument_list "(local_128,(ulong)local_e8 << 3)" (( "(") (identifier "local_128") (, ",") (binary_expression "(ulong)local_e8 << 3" (cast_expression "(ulong)local_e8" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_e8")) (<< "<<") (number_literal "3")) () ")"))))) (; ";")) (} "}"))) (expression_statement "plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);" (assignment_expression "plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8)" (identifier "plVar10") (= "=") (cast_expression "(long *)((long)local_128 + (ulong)local_ec * 8)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_128 + (ulong)local_ec * 8)" (( "(") (binary_expression "(long)local_128 + (ulong)local_ec * 8" (cast_expression "(long)local_128" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_128")) (+ "+") (binary_expression "(ulong)local_ec * 8" (cast_expression "(ulong)local_ec" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_ec")) (* "*") (number_literal "8"))) () ")")))) (; ";")) (if_statement "if (bVar44) {\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }\n          else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }" (if "if") (parenthesized_expression "(bVar44)" (( "(") (identifier "bVar44") () ")")) (compound_statement "{\n            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);\n            *plVar10 = lVar17;\n          }" ({ "{") (expression_statement "lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);" (assignment_expression "lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5)" (identifier "lVar17") (= "=") (call_expression "FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5)" (identifier "FUN_0012db70") (argument_list "(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5)" (( "(") (identifier "param_1") (, ",") (identifier "pbVar22") (, ",") (identifier "lVar17") (, ",") (identifier "local_e4") (, ",") (identifier "local_f0") (, ",") (identifier "iVar5") () ")")))) (; ";")) (expression_statement "*plVar10 = lVar17;" (assignment_expression "*plVar10 = lVar17" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (= "=") (identifier "lVar17")) (; ";")) (} "}")) (else_clause "else {\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }" (else "else") (compound_statement "{\n            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);\n            *plVar10 = lVar17;\n          }" ({ "{") (expression_statement "lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);" (assignment_expression "lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100)" (identifier "lVar17") (= "=") (call_expression "FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100)" (identifier "FUN_0012db10") (argument_list "(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100)" (( "(") (identifier "param_1") (, ",") (identifier "pbVar22") (, ",") (identifier "lVar17") (, ",") (identifier "local_e4") (, ",") (identifier "local_f0") (, ",") (identifier "iVar5") (, ",") (identifier "uVar39") (, ",") (identifier "local_100") () ")")))) (; ";")) (expression_statement "*plVar10 = lVar17;" (assignment_expression "*plVar10 = lVar17" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (= "=") (identifier "lVar17")) (; ";")) (} "}")))) (if_statement "if (lVar17 == 0) goto LAB_00132793;" (if "if") (parenthesized_expression "(lVar17 == 0)" (( "(") (binary_expression "lVar17 == 0" (identifier "lVar17") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00132793;" (goto "goto") (statement_identifier "LAB_00132793") (; ";"))) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" (identifier "pcVar16") (= "=") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'))" (( "(") (binary_expression "(*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0')" (parenthesized_expression "(*pcVar16 != ';')" (( "(") (binary_expression "*pcVar16 != ';'" (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) (!= "!=") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")")) (&& "&&") (parenthesized_expression "(lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0')" (( "(") (comma_expression "lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'" (assignment_expression "lVar17 = lVar18" (identifier "lVar17") (= "=") (identifier "lVar18")) (, ",") (comma_expression "local_ec = uVar7, *pcVar16 != '\0'" (assignment_expression "local_ec = uVar7" (identifier "local_ec") (= "=") (identifier "uVar7")) (, ",") (binary_expression "*pcVar16 != '\0'" (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))))) () ")"))) () ")")) (; ";")) (expression_statement "*(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;" (assignment_expression "*(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0" (pointer_expression "*(undefined8 *)((long)local_128 + (ulong)uVar7 * 8)" (* "*") (cast_expression "(undefined8 *)((long)local_128 + (ulong)uVar7 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((long)local_128 + (ulong)uVar7 * 8)" (( "(") (binary_expression "(long)local_128 + (ulong)uVar7 * 8" (cast_expression "(long)local_128" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "local_128")) (+ "+") (binary_expression "(ulong)uVar7 * 8" (cast_expression "(ulong)uVar7" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "uVar7")) (* "*") (number_literal "8"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (if_statement "if (*pcVar16 != '\0') {\n          *param_4 = (ulong)(pcVar16 + 1);\n        }" (if "if") (parenthesized_expression "(*pcVar16 != '\0')" (( "(") (binary_expression "*pcVar16 != '\0'" (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16")) (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n          *param_4 = (ulong)(pcVar16 + 1);\n        }" ({ "{") (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pcVar16 + 1)" (( "(") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}"))) (expression_statement "uVar39 = local_c8 + 1;" (assignment_expression "uVar39 = local_c8 + 1" (identifier "uVar39") (= "=") (binary_expression "local_c8 + 1" (identifier "local_c8") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (local_c4 <= uVar39) {\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }" (if "if") (parenthesized_expression "(local_c4 <= uVar39)" (( "(") (binary_expression "local_c4 <= uVar39" (identifier "local_c4") (<= "<=") (identifier "uVar39")) () ")")) (compound_statement "{\n          local_c4 = local_c4 + 10;\n          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);\n        }" ({ "{") (expression_statement "local_c4 = local_c4 + 10;" (assignment_expression "local_c4 = local_c4 + 10" (identifier "local_c4") (= "=") (binary_expression "local_c4 + 10" (identifier "local_c4") (+ "+") (number_literal "10"))) (; ";")) (expression_statement "local_108 = xrealloc(local_108,(ulong)local_c4 << 3);" (assignment_expression "local_108 = xrealloc(local_108,(ulong)local_c4 << 3)" (identifier "local_108") (= "=") (call_expression "xrealloc(local_108,(ulong)local_c4 << 3)" (identifier "xrealloc") (argument_list "(local_108,(ulong)local_c4 << 3)" (( "(") (identifier "local_108") (, ",") (binary_expression "(ulong)local_c4 << 3" (cast_expression "(ulong)local_c4" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_c4")) (<< "<<") (number_literal "3")) () ")")))) (; ";")) (} "}"))) (expression_statement "uVar14 = FUN_0012dae0(param_1,local_138,local_128);" (assignment_expression "uVar14 = FUN_0012dae0(param_1,local_138,local_128)" (identifier "uVar14") (= "=") (call_expression "FUN_0012dae0(param_1,local_138,local_128)" (identifier "FUN_0012dae0") (argument_list "(param_1,local_138,local_128)" (( "(") (identifier "param_1") (, ",") (identifier "local_138") (, ",") (identifier "local_128") () ")")))) (; ";")) (expression_statement "*(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;" (assignment_expression "*(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14" (pointer_expression "*(undefined8 *)(local_108 + (ulong)local_c8 * 8)" (* "*") (cast_expression "(undefined8 *)(local_108 + (ulong)local_c8 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_108 + (ulong)local_c8 * 8)" (( "(") (binary_expression "local_108 + (ulong)local_c8 * 8" (identifier "local_108") (+ "+") (binary_expression "(ulong)local_c8 * 8" (cast_expression "(ulong)local_c8" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_c8")) (* "*") (number_literal "8"))) () ")")))) (= "=") (identifier "uVar14")) (; ";")) (expression_statement "pbVar22 = (byte *)*param_4;" (assignment_expression "pbVar22 = (byte *)*param_4" (identifier "pbVar22") (= "=") (cast_expression "(byte *)*param_4" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (expression_statement "bVar3 = *pbVar22;" (assignment_expression "bVar3 = *pbVar22" (identifier "bVar3") (= "=") (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22"))) (; ";")) (expression_statement "local_c8 = uVar39;" (assignment_expression "local_c8 = uVar39" (identifier "local_c8") (= "=") (identifier "uVar39")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(bVar3 != 0x3b)" (( "(") (binary_expression "bVar3 != 0x3b" (identifier "bVar3") (!= "!=") (number_literal "0x3b")) () ")")) (; ";")) (if_statement "if (local_108 != 0) {\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }" (if "if") (parenthesized_expression "(local_108 != 0)" (( "(") (binary_expression "local_108 != 0" (identifier "local_108") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;\n      }" ({ "{") (expression_statement "*(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;" (assignment_expression "*(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0" (pointer_expression "*(undefined8 *)(local_108 + (ulong)local_c8 * 8)" (* "*") (cast_expression "(undefined8 *)(local_108 + (ulong)local_c8 * 8)" (( "(") (type_descriptor "undefined8 *" (type_identifier "undefined8") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_108 + (ulong)local_c8 * 8)" (( "(") (binary_expression "local_108 + (ulong)local_c8 * 8" (identifier "local_108") (+ "+") (binary_expression "(ulong)local_c8 * 8" (cast_expression "(ulong)local_c8" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "local_c8")) (* "*") (number_literal "8"))) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (param_6 <= pbVar22) goto LAB_00131328;" (if "if") (parenthesized_expression "(param_6 <= pbVar22)" (( "(") (binary_expression "param_6 <= pbVar22" (identifier "param_6") (<= "<=") (identifier "pbVar22")) () ")")) (goto_statement "goto LAB_00131328;" (goto "goto") (statement_identifier "LAB_00131328") (; ";"))) (expression_statement "pbVar34 = pbVar22;" (assignment_expression "pbVar34 = pbVar22" (identifier "pbVar34") (= "=") (identifier "pbVar22")) (; ";")) (if_statement "if (*pbVar22 == 0x3b) goto LAB_001334bc;" (if "if") (parenthesized_expression "(*pbVar22 == 0x3b)" (( "(") (binary_expression "*pbVar22 == 0x3b" (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")) (== "==") (number_literal "0x3b")) () ")")) (goto_statement "goto LAB_001334bc;" (goto "goto") (statement_identifier "LAB_001334bc") (; ";"))) (} "}")))) (if_statement "if (*pbVar22 == 0x7e) {\n      pbVar40 = pbVar22 + 1;\n      *param_4 = (ulong)pbVar40;\n      if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *param_4 = (ulong)(pbVar40 + 1);\n      iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n      if (iVar5 == 0) goto LAB_00131328;\n      if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }\n      if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;\n      uVar14 = 1;\n      lVar17 = 0;\n    }\n    else {\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }" (if "if") (parenthesized_expression "(*pbVar22 == 0x7e)" (( "(") (binary_expression "*pbVar22 == 0x7e" (pointer_expression "*pbVar22" (* "*") (identifier "pbVar22")) (== "==") (number_literal "0x7e")) () ")")) (compound_statement "{\n      pbVar40 = pbVar22 + 1;\n      *param_4 = (ulong)pbVar40;\n      if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }\n      if (*pbVar40 != 0x25) goto LAB_0013244a;\n      *param_4 = (ulong)(pbVar40 + 1);\n      iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);\n      if (iVar5 == 0) goto LAB_00131328;\n      if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }\n      if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;\n      uVar14 = 1;\n      lVar17 = 0;\n    }" ({ "{") (expression_statement "pbVar40 = pbVar22 + 1;" (assignment_expression "pbVar40 = pbVar22 + 1" (identifier "pbVar40") (= "=") (binary_expression "pbVar22 + 1" (identifier "pbVar22") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_4 = (ulong)pbVar40;" (assignment_expression "*param_4 = (ulong)pbVar40" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(ulong)pbVar40" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pbVar40"))) (; ";")) (if_statement "if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }" (if "if") (parenthesized_expression "(((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b))" (( "(") (binary_expression "((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)" (parenthesized_expression "((pbVar22[1] & 0xef) == 0x2d)" (( "(") (binary_expression "(pbVar22[1] & 0xef) == 0x2d" (parenthesized_expression "(pbVar22[1] & 0xef)" (( "(") (binary_expression "pbVar22[1] & 0xef" (subscript_expression "pbVar22[1]" (identifier "pbVar22") ([ "[") (number_literal "1") (] "]")) (& "&") (number_literal "0xef")) () ")")) (== "==") (number_literal "0x2d")) () ")")) (|| "||") (parenthesized_expression "(pbVar22[1] == 0x2b)" (( "(") (binary_expression "pbVar22[1] == 0x2b" (subscript_expression "pbVar22[1]" (identifier "pbVar22") ([ "[") (number_literal "1") (] "]")) (== "==") (number_literal "0x2b")) () ")"))) () ")")) (compound_statement "{\n        pbVar40 = pbVar22 + 2;\n        *param_4 = (ulong)pbVar40;\n      }" ({ "{") (expression_statement "pbVar40 = pbVar22 + 2;" (assignment_expression "pbVar40 = pbVar22 + 2" (identifier "pbVar40") (= "=") (binary_expression "pbVar22 + 2" (identifier "pbVar22") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*param_4 = (ulong)pbVar40;" (assignment_expression "*param_4 = (ulong)pbVar40" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(ulong)pbVar40" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pbVar40"))) (; ";")) (} "}"))) (if_statement "if (*pbVar40 != 0x25) goto LAB_0013244a;" (if "if") (parenthesized_expression "(*pbVar40 != 0x25)" (( "(") (binary_expression "*pbVar40 != 0x25" (pointer_expression "*pbVar40" (* "*") (identifier "pbVar40")) (!= "!=") (number_literal "0x25")) () ")")) (goto_statement "goto LAB_0013244a;" (goto "goto") (statement_identifier "LAB_0013244a") (; ";"))) (expression_statement "*param_4 = (ulong)(pbVar40 + 1);" (assignment_expression "*param_4 = (ulong)(pbVar40 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pbVar40 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pbVar40 + 1)" (( "(") (binary_expression "pbVar40 + 1" (identifier "pbVar40") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);" (assignment_expression "iVar5 = FUN_0012e6c0(param_4,&local_68,param_6)" (identifier "iVar5") (= "=") (call_expression "FUN_0012e6c0(param_4,&local_68,param_6)" (identifier "FUN_0012e6c0") (argument_list "(param_4,&local_68,param_6)" (( "(") (identifier "param_4") (, ",") (pointer_expression "&local_68" (& "&") (identifier "local_68")) (, ",") (identifier "param_6") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) goto LAB_00131328;" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00131328;" (goto "goto") (statement_identifier "LAB_00131328") (; ";"))) (if_statement "if ((uint)local_68 != (uint)local_70) {\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }" (if "if") (parenthesized_expression "((uint)local_68 != (uint)local_70)" (( "(") (binary_expression "(uint)local_68 != (uint)local_70" (cast_expression "(uint)local_68" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_68")) (!= "!=") (cast_expression "(uint)local_70" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_70"))) () ")")) (compound_statement "{\nLAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);\n        lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);\n        pcVar16 = (char *)*param_4;\n        cVar4 = *pcVar16;\n        while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }\n        if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }\n        *param_4 = (ulong)(pcVar16 + 1);\n        goto LAB_0013244c;\n      }" ({ "{") (labeled_statement "LAB_00132596:\n        *param_4 = (ulong)(pbVar40 + 1);" (statement_identifier "LAB_00132596") (: ":") (expression_statement "*param_4 = (ulong)(pbVar40 + 1);" (assignment_expression "*param_4 = (ulong)(pbVar40 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pbVar40 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pbVar40 + 1)" (( "(") (binary_expression "pbVar40 + 1" (identifier "pbVar40") (+ "+") (number_literal "1")) () ")")))) (; ";"))) (expression_statement "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6);" (assignment_expression "lVar17 = FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "lVar17") (= "=") (call_expression "FUN_00131020(param_1,param_2,0,param_4,0,param_6)" (identifier "FUN_00131020") (argument_list "(param_1,param_2,0,param_4,0,param_6)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") (, ",") (identifier "param_4") (, ",") (number_literal "0") (, ",") (identifier "param_6") () ")")))) (; ";")) (expression_statement "pcVar16 = (char *)*param_4;" (assignment_expression "pcVar16 = (char *)*param_4" (identifier "pcVar16") (= "=") (cast_expression "(char *)*param_4" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (expression_statement "cVar4 = *pcVar16;" (assignment_expression "cVar4 = *pcVar16" (identifier "cVar4") (= "=") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16"))) (; ";")) (while_statement "while ((cVar4 != ';' && (cVar4 != '\0'))) {\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }" (while "while") (parenthesized_expression "((cVar4 != ';' && (cVar4 != '\0')))" (( "(") (parenthesized_expression "(cVar4 != ';' && (cVar4 != '\0'))" (( "(") (binary_expression "cVar4 != ';' && (cVar4 != '\0')" (binary_expression "cVar4 != ';'" (identifier "cVar4") (!= "!=") (char_literal "';'" (' "'") (character ";") (' "'"))) (&& "&&") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) () ")")) (compound_statement "{\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }" ({ "{") (expression_statement "pcVar16 = pcVar16 + 1;" (assignment_expression "pcVar16 = pcVar16 + 1" (identifier "pcVar16") (= "=") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar4 = *pcVar16;" (assignment_expression "cVar4 = *pcVar16" (identifier "cVar4") (= "=") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16"))) (; ";")) (} "}"))) (if_statement "if (cVar4 != ';') {\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }" (if "if") (parenthesized_expression "(cVar4 != ';')" (( "(") (binary_expression "cVar4 != ';'" (identifier "cVar4") (!= "!=") (char_literal "';'" (' "'") (character ";") (' "'"))) () ")")) (compound_statement "{\nLAB_00132740:\n          FUN_0012e570(pbVar34);\nLAB_00131328:\n          free(local_130);\n          return 0;\n        }" ({ "{") (labeled_statement "LAB_00132740:\n          FUN_0012e570(pbVar34);" (statement_identifier "LAB_00132740") (: ":") (expression_statement "FUN_0012e570(pbVar34);" (call_expression "FUN_0012e570(pbVar34)" (identifier "FUN_0012e570") (argument_list "(pbVar34)" (( "(") (identifier "pbVar34") () ")"))) (; ";"))) (labeled_statement "LAB_00131328:\n          free(local_130);" (statement_identifier "LAB_00131328") (: ":") (expression_statement "free(local_130);" (call_expression "free(local_130)" (identifier "free") (argument_list "(local_130)" (( "(") (identifier "local_130") () ")"))) (; ";"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pcVar16 + 1)" (( "(") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1")) () ")")))) (; ";")) (goto_statement "goto LAB_0013244c;" (goto "goto") (statement_identifier "LAB_0013244c") (; ";")) (} "}"))) (if_statement "if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;" (if "if") (parenthesized_expression "(local_68._4_4_ != local_70._4_4_)" (( "(") (binary_expression "local_68._4_4_ != local_70._4_4_" (field_expression "local_68._4_4_" (identifier "local_68") (. ".") (field_identifier "_4_4_")) (!= "!=") (field_expression "local_70._4_4_" (identifier "local_70") (. ".") (field_identifier "_4_4_"))) () ")")) (goto_statement "goto LAB_00132596;" (goto "goto") (statement_identifier "LAB_00132596") (; ";"))) (expression_statement "uVar14 = 1;" (assignment_expression "uVar14 = 1" (identifier "uVar14") (= "=") (number_literal "1")) (; ";")) (expression_statement "lVar17 = 0;" (assignment_expression "lVar17 = 0" (identifier "lVar17") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }" (else "else") (compound_statement "{\nLAB_0013244a:\n      lVar17 = 0;\nLAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }\n      uVar14 = 0;\n    }" ({ "{") (labeled_statement "LAB_0013244a:\n      lVar17 = 0;" (statement_identifier "LAB_0013244a") (: ":") (expression_statement "lVar17 = 0;" (assignment_expression "lVar17 = 0" (identifier "lVar17") (= "=") (number_literal "0")) (; ";"))) (labeled_statement "LAB_0013244c:\n      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }" (statement_identifier "LAB_0013244c") (: ":") (if_statement "if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }" (if "if") (parenthesized_expression "(((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43))" (( "(") (binary_expression "((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)" (parenthesized_expression "((local_108 == 0 && local_f8 == 0) && lVar17 == 0)" (( "(") (binary_expression "(local_108 == 0 && local_f8 == 0) && lVar17 == 0" (parenthesized_expression "(local_108 == 0 && local_f8 == 0)" (( "(") (binary_expression "local_108 == 0 && local_f8 == 0" (binary_expression "local_108 == 0" (identifier "local_108") (== "==") (number_literal "0")) (&& "&&") (binary_expression "local_f8 == 0" (identifier "local_f8") (== "==") (number_literal "0"))) () ")")) (&& "&&") (binary_expression "lVar17 == 0" (identifier "lVar17") (== "==") (number_literal "0"))) () ")")) (&& "&&") (parenthesized_expression "(!bVar43)" (( "(") (unary_expression "!bVar43" (! "!") (identifier "bVar43")) () ")"))) () ")")) (compound_statement "{\n        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);\n        break;\n      }" ({ "{") (expression_statement "lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);" (assignment_expression "lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130)" (identifier "FUN_0012d5b0") (argument_list "(param_1,bVar38 == 0x73,uVar8,local_130)" (( "(") (identifier "param_1") (, ",") (binary_expression "bVar38 == 0x73" (identifier "bVar38") (== "==") (number_literal "0x73")) (, ",") (identifier "uVar8") (, ",") (identifier "local_130") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}")))) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" (identifier "uVar14") (= "=") (number_literal "0")) (; ";")) (} "}")))) (expression_statement "lVar17 = FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14);" (assignment_expression "lVar17 = FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14)" (identifier "lVar17") (= "=") (call_expression "FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14)" (identifier "FUN_0012d600") (argument_list "(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14)" (( "(") (identifier "param_1") (, ",") (binary_expression "bVar38 == 0x73" (identifier "bVar38") (== "==") (number_literal "0x73")) (, ",") (identifier "uVar8") (, ",") (identifier "local_130") (, ",") (identifier "local_f8") (, ",") (identifier "local_108") (, ",") (identifier "lVar17") (, ",") (identifier "uVar14") () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 0x78:\n    bVar47 = pbVar22[1];\n    if (bVar47 == 0x65) {\n      uVar32 = 0xb;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }\nLAB_00131e0e:\n    pbVar40 = pbVar40 + 1;\n    *param_4 = (ulong)pbVar40;\n    pcVar15 = strchr((char *)pbVar40,0x3c);\n    pcVar16 = strchr((char *)pbVar40,0x3a);\n    if (pcVar16 != (char *)0x0) {\n      if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }\n      cVar4 = *pcVar15;\n      if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }\n    }\nswitchD_001311d2_caseD_24:\n    FUN_0012e570(pbVar34);\n    return 0;" (case "case") (number_literal "0x78") (: ":") (expression_statement "bVar47 = pbVar22[1];" (assignment_expression "bVar47 = pbVar22[1]" (identifier "bVar47") (= "=") (subscript_expression "pbVar22[1]" (identifier "pbVar22") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (bVar47 == 0x65) {\n      uVar32 = 0xb;\n    }\n    else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }" (if "if") (parenthesized_expression "(bVar47 == 0x65)" (( "(") (binary_expression "bVar47 == 0x65" (identifier "bVar47") (== "==") (number_literal "0x65")) () ")")) (compound_statement "{\n      uVar32 = 0xb;\n    }" ({ "{") (expression_statement "uVar32 = 0xb;" (assignment_expression "uVar32 = 0xb" (identifier "uVar32") (= "=") (number_literal "0xb")) (; ";")) (} "}")) (else_clause "else {\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }" (else "else") (compound_statement "{\n      if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }\n      uVar32 = 7;\n      uVar8 = dcgettext(0,"unrecognized cross reference type",5);\n      FUN_0012e500(pbVar34,uVar8);\n      pbVar40 = (byte *)*param_4;\n    }" ({ "{") (if_statement "if ((char)bVar47 < 'f') {\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }\n      else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }" (if "if") (parenthesized_expression "((char)bVar47 < 'f')" (( "(") (binary_expression "(char)bVar47 < 'f'" (cast_expression "(char)bVar47" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar47")) (< "<") (char_literal "'f'" (' "'") (character "f") (' "'"))) () ")")) (compound_statement "{\n        if (bVar47 == 0) goto switchD_001311d2_caseD_24;\n      }" ({ "{") (if_statement "if (bVar47 == 0) goto switchD_001311d2_caseD_24;" (if "if") (parenthesized_expression "(bVar47 == 0)" (( "(") (binary_expression "bVar47 == 0" (identifier "bVar47") (== "==") (number_literal "0")) () ")")) (goto_statement "goto switchD_001311d2_caseD_24;" (goto "goto") (statement_identifier "switchD_001311d2_caseD_24") (; ";"))) (} "}")) (else_clause "else {\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }" (else "else") (compound_statement "{\n        uVar32 = 7;\n        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;\n      }" ({ "{") (expression_statement "uVar32 = 7;" (assignment_expression "uVar32 = 7" (identifier "uVar32") (= "=") (number_literal "7")) (; ";")) (if_statement "if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;" (if "if") (parenthesized_expression "((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75))" (( "(") (binary_expression "(bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)" (parenthesized_expression "(bVar47 == 0x73)" (( "(") (binary_expression "bVar47 == 0x73" (identifier "bVar47") (== "==") (number_literal "0x73")) () ")")) (|| "||") (parenthesized_expression "(uVar32 = 8, bVar47 == 0x75)" (( "(") (comma_expression "uVar32 = 8, bVar47 == 0x75" (assignment_expression "uVar32 = 8" (identifier "uVar32") (= "=") (number_literal "8")) (, ",") (binary_expression "bVar47 == 0x75" (identifier "bVar47") (== "==") (number_literal "0x75"))) () ")"))) () ")")) (goto_statement "goto LAB_00131e0e;" (goto "goto") (statement_identifier "LAB_00131e0e") (; ";"))) (} "}")))) (expression_statement "uVar32 = 7;" (assignment_expression "uVar32 = 7" (identifier "uVar32") (= "=") (number_literal "7")) (; ";")) (expression_statement "uVar8 = dcgettext(0,"unrecognized cross reference type",5);" (assignment_expression "uVar8 = dcgettext(0,"unrecognized cross reference type",5)" (identifier "uVar8") (= "=") (call_expression "dcgettext(0,"unrecognized cross reference type",5)" (identifier "dcgettext") (argument_list "(0,"unrecognized cross reference type",5)" (( "(") (number_literal "0") (, ",") (string_literal ""unrecognized cross reference type"" (" """) (string_content "unrecognized cross reference type") (" """)) (, ",") (number_literal "5") () ")")))) (; ";")) (expression_statement "FUN_0012e500(pbVar34,uVar8);" (call_expression "FUN_0012e500(pbVar34,uVar8)" (identifier "FUN_0012e500") (argument_list "(pbVar34,uVar8)" (( "(") (identifier "pbVar34") (, ",") (identifier "uVar8") () ")"))) (; ";")) (expression_statement "pbVar40 = (byte *)*param_4;" (assignment_expression "pbVar40 = (byte *)*param_4" (identifier "pbVar40") (= "=") (cast_expression "(byte *)*param_4" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_4" (* "*") (identifier "param_4")))) (; ";")) (} "}")))) (labeled_statement "LAB_00131e0e:\n    pbVar40 = pbVar40 + 1;" (statement_identifier "LAB_00131e0e") (: ":") (expression_statement "pbVar40 = pbVar40 + 1;" (assignment_expression "pbVar40 = pbVar40 + 1" (identifier "pbVar40") (= "=") (binary_expression "pbVar40 + 1" (identifier "pbVar40") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "*param_4 = (ulong)pbVar40;" (assignment_expression "*param_4 = (ulong)pbVar40" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (cast_expression "(ulong)pbVar40" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "pbVar40"))) (; ";")) (expression_statement "pcVar15 = strchr((char *)pbVar40,0x3c);" (assignment_expression "pcVar15 = strchr((char *)pbVar40,0x3c)" (identifier "pcVar15") (= "=") (call_expression "strchr((char *)pbVar40,0x3c)" (identifier "strchr") (argument_list "((char *)pbVar40,0x3c)" (( "(") (cast_expression "(char *)pbVar40" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar40")) (, ",") (number_literal "0x3c") () ")")))) (; ";")) (expression_statement "pcVar16 = strchr((char *)pbVar40,0x3a);" (assignment_expression "pcVar16 = strchr((char *)pbVar40,0x3a)" (identifier "pcVar16") (= "=") (call_expression "strchr((char *)pbVar40,0x3a)" (identifier "strchr") (argument_list "((char *)pbVar40,0x3a)" (( "(") (cast_expression "(char *)pbVar40" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar40")) (, ",") (number_literal "0x3a") () ")")))) (; ";")) (if_statement "if (pcVar16 != (char *)0x0) {\n      if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }\n      cVar4 = *pcVar15;\n      if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }\n    }" (if "if") (parenthesized_expression "(pcVar16 != (char *)0x0)" (( "(") (binary_expression "pcVar16 != (char *)0x0" (identifier "pcVar16") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }\n      cVar4 = *pcVar15;\n      if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }\n    }" ({ "{") (if_statement "if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }" (if "if") (parenthesized_expression "(((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':'))" (( "(") (binary_expression "((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')" (parenthesized_expression "((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15))" (( "(") (binary_expression "(pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)" (parenthesized_expression "(pcVar15 == (char *)0x0)" (( "(") (binary_expression "pcVar15 == (char *)0x0" (identifier "pcVar15") (== "==") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (|| "||") (parenthesized_expression "(pcVar16 <= pcVar15)" (( "(") (binary_expression "pcVar16 <= pcVar15" (identifier "pcVar16") (<= "<=") (identifier "pcVar15")) () ")"))) () ")")) (|| "||") (parenthesized_expression "(pcVar16[1] != ':')" (( "(") (binary_expression "pcVar16[1] != ':'" (subscript_expression "pcVar16[1]" (identifier "pcVar16") ([ "[") (number_literal "1") (] "]")) (!= "!=") (char_literal "':'" (' "'") (character ":") (' "'"))) () ")"))) () ")")) (compound_statement "{\nLAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;\n        if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }\n        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);\n        *param_4 = (ulong)(pcVar16 + 1);\n        break;\n      }" ({ "{") (labeled_statement "LAB_00131e52:\n        uVar35 = (long)pcVar16 - (long)pbVar40;" (statement_identifier "LAB_00131e52") (: ":") (expression_statement "uVar35 = (long)pcVar16 - (long)pbVar40;" (assignment_expression "uVar35 = (long)pcVar16 - (long)pbVar40" (identifier "uVar35") (= "=") (binary_expression "(long)pcVar16 - (long)pbVar40" (cast_expression "(long)pcVar16" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pcVar16")) (- "-") (cast_expression "(long)pbVar40" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pbVar40")))) (; ";"))) (if_statement "if (((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')) {\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }" (if "if") (parenthesized_expression "(((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0'))" (( "(") (binary_expression "((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&\n           (param_3[uVar35] == '\0')" (parenthesized_expression "((param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0))" (( "(") (binary_expression "(param_3 != (char *)0x0) &&\n            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)" (parenthesized_expression "(param_3 != (char *)0x0)" (( "(") (binary_expression "param_3 != (char *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (&& "&&") (parenthesized_expression "(iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)" (( "(") (comma_expression "iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0" (assignment_expression "iVar5 = strncmp(param_3,(char *)pbVar40,uVar35)" (identifier "iVar5") (= "=") (call_expression "strncmp(param_3,(char *)pbVar40,uVar35)" (identifier "strncmp") (argument_list "(param_3,(char *)pbVar40,uVar35)" (( "(") (identifier "param_3") (, ",") (cast_expression "(char *)pbVar40" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar40")) (, ",") (identifier "uVar35") () ")")))) (, ",") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0"))) () ")"))) () ")")) (&& "&&") (parenthesized_expression "(param_3[uVar35] == '\0')" (( "(") (binary_expression "param_3[uVar35] == '\0'" (subscript_expression "param_3[uVar35]" (identifier "param_3") ([ "[") (identifier "uVar35") (] "]")) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n          *(undefined4 *)(param_2 + 0x1a8) = 1;\n        }" ({ "{") (expression_statement "*(undefined4 *)(param_2 + 0x1a8) = 1;" (assignment_expression "*(undefined4 *)(param_2 + 0x1a8) = 1" (pointer_expression "*(undefined4 *)(param_2 + 0x1a8)" (* "*") (cast_expression "(undefined4 *)(param_2 + 0x1a8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 0x1a8)" (( "(") (binary_expression "param_2 + 0x1a8" (identifier "param_2") (+ "+") (number_literal "0x1a8")) () ")")))) (= "=") (number_literal "1")) (; ";")) (} "}"))) (expression_statement "lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);" (assignment_expression "lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32)" (identifier "lVar17") (= "=") (call_expression "FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32)" (identifier "FUN_0012ef40") (argument_list "(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32)" (( "(") (identifier "param_1") (, ",") (binary_expression "param_2 + 0x1a0" (identifier "param_2") (+ "+") (number_literal "0x1a0")) (, ",") (identifier "pbVar40") (, ",") (binary_expression "uVar35 & 0xffffffff" (identifier "uVar35") (& "&") (number_literal "0xffffffff")) (, ",") (identifier "uVar32") () ")")))) (; ";")) (expression_statement "*param_4 = (ulong)(pcVar16 + 1);" (assignment_expression "*param_4 = (ulong)(pcVar16 + 1)" (pointer_expression "*param_4" (* "*") (identifier "param_4")) (= "=") (call_expression "(ulong)(pcVar16 + 1)" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (argument_list "(pcVar16 + 1)" (( "(") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1")) () ")")))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "cVar4 = *pcVar15;" (assignment_expression "cVar4 = *pcVar15" (identifier "cVar4") (= "=") (pointer_expression "*pcVar15" (* "*") (identifier "pcVar15"))) (; ";")) (if_statement "if (cVar4 != '\0') {\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }" (if "if") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n        iVar5 = 0;\n        pcVar16 = pcVar15;\n        do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');\n      }" ({ "{") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "pcVar16 = pcVar15;" (assignment_expression "pcVar16 = pcVar15" (identifier "pcVar16") (= "=") (identifier "pcVar15")) (; ";")) (do_statement "do {\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        } while (cVar4 != '\0');" (do "do") (compound_statement "{\n          if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;\n          pcVar16 = pcVar16 + 1;\n          cVar4 = *pcVar16;\n        }" ({ "{") (if_statement "if (cVar4 == '<') {\n            iVar5 = iVar5 + 1;\n          }\n          else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;" (if "if") (parenthesized_expression "(cVar4 == '<')" (( "(") (binary_expression "cVar4 == '<'" (identifier "cVar4") (== "==") (char_literal "'<'" (' "'") (character "<") (' "'"))) () ")")) (compound_statement "{\n            iVar5 = iVar5 + 1;\n          }" ({ "{") (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (else_clause "else if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;" (else "else") (if_statement "if (cVar4 == '>') {\n            iVar5 = iVar5 + -1;\n          }\n          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;" (if "if") (parenthesized_expression "(cVar4 == '>')" (( "(") (binary_expression "cVar4 == '>'" (identifier "cVar4") (== "==") (char_literal "'>'" (' "'") (character ">") (' "'"))) () ")")) (compound_statement "{\n            iVar5 = iVar5 + -1;\n          }" ({ "{") (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (else_clause "else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;" (else "else") (if_statement "if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;" (if "if") (parenthesized_expression "((iVar5 == 0) && (cVar4 == ':'))" (( "(") (binary_expression "(iVar5 == 0) && (cVar4 == ':')" (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(cVar4 == ':')" (( "(") (binary_expression "cVar4 == ':'" (identifier "cVar4") (== "==") (char_literal "':'" (' "'") (character ":") (' "'"))) () ")"))) () ")")) (goto_statement "goto LAB_00131e52;" (goto "goto") (statement_identifier "LAB_00131e52") (; ";"))))))) (expression_statement "pcVar16 = pcVar16 + 1;" (assignment_expression "pcVar16 = pcVar16 + 1" (identifier "pcVar16") (= "=") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar4 = *pcVar16;" (assignment_expression "cVar4 = *pcVar16" (identifier "cVar4") (= "=") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(cVar4 != '\0')" (( "(") (binary_expression "cVar4 != '\0'" (identifier "cVar4") (!= "!=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (; ";")) (} "}"))) (} "}"))) (labeled_statement "switchD_001311d2_caseD_24:\n    FUN_0012e570(pbVar34);" (statement_identifier "switchD_001311d2_caseD_24") (: ":") (expression_statement "FUN_0012e570(pbVar34);" (call_expression "FUN_0012e570(pbVar34)" (identifier "FUN_0012e570") (argument_list "(pbVar34)" (( "(") (identifier "pbVar34") () ")"))) (; ";"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";"))) (} "}"))) (if_statement "if (lVar17 != 0) {\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    if (local_13c == -1) {\n      return lVar17;\n    }\n    iVar5 = FUN_0012de60(param_1,lVar17,local_13c);\n    if (iVar5 != 0) {\n      return lVar17;\n    }\n  }" (if "if") (parenthesized_expression "(lVar17 != 0)" (( "(") (binary_expression "lVar17 != 0" (identifier "lVar17") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }\n    if (local_13c == -1) {\n      return lVar17;\n    }\n    iVar5 = FUN_0012de60(param_1,lVar17,local_13c);\n    if (iVar5 != 0) {\n      return lVar17;\n    }\n  }" ({ "{") (if_statement "if ((uint)local_70 != -1) {\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }" (if "if") (parenthesized_expression "((uint)local_70 != -1)" (( "(") (binary_expression "(uint)local_70 != -1" (cast_expression "(uint)local_70" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_70")) (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);\n      if (plVar10 == (long *)0x0) {\n        return 0;\n      }\n      *plVar10 = lVar17;\n    }" ({ "{") (expression_statement "plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);" (assignment_expression "plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70)" (identifier "plVar10") (= "=") (cast_expression "(long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70)" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70)" (identifier "FUN_0012e890") (argument_list "(param_2 + 0x80,param_2 + 0x88,&local_70)" (( "(") (binary_expression "param_2 + 0x80" (identifier "param_2") (+ "+") (number_literal "0x80")) (, ",") (binary_expression "param_2 + 0x88" (identifier "param_2") (+ "+") (number_literal "0x88")) (, ",") (pointer_expression "&local_70" (& "&") (identifier "local_70")) () ")"))))) (; ";")) (if_statement "if (plVar10 == (long *)0x0) {\n        return 0;\n      }" (if "if") (parenthesized_expression "(plVar10 == (long *)0x0)" (( "(") (binary_expression "plVar10 == (long *)0x0" (identifier "plVar10") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        return 0;\n      }" ({ "{") (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}"))) (expression_statement "*plVar10 = lVar17;" (assignment_expression "*plVar10 = lVar17" (pointer_expression "*plVar10" (* "*") (identifier "plVar10")) (= "=") (identifier "lVar17")) (; ";")) (} "}"))) (if_statement "if (local_13c == -1) {\n      return lVar17;\n    }" (if "if") (parenthesized_expression "(local_13c == -1)" (( "(") (binary_expression "local_13c == -1" (identifier "local_13c") (== "==") (number_literal "-1")) () ")")) (compound_statement "{\n      return lVar17;\n    }" ({ "{") (return_statement "return lVar17;" (return "return") (identifier "lVar17") (; ";")) (} "}"))) (expression_statement "iVar5 = FUN_0012de60(param_1,lVar17,local_13c);" (assignment_expression "iVar5 = FUN_0012de60(param_1,lVar17,local_13c)" (identifier "iVar5") (= "=") (call_expression "FUN_0012de60(param_1,lVar17,local_13c)" (identifier "FUN_0012de60") (argument_list "(param_1,lVar17,local_13c)" (( "(") (identifier "param_1") (, ",") (identifier "lVar17") (, ",") (identifier "local_13c") () ")")))) (; ";")) (if_statement "if (iVar5 != 0) {\n      return lVar17;\n    }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      return lVar17;\n    }" ({ "{") (return_statement "return lVar17;" (return "return") (identifier "lVar17") (; ";")) (} "}"))) (} "}"))) (return_statement "return 0;" (return "return") (number_literal "0") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */

type_1
function_1(void *dhandle,type_2 *info,char *var_57,char **pp,
               type_3 **var_1,char *var_2)

{
  char var_92;
  type_4 var_64;
  char var_60;
  type_5 var_6;
  type_5 var_38;
  type_6 var_25;
  int var_19;
  type_7 var_46;
  type_3 *var_22;
  type_8 var_11;
  long var_53;
  type_9 *values;
  type_10 var_34;
  type_10 var_56;
  type_10 var_72;
  type_11 var_68;
  char *var_77;
  char *var_9;
  type_1 var_14;
  type_1 var_16;
  type_3 var_29;
  type_12 var_120;
  type_13 pdVar22;
  type_1 var_23;
  type_14 *var_115;
  type_15 var_62;
  char *var_70;
  type_4 *var_10;
  type_16 *var_101;
  type_10 lower;
  type_8 var_63;
  type_7 *var_90;
  type_7 *puVar30;
  char **pstart;
  type_4 *var_3;
  size_t var_86;
  type_3 *ppdVar33;
  type_4 *var_83;
  type_4 *var_84;
  type_17 dVar36;
  type_4 var_4;
  type_8 var_21;
  type_7 var_45;
  type_4 *var_12;
  bool var_54;
  bool var_85;
  bool bVar43;
  bool bVar44;
  bool bVar45;
  bool bVar46;
  type_4 var_41;
  char **local_148;
  type_7 var_129;
  char *var_73;
  type_11 *local_130;
  type_12 *var_74;
  type_17 local_120;
  type_5 var_88;
  type_13 *var_124;
  type_1 local_100;
  type_15 *var_125;
  int var_87;
  type_7 var_116;
  type_7 var_117;
  type_17 local_e4;
  type_8 local_e0;
  type_8 var_106;
  type_7 var_121;
  type_7 var_122;
  char *var_98;
  type_5 varargs;
  type_5 var_50;
  char *var_105;
  int typenums [2];
  int xtypenums [2];
  type_14 *var_114;
  type_7 local_50 [2];
  type_14 *var_82;
  type_7 local_40;
  type_7 local_3c;
  
  var_41 = 0;
  if (var_1 != (type_3 **)0x0) {
    *var_1 = (type_3 *)0x0;
  }
  var_3 = (type_4 *)*pp;
  if (var_2 <= var_3) {
    return (type_1)0x0;
  }
  info->self_crossref = 0;
  var_4 = *var_3;
  if (((_sch_istable[(type_8)var_4 * 2] & 4) != 0) || (var_4 == 0x2d || var_4 == 0x28)) {
    var_6 = var_5(pp,typenums,var_2);
    if (var_6 == 0) {
      return (type_1)0x0;
    }
    var_9 = *pp;
    if (*var_9 != '=') {
      var_14 = var_7(dhandle,info,typenums);
      return var_14;
    }
    if (((var_1 != (type_3 **)0x0) && (-1 < typenums[0])) && (-1 < (long)typenums)) {
      var_22 = var_8((type_2 *)&info->files,(int *)&info->file_types,
                               (type_2 *)typenums);
      var_9 = *pp;
      *var_1 = var_22;
    }
    var_6 = 0;
    *pp = var_9 + 1;
    var_129 = 0xffffffff;
    var_10 = (type_4 *)(var_9 + 1);
    do {
      while( true ) {
        while( true ) {
          var_4 = *var_10;
          var_12 = var_10 + 1;
          if (var_4 != 0x40) goto LAB_001311b2;
          var_4 = var_10[1];
          var_11 = (type_8)var_4;
          if (((_sch_istable[var_11 * 2] & 4) != 0) || (var_4 == 0x2d || var_4 == 0x28)) {
            *pp = (char *)var_12;
            goto switchD_001311d2_caseD_40;
          }
          while ((char)var_11 != ';') {
            if ((char)var_11 == '\0') goto switchD_001311d2_caseD_24;
            var_12 = var_12 + 1;
            var_11 = (type_8)*var_12;
          }
          var_12 = var_12 + 1;
          *pp = (char *)var_12;
          var_4 = var_10[1];
          if (var_4 != 0x53) break;
          var_6 = 1;
          var_10 = var_12;
        }
        if (var_4 != 0x73) break;
        var_53 = var_13((char *)(var_10 + 2),(char **)0x0,10);
        if ((int)var_53 < 8) {
          var_129 = 0xffffffff;
          var_10 = (type_4 *)*pp;
        }
        else {
          var_129 = (int)var_53 >> 3;
          var_10 = (type_4 *)*pp;
        }
      }
      var_10 = var_12;
    } while (var_4 != 0);
    goto switchD_001311d2_caseD_24;
  }
  var_12 = var_3 + 1;
  var_6 = 0;
  var_129 = 0xffffffff;
  typenums[0] = -1;
  typenums[1] = -1;
  var_4 = *var_3;
  var_10 = var_3;
LAB_001311b2:
  *pp = (char *)var_12;
  switch(var_4) {
  case 0x23:
    if (var_10[1] == 0x23) {
      *pp = (char *)(var_10 + 2);
      var_14 = function_1(dhandle,info,(char *)0x0,pp,(type_3 **)0x0,var_2);
      if (var_14 == (type_1)0x0) {
        return (type_1)0x0;
      }
      if (**pp != ';') goto switchD_001311d2_caseD_24;
      *pp = *pp + 1;
      var_29 = var_15
                          (dhandle,var_14,(type_3)0x0,(type_3 *)0x0,0);
    }
    else {
      var_14 = function_1(dhandle,info,(char *)0x0,pp,(type_3 **)0x0,var_2);
      if (var_14 == (type_1)0x0) {
        return (type_1)0x0;
      }
      if (**pp != ',') goto switchD_001311d2_caseD_24;
      *pp = *pp + 1;
      var_16 = function_1(dhandle,info,(char *)0x0,pp,(type_3 **)0x0,var_2);
      if (var_16 == (type_1)0x0) {
        return (type_1)0x0;
      }
      var_21 = 10;
      var_22 = (type_3 *)var_17(0x50);
      var_11 = 0;
      while( true ) {
        var_9 = *pp;
        var_19 = (int)var_11;
        if (*var_9 == ';') break;
        if (*var_9 != ',') {
          var_18((char *)var_3);
          return (type_1)0x0;
        }
        *pp = var_9 + 1;
        if ((type_7)var_21 <= var_19 + 1U) {
          var_21 = (type_8)((type_7)var_21 + 10);
          var_22 = (type_3 *)var_20(var_22,var_21 << 3);
        }
        ppdVar33 = var_22 + var_11;
        var_23 = function_1(dhandle,info,(char *)0x0,pp,(type_3 **)0x0,var_2);
        var_11 = (type_8)(var_19 + 1U);
        *ppdVar33 = var_23;
        if (var_23 == (type_1)0x0) {
          return (type_1)0x0;
        }
      }
      var_6 = 1;
      *pp = var_9 + 1;
      ppdVar33 = var_22;
      if (var_19 != 0) {
        ppdVar33 = var_22 + (var_19 - 1);
        var_25 = var_24(dhandle,*ppdVar33);
        if (var_25 == var_26) {
          var_6 = 0;
        }
        else {
          ppdVar33 = var_22 + var_11;
        }
      }
      *ppdVar33 = (type_3)0x0;
      var_29 = var_15(dhandle,var_16,var_14,var_22,var_6);
    }
    break;
  default:
    goto switchD_001311d2_caseD_24;
  case 0x26:
    var_14 = function_1(dhandle,info,(char *)0x0,pp,(type_3 **)0x0,var_2);
    var_29 = var_27(dhandle,var_14);
    break;
  case 0x28:
  case 0x2d:
  case 0x30:
  case 0x31:
  case 0x32:
  case 0x33:
  case 0x34:
  case 0x35:
  case 0x36:
  case 0x37:
  case 0x38:
  case 0x39:
    *pp = (char *)var_10;
    var_6 = var_5(pp,xtypenums,var_2);
    if (var_6 == 0) {
      return (type_1)0x0;
    }
    if (typenums[0] == xtypenums[0]) {
      if (typenums[1] != xtypenums[1]) goto LAB_00132079;
      var_29 = var_28(dhandle);
    }
    else {
LAB_00132079:
      *pp = (char *)var_10;
      var_29 = function_1(dhandle,info,(char *)0x0,pp,(type_3 **)0x0,var_2);
      if (var_29 == (type_1)0x0) {
        return (type_1)0x0;
      }
    }
    if (typenums[0] != -1) {
      var_22 = var_8((type_2 *)&info->files,(int *)&info->file_types,
                               (type_2 *)typenums);
      if (var_22 == (type_3 *)0x0) {
        return (type_1)0x0;
      }
      *var_22 = var_29;
    }
    break;
  case 0x2a:
    var_14 = function_1(dhandle,info,(char *)0x0,pp,(type_3 **)0x0,var_2);
    var_29 = var_30(dhandle,var_14);
    break;
  case 0x40:
switchD_001311d2_caseD_40:
    var_14 = function_1(dhandle,info,(char *)0x0,pp,(type_3 **)0x0,var_2);
    if (var_14 == (type_1)0x0) {
      return (type_1)0x0;
    }
    if (**pp != ',') goto switchD_001311d2_caseD_24;
    *pp = *pp + 1;
    var_16 = function_1(dhandle,info,(char *)0x0,pp,(type_3 **)0x0,var_2);
    if (var_16 == (type_1)0x0) {
      return (type_1)0x0;
    }
    var_29 = var_31(dhandle,var_14,var_16);
    break;
  case 0x42:
    var_14 = function_1(dhandle,info,(char *)0x0,pp,(type_3 **)0x0,var_2);
    var_29 = var_32(dhandle,var_14);
    break;
  case 0x52:
    if (var_2 <= var_12) {
      return (type_1)0x0;
    }
    var_34 = var_33(pp,(type_5 *)0x0,var_2);
    if ((**pp != ';') || (var_56 = var_33(pp,(type_5 *)0x0,var_2), **pp != ';'))
    goto LAB_00132126;
    if (var_34 - 3 < 3) {
      var_29 = var_35(dhandle,(type_7)var_56);
    }
    else {
      var_29 = var_36(dhandle,(type_7)var_56);
    }
    break;
  case 0x53:
    var_14 = function_1(dhandle,info,(char *)0x0,pp,(type_3 **)0x0,var_2);
    var_29 = var_37(dhandle,var_14,var_6);
    break;
  case 0x61:
    if (var_10[1] == 0x72) {
      var_10 = var_10 + 2;
      *pp = (char *)var_10;
      if (var_2 <= var_10) {
        return (type_1)0x0;
      }
      var_105 = (char *)var_10;
      var_38 = var_5(&var_105,xtypenums,var_2);
      if (var_38 == 0) {
        return (type_1)0x0;
      }
      if ((xtypenums[0] == 0 && xtypenums[1] == 0) && (**pp != '=')) {
        var_29 = var_39(dhandle,"int");
        if ((var_29 == (type_3)0x0) &&
           (var_29 = var_40(dhandle,4,0), var_29 == (type_3)0x0)) {
          return (type_1)0x0;
        }
        *pp = var_105;
        var_9 = var_105;
      }
      else {
        var_29 = function_1(dhandle,info,(char *)0x0,pp,(type_3 **)0x0,var_2);
        var_9 = *pp;
      }
      if (*var_9 == ';') {
        *pp = var_9 + 1;
        var_41 = var_9[1];
        if (((_sch_istable[(type_8)var_41 * 2] & 4) == 0) && (var_41 != 0 && var_41 != 0x2d)) {
          bVar43 = true;
          *pp = var_9 + 2;
        }
        else {
          bVar43 = false;
        }
        var_34 = var_33(pp,(type_5 *)0x0,var_2);
        var_9 = *pp;
        if (*var_9 == ';') {
          *pp = var_9 + 1;
          var_41 = var_9[1];
          if (((_sch_istable[(type_8)var_41 * 2] & 4) == 0) && (var_41 != 0x2d && var_41 != 0)) {
            bVar43 = true;
            *pp = var_9 + 2;
          }
          var_56 = var_33(pp,(type_5 *)0x0,var_2);
          if (**pp == ';') {
            *pp = *pp + 1;
            var_14 = function_1(dhandle,info,(char *)0x0,pp,(type_3 **)0x0,var_2)
            ;
            if (var_14 == (type_1)0x0) {
              return (type_1)0x0;
            }
            lower = 0;
            var_72 = 0xffffffffffffffff;
            if (!bVar43) {
              lower = var_34;
              var_72 = var_56;
            }
            var_29 = var_42(dhandle,var_14,var_29,lower,var_72,var_6);
            break;
          }
        }
      }
      var_18((char *)var_10);
      return (type_1)0x0;
    }
    goto switchD_001311d2_caseD_24;
  case 0x62:
    if (var_2 <= var_12) {
      return (type_1)0x0;
    }
    if (var_10[1] == 0x73) {
      var_6 = 0;
    }
    else {
      if (var_10[1] != 0x75) goto LAB_00132126;
      var_6 = 1;
    }
    *pp = (char *)(var_10 + 2);
    if (((type_4)(var_10[2] + 0x9e) < 2) || (var_10[2] == 0x76)) {
      *pp = (char *)(var_10 + 3);
    }
    var_33(pp,(type_5 *)0x0,var_2);
    if (**pp != ';') goto LAB_00132126;
    *pp = *pp + 1;
    var_33(pp,(type_5 *)0x0,var_2);
    if (**pp != ';') goto LAB_00132126;
    *pp = *pp + 1;
    var_34 = var_33(pp,(type_5 *)0x0,var_2);
    if (**pp == ';') {
      *pp = *pp + 1;
    }
    if (var_34 != 0) {
      var_29 = var_40(dhandle,(type_7)(var_34 >> 3),var_6);
      break;
    }
LAB_00133358:
    var_29 = var_28(dhandle);
    break;
  case 0x65:
    if (var_2 <= var_12) {
      return (type_1)0x0;
    }
    var_3 = var_12;
    if (var_10[1] == 0x2d) {
      do {
        var_10 = var_3;
        *pp = (char *)(var_10 + 1);
        var_41 = var_10[1];
        if (var_41 == 0x3a) break;
        var_3 = var_10 + 1;
      } while (var_41 != 0);
      if (var_41 == 0) goto LAB_00132126;
      *pp = (char *)(var_10 + 2);
    }
    local_148 = (char **)var_17(0x50);
    values = (type_9 *)var_17(0x50);
    var_3 = (type_4 *)*pp;
    var_11 = (type_8)*var_3;
    if ((*var_3 < 0x3c) && ((0x800100000000001U >> (var_11 & 0x3f) & 1) != 0)) {
      var_63 = 0;
    }
    else {
      var_21 = 10;
      var_45 = 0;
      do {
        var_41 = (type_4)var_11;
        var_10 = var_3;
        while ((var_41 != 0x3a && (var_41 != 0))) {
          var_10 = var_10 + 1;
          var_41 = *var_10;
        }
        if (var_41 == 0) {
          var_18((char *)var_12);
LAB_00132cf2:
          var_43(local_148);
          var_43(values);
          return (type_1)0x0;
        }
        var_9 = var_44((char *)var_3,(int)var_10 - (int)var_3);
        *pp = (char *)(var_10 + 1);
        var_34 = var_33(pp,(type_5 *)0x0,var_2);
        if (**pp != ',') {
          var_18((char *)var_12);
          var_43(var_9);
          goto LAB_00132cf2;
        }
        var_46 = var_45 + 1;
        *pp = *pp + 1;
        if ((type_7)var_21 <= var_46) {
          var_21 = (type_8)((type_7)var_21 + 10);
          local_148 = (char **)var_20(local_148,var_21 << 3);
          values = (type_9 *)var_20(values,var_21 << 3);
        }
        var_63 = (type_8)var_46;
        local_148[var_45] = var_9;
        var_3 = (type_4 *)*pp;
        values[var_45] = var_34;
        var_11 = (type_8)*var_3;
        var_45 = var_46;
      } while ((0x3b < *var_3) || ((0x800100000000001U >> (var_11 & 0x3f) & 1) == 0));
    }
    local_148[var_63] = (char *)0x0;
    var_9 = *pp;
    values[var_63] = 0;
    if (*var_9 == ';') {
      *pp = var_9 + 1;
    }
    var_29 = var_47(dhandle,local_148,values);
    break;
  case 0x66:
    var_14 = function_1(dhandle,info,(char *)0x0,pp,(type_3 **)0x0,var_2);
    var_29 = var_48(dhandle,var_14,(type_3 *)0x0,0);
    break;
  case 0x6b:
    var_14 = function_1(dhandle,info,(char *)0x0,pp,(type_3 **)0x0,var_2);
    var_29 = var_49(dhandle,var_14);
    break;
  case 0x72:
    if (var_2 <= var_12) {
      return (type_1)0x0;
    }
    var_6 = var_5(pp,xtypenums,var_2);
    if (var_6 == 0) {
      return (type_1)0x0;
    }
    bVar43 = false;
    if (xtypenums[0] == typenums[0]) {
      bVar43 = xtypenums[1] == typenums[1];
    }
    var_3 = (type_4 *)*pp;
    var_14 = (type_1)0x0;
    var_4 = *var_3;
    if (var_4 == 0x3d) {
      *pp = (char *)var_12;
      var_14 = function_1(dhandle,info,(char *)0x0,pp,(type_3 **)0x0,var_2);
      if (var_14 == (type_1)0x0) {
        return (type_1)0x0;
      }
      var_3 = (type_4 *)*pp;
      var_4 = *var_3;
    }
    if (var_4 == 0x3b) {
      var_3 = var_3 + 1;
      *pp = (char *)var_3;
    }
    var_34 = var_33(pp,&var_50,var_2);
    if (**pp != ';') goto LAB_00132126;
    var_9 = *pp + 1;
    *pp = var_9;
    var_56 = var_33(pp,(type_5 *)&var_105,var_2);
    var_6 = var_50;
    if (**pp != ';') goto LAB_00132126;
    *pp = *pp + 1;
    if (var_50 != 0 || (int)var_105 != 0) {
      var_54 = false;
      bVar44 = var_14 == (type_1)0x0;
      if (!bVar44) {
LAB_00131960:
        var_9 = (char *)var_51(0,"numeric overflow",5);
        var_52((char *)var_12,var_9);
        goto LAB_0013197e;
      }
      var_53 = 0x18;
      var_10 = (type_4 *)"01000000000000000000000;";
      do {
        if (var_53 == 0) break;
        var_53 = var_53 + -1;
        var_54 = *var_3 < *var_10;
        bVar44 = *var_3 == *var_10;
        var_3 = var_3 + (type_8)var_41 * -2 + 1;
        var_10 = var_10 + (type_8)var_41 * -2 + 1;
      } while (bVar44);
      if (((!var_54 && !bVar44) != var_54) ||
         (var_19 = var_55(var_9,"0777777777777777777777;",0x17), var_19 != 0)) {
        if ((var_34 != 0) ||
           ((var_6 != 0 || (var_19 = var_55(var_9,"01777777777777777777777;",0x18), var_19 != 0))))
        goto LAB_00131960;
LAB_0013348a:
        var_29 = var_40(dhandle,8,1);
        break;
      }
LAB_0013373f:
      var_29 = var_40(dhandle,8,0);
      break;
    }
LAB_0013197e:
    if (var_14 == (type_1)0x0) {
      if ((bVar43) && (var_34 == 0)) {
        if (var_56 == 0) goto LAB_00133358;
        if (var_56 == 0xffffffffffffffff) {
LAB_00133395:
          if (var_57 != (char *)0x0) {
            var_19 = var_58(var_57,"long long int");
            if (var_19 == 0) goto LAB_0013373f;
            var_19 = var_58(var_57,"long long unsigned int");
            if (var_19 == 0) goto LAB_0013348a;
          }
        }
        else {
          if (var_56 == 0x7f) {
LAB_00133dee:
            var_29 = var_40(dhandle,1,0);
            break;
          }
LAB_00133a66:
          var_45 = (type_7)var_56;
          if ((long)var_56 < 0) goto LAB_00133b55;
          if (var_56 == 0xff) {
            var_29 = var_40(dhandle,1,1);
            break;
          }
          if (var_56 == 0xffff) {
            var_29 = var_40(dhandle,2,1);
            break;
          }
          if (var_56 != 0xffffffff) goto LAB_00131987;
        }
        var_29 = var_40(dhandle,4,1);
        break;
      }
      var_54 = var_56 != 0;
      var_45 = (type_7)var_34;
      if ((!bVar43) || (var_54)) {
        if ((0 < (long)var_34) && (!var_54)) {
          var_29 = var_36(dhandle,var_45);
          break;
        }
        if ((var_56 == 0xffffffffffffffff) && (var_34 == 0)) goto LAB_00133395;
        if (var_34 == 0) goto LAB_00133a66;
        if (((-1 < (long)var_34) || (var_54)) || ((var_34 != 0xfffffffffffffff8 && (!bVar43))))
        goto LAB_001336f0;
      }
      else {
        if (0 < (long)var_34) {
          var_29 = var_35(dhandle,var_45);
          break;
        }
        if (-1 < (long)var_34) {
LAB_001336f0:
          if ((var_34 == ~var_56) || (var_34 == var_56 + 1)) {
            if (var_56 == 0x7f) goto LAB_00133dee;
            if (var_56 == 0x7fff) {
              var_29 = var_40(dhandle,2,0);
              break;
            }
            if (var_56 == 0x7fffffff) {
              var_29 = var_40(dhandle,4,0);
              break;
            }
            if (var_56 == 0x7fffffffffffffff) goto LAB_0013373f;
          }
          goto LAB_00131987;
        }
      }
LAB_00133b55:
      var_29 = var_40(dhandle,-var_45,1);
    }
    else {
LAB_00131987:
      if (bVar43) {
LAB_00132126:
        var_18((char *)var_12);
        return (type_1)0x0;
      }
      var_29 = var_7(dhandle,info,xtypenums);
      if (var_29 == (type_1)0x0) {
        var_9 = (char *)var_51(0,"missing index type",5);
        var_52((char *)var_12,var_9);
        var_29 = var_40(dhandle,4,0);
      }
      var_29 = var_59(dhandle,var_29,var_34,var_56);
    }
    break;
  case 0x73:
  case 0x75:
    var_34 = var_33(pp,(type_5 *)0x0,var_2);
    var_12 = (type_4 *)*pp;
    if (var_2 <= var_12) {
      return (type_1)0x0;
    }
    var_125 = (type_15 *)0x0;
    if (*var_12 == 0x21) {
      *pp = (char *)(var_12 + 1);
      var_56 = var_33(pp,(type_5 *)0x0,var_2);
      if (**pp != ',') goto LAB_00132126;
      var_19 = (int)var_56;
      var_11 = var_56 & 0xffffffff;
      *pp = *pp + 1;
      var_125 = (type_15 *)var_17((type_8)(var_19 + 1) << 3);
      if (var_19 != 0) {
        var_21 = 0;
        var_60 = **pp;
        if (var_60 == '0') goto LAB_00132b2f;
LAB_00132a1e:
        var_63 = var_21;
        if (var_60 == '1') {
          var_6 = 1;
        }
        else {
          if (var_60 == '\0') goto LAB_00132126;
          var_6 = 0;
          var_9 = (char *)var_51(0,"unknown virtual character for baseclass",5);
          var_52((char *)var_12,var_9);
        }
        do {
          var_9 = *pp;
          *pp = var_9 + 1;
          var_60 = var_9[1];
          if (var_60 == '0') {
            dVar36 = DEBUG_VISIBILITY_PRIVATE;
          }
          else {
            if (var_60 < '1') {
              if (var_60 == '\0') goto LAB_00132126;
            }
            else {
              dVar36 = DEBUG_VISIBILITY_PROTECTED;
              if ((var_60 == '1') || (dVar36 = DEBUG_VISIBILITY_PUBLIC, var_60 == '2'))
              goto LAB_00132a81;
            }
            dVar36 = DEBUG_VISIBILITY_PUBLIC;
            var_9 = (char *)var_51(0,"unknown visibility character for baseclass",5);
            var_52((char *)var_12,var_9);
          }
LAB_00132a81:
          *pp = *pp + 1;
          var_56 = var_33(pp,(type_5 *)0x0,var_2);
          if (**pp != ',') goto LAB_00132126;
          *pp = *pp + 1;
          var_14 = function_1(dhandle,info,(char *)0x0,pp,(type_3 **)0x0,var_2);
          if (var_14 == (type_1)0x0) {
            return (type_1)0x0;
          }
          var_62 = var_61(dhandle,var_14,var_56,var_6,dVar36);
          var_125[var_63] = var_62;
          if (var_62 == (type_15)0x0) {
            return (type_1)0x0;
          }
          if (**pp != ';') {
            return (type_1)0x0;
          }
          var_9 = *pp + 1;
          var_11 = (type_8)((int)var_63 + 1);
          var_21 = var_63 + 1;
          *pp = var_9;
          if (var_63 == var_19 - 1) break;
          var_60 = *var_9;
          if (var_60 != '0') goto LAB_00132a1e;
LAB_00132b2f:
          var_6 = 0;
          var_63 = var_21;
        } while( true );
      }
      var_12 = (type_4 *)*pp;
      var_125[var_11] = (type_15)0x0;
      if (var_2 <= var_12) {
        return (type_1)0x0;
      }
    }
    var_11 = 0;
    local_130 = (type_11 *)var_17(0x50);
    var_3 = (type_4 *)*pp;
    bVar43 = false;
    var_64 = *var_3;
    var_73._0_4_ = 10;
    while (var_64 != 0x3b) {
      var_45 = (int)var_11 + 1;
      if ((type_7)var_73 <= var_45) {
        var_73._0_4_ = (type_7)var_73 + 10;
        local_130 = (type_11 *)var_20(local_130,(type_8)(type_7)var_73 << 3);
        var_64 = *var_3;
      }
      if (((var_64 == 0x24) || (var_64 == 0x2e)) && (var_3[1] != 0x5f)) {
        var_9 = *pp;
        var_3 = (type_4 *)(var_9 + 1);
        *pp = (char *)var_3;
        local_130[var_11] = (type_11)0x0;
        if (var_2 <= var_3) goto LAB_00131328;
        if (var_9[1] != 'v') goto LAB_00132740;
        *pp = var_9 + 2;
        var_60 = var_9[2];
        if (var_60 == '\0') goto LAB_00132740;
        *pp = var_9 + 3;
        var_14 = function_1(dhandle,info,(char *)0x0,pp,(type_3 **)0x0,var_2);
        if (var_14 == (type_1)0x0) goto LAB_00131328;
        if (var_60 == 'b') {
          var_9 = var_65(dhandle,var_14);
          if (var_9 == (char *)0x0) {
            var_9 = (char *)var_51(0,"unnamed $vb type",5);
            var_52((char *)var_3,var_9);
            var_9 = "FOO";
          }
          var_9 = (char *)var_66(&DAT_00146a0b,var_9,0);
        }
        else {
          var_9 = "_vptr$";
          if (var_60 != 'f') {
            var_77 = (char *)var_51(0,"unrecognized C++ abbreviation",5);
            var_9 = "INVALID_CPLUSPLUS_ABBREV";
            var_52((char *)var_3,var_77);
          }
        }
        if (**pp != ':') goto LAB_00132740;
        *pp = *pp + 1;
        var_14 = function_1(dhandle,info,(char *)0x0,pp,(type_3 **)0x0,var_2);
        if (**pp != ',') goto LAB_00132740;
        *pp = *pp + 1;
        var_56 = var_33(pp,(type_5 *)0x0,var_2);
        if (**pp != ';') goto LAB_00132740;
        *pp = *pp + 1;
        var_68 = var_67(dhandle,var_9,var_14,var_56,0,DEBUG_VISIBILITY_PRIVATE);
        local_130[var_11] = var_68;
        if (var_68 == (type_11)0x0) goto LAB_00131328;
      }
      else {
        var_9 = var_69((char *)var_3,0x3a);
        if (var_9 == (char *)0x0) {
          var_18((char *)var_12);
          var_43(local_130);
          return (type_1)0x0;
        }
        var_3 = (type_4 *)*pp;
        if (var_9[1] == ':') break;
        if (var_2 <= var_3) {
          return (type_1)0x0;
        }
        var_77 = var_44((char *)var_3,(int)var_9 - (int)var_3);
        *pp = var_9 + 1;
        if (var_9[1] == '/') {
          var_70 = var_9 + 2;
          *pp = var_70;
          var_60 = var_9[2];
          if (var_60 == '0') {
            local_120 = DEBUG_VISIBILITY_PRIVATE;
          }
          else {
            if (var_60 < '1') {
              if (var_60 == '\0') goto switchD_001311d2_caseD_24;
            }
            else {
              local_120 = DEBUG_VISIBILITY_PROTECTED;
              if ((var_60 == '1') || (local_120 = DEBUG_VISIBILITY_PUBLIC, var_60 == '2'))
              goto LAB_00131b6d;
            }
            var_9 = (char *)var_51(0,"unknown visibility character for field",5);
            var_52((char *)var_3,var_9);
            var_70 = *pp;
            local_120 = DEBUG_VISIBILITY_PUBLIC;
          }
LAB_00131b6d:
          *pp = var_70 + 1;
        }
        else {
          local_120 = DEBUG_VISIBILITY_PUBLIC;
        }
        var_14 = function_1(dhandle,info,(char *)0x0,pp,(type_3 **)0x0,var_2);
        if (var_14 == (type_1)0x0) {
          var_43(var_77);
          return (type_1)0x0;
        }
        var_9 = *pp;
        if (*var_9 == ':') {
          var_9 = var_9 + 1;
          *pp = var_9;
          var_70 = var_69(var_9,0x3b);
          if (var_70 == (char *)0x0) goto LAB_00132614;
          var_9 = var_44(var_9,(int)var_70 - (int)var_9);
          *pp = var_70 + 1;
          var_68 = var_71(dhandle,var_77,var_14,var_9,local_120);
          bVar43 = true;
          local_130[var_11] = var_68;
        }
        else {
          if (*var_9 != ',') {
LAB_00132614:
            var_18((char *)var_3);
            var_43(var_77);
            return (type_1)0x0;
          }
          *pp = var_9 + 1;
          var_56 = var_33(pp,(type_5 *)0x0,var_2);
          if (**pp != ',') goto LAB_00132614;
          *pp = *pp + 1;
          var_72 = var_33(pp,(type_5 *)0x0,var_2);
          if (**pp != ';') goto LAB_00132614;
          *pp = *pp + 1;
          dVar36 = DEBUG_VISIBILITY_IGNORE;
          if (var_56 != 0 || var_72 != 0) {
            dVar36 = local_120;
          }
          var_68 = var_67(dhandle,var_77,var_14,var_56,var_72,dVar36);
          local_130[var_11] = var_68;
        }
      }
      var_3 = (type_4 *)*pp;
      var_11 = (type_8)var_45;
      var_64 = *var_3;
    }
    local_130[var_11] = (type_11)0x0;
    if (var_2 <= var_3) goto LAB_00131328;
    var_64 = *var_3;
    if (var_64 == 0x3b) {
      var_124 = (type_13 *)0x0;
LAB_001334bc:
      var_10 = var_3 + 1;
      *pp = (char *)var_10;
    }
    else {
      var_12 = (type_4 *)0x0;
      var_74 = (type_12 *)0x0;
      var_124 = (type_13 *)0x0;
      var_122 = 0;
      var_121 = 0;
      var_73 = (char *)0x0;
      var_10 = var_3;
      do {
        var_9 = var_69((char *)var_10,0x3a);
        if ((var_9 == (char *)0x0) || (var_9[1] != ':')) break;
        var_77 = var_9 + 2;
        if ((var_64 == 0x6f) && ((var_10[1] == 0x70 && (var_10[2] == 0x24)))) {
          *pp = var_77;
          var_60 = var_9[2];
          var_9 = var_77;
          while ((var_60 != '.' && (var_60 != '\0'))) {
            var_9 = var_9 + 1;
            var_60 = *var_9;
          }
          if (var_60 != '.') {
            var_18((char *)var_3);
            if (var_73 != (char *)0x0) {
LAB_0013279c:
              var_43(var_73);
            }
            if (var_74 != (type_12 *)0x0) {
LAB_00132d1b:
              var_43(var_74);
            }
            if (var_12 != (type_4 *)0x0) {
              var_43(var_12);
            }
            goto LAB_00131328;
          }
          var_73 = var_44(var_77,(int)var_9 - (int)var_77);
          *pp = var_9 + 1;
        }
        else {
          var_73 = var_44((char *)var_10,(int)var_9 - (int)var_10);
          *pp = var_77;
        }
        var_74 = (type_12 *)var_17(0x50);
        var_116 = 0;
        var_117 = 10;
        var_14 = (type_1)0x0;
        do {
          if (var_14 == (type_1)0x0) {
            var_14 = function_1(dhandle,info,(char *)0x0,pp,(type_3 **)0x0,var_2)
            ;
            if (var_14 != (type_1)0x0) {
              var_9 = *pp;
              if (*var_9 == ':') goto LAB_00131d3f;
              goto LAB_00132781;
            }
LAB_00132793:
            if (var_73 == (char *)0x0) goto LAB_00132d1b;
            goto LAB_0013279c;
          }
          var_9 = *pp;
LAB_00131d3f:
          *pp = var_9 + 1;
          var_9 = var_69(var_9 + 1,0x3b);
          if (var_9 == (char *)0x0) {
LAB_00132781:
            var_18((char *)var_3);
            goto LAB_00132793;
          }
          var_25 = var_24(dhandle,var_14);
          var_54 = false;
          if (var_25 == var_75) {
            var_22 = var_76(dhandle,var_14,&varargs);
            var_54 = var_22 == (type_3 *)0x0;
          }
          var_12 = (type_4 *)var_44(*pp,(int)var_9 - (int)*pp);
          *pp = var_9 + 1;
          var_60 = var_9[1];
          if (var_60 == '0') {
            local_e4 = DEBUG_VISIBILITY_PRIVATE;
          }
          else if (var_60 == '1') {
            local_e4 = DEBUG_VISIBILITY_PROTECTED;
          }
          else {
            if (var_60 == '\0') goto LAB_00132781;
            local_e4 = DEBUG_VISIBILITY_PUBLIC;
          }
          var_77 = var_9 + 2;
          *pp = var_77;
          var_60 = var_9[2];
          switch(var_60) {
          case '*':
          case '.':
          case '?':
            var_88 = 0;
            var_87 = 0;
            break;
          default:
            var_9 = (char *)var_51(0,"const/volatile indicator missing",5);
            var_52((char *)var_3,var_9);
            var_77 = *pp;
            var_88 = 0;
            var_87 = 0;
            var_60 = *var_77;
            break;
          case 'A':
            var_77 = var_9 + 3;
            var_88 = 0;
            *pp = var_77;
            var_60 = var_9[3];
            var_87 = 0;
            break;
          case 'B':
            var_77 = var_9 + 3;
            var_88 = 0;
            *pp = var_77;
            var_60 = var_9[3];
            var_87 = 1;
            break;
          case 'C':
            var_77 = var_9 + 3;
            var_88 = 1;
            *pp = var_77;
            var_60 = var_9[3];
            var_87 = 0;
            break;
          case 'D':
            var_77 = var_9 + 3;
            var_88 = 1;
            var_87 = 1;
            *pp = var_77;
            var_60 = var_9[3];
          }
          var_10 = var_12;
          if (var_60 == '.') {
            bVar44 = false;
            var_16 = (type_1)0x0;
            *pp = var_77 + 1;
            local_100 = (type_1)0x0;
            local_e0 = 0;
LAB_001322ba:
            if (var_54) goto LAB_0013282f;
          }
          else {
            if (var_60 != '?') {
              if (var_60 == '*') {
                *pp = var_77 + 1;
                var_56 = var_33(pp,(type_5 *)0x0,var_2);
                var_9 = *pp;
                if (*var_9 != ';') goto LAB_00132781;
                local_e0 = (type_8)((type_7)var_56 & 0x7fffffff);
                *pp = var_9 + 1;
                if ((var_9[1] == ';') || (var_9[1] == '\0')) {
                  local_100 = (type_1)0x0;
                  var_16 = (type_1)0x0;
                  bVar44 = false;
                }
                else {
                  var_23 = function_1(dhandle,info,(char *)0x0,pp,(type_3 **)0x0,
                                            var_2);
                  var_60 = **pp;
                  if (var_60 == ':') {
                    local_100 = (type_1)0x0;
                    bVar44 = false;
                    var_16 = var_23;
                  }
                  else {
                    if (var_60 != ';') goto LAB_00132781;
                    *pp = *pp + 1;
                    bVar44 = false;
                    var_16 = (type_1)0x0;
                    local_100 = var_23;
                  }
                }
              }
              else {
                var_52((char *)var_3,"member function type missing");
                bVar44 = false;
                local_100 = (type_1)0x0;
                local_e0 = 0;
                var_16 = (type_1)0x0;
              }
              goto LAB_001322ba;
            }
            *pp = var_77 + 1;
            var_86 = var_78(var_73);
            var_19 = var_55((char *)var_12,var_73,var_86);
            if (var_19 == 0) {
              local_100 = (type_1)0x0;
              var_16 = (type_1)0x0;
              local_e0 = 0;
              bVar44 = true;
              goto LAB_001322ba;
            }
            local_100 = (type_1)0x0;
            var_16 = (type_1)0x0;
            local_e0 = 0;
            bVar44 = true;
LAB_0013282f:
            var_23 = var_7(dhandle,info,typenums);
            if (var_23 == (type_1)0x0) goto LAB_00132793;
            var_29 = var_79(dhandle,var_14);
            if (var_29 == (type_3)0x0) goto LAB_00132781;
            var_54 = *var_12 < 0x5f;
            bVar45 = *var_12 == 0x5f;
            if (bVar45) {
              if (var_12[1] != 0x5f) {
                var_19 = var_55((char *)var_12,"__ct",4);
                if (var_19 == 0) {
                  bVar45 = true;
                  var_54 = true;
                }
                else {
                  if (var_57 != (char *)0x0) goto LAB_001338f6;
                  bVar45 = false;
                  var_54 = false;
                }
LAB_00133557:
                if ((((var_12[1] != 0x24) && (var_12[1] != 0x2e)) || (var_12[2] != 0x5f)) &&
                   (var_19 = var_55((char *)var_12,"__dt",4), var_19 != 0)) goto LAB_0013358b;
LAB_001336a5:
                if (var_12[1] == 0x5a) goto LAB_001328ca;
                var_54 = true;
LAB_001336b5:
                var_106 = 0;
                goto LAB_0013302f;
              }
              var_64 = var_12[2];
              if ((((_sch_istable[(type_8)var_64 * 2] & 4) == 0) && (var_64 != 0x51 && var_64 != 0x74))
                 && (var_19 = var_55((char *)var_12,"__ct",4), var_19 != 0)) {
                if (var_57 != (char *)0x0) {
LAB_001338f6:
                  var_19 = var_58(var_73,var_57);
                  bVar45 = var_19 == 0;
                  var_54 = false;
                  goto LAB_00133557;
                }
                var_19 = var_55((char *)var_12,"__dt",4);
                if (var_19 == 0) goto LAB_001336a5;
                bVar45 = false;
                var_54 = false;
              }
              else {
                var_19 = var_55((char *)var_12,"__dt",4);
                if (var_19 == 0) goto LAB_001336a5;
                var_54 = true;
                bVar45 = true;
              }
LAB_0013358b:
              if (var_12[1] != 0x5a) goto LAB_00132deb;
              if ((*var_12 == 0x5f) && (var_12[1] == 0x5a)) goto LAB_00133b71;
              var_114 = (type_14 *)0x0;
              local_50[0] = 0;
              local_3c = 10;
              var_105 = (char *)var_12;
              xtypenums = (int  [2])dhandle;
              var_82 = (type_14 *)var_17(0xa0);
LAB_0013360b:
              var_77 = var_105;
              local_40 = 0;
              var_9 = var_105;
              do {
                var_70 = var_69(var_9,0x5f);
                if (var_70 == (char *)0x0) goto LAB_00133635;
                var_9 = var_70 + 1;
              } while (var_70[1] != '_');
              if (var_9 != (char *)0x0) {
                var_86 = var_80(var_70,"_");
                if (2 < (type_7)var_86) {
                  var_70 = var_70 + ((type_7)var_86 - 2);
                }
                goto LAB_001330d0;
              }
LAB_00133635:
              var_81(var_77);
LAB_0013323f:
              if (var_82 != (type_14 *)0x0) {
                var_43(var_82);
              }
              goto LAB_00132793;
            }
            var_53 = 4;
            var_83 = var_12;
            var_84 = &DAT_00146a76;
            do {
              if (var_53 == 0) break;
              var_53 = var_53 + -1;
              var_54 = *var_83 < *var_84;
              bVar45 = *var_83 == *var_84;
              var_83 = var_83 + (type_8)var_41 * -2 + 1;
              var_84 = var_84 + (type_8)var_41 * -2 + 1;
            } while (bVar45);
            bVar46 = (!var_54 && !bVar45) == var_54;
            if (bVar46) {
              bVar45 = true;
              var_54 = true;
            }
            else if (var_57 == (char *)0x0) {
              bVar45 = false;
              var_54 = false;
              bVar46 = true;
            }
            else {
              var_19 = var_58(var_73,var_57);
              bVar45 = var_19 == 0;
              var_54 = false;
              bVar46 = true;
            }
            var_85 = false;
            var_53 = 4;
            var_83 = var_12;
            var_84 = &DAT_00146a4b;
            do {
              if (var_53 == 0) break;
              var_53 = var_53 + -1;
              var_85 = *var_83 < *var_84;
              bVar46 = *var_83 == *var_84;
              var_83 = var_83 + (type_8)var_41 * -2 + 1;
              var_84 = var_84 + (type_8)var_41 * -2 + 1;
            } while (bVar46);
            if ((!var_85 && !bVar46) == var_85) {
LAB_001328ca:
              var_115 = (type_14 *)var_17(8);
              var_115->typestring = (char *)0x0;
              var_6 = 0;
            }
            else {
LAB_00132deb:
              if (var_54) {
                var_54 = false;
                goto LAB_001336b5;
              }
              var_106 = 0;
              if (var_57 != (char *)0x0) {
                var_86 = var_78(var_57);
                var_106 = var_86 & 0xffffffff;
              }
              var_77 = "C";
              var_9 = "V";
              if (var_87 == 0) {
                var_77 = "";
              }
              if (var_88 == 0) {
                var_9 = "";
              }
              var_98 = var_57;
              if ((int)var_106 == 0) {
                var_89((char *)xtypenums,"__%s%s");
              }
              else if ((var_57 == (char *)0x0) ||
                      (var_70 = var_69(var_57,0x3c), var_70 == (char *)0x0)) {
                var_89((char *)xtypenums,"__%s%s%d",var_77,var_9,var_106);
              }
              else {
                var_89((char *)xtypenums,"__%s%s",var_77,var_9);
                var_106._0_4_ = 0;
                var_98 = (char *)0x0;
              }
              puVar30 = (type_7 *)xtypenums;
              do {
                var_90 = puVar30;
                var_46 = *var_90 + 0xfefefeff & ~*var_90;
                var_45 = var_46 & 0x80808080;
                puVar30 = var_90 + 1;
              } while (var_45 == 0);
              var_54 = (var_46 & 0x8080) == 0;
              if (var_54) {
                var_45 = var_45 >> 0x10;
              }
              var_60 = *var_73;
              if (var_54) {
                puVar30 = (type_7 *)((long)var_90 + 6);
              }
              var_19 = (((int)puVar30 + -3) - (type_7)var_91((type_4)var_45,(type_4)var_45)) -
                      (int)xtypenums;
              var_86 = var_78((char *)var_12);
              if (bVar45) {
                var_19 = var_19 + (int)var_106 + 1 + (int)var_86;
                if (((var_60 == 'o') && (var_73[1] == 'p')) &&
                   ((var_73[2] == '$' || (var_73[2] == '.')))) goto LAB_00132f86;
                var_10 = (type_4 *)var_17(var_19);
                *var_10 = 0;
              }
              else {
                var_53 = -1;
                var_9 = var_73;
                do {
                  if (var_53 == 0) break;
                  var_53 = var_53 + -1;
                  var_92 = *var_9;
                  var_9 = var_9 + (type_8)var_41 * -2 + 1;
                } while (var_92 != '\0');
                var_19 = ((var_19 + (int)var_106 + 1) - (int)var_53) + -2 + (int)var_86;
                if (((var_60 == 'o') && (var_73[1] == 'p')) &&
                   ((var_73[2] == '$' || (var_73[2] == '.')))) {
LAB_00132f86:
                  var_9 = (char *)var_93(var_73 + 3,0);
                  if (var_9 == (char *)0x0) {
                    var_9 = (char *)var_51(0,"No mangling for \"%s\"\n",5);
                    var_94(stderr,var_9,var_73);
                    goto LAB_0013279c;
                  }
                  var_53 = -1;
                  var_77 = var_9;
                  do {
                    if (var_53 == 0) break;
                    var_53 = var_53 + -1;
                    var_60 = *var_77;
                    var_77 = var_77 + (type_8)var_41 * -2 + 1;
                  } while (var_60 != '\0');
                  var_10 = (type_4 *)var_17(var_19 + -1 + ~(type_7)var_53);
                  var_95((char *)var_10,var_73,3);
                  var_96((char *)(var_10 + 3),var_9);
                }
                else {
                  var_10 = (type_4 *)var_17(var_19);
                  var_96((char *)var_10,var_73);
                }
              }
              var_86 = var_78((char *)var_10);
              var_106 = var_86 & 0xffffffff;
              var_9 = var_97((char *)(var_10 + var_86),(char *)xtypenums);
              if (var_98 != (char *)0x0) {
                var_96(var_9,var_98);
              }
              var_99((char *)var_10,(char *)var_12);
              var_54 = false;
LAB_0013302f:
              if ((*var_12 == 0) || (var_54)) goto LAB_001328ca;
              if ((*var_10 == 0x5f) && (var_10[1] == 0x5a)) {
LAB_00133b71:
                var_105 = (char *)var_10;
                var_101 = var_100((char *)var_10,3,(void **)xtypenums);
                if (var_101 == (type_16 *)0x0) {
                  var_81((char *)var_10);
                }
                else {
                  if ((var_101->type == var_102) &&
                     (var_101 = (var_101->u).s_extended_operator.name,
                     var_101->type == var_103)) {
                    var_115 = (type_14 *)
                                var_104
                                          (dhandle,info,(var_101->u).s_extended_operator.name,
                                           &var_50);
                    var_43((void *)xtypenums);
                    goto LAB_00133211;
                  }
                  var_9 = (char *)var_51(0,"Demangled name is not a function\n",5);
                  var_94(stderr,var_9);
                  var_43((void *)xtypenums);
                }
                goto LAB_00132793;
              }
              var_114 = (type_14 *)0x0;
              local_50[0] = 0;
              local_3c = 10;
              var_105 = (char *)var_10;
              xtypenums = (int  [2])dhandle;
              var_82 = (type_14 *)var_17(0xa0);
              local_40 = 0;
              if ((int)var_106 == 0) goto LAB_0013360b;
              var_70 = var_105 + var_106;
              var_77 = var_105;
LAB_001330d0:
              var_64 = var_70[2];
              if (var_77 == var_70) {
                if (((_sch_istable[(type_8)var_64 * 2] & 4) == 0) &&
                   (var_9 = var_70, var_64 != 0x51 && var_64 != 0x74)) {
                  for (; *var_9 == '_'; var_9 = var_9 + 1) {
                  }
                  var_9 = var_107(var_9,"__");
                  if ((var_9 == (char *)0x0) || (var_9[2] == '\0')) {
                    var_81(var_70);
                    goto LAB_0013323f;
                  }
                  var_19 = var_108((type_18 *)xtypenums,&var_105,var_9);
                  goto LAB_001330fd;
                }
                var_105 = var_70 + 2;
              }
              else {
                if (var_64 == 0) goto LAB_00133635;
                var_19 = var_108((type_18 *)xtypenums,&var_105,var_70);
LAB_001330fd:
                if (var_19 == 0) goto LAB_0013323f;
              }
              var_9 = var_105;
              var_60 = *var_105;
              if (var_60 != '\0') {
                var_77 = (char *)0x0;
                var_54 = false;
                pstart = (char **)0x0;
                do {
                  var_70 = var_105;
                  switch(var_60) {
                  case '0':
                  case '1':
                  case '2':
                  case '3':
                  case '4':
                  case '5':
                  case '6':
                  case '7':
                  case '8':
                  case '9':
                    if (var_77 == (char *)0x0) {
                      var_77 = var_105;
                    }
                    var_19 = var_109((type_18 *)&var_105,(char **)0x0,pstart);
                    goto joined_r0x0013334c;
                  default:
                    var_6 = var_110((type_18 *)xtypenums,&var_105,
                                               (type_3 **)&var_114,
                                               (type_5 *)local_50);
                    if (var_6 == 0) goto LAB_0013323f;
                    pstart = (char **)0x1;
                    break;
                  case 'C':
                  case 'S':
                    if (var_77 == (char *)0x0) {
                      var_77 = var_105;
                    }
                    var_105 = var_105 + 1;
                    break;
                  case 'F':
                    var_105 = var_105 + 1;
                    var_6 = var_110((type_18 *)xtypenums,&var_105,
                                               (type_3 **)&var_114,
                                               (type_5 *)local_50);
                    if (var_6 == 0) goto LAB_0013323f;
                    var_77 = (char *)0x0;
                    pstart = (char **)0x1;
                    break;
                  case 'Q':
                    var_6 = var_111
                                      ((type_18 *)xtypenums,&var_105,(type_3 *)0x0
                                      );
                    if (var_6 != 0) {
                      var_19 = var_112
                                        ((type_18 *)xtypenums,var_70,
                                         (int)var_105 - (int)var_70);
                      goto joined_r0x001332f4;
                    }
                    goto LAB_0013323f;
                  case '_':
                    var_81(var_9);
                    goto LAB_0013323f;
                  case 't':
                    if (var_77 == (char *)0x0) {
                      var_77 = var_105;
                    }
                    var_19 = var_113((type_18 *)xtypenums,&var_105,(char **)0x0);
joined_r0x0013334c:
                    if (var_19 != 0) {
                      var_19 = var_112
                                        ((type_18 *)xtypenums,var_77,
                                         (int)var_105 - (int)var_77);
joined_r0x001332f4:
                      if (var_19 != 0) {
                        var_77 = (char *)0x0;
                        goto LAB_0013328f;
                      }
                    }
                    goto LAB_0013323f;
                  }
                  if (var_54) {
LAB_0013328f:
                    var_6 = var_110((type_18 *)xtypenums,&var_105,
                                               (type_3 **)&var_114,
                                               (type_5 *)local_50);
                    if (var_6 == 0) goto LAB_0013323f;
                    var_54 = true;
                    pstart = (char **)0x1;
                  }
                  var_60 = *var_105;
                } while (var_60 != '\0');
                if (((int)pstart == 0) &&
                   (var_6 = var_110((type_18 *)xtypenums,&var_105,
                                               (type_3 **)&var_114,
                                               (type_5 *)local_50), var_6 == 0))
                goto LAB_0013323f;
              }
              var_43(var_82);
              var_82 = (type_14 *)0x0;
              if (var_114 == (type_14 *)0x0) {
                var_9 = (char *)var_51(0,"no argument types in mangled string\n",5);
                var_94(stderr,var_9);
              }
              var_50 = local_50[0];
              var_115 = var_114;
LAB_00133211:
              var_6 = var_50;
              if (var_115 == (type_14 *)0x0) goto LAB_00132793;
            }
            var_14 = var_15
                                (dhandle,var_29,var_23,(type_3 *)var_115,var_6);
            if (var_14 == (type_3)0x0) goto LAB_00132793;
          }
          var_45 = var_116 + 1;
          if (var_117 <= var_45) {
            var_117 = var_117 + 10;
            var_74 = (type_12 *)var_20(var_74,(type_8)var_117 << 3);
          }
          if (bVar44) {
            var_120 = var_118
                                (dhandle,(char *)var_10,var_14,local_e4,var_87,var_88);
            var_74[var_116] = var_120;
          }
          else {
            var_120 = var_119
                                (dhandle,(char *)var_10,var_14,local_e4,var_87,var_88,
                                 local_e0,local_100);
            var_74[var_116] = var_120;
          }
          if (var_120 == (type_12)0x0) goto LAB_00132793;
          var_9 = *pp;
        } while ((*var_9 != ';') && (var_14 = var_16, var_116 = var_45, *var_9 != '\0'));
        var_74[var_45] = (type_12)0x0;
        if (*var_9 != '\0') {
          *pp = var_9 + 1;
        }
        var_45 = var_121 + 1;
        if (var_122 <= var_45) {
          var_122 = var_122 + 10;
          var_124 = (type_13 *)var_20(var_124,(type_8)var_122 << 3);
        }
        pdVar22 = var_123(dhandle,var_73,var_74);
        var_124[var_121] = pdVar22;
        var_10 = (type_4 *)*pp;
        var_64 = *var_10;
        var_121 = var_45;
      } while (var_64 != 0x3b);
      if (var_124 != (type_13 *)0x0) {
        var_124[var_121] = (type_13)0x0;
      }
      if (var_2 <= var_10) goto LAB_00131328;
      var_3 = var_10;
      if (*var_10 == 0x3b) goto LAB_001334bc;
    }
    if (*var_10 == 0x7e) {
      var_12 = var_10 + 1;
      *pp = (char *)var_12;
      if (((var_10[1] & 0xef) == 0x2d) || (var_10[1] == 0x2b)) {
        var_12 = var_10 + 2;
        *pp = (char *)var_12;
      }
      if (*var_12 != 0x25) goto LAB_0013244a;
      *pp = (char *)(var_12 + 1);
      var_6 = var_5(pp,xtypenums,var_2);
      if (var_6 == 0) goto LAB_00131328;
      if (xtypenums[0] != typenums[0]) {
LAB_00132596:
        *pp = (char *)(var_12 + 1);
        var_29 = function_1(dhandle,info,(char *)0x0,pp,(type_3 **)0x0,var_2);
        var_9 = *pp;
        var_60 = *var_9;
        while ((var_60 != ';' && (var_60 != '\0'))) {
          var_9 = var_9 + 1;
          var_60 = *var_9;
        }
        if (var_60 != ';') {
LAB_00132740:
          var_18((char *)var_3);
LAB_00131328:
          var_43(local_130);
          return (type_1)0x0;
        }
        *pp = var_9 + 1;
        goto LAB_0013244c;
      }
      if (xtypenums[1] != typenums[1]) goto LAB_00132596;
      var_6 = 1;
      var_29 = (type_3)0x0;
    }
    else {
LAB_0013244a:
      var_29 = (type_3)0x0;
LAB_0013244c:
      if (((var_124 == (type_13 *)0x0 && var_125 == (type_15 *)0x0) &&
           var_29 == (type_3)0x0) && (!bVar43)) {
        var_29 = var_126(dhandle,(type_7)(var_4 == 0x73),var_34,local_130);
        break;
      }
      var_6 = 0;
    }
    var_29 = var_127
                        (dhandle,(type_7)(var_4 == 0x73),var_34,local_130,var_125,var_124,var_29,
                         var_6);
    break;
  case 0x78:
    var_41 = var_10[1];
    if (var_41 == 0x65) {
      var_25 = DEBUG_KIND_ENUM;
    }
    else {
      if ((char)var_41 < 'f') {
        if (var_41 == 0) goto switchD_001311d2_caseD_24;
      }
      else {
        var_25 = DEBUG_KIND_STRUCT;
        if ((var_41 == 0x73) || (var_25 = DEBUG_KIND_UNION, var_41 == 0x75)) goto LAB_00131e0e;
      }
      var_25 = DEBUG_KIND_STRUCT;
      var_9 = (char *)var_51(0,"unrecognized cross reference type",5);
      var_52((char *)var_3,var_9);
      var_12 = (type_4 *)*pp;
    }
LAB_00131e0e:
    var_12 = var_12 + 1;
    *pp = (char *)var_12;
    var_77 = var_69((char *)var_12,0x3c);
    var_9 = var_69((char *)var_12,0x3a);
    if (var_9 != (char *)0x0) {
      if (((var_77 == (char *)0x0) || (var_9 <= var_77)) || (var_9[1] != ':')) {
LAB_00131e52:
        var_86 = (long)var_9 - (long)var_12;
        if (((var_57 != (char *)0x0) &&
            (var_19 = var_55(var_57,(char *)var_12,var_86), var_19 == 0)) &&
           (var_57[var_86] == '\0')) {
          info->self_crossref = 1;
        }
        var_29 = var_128
                            (dhandle,(type_2 *)&info->tags,(char *)var_12,(int)var_86,var_25);
        *pp = var_9 + 1;
        break;
      }
      var_60 = *var_77;
      if (var_60 != '\0') {
        var_19 = 0;
        var_9 = var_77;
        do {
          if (var_60 == '<') {
            var_19 = var_19 + 1;
          }
          else if (var_60 == '>') {
            var_19 = var_19 + -1;
          }
          else if ((var_19 == 0) && (var_60 == ':')) goto LAB_00131e52;
          var_9 = var_9 + 1;
          var_60 = *var_9;
        } while (var_60 != '\0');
      }
    }
switchD_001311d2_caseD_24:
    var_18((char *)var_3);
    return (type_1)0x0;
  }
  if (var_29 != (type_3)0x0) {
    if (typenums[0] != -1) {
      var_22 = var_8((type_2 *)&info->files,(int *)&info->file_types,
                               (type_2 *)typenums);
      if (var_22 == (type_3 *)0x0) {
        return (type_1)0x0;
      }
      *var_22 = var_29;
    }
    if (var_129 == 0xffffffff) {
      return var_29;
    }
    var_6 = var_130(dhandle,var_29,var_129);
    if (var_6 != 0) {
      return var_29;
    }
  }
  return (type_1)0x0;
}


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

/* WARNING: Type propagation algorithm not settling */

long MASKED(void *param_1,long param_2,char *param_3,ulong *param_4,undefined8 *param_5,
                 byte *param_6)

{
  char cVar1;
  undefined8 uVar2;
  byte bVar3;
  char cVar4;
  int iVar5;
  uint uVar6;
  uint uVar7;
  undefined8 uVar8;
  undefined8 uVar9;
  long *plVar10;
  void *__ptr;
  ulong uVar11;
  void *pvVar12;
  long lVar13;
  undefined8 uVar14;
  char *pcVar15;
  char *pcVar16;
  long lVar17;
  long lVar18;
  undefined8 *puVar19;
  size_t sVar20;
  char *pcVar21;
  byte *pbVar22;
  undefined *puVar23;
  int *piVar24;
  undefined8 uVar25;
  long lVar26;
  int iVar27;
  ulong uVar28;
  uint *puVar29;
  uint *puVar30;
  byte *pbVar31;
  undefined4 uVar32;
  byte *pbVar33;
  byte *pbVar34;
  ulong uVar35;
  undefined8 *puVar36;
  byte *pbVar37;
  byte bVar38;
  uint uVar39;
  byte *pbVar40;
  bool bVar41;
  bool bVar42;
  bool bVar43;
  bool bVar44;
  bool bVar45;
  bool bVar46;
  byte bVar47;
  void *local_148;
  int local_13c;
  char *local_138;
  void *local_130;
  void *local_128;
  undefined8 local_120;
  long local_108;
  long local_100;
  long local_f8;
  int local_f0;
  uint local_ec;
  uint local_e8;
  undefined4 local_e4;
  ulong local_d8;
  uint local_c8;
  uint local_c4;
  char *local_c0;
  undefined1 local_80 [4];
  int local_7c;
  byte *local_78;
  undefined8 local_70;
  undefined8 local_68;
  long local_60;
  undefined8 *local_58;
  int local_50 [2];
  void *local_48;
  undefined4 local_40;
  undefined4 local_3c;
  
  bVar47 = 0;
  if (param_5 != (undefined8 *)0x0) {
    *param_5 = 0;
  }
  pbVar34 = (byte *)*param_4;
  if (param_6 <= pbVar34) {
    return 0;
  }
  *(undefined4 *)(param_2 + 0x1a8) = 0;
  bVar38 = *pbVar34;
  if (((_sch_istable[(ulong)bVar38 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {
    iVar5 = FUN_0012e6c0(param_4,&local_70,param_6);
    if (iVar5 == 0) {
      return 0;
    }
    pcVar16 = (char *)*param_4;
    if (*pcVar16 != '=') {
      lVar17 = FUN_0012e9f0(param_1,param_2,&local_70);
      return lVar17;
    }
    if (((param_5 != (undefined8 *)0x0) && (-1 < (int)(uint)local_70)) && (-1 < local_70)) {
      uVar8 = FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);
      pcVar16 = (char *)*param_4;
      *param_5 = uVar8;
    }
    uVar8 = 0;
    *param_4 = (ulong)(pcVar16 + 1);
    local_13c = -1;
    pbVar22 = (byte *)(pcVar16 + 1);
    do {
      while( true ) {
        while( true ) {
          bVar38 = *pbVar22;
          pbVar40 = pbVar22 + 1;
          if (bVar38 != 0x40) goto LAB_001311b2;
          bVar38 = pbVar22[1];
          uVar35 = (ulong)bVar38;
          if (((_sch_istable[uVar35 * 2] & 4) != 0) || (bVar38 == 0x2d || bVar38 == 0x28)) {
            *param_4 = (ulong)pbVar40;
            goto switchD_001311d2_caseD_40;
          }
          while ((char)uVar35 != ';') {
            if ((char)uVar35 == '\0') goto switchD_001311d2_caseD_24;
            pbVar40 = pbVar40 + 1;
            uVar35 = (ulong)*pbVar40;
          }
          pbVar40 = pbVar40 + 1;
          *param_4 = (ulong)pbVar40;
          bVar38 = pbVar22[1];
          if (bVar38 != 0x53) break;
          uVar8 = 1;
          pbVar22 = pbVar40;
        }
        if (bVar38 != 0x73) break;
        lVar17 = strtol((char *)(pbVar22 + 2),(char **)0x0,10);
        if ((int)lVar17 < 8) {
          local_13c = -1;
          pbVar22 = (byte *)*param_4;
        }
        else {
          local_13c = (int)lVar17 >> 3;
          pbVar22 = (byte *)*param_4;
        }
      }
      pbVar22 = pbVar40;
    } while (bVar38 != 0);
    goto switchD_001311d2_caseD_24;
  }
  pbVar40 = pbVar34 + 1;
  uVar8 = 0;
  local_13c = -1;
  local_70 = -1;
  bVar38 = *pbVar34;
  pbVar22 = pbVar34;
LAB_001311b2:
  *param_4 = (ulong)pbVar40;
  switch(bVar38) {
  case 0x23:
    if (pbVar22[1] == 0x23) {
      *param_4 = (ulong)(pbVar22 + 2);
      lVar17 = MASKED(param_1,param_2,0,param_4,0,param_6);
      if (lVar17 == 0) {
        return 0;
      }
      if (*(char *)*param_4 != ';') goto switchD_001311d2_caseD_24;
      *param_4 = (ulong)((char *)*param_4 + 1);
      lVar17 = FUN_0012d940(param_1,lVar17,0,0,0);
    }
    else {
      lVar17 = MASKED(param_1,param_2,0,param_4,0,param_6);
      if (lVar17 == 0) {
        return 0;
      }
      if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;
      *param_4 = (ulong)((char *)*param_4 + 1);
      lVar18 = MASKED(param_1,param_2,0,param_4,0,param_6);
      if (lVar18 == 0) {
        return 0;
      }
      uVar11 = 10;
      puVar19 = (undefined8 *)xmalloc(0x50);
      uVar35 = 0;
      while( true ) {
        pcVar16 = (char *)*param_4;
        iVar5 = (int)uVar35;
        if (*pcVar16 == ';') break;
        if (*pcVar16 != ',') {
          FUN_0012e570(pbVar34);
          return 0;
        }
        *param_4 = (ulong)(pcVar16 + 1);
        if ((uint)uVar11 <= iVar5 + 1U) {
          uVar11 = (ulong)((uint)uVar11 + 10);
          puVar19 = (undefined8 *)xrealloc(puVar19,uVar11 << 3);
        }
        plVar10 = puVar19 + uVar35;
        lVar13 = MASKED(param_1,param_2,0,param_4,0,param_6);
        uVar35 = (ulong)(iVar5 + 1U);
        *plVar10 = lVar13;
        if (lVar13 == 0) {
          return 0;
        }
      }
      uVar8 = 1;
      *param_4 = (ulong)(pcVar16 + 1);
      puVar36 = puVar19;
      if (iVar5 != 0) {
        puVar36 = puVar19 + (iVar5 - 1);
        iVar5 = FUN_0012e080(param_1,*puVar36);
        if (iVar5 == 2) {
          uVar8 = 0;
        }
        else {
          puVar36 = puVar19 + uVar35;
        }
      }
      *puVar36 = 0;
      lVar17 = FUN_0012d940(param_1,lVar18,lVar17,puVar19,uVar8);
    }
    break;
  default:
    goto switchD_001311d2_caseD_24;
  case 0x26:
    uVar8 = MASKED(param_1,param_2,0,param_4,0,param_6);
    lVar17 = FUN_0012d760(param_1,uVar8);
    break;
  case 0x28:
  case 0x2d:
  case 0x30:
  case 0x31:
  case 0x32:
  case 0x33:
  case 0x34:
  case 0x35:
  case 0x36:
  case 0x37:
  case 0x38:
  case 0x39:
    *param_4 = (ulong)pbVar22;
    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);
    if (iVar5 == 0) {
      return 0;
    }
    if ((uint)local_70 == (uint)local_68) {
      if (local_70._4_4_ != local_68._4_4_) goto LAB_00132079;
      lVar17 = FUN_0012d550(param_1);
    }
    else {
LAB_00132079:
      *param_4 = (ulong)pbVar22;
      lVar17 = MASKED(param_1,param_2,0,param_4,0,param_6);
      if (lVar17 == 0) {
        return 0;
      }
    }
    if ((uint)local_70 != -1) {
      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);
      if (plVar10 == (long *)0x0) {
        return 0;
      }
      *plVar10 = lVar17;
    }
    break;
  case 0x2a:
    uVar8 = MASKED(param_1,param_2,0,param_4,0,param_6);
    lVar17 = FUN_0012d6b0(param_1,uVar8);
    break;
  case 0x40:
switchD_001311d2_caseD_40:
    lVar17 = MASKED(param_1,param_2,0,param_4,0,param_6);
    if (lVar17 == 0) {
      return 0;
    }
    if (*(char *)*param_4 != ',') goto switchD_001311d2_caseD_24;
    *param_4 = (ulong)((char *)*param_4 + 1);
    lVar18 = MASKED(param_1,param_2,0,param_4,0,param_6);
    if (lVar18 == 0) {
      return 0;
    }
    lVar17 = FUN_0012d8e0(param_1,lVar17,lVar18);
    break;
  case 0x42:
    uVar8 = MASKED(param_1,param_2,0,param_4,0,param_6);
    lVar17 = FUN_0012d9e0(param_1,uVar8);
    break;
  case 0x52:
    if (param_6 <= pbVar40) {
      return 0;
    }
    lVar17 = FUN_0012e630(param_4,0,param_6);
    if ((*(char *)*param_4 != ';') ||
       (uVar8 = FUN_0012e630(param_4,0,param_6), *(char *)*param_4 != ';')) goto LAB_00132126;
    if (lVar17 - 3U < 3) {
      lVar17 = FUN_0012d5a0(param_1,uVar8);
    }
    else {
      lVar17 = FUN_0012d580();
    }
    break;
  case 0x53:
    uVar14 = MASKED(param_1,param_2,0,param_4,0,param_6);
    lVar17 = FUN_0012d880(param_1,uVar14,uVar8);
    break;
  case 0x61:
    if (pbVar22[1] == 0x72) {
      pbVar22 = pbVar22 + 2;
      *param_4 = (ulong)pbVar22;
      if (param_6 <= pbVar22) {
        return 0;
      }
      local_78 = pbVar22;
      iVar5 = FUN_0012e6c0(&local_78,&local_68,param_6);
      if (iVar5 == 0) {
        return 0;
      }
      if (((uint)local_68 == 0 && local_68._4_4_ == 0) && (*(char *)*param_4 != '=')) {
        lVar17 = FUN_0012dec0(param_1,"int");
        if ((lVar17 == 0) && (lVar17 = FUN_0012d560(param_1,4,0), lVar17 == 0)) {
          return 0;
        }
        *param_4 = (ulong)local_78;
        pbVar34 = local_78;
      }
      else {
        lVar17 = MASKED(param_1,param_2,0,param_4,0,param_6);
        pbVar34 = (byte *)*param_4;
      }
      if (*pbVar34 == 0x3b) {
        *param_4 = (ulong)(pbVar34 + 1);
        bVar47 = pbVar34[1];
        if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0 && bVar47 != 0x2d)) {
          bVar43 = true;
          *param_4 = (ulong)(pbVar34 + 2);
        }
        else {
          bVar43 = false;
        }
        uVar14 = FUN_0012e630(param_4,0,param_6);
        pcVar16 = (char *)*param_4;
        if (*pcVar16 == ';') {
          *param_4 = (ulong)(pcVar16 + 1);
          bVar47 = pcVar16[1];
          if (((_sch_istable[(ulong)bVar47 * 2] & 4) == 0) && (bVar47 != 0x2d && bVar47 != 0)) {
            bVar43 = true;
            *param_4 = (ulong)(pcVar16 + 2);
          }
          uVar9 = FUN_0012e630(param_4,0,param_6);
          if (*(char *)*param_4 == ';') {
            *param_4 = (ulong)((char *)*param_4 + 1);
            lVar18 = MASKED(param_1,param_2,0,param_4,0,param_6);
            if (lVar18 == 0) {
              return 0;
            }
            uVar25 = 0;
            uVar2 = 0xffffffffffffffff;
            if (!bVar43) {
              uVar25 = uVar14;
              uVar2 = uVar9;
            }
            lVar17 = FUN_0012d800(param_1,lVar18,lVar17,uVar25,uVar2,uVar8);
            break;
          }
        }
      }
      FUN_0012e570(pbVar22);
      return 0;
    }
    goto switchD_001311d2_caseD_24;
  case 0x62:
    if (param_6 <= pbVar40) {
      return 0;
    }
    if (pbVar22[1] == 0x73) {
      uVar8 = 0;
    }
    else {
      if (pbVar22[1] != 0x75) goto LAB_00132126;
      uVar8 = 1;
    }
    *param_4 = (ulong)(pbVar22 + 2);
    if (((byte)(pbVar22[2] + 0x9e) < 2) || (pbVar22[2] == 0x76)) {
      *param_4 = (ulong)(pbVar22 + 3);
    }
    FUN_0012e630(param_4,0,param_6);
    if (*(char *)*param_4 != ';') goto LAB_00132126;
    *param_4 = (ulong)((char *)*param_4 + 1);
    FUN_0012e630(param_4,0,param_6);
    if (*(char *)*param_4 != ';') goto LAB_00132126;
    *param_4 = (ulong)((char *)*param_4 + 1);
    uVar35 = FUN_0012e630(param_4,0,param_6);
    if (*(char *)*param_4 == ';') {
      *param_4 = (ulong)((char *)*param_4 + 1);
    }
    if (uVar35 != 0) {
      lVar17 = FUN_0012d560(param_1,uVar35 >> 3 & 0xffffffff,uVar8);
      break;
    }
LAB_00133358:
    lVar17 = FUN_0012d550(param_1);
    break;
  case 0x65:
    if (param_6 <= pbVar40) {
      return 0;
    }
    pbVar34 = pbVar40;
    if (pbVar22[1] == 0x2d) {
      do {
        pbVar22 = pbVar34;
        *param_4 = (ulong)(pbVar22 + 1);
        bVar47 = pbVar22[1];
        if (bVar47 == 0x3a) break;
        pbVar34 = pbVar22 + 1;
      } while (bVar47 != 0);
      if (bVar47 == 0) goto LAB_00132126;
      *param_4 = (ulong)(pbVar22 + 2);
    }
    local_148 = (void *)xmalloc(0x50);
    pvVar12 = (void *)xmalloc(0x50);
    pbVar34 = (byte *)*param_4;
    uVar35 = (ulong)*pbVar34;
    if ((*pbVar34 < 0x3c) && ((0x800100000000001U >> (uVar35 & 0x3f) & 1) != 0)) {
      uVar28 = 0;
    }
    else {
      uVar11 = 10;
      uVar39 = 0;
      do {
        bVar47 = (byte)uVar35;
        pbVar22 = pbVar34;
        while ((bVar47 != 0x3a && (bVar47 != 0))) {
          pbVar22 = pbVar22 + 1;
          bVar47 = *pbVar22;
        }
        if (bVar47 == 0) {
          FUN_0012e570(pbVar40);
LAB_00132cf2:
          free(local_148);
          free(pvVar12);
          return 0;
        }
        __ptr = (void *)FUN_0012e600(pbVar34,(long)pbVar22 - (long)pbVar34);
        *param_4 = (ulong)(pbVar22 + 1);
        uVar8 = FUN_0012e630(param_4,0,param_6);
        if (*(char *)*param_4 != ',') {
          FUN_0012e570(pbVar40);
          free(__ptr);
          goto LAB_00132cf2;
        }
        uVar7 = uVar39 + 1;
        *param_4 = (ulong)((char *)*param_4 + 1);
        if ((uint)uVar11 <= uVar7) {
          uVar11 = (ulong)((uint)uVar11 + 10);
          local_148 = (void *)xrealloc(local_148,uVar11 << 3);
          pvVar12 = (void *)xrealloc(pvVar12,uVar11 << 3);
        }
        uVar28 = (ulong)uVar7;
        *(void **)((long)local_148 + (ulong)uVar39 * 8) = __ptr;
        pbVar34 = (byte *)*param_4;
        *(undefined8 *)((long)pvVar12 + (ulong)uVar39 * 8) = uVar8;
        uVar35 = (ulong)*pbVar34;
        uVar39 = uVar7;
      } while ((0x3b < *pbVar34) || ((0x800100000000001U >> (uVar35 & 0x3f) & 1) == 0));
    }
    *(undefined8 *)((long)local_148 + uVar28 * 8) = 0;
    pcVar16 = (char *)*param_4;
    *(undefined8 *)((long)pvVar12 + uVar28 * 8) = 0;
    if (*pcVar16 == ';') {
      *param_4 = (ulong)(pcVar16 + 1);
    }
    lVar17 = FUN_0012d670(param_1,local_148,pvVar12);
    break;
  case 0x66:
    uVar8 = MASKED(param_1,param_2,0,param_4,0,param_6);
    lVar17 = FUN_0012d6f0(param_1,uVar8,0,0);
    break;
  case 0x6b:
    uVar8 = MASKED(param_1,param_2,0,param_4,0,param_6);
    lVar17 = FUN_0012d9b0(param_1,uVar8);
    break;
  case 0x72:
    if (param_6 <= pbVar40) {
      return 0;
    }
    iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);
    if (iVar5 == 0) {
      return 0;
    }
    bVar43 = false;
    if ((uint)local_68 == (uint)local_70) {
      bVar43 = local_68._4_4_ == local_70._4_4_;
    }
    pbVar34 = (byte *)*param_4;
    lVar17 = 0;
    bVar38 = *pbVar34;
    if (bVar38 == 0x3d) {
      *param_4 = (ulong)pbVar40;
      lVar17 = MASKED(param_1,param_2,0,param_4,0,param_6);
      if (lVar17 == 0) {
        return 0;
      }
      pbVar34 = (byte *)*param_4;
      bVar38 = *pbVar34;
    }
    if (bVar38 == 0x3b) {
      pbVar34 = pbVar34 + 1;
      *param_4 = (ulong)pbVar34;
    }
    uVar35 = FUN_0012e630(param_4,&local_7c,param_6);
    if (*(char *)*param_4 != ';') goto LAB_00132126;
    pcVar16 = (char *)*param_4 + 1;
    *param_4 = (ulong)pcVar16;
    uVar11 = FUN_0012e630(param_4,&local_78,param_6);
    iVar5 = local_7c;
    if (*(char *)*param_4 != ';') goto LAB_00132126;
    *param_4 = (ulong)((char *)*param_4 + 1);
    if (local_7c != 0 || (int)local_78 != 0) {
      bVar41 = false;
      bVar44 = lVar17 == 0;
      if (!bVar44) {
LAB_00131960:
        uVar8 = dcgettext(0,"numeric overflow",5);
        FUN_0012e500(pbVar40,uVar8);
        goto LAB_0013197e;
      }
      lVar18 = 0x18;
      pbVar22 = (byte *)"01000000000000000000000;";
      do {
        if (lVar18 == 0) break;
        lVar18 = lVar18 + -1;
        bVar41 = *pbVar34 < *pbVar22;
        bVar44 = *pbVar34 == *pbVar22;
        pbVar34 = pbVar34 + (ulong)bVar47 * -2 + 1;
        pbVar22 = pbVar22 + (ulong)bVar47 * -2 + 1;
      } while (bVar44);
      if (((!bVar41 && !bVar44) != bVar41) ||
         (iVar27 = strncmp(pcVar16,"0777777777777777777777;",0x17), iVar27 != 0)) {
        if ((uVar35 != 0) ||
           ((iVar5 != 0 || (iVar5 = strncmp(pcVar16,"01777777777777777777777;",0x18), iVar5 != 0))))
        goto LAB_00131960;
LAB_0013348a:
        lVar17 = FUN_0012d560(param_1,8,1);
        break;
      }
LAB_0013373f:
      lVar17 = FUN_0012d560(param_1,8,0);
      break;
    }
LAB_0013197e:
    if (lVar17 != 0) {
LAB_00131987:
      if (bVar43) {
LAB_00132126:
        FUN_0012e570(pbVar40);
        return 0;
      }
      lVar17 = FUN_0012e9f0(param_1,param_2,&local_68);
      if (lVar17 == 0) {
        uVar8 = dcgettext(0,"missing index type",5);
        FUN_0012e500(pbVar40,uVar8);
        lVar17 = FUN_0012d560(param_1,4,0);
      }
      lVar17 = FUN_0012d790(param_1,lVar17,uVar35,uVar11);
      break;
    }
    if ((bVar43) && (uVar35 == 0)) {
      if (uVar11 == 0) goto LAB_00133358;
      if (uVar11 == 0xffffffffffffffff) {
LAB_00133395:
        if (param_3 != (char *)0x0) {
          iVar5 = strcmp(param_3,"long long int");
          if (iVar5 == 0) goto LAB_0013373f;
          iVar5 = strcmp(param_3,"long long unsigned int");
          if (iVar5 == 0) goto LAB_0013348a;
        }
      }
      else {
        if (uVar11 == 0x7f) {
LAB_00133dee:
          lVar17 = FUN_0012d560(param_1,1,0);
          break;
        }
LAB_00133a66:
        iVar5 = (int)uVar11;
        if ((long)uVar11 < 0) goto LAB_00133b55;
        if (uVar11 == 0xff) {
          lVar17 = FUN_0012d560(param_1,1,1);
          break;
        }
        if (uVar11 == 0xffff) {
          lVar17 = FUN_0012d560(param_1,2,1);
          break;
        }
        if (uVar11 != 0xffffffff) goto LAB_00131987;
      }
      lVar17 = FUN_0012d560(param_1,4,1);
    }
    else {
      bVar41 = uVar11 != 0;
      if ((!bVar43) || (bVar41)) {
        if ((0 < (long)uVar35) && (!bVar41)) {
          lVar17 = FUN_0012d580(param_1,uVar35 & 0xffffffff);
          break;
        }
        if ((uVar11 == 0xffffffffffffffff) && (uVar35 == 0)) goto LAB_00133395;
        if (uVar35 == 0) goto LAB_00133a66;
        if (((-1 < (long)uVar35) || (bVar41)) || ((uVar35 != 0xfffffffffffffff8 && (!bVar43))))
        goto LAB_001336f0;
      }
      else {
        if (0 < (long)uVar35) {
          lVar17 = FUN_0012d5a0(param_1,uVar35 & 0xffffffff);
          break;
        }
        if (-1 < (long)uVar35) {
LAB_001336f0:
          if ((uVar35 == ~uVar11) || (uVar35 == uVar11 + 1)) {
            if (uVar11 == 0x7f) goto LAB_00133dee;
            if (uVar11 == 0x7fff) {
              lVar17 = FUN_0012d560(param_1,2,0);
              break;
            }
            if (uVar11 == 0x7fffffff) {
              lVar17 = FUN_0012d560(param_1,4,0);
              break;
            }
            if (uVar11 == 0x7fffffffffffffff) goto LAB_0013373f;
          }
          goto LAB_00131987;
        }
      }
      iVar5 = (int)uVar35;
LAB_00133b55:
      lVar17 = FUN_0012d560(param_1,-iVar5,1);
    }
    break;
  case 0x73:
  case 0x75:
    uVar8 = FUN_0012e630(param_4,0,param_6);
    pbVar40 = (byte *)*param_4;
    if (param_6 <= pbVar40) {
      return 0;
    }
    local_f8 = 0;
    if (*pbVar40 == 0x21) {
      *param_4 = (ulong)(pbVar40 + 1);
      uVar39 = FUN_0012e630(param_4,0,param_6);
      if (*(char *)*param_4 != ',') goto LAB_00132126;
      *param_4 = (ulong)((char *)*param_4 + 1);
      local_f8 = xmalloc((ulong)(uVar39 + 1) << 3);
      if (uVar39 != 0) {
        uVar7 = uVar39 - 1;
        uVar35 = 0;
        cVar4 = *(char *)*param_4;
        if (cVar4 == '0') goto LAB_00132b2f;
LAB_00132a1e:
        uVar11 = uVar35;
        if (cVar4 == '1') {
          uVar14 = 1;
        }
        else {
          if (cVar4 == '\0') goto LAB_00132126;
          uVar14 = 0;
          uVar9 = dcgettext(0,"unknown virtual character for baseclass",5);
          FUN_0012e500(pbVar40,uVar9);
        }
        do {
          uVar35 = *param_4;
          *param_4 = uVar35 + 1;
          cVar4 = *(char *)(uVar35 + 1);
          if (cVar4 != '0') {
            if (cVar4 < '1') {
              if (cVar4 == '\0') goto LAB_00132126;
            }
            else if ((cVar4 == '1') || (cVar4 == '2')) goto LAB_00132a81;
            uVar9 = dcgettext(0,"unknown visibility character for baseclass",5);
            FUN_0012e500(pbVar40,uVar9);
          }
LAB_00132a81:
          *param_4 = *param_4 + 1;
          uVar9 = FUN_0012e630(param_4,0,param_6);
          if (*(char *)*param_4 != ',') goto LAB_00132126;
          *param_4 = (ulong)((char *)*param_4 + 1);
          lVar17 = MASKED(param_1,param_2,0,param_4,0,param_6);
          if (lVar17 == 0) {
            return 0;
          }
          lVar17 = FUN_0012da10(param_1,lVar17,uVar9,uVar14);
          *(long *)(local_f8 + uVar11 * 8) = lVar17;
          if (lVar17 == 0) {
            return 0;
          }
          if (*(char *)*param_4 != ';') {
            return 0;
          }
          pcVar16 = (char *)*param_4 + 1;
          uVar39 = (int)uVar11 + 1;
          uVar35 = uVar11 + 1;
          *param_4 = (ulong)pcVar16;
          if (uVar11 == uVar7) break;
          cVar4 = *pcVar16;
          if (cVar4 != '0') goto LAB_00132a1e;
LAB_00132b2f:
          uVar14 = 0;
          uVar11 = uVar35;
        } while( true );
      }
      pbVar40 = (byte *)*param_4;
      *(undefined8 *)(local_f8 + (ulong)uVar39 * 8) = 0;
      if (param_6 <= pbVar40) {
        return 0;
      }
    }
    uVar35 = 0;
    local_130 = (void *)xmalloc(0x50);
    pbVar34 = (byte *)*param_4;
    bVar43 = false;
    bVar3 = *pbVar34;
    local_138._0_4_ = 10;
    while (bVar3 != 0x3b) {
      uVar39 = (int)uVar35 + 1;
      if ((uint)local_138 <= uVar39) {
        local_138._0_4_ = (uint)local_138 + 10;
        local_130 = (void *)xrealloc(local_130,(ulong)(uint)local_138 << 3);
        bVar3 = *pbVar34;
      }
      if (((bVar3 == 0x24) || (bVar3 == 0x2e)) && (pbVar34[1] != 0x5f)) {
        uVar11 = *param_4;
        pbVar34 = (byte *)(uVar11 + 1);
        plVar10 = (long *)((long)local_130 + uVar35 * 8);
        *param_4 = (ulong)pbVar34;
        *plVar10 = 0;
        if (param_6 <= pbVar34) goto LAB_00131328;
        if (*(char *)(uVar11 + 1) != 'v') goto LAB_00132740;
        *param_4 = uVar11 + 2;
        cVar4 = *(char *)(uVar11 + 2);
        if (cVar4 == '\0') goto LAB_00132740;
        *param_4 = uVar11 + 3;
        lVar17 = MASKED(param_1,param_2,0,param_4,0,param_6);
        if (lVar17 == 0) goto LAB_00131328;
        if (cVar4 == 'b') {
          puVar23 = (undefined *)FUN_0012e0c0(param_1,lVar17);
          if (puVar23 == (undefined *)0x0) {
            uVar14 = dcgettext(0,"unnamed $vb type",5);
            FUN_0012e500(pbVar34,uVar14);
            puVar23 = &DAT_00146979;
          }
          pcVar16 = (char *)concat(&DAT_00146a0b,puVar23,0);
        }
        else {
          pcVar16 = "_vptr$";
          if (cVar4 != 'f') {
            uVar14 = dcgettext(0,"unrecognized C++ abbreviation",5);
            pcVar16 = "INVALID_CPLUSPLUS_ABBREV";
            FUN_0012e500(pbVar34,uVar14);
          }
        }
        if (*(char *)*param_4 != ':') goto LAB_00132740;
        *param_4 = (ulong)((char *)*param_4 + 1);
        uVar14 = MASKED(param_1,param_2,0,param_4,0,param_6);
        if (*(char *)*param_4 != ',') goto LAB_00132740;
        *param_4 = (ulong)((char *)*param_4 + 1);
        uVar9 = FUN_0012e630(param_4,0,param_6);
        if (*(char *)*param_4 != ';') goto LAB_00132740;
        *param_4 = (ulong)((char *)*param_4 + 1);
        lVar17 = FUN_0012da50(param_1,pcVar16,uVar14,uVar9,0,2);
        *plVar10 = lVar17;
        if (lVar17 == 0) goto LAB_00131328;
      }
      else {
        pcVar16 = strchr((char *)pbVar34,0x3a);
        if (pcVar16 == (char *)0x0) {
          FUN_0012e570(pbVar40);
          free(local_130);
          return 0;
        }
        pbVar34 = (byte *)*param_4;
        if (pcVar16[1] == ':') break;
        if (param_6 <= pbVar34) {
          return 0;
        }
        pvVar12 = (void *)FUN_0012e600(pbVar34,(long)pcVar16 - (long)pbVar34);
        *param_4 = (ulong)(pcVar16 + 1);
        if (pcVar16[1] == '/') {
          pcVar15 = pcVar16 + 2;
          *param_4 = (ulong)pcVar15;
          cVar4 = pcVar16[2];
          if (cVar4 == '0') {
            local_120 = 2;
          }
          else {
            if (cVar4 < '1') {
              if (cVar4 == '\0') goto switchD_001311d2_caseD_24;
            }
            else {
              local_120 = 1;
              if ((cVar4 == '1') || (local_120 = 0, cVar4 == '2')) goto LAB_00131b6d;
            }
            uVar14 = dcgettext(0,"unknown visibility character for field",5);
            FUN_0012e500(pbVar34,uVar14);
            pcVar15 = (char *)*param_4;
            local_120 = 0;
          }
LAB_00131b6d:
          *param_4 = (ulong)(pcVar15 + 1);
        }
        else {
          local_120 = 0;
        }
        lVar17 = MASKED(param_1,param_2,0,param_4,0,param_6);
        if (lVar17 == 0) {
          free(pvVar12);
          return 0;
        }
        puVar19 = (undefined8 *)((long)local_130 + uVar35 * 8);
        pcVar16 = (char *)*param_4;
        if (*pcVar16 == ':') {
          pcVar16 = pcVar16 + 1;
          *param_4 = (ulong)pcVar16;
          pcVar15 = strchr(pcVar16,0x3b);
          if (pcVar15 == (char *)0x0) goto LAB_00132614;
          uVar14 = FUN_0012e600(pcVar16,(long)pcVar15 - (long)pcVar16);
          *param_4 = (ulong)(pcVar15 + 1);
          uVar14 = FUN_0012daa0(param_1,pvVar12,lVar17,uVar14);
          bVar43 = true;
          *puVar19 = uVar14;
        }
        else {
          if (*pcVar16 != ',') {
LAB_00132614:
            FUN_0012e570(pbVar34);
            free(pvVar12);
            return 0;
          }
          *param_4 = (ulong)(pcVar16 + 1);
          lVar18 = FUN_0012e630(param_4,0,param_6);
          if (*(char *)*param_4 != ',') goto LAB_00132614;
          *param_4 = (ulong)((char *)*param_4 + 1);
          lVar13 = FUN_0012e630(param_4,0,param_6);
          if (*(char *)*param_4 != ';') goto LAB_00132614;
          *param_4 = (ulong)((char *)*param_4 + 1);
          uVar14 = 3;
          if (lVar18 != 0 || lVar13 != 0) {
            uVar14 = local_120;
          }
          uVar14 = FUN_0012da50(param_1,pvVar12,lVar17,lVar18,lVar13,uVar14);
          *puVar19 = uVar14;
        }
      }
      pbVar34 = (byte *)*param_4;
      uVar35 = (ulong)uVar39;
      bVar3 = *pbVar34;
    }
    *(undefined8 *)((long)local_130 + uVar35 * 8) = 0;
    if (param_6 <= pbVar34) goto LAB_00131328;
    bVar3 = *pbVar34;
    if (bVar3 == 0x3b) {
      local_108 = 0;
LAB_001334bc:
      pbVar22 = pbVar34 + 1;
      *param_4 = (ulong)pbVar22;
    }
    else {
      pbVar40 = (byte *)0x0;
      local_128 = (void *)0x0;
      local_108 = 0;
      local_c4 = 0;
      local_c8 = 0;
      local_138 = (char *)0x0;
      pbVar22 = pbVar34;
      do {
        pcVar16 = strchr((char *)pbVar22,0x3a);
        if ((pcVar16 == (char *)0x0) || (pcVar16[1] != ':')) break;
        pcVar15 = pcVar16 + 2;
        if ((bVar3 == 0x6f) && ((pbVar22[1] == 0x70 && (pbVar22[2] == 0x24)))) {
          *param_4 = (ulong)pcVar15;
          cVar4 = pcVar16[2];
          pcVar16 = pcVar15;
          while ((cVar4 != '.' && (cVar4 != '\0'))) {
            pcVar16 = pcVar16 + 1;
            cVar4 = *pcVar16;
          }
          if (cVar4 != '.') {
            FUN_0012e570(pbVar34);
            if (local_138 != (char *)0x0) {
LAB_0013279c:
              free(local_138);
            }
            if (local_128 != (void *)0x0) {
LAB_00132d1b:
              free(local_128);
            }
            if (pbVar40 != (byte *)0x0) {
              free(pbVar40);
            }
            goto LAB_00131328;
          }
          local_138 = (char *)FUN_0012e600(pcVar15,(long)pcVar16 - (long)pcVar15);
          *param_4 = (ulong)(pcVar16 + 1);
        }
        else {
          local_138 = (char *)FUN_0012e600(pbVar22,(int)pcVar16 - (int)pbVar22);
          *param_4 = (ulong)pcVar15;
        }
        local_128 = (void *)xmalloc(0x50);
        local_ec = 0;
        local_e8 = 10;
        lVar17 = 0;
        do {
          if (lVar17 == 0) {
            lVar17 = MASKED(param_1,param_2,0,param_4,0,param_6);
            if (lVar17 != 0) {
              pcVar16 = (char *)*param_4;
              if (*pcVar16 == ':') goto LAB_00131d3f;
              goto LAB_00132781;
            }
LAB_00132793:
            if (local_138 == (char *)0x0) goto LAB_00132d1b;
            goto LAB_0013279c;
          }
          pcVar16 = (char *)*param_4;
LAB_00131d3f:
          *param_4 = (ulong)(pcVar16 + 1);
          pcVar16 = strchr(pcVar16 + 1,0x3b);
          if (pcVar16 == (char *)0x0) {
LAB_00132781:
            FUN_0012e570(pbVar34);
            goto LAB_00132793;
          }
          iVar5 = FUN_0012e080(param_1,lVar17);
          bVar41 = false;
          if (iVar5 == 0x13) {
            lVar18 = FUN_0012e1b0(param_1,lVar17,local_80);
            bVar41 = lVar18 == 0;
          }
          pbVar40 = (byte *)FUN_0012e600(*param_4,(long)pcVar16 - *param_4);
          *param_4 = (ulong)(pcVar16 + 1);
          cVar4 = pcVar16[1];
          if (cVar4 == '0') {
            local_e4 = 2;
          }
          else if (cVar4 == '1') {
            local_e4 = 1;
          }
          else {
            if (cVar4 == '\0') goto LAB_00132781;
            local_e4 = 0;
          }
          pcVar15 = pcVar16 + 2;
          *param_4 = (ulong)pcVar15;
          cVar4 = pcVar16[2];
          switch(cVar4) {
          case '*':
          case '.':
          case '?':
            iVar5 = 0;
            local_f0 = 0;
            break;
          default:
            uVar14 = dcgettext(0,"const/volatile indicator missing",5);
            FUN_0012e500(pbVar34,uVar14);
            pcVar15 = (char *)*param_4;
            iVar5 = 0;
            local_f0 = 0;
            cVar4 = *pcVar15;
            break;
          case 'A':
            pcVar15 = pcVar16 + 3;
            iVar5 = 0;
            *param_4 = (ulong)pcVar15;
            cVar4 = pcVar16[3];
            local_f0 = 0;
            break;
          case 'B':
            pcVar15 = pcVar16 + 3;
            iVar5 = 0;
            *param_4 = (ulong)pcVar15;
            cVar4 = pcVar16[3];
            local_f0 = 1;
            break;
          case 'C':
            pcVar15 = pcVar16 + 3;
            iVar5 = 1;
            *param_4 = (ulong)pcVar15;
            cVar4 = pcVar16[3];
            local_f0 = 0;
            break;
          case 'D':
            pcVar15 = pcVar16 + 3;
            iVar5 = 1;
            local_f0 = 1;
            *param_4 = (ulong)pcVar15;
            cVar4 = pcVar16[3];
          }
          pbVar22 = pbVar40;
          if (cVar4 == '.') {
            bVar44 = false;
            lVar18 = 0;
            *param_4 = (ulong)(pcVar15 + 1);
            local_100 = 0;
            uVar39 = 0;
LAB_001322ba:
            if (bVar41) goto LAB_0013282f;
          }
          else {
            if (cVar4 != '?') {
              if (cVar4 == '*') {
                *param_4 = (ulong)(pcVar15 + 1);
                uVar39 = FUN_0012e630(param_4,0,param_6);
                pcVar16 = (char *)*param_4;
                if (*pcVar16 != ';') goto LAB_00132781;
                uVar39 = uVar39 & 0x7fffffff;
                *param_4 = (ulong)(pcVar16 + 1);
                if ((pcVar16[1] == ';') || (pcVar16[1] == '\0')) {
                  local_100 = 0;
                  lVar18 = 0;
                  bVar44 = false;
                }
                else {
                  lVar13 = MASKED(param_1,param_2,0,param_4,0,param_6);
                  cVar4 = *(char *)*param_4;
                  if (cVar4 == ':') {
                    local_100 = 0;
                    bVar44 = false;
                    lVar18 = lVar13;
                  }
                  else {
                    if (cVar4 != ';') goto LAB_00132781;
                    *param_4 = (ulong)((char *)*param_4 + 1);
                    bVar44 = false;
                    lVar18 = 0;
                    local_100 = lVar13;
                  }
                }
              }
              else {
                FUN_0012e500(pbVar34,"member function type missing");
                bVar44 = false;
                local_100 = 0;
                uVar39 = 0;
                lVar18 = 0;
              }
              goto LAB_001322ba;
            }
            *param_4 = (ulong)(pcVar15 + 1);
            sVar20 = strlen(local_138);
            iVar27 = strncmp((char *)pbVar40,local_138,sVar20);
            if (iVar27 == 0) {
              local_100 = 0;
              lVar18 = 0;
              uVar39 = 0;
              bVar44 = true;
              goto LAB_001322ba;
            }
            local_100 = 0;
            lVar18 = 0;
            uVar39 = 0;
            bVar44 = true;
LAB_0013282f:
            lVar13 = FUN_0012e9f0(param_1,param_2,&local_70);
            if (lVar13 == 0) goto LAB_00132793;
            lVar17 = FUN_0012e160(param_1,lVar17);
            if (lVar17 == 0) goto LAB_00132781;
            bVar41 = *pbVar40 < 0x5f;
            bVar45 = *pbVar40 == 0x5f;
            if (bVar45) {
              if (pbVar40[1] != 0x5f) {
                iVar27 = strncmp((char *)pbVar40,"__ct",4);
                if (iVar27 == 0) {
                  bVar45 = true;
                  bVar41 = true;
                }
                else {
                  if (param_3 != (char *)0x0) goto LAB_001338f6;
                  bVar45 = false;
                  bVar41 = false;
                }
LAB_00133557:
                if ((((pbVar40[1] != 0x24) && (pbVar40[1] != 0x2e)) || (pbVar40[2] != 0x5f)) &&
                   (iVar27 = strncmp((char *)pbVar40,"__dt",4), iVar27 != 0)) goto LAB_0013358b;
LAB_001336a5:
                if (pbVar40[1] == 0x5a) goto LAB_001328ca;
                bVar41 = true;
LAB_001336b5:
                local_d8 = 0;
                goto LAB_0013302f;
              }
              bVar3 = pbVar40[2];
              if ((((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) && (bVar3 != 0x51 && bVar3 != 0x74))
                 && (iVar27 = strncmp((char *)pbVar40,"__ct",4), iVar27 != 0)) {
                if (param_3 != (char *)0x0) {
LAB_001338f6:
                  iVar27 = strcmp(local_138,param_3);
                  bVar45 = iVar27 == 0;
                  bVar41 = false;
                  goto LAB_00133557;
                }
                iVar27 = strncmp((char *)pbVar40,"__dt",4);
                if (iVar27 == 0) goto LAB_001336a5;
                bVar45 = false;
                bVar41 = false;
              }
              else {
                iVar27 = strncmp((char *)pbVar40,"__dt",4);
                if (iVar27 == 0) goto LAB_001336a5;
                bVar41 = true;
                bVar45 = true;
              }
LAB_0013358b:
              if (pbVar40[1] != 0x5a) goto LAB_00132deb;
              if ((*pbVar40 == 0x5f) && (pbVar40[1] == 0x5a)) goto LAB_00133b71;
              local_58 = (undefined8 *)0x0;
              local_50[0] = 0;
              local_3c = 10;
              local_78 = pbVar40;
              local_68 = param_1;
              local_60 = param_2;
              local_48 = (void *)xmalloc(0xa0);
LAB_0013360b:
              pbVar33 = local_78;
              local_40 = 0;
              pbVar37 = local_78;
              do {
                pbVar31 = (byte *)strchr((char *)pbVar37,0x5f);
                if (pbVar31 == (byte *)0x0) goto LAB_00133635;
                pbVar37 = pbVar31 + 1;
              } while (pbVar31[1] != 0x5f);
              if (pbVar37 != (byte *)0x0) {
                sVar20 = strspn((char *)pbVar31,"_");
                if (2 < (uint)sVar20) {
                  pbVar31 = pbVar31 + ((uint)sVar20 - 2);
                }
                goto LAB_001330d0;
              }
LAB_00133635:
              FUN_0012e540(pbVar33);
LAB_0013323f:
              if (local_48 != (void *)0x0) {
                free(local_48);
              }
              goto LAB_00132793;
            }
            lVar26 = 4;
            pbVar37 = pbVar40;
            pbVar33 = &DAT_00146a76;
            do {
              if (lVar26 == 0) break;
              lVar26 = lVar26 + -1;
              bVar41 = *pbVar37 < *pbVar33;
              bVar45 = *pbVar37 == *pbVar33;
              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;
              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;
            } while (bVar45);
            bVar46 = (!bVar41 && !bVar45) == bVar41;
            if (bVar46) {
              bVar45 = true;
              bVar41 = true;
            }
            else if (param_3 == (char *)0x0) {
              bVar45 = false;
              bVar41 = false;
              bVar46 = true;
            }
            else {
              iVar27 = strcmp(local_138,param_3);
              bVar45 = iVar27 == 0;
              bVar41 = false;
              bVar46 = true;
            }
            bVar42 = false;
            lVar26 = 4;
            pbVar37 = pbVar40;
            pbVar33 = &DAT_00146a4b;
            do {
              if (lVar26 == 0) break;
              lVar26 = lVar26 + -1;
              bVar42 = *pbVar37 < *pbVar33;
              bVar46 = *pbVar37 == *pbVar33;
              pbVar37 = pbVar37 + (ulong)bVar47 * -2 + 1;
              pbVar33 = pbVar33 + (ulong)bVar47 * -2 + 1;
            } while (bVar46);
            if ((!bVar42 && !bVar46) == bVar42) {
LAB_001328ca:
              puVar19 = (undefined8 *)xmalloc(8);
              *puVar19 = 0;
              iVar27 = 0;
            }
            else {
LAB_00132deb:
              if (bVar41) {
                bVar41 = false;
                goto LAB_001336b5;
              }
              local_d8 = 0;
              if (param_3 != (char *)0x0) {
                sVar20 = strlen(param_3);
                local_d8 = sVar20 & 0xffffffff;
              }
              pcVar15 = "C";
              pcVar16 = "V";
              if (local_f0 == 0) {
                pcVar15 = "";
              }
              if (iVar5 == 0) {
                pcVar16 = "";
              }
              local_c0 = param_3;
              if ((int)local_d8 == 0) {
                sprintf((char *)&local_68,"__%s%s");
              }
              else if ((param_3 == (char *)0x0) ||
                      (pcVar21 = strchr(param_3,0x3c), pcVar21 == (char *)0x0)) {
                sprintf((char *)&local_68,"__%s%s%d",pcVar15,pcVar16,local_d8);
              }
              else {
                sprintf((char *)&local_68,"__%s%s",pcVar15,pcVar16);
                local_d8._0_4_ = 0;
                local_c0 = (char *)0x0;
              }
              puVar30 = (uint *)&local_68;
              do {
                puVar29 = puVar30;
                uVar6 = *puVar29 + 0xfefefeff & ~*puVar29;
                uVar7 = uVar6 & 0x80808080;
                puVar30 = puVar29 + 1;
              } while (uVar7 == 0);
              bVar41 = (uVar6 & 0x8080) == 0;
              if (bVar41) {
                uVar7 = uVar7 >> 0x10;
              }
              cVar4 = *local_138;
              if (bVar41) {
                puVar30 = (uint *)((long)puVar29 + 6);
              }
              iVar27 = (((int)puVar30 + -3) - (uint)CARRY1((byte)uVar7,(byte)uVar7)) -
                       (int)&local_68;
              sVar20 = strlen((char *)pbVar40);
              if (bVar45) {
                iVar27 = iVar27 + (int)local_d8 + 1 + (int)sVar20;
                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&
                   ((local_138[2] == '$' || (local_138[2] == '.')))) goto LAB_00132f86;
                pbVar22 = (byte *)xmalloc(iVar27);
                *pbVar22 = 0;
              }
              else {
                lVar26 = -1;
                pcVar16 = local_138;
                do {
                  if (lVar26 == 0) break;
                  lVar26 = lVar26 + -1;
                  cVar1 = *pcVar16;
                  pcVar16 = pcVar16 + (ulong)bVar47 * -2 + 1;
                } while (cVar1 != '\0');
                iVar27 = ((iVar27 + (int)local_d8 + 1) - (int)lVar26) + -2 + (int)sVar20;
                if (((cVar4 == 'o') && (local_138[1] == 'p')) &&
                   ((local_138[2] == '$' || (local_138[2] == '.')))) {
LAB_00132f86:
                  pcVar16 = (char *)cplus_mangle_opname(local_138 + 3,0);
                  if (pcVar16 == (char *)0x0) {
                    pcVar16 = (char *)dcgettext(0,"No mangling for \"%s\"\n",5);
                    fprintf(stderr,pcVar16,local_138);
                    goto LAB_0013279c;
                  }
                  lVar26 = -1;
                  pcVar15 = pcVar16;
                  do {
                    if (lVar26 == 0) break;
                    lVar26 = lVar26 + -1;
                    cVar4 = *pcVar15;
                    pcVar15 = pcVar15 + (ulong)bVar47 * -2 + 1;
                  } while (cVar4 != '\0');
                  pbVar22 = (byte *)xmalloc(iVar27 + -1 + ~(uint)lVar26);
                  strncpy((char *)pbVar22,local_138,3);
                  strcpy((char *)(pbVar22 + 3),pcVar16);
                }
                else {
                  pbVar22 = (byte *)xmalloc(iVar27);
                  strcpy((char *)pbVar22,local_138);
                }
              }
              sVar20 = strlen((char *)pbVar22);
              local_d8 = sVar20 & 0xffffffff;
              pcVar16 = stpcpy((char *)(pbVar22 + sVar20),(char *)&local_68);
              if (local_c0 != (char *)0x0) {
                strcpy(pcVar16,local_c0);
              }
              strcat((char *)pbVar22,(char *)pbVar40);
              bVar41 = false;
LAB_0013302f:
              if ((*pbVar40 == 0) || (bVar41)) goto LAB_001328ca;
              if ((*pbVar22 == 0x5f) && (pbVar22[1] == 0x5a)) {
LAB_00133b71:
                local_78 = pbVar22;
                piVar24 = (int *)FUN_001390d0(pbVar22,3,&local_68);
                if (piVar24 == (int *)0x0) {
                  FUN_0012e540(pbVar22);
                }
                else {
                  if ((*piVar24 == 3) && (**(int **)(piVar24 + 4) == 0x29)) {
                    puVar19 = (undefined8 *)
                              FUN_0012f7f0(param_1,param_2,
                                           *(undefined8 *)(*(int **)(piVar24 + 4) + 4),&local_7c);
                    free(local_68);
                    goto LAB_00133211;
                  }
                  pcVar16 = (char *)dcgettext(0,"Demangled name is not a function\n",5);
                  fprintf(stderr,pcVar16);
                  free(local_68);
                }
                goto LAB_00132793;
              }
              local_58 = (undefined8 *)0x0;
              local_50[0] = 0;
              local_3c = 10;
              local_78 = pbVar22;
              local_68 = param_1;
              local_60 = param_2;
              local_48 = (void *)xmalloc(0xa0);
              local_40 = 0;
              if ((int)local_d8 == 0) goto LAB_0013360b;
              pbVar31 = local_78 + local_d8;
              pbVar33 = local_78;
LAB_001330d0:
              bVar3 = pbVar31[2];
              if (pbVar33 == pbVar31) {
                if (((_sch_istable[(ulong)bVar3 * 2] & 4) == 0) &&
                   (pbVar37 = pbVar31, bVar3 != 0x51 && bVar3 != 0x74)) {
                  for (; *pbVar37 == 0x5f; pbVar37 = pbVar37 + 1) {
                  }
                  pcVar16 = strstr((char *)pbVar37,"__");
                  if ((pcVar16 == (char *)0x0) || (pcVar16[2] == '\0')) {
                    FUN_0012e540(pbVar31);
                    goto LAB_0013323f;
                  }
                  iVar27 = FUN_00130f70(&local_68,&local_78,pcVar16);
                  goto LAB_001330fd;
                }
                local_78 = pbVar31 + 2;
              }
              else {
                if (bVar3 == 0) goto LAB_00133635;
                iVar27 = FUN_00130f70(&local_68,&local_78);
LAB_001330fd:
                if (iVar27 == 0) goto LAB_0013323f;
              }
              pbVar37 = local_78;
              bVar3 = *local_78;
              if (bVar3 != 0) {
                pbVar33 = (byte *)0x0;
                bVar45 = false;
                bVar41 = false;
                do {
                  pbVar31 = local_78;
                  switch(bVar3) {
                  case 0x30:
                  case 0x31:
                  case 0x32:
                  case 0x33:
                  case 0x34:
                  case 0x35:
                  case 0x36:
                  case 0x37:
                  case 0x38:
                  case 0x39:
                    if (pbVar33 == (byte *)0x0) {
                      pbVar33 = local_78;
                    }
                    iVar27 = FUN_0012eea0(&local_78,0);
                    goto joined_r0x0013334c;
                  default:
                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);
                    if (iVar27 == 0) goto LAB_0013323f;
                    bVar41 = true;
                    break;
                  case 0x43:
                  case 0x53:
                    if (pbVar33 == (byte *)0x0) {
                      pbVar33 = local_78;
                    }
                    local_78 = local_78 + 1;
                    break;
                  case 0x46:
                    local_78 = local_78 + 1;
                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);
                    if (iVar27 == 0) goto LAB_0013323f;
                    pbVar33 = (byte *)0x0;
                    bVar41 = true;
                    break;
                  case 0x51:
                    iVar27 = FUN_00130930(&local_68,&local_78,0);
                    if (iVar27 != 0) {
                      iVar27 = FUN_0012e5a0(&local_68,pbVar31,(long)local_78 - (long)pbVar31);
                      goto joined_r0x001332f4;
                    }
                    goto LAB_0013323f;
                  case 0x5f:
                    FUN_0012e540(pbVar37);
                    goto LAB_0013323f;
                  case 0x74:
                    if (pbVar33 == (byte *)0x0) {
                      pbVar33 = local_78;
                    }
                    iVar27 = FUN_00130390(&local_68,&local_78,0);
joined_r0x0013334c:
                    if (iVar27 != 0) {
                      iVar27 = FUN_0012e5a0(&local_68,pbVar33,(long)local_78 - (long)pbVar33);
joined_r0x001332f4:
                      if (iVar27 != 0) {
                        pbVar33 = (byte *)0x0;
                        goto LAB_0013328f;
                      }
                    }
                    goto LAB_0013323f;
                  }
                  if (bVar45) {
LAB_0013328f:
                    iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50);
                    if (iVar27 == 0) goto LAB_0013323f;
                    bVar45 = true;
                    bVar41 = true;
                  }
                  bVar3 = *local_78;
                } while (bVar3 != 0);
                if ((!bVar41) &&
                   (iVar27 = FUN_00130da0(&local_68,&local_78,&local_58,local_50), iVar27 == 0))
                goto LAB_0013323f;
              }
              free(local_48);
              local_48 = (void *)0x0;
              if (local_58 == (undefined8 *)0x0) {
                pcVar16 = (char *)dcgettext(0,"no argument types in mangled string\n",5);
                fprintf(stderr,pcVar16);
              }
              local_7c = local_50[0];
              puVar19 = local_58;
LAB_00133211:
              iVar27 = local_7c;
              if (puVar19 == (undefined8 *)0x0) goto LAB_00132793;
            }
            lVar17 = FUN_0012d940(param_1,lVar17,lVar13,puVar19,iVar27);
            if (lVar17 == 0) goto LAB_00132793;
          }
          uVar7 = local_ec + 1;
          if (local_e8 <= uVar7) {
            local_e8 = local_e8 + 10;
            local_128 = (void *)xrealloc(local_128,(ulong)local_e8 << 3);
          }
          plVar10 = (long *)((long)local_128 + (ulong)local_ec * 8);
          if (bVar44) {
            lVar17 = FUN_0012db70(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5);
            *plVar10 = lVar17;
          }
          else {
            lVar17 = FUN_0012db10(param_1,pbVar22,lVar17,local_e4,local_f0,iVar5,uVar39,local_100);
            *plVar10 = lVar17;
          }
          if (lVar17 == 0) goto LAB_00132793;
          pcVar16 = (char *)*param_4;
        } while ((*pcVar16 != ';') && (lVar17 = lVar18, local_ec = uVar7, *pcVar16 != '\0'));
        *(undefined8 *)((long)local_128 + (ulong)uVar7 * 8) = 0;
        if (*pcVar16 != '\0') {
          *param_4 = (ulong)(pcVar16 + 1);
        }
        uVar39 = local_c8 + 1;
        if (local_c4 <= uVar39) {
          local_c4 = local_c4 + 10;
          local_108 = xrealloc(local_108,(ulong)local_c4 << 3);
        }
        uVar14 = FUN_0012dae0(param_1,local_138,local_128);
        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = uVar14;
        pbVar22 = (byte *)*param_4;
        bVar3 = *pbVar22;
        local_c8 = uVar39;
      } while (bVar3 != 0x3b);
      if (local_108 != 0) {
        *(undefined8 *)(local_108 + (ulong)local_c8 * 8) = 0;
      }
      if (param_6 <= pbVar22) goto LAB_00131328;
      pbVar34 = pbVar22;
      if (*pbVar22 == 0x3b) goto LAB_001334bc;
    }
    if (*pbVar22 == 0x7e) {
      pbVar40 = pbVar22 + 1;
      *param_4 = (ulong)pbVar40;
      if (((pbVar22[1] & 0xef) == 0x2d) || (pbVar22[1] == 0x2b)) {
        pbVar40 = pbVar22 + 2;
        *param_4 = (ulong)pbVar40;
      }
      if (*pbVar40 != 0x25) goto LAB_0013244a;
      *param_4 = (ulong)(pbVar40 + 1);
      iVar5 = FUN_0012e6c0(param_4,&local_68,param_6);
      if (iVar5 == 0) goto LAB_00131328;
      if ((uint)local_68 != (uint)local_70) {
LAB_00132596:
        *param_4 = (ulong)(pbVar40 + 1);
        lVar17 = MASKED(param_1,param_2,0,param_4,0,param_6);
        pcVar16 = (char *)*param_4;
        cVar4 = *pcVar16;
        while ((cVar4 != ';' && (cVar4 != '\0'))) {
          pcVar16 = pcVar16 + 1;
          cVar4 = *pcVar16;
        }
        if (cVar4 != ';') {
LAB_00132740:
          FUN_0012e570(pbVar34);
LAB_00131328:
          free(local_130);
          return 0;
        }
        *param_4 = (ulong)(pcVar16 + 1);
        goto LAB_0013244c;
      }
      if (local_68._4_4_ != local_70._4_4_) goto LAB_00132596;
      uVar14 = 1;
      lVar17 = 0;
    }
    else {
LAB_0013244a:
      lVar17 = 0;
LAB_0013244c:
      if (((local_108 == 0 && local_f8 == 0) && lVar17 == 0) && (!bVar43)) {
        lVar17 = FUN_0012d5b0(param_1,bVar38 == 0x73,uVar8,local_130);
        break;
      }
      uVar14 = 0;
    }
    lVar17 = FUN_0012d600(param_1,bVar38 == 0x73,uVar8,local_130,local_f8,local_108,lVar17,uVar14);
    break;
  case 0x78:
    bVar47 = pbVar22[1];
    if (bVar47 == 0x65) {
      uVar32 = 0xb;
    }
    else {
      if ((char)bVar47 < 'f') {
        if (bVar47 == 0) goto switchD_001311d2_caseD_24;
      }
      else {
        uVar32 = 7;
        if ((bVar47 == 0x73) || (uVar32 = 8, bVar47 == 0x75)) goto LAB_00131e0e;
      }
      uVar32 = 7;
      uVar8 = dcgettext(0,"unrecognized cross reference type",5);
      FUN_0012e500(pbVar34,uVar8);
      pbVar40 = (byte *)*param_4;
    }
LAB_00131e0e:
    pbVar40 = pbVar40 + 1;
    *param_4 = (ulong)pbVar40;
    pcVar15 = strchr((char *)pbVar40,0x3c);
    pcVar16 = strchr((char *)pbVar40,0x3a);
    if (pcVar16 != (char *)0x0) {
      if (((pcVar15 == (char *)0x0) || (pcVar16 <= pcVar15)) || (pcVar16[1] != ':')) {
LAB_00131e52:
        uVar35 = (long)pcVar16 - (long)pbVar40;
        if (((param_3 != (char *)0x0) &&
            (iVar5 = strncmp(param_3,(char *)pbVar40,uVar35), iVar5 == 0)) &&
           (param_3[uVar35] == '\0')) {
          *(undefined4 *)(param_2 + 0x1a8) = 1;
        }
        lVar17 = FUN_0012ef40(param_1,param_2 + 0x1a0,pbVar40,uVar35 & 0xffffffff,uVar32);
        *param_4 = (ulong)(pcVar16 + 1);
        break;
      }
      cVar4 = *pcVar15;
      if (cVar4 != '\0') {
        iVar5 = 0;
        pcVar16 = pcVar15;
        do {
          if (cVar4 == '<') {
            iVar5 = iVar5 + 1;
          }
          else if (cVar4 == '>') {
            iVar5 = iVar5 + -1;
          }
          else if ((iVar5 == 0) && (cVar4 == ':')) goto LAB_00131e52;
          pcVar16 = pcVar16 + 1;
          cVar4 = *pcVar16;
        } while (cVar4 != '\0');
      }
    }
switchD_001311d2_caseD_24:
    FUN_0012e570(pbVar34);
    return 0;
  }
  if (lVar17 != 0) {
    if ((uint)local_70 != -1) {
      plVar10 = (long *)FUN_0012e890(param_2 + 0x80,param_2 + 0x88,&local_70);
      if (plVar10 == (long *)0x0) {
        return 0;
      }
      *plVar10 = lVar17;
    }
    if (local_13c == -1) {
      return lVar17;
    }
    iVar5 = FUN_0012de60(param_1,lVar17,local_13c);
    if (iVar5 != 0) {
      return lVar17;
    }
  }
  return 0;
}

