
/* WARNING: Type propagation algorithm not settling */

bfd_boolean stab_demangle_type(stab_demangle_info *minfo,char **pp,debug_type_conflict *ptype)

{
  char cVar1;
  bool bVar2;
  bool bVar3;
  byte bVar4;
  int iVar5;
  bfd_boolean bVar6;
  ulong uVar7;
  size_t sVar8;
  debug_type_conflict pdVar9;
  debug_type pdVar10;
  char *pcVar11;
  byte *pbVar12;
  byte *pbVar13;
  uint *pvarargs;
  bfd_boolean *pvarargs_00;
  debug_type_conflict **pppdVar14;
  char **pstart;
  debug_type_conflict *ptype_00;
  char *pcVar15;
  long upper;
  uint len;
  bfd_boolean varargs_1;
  uint i;
  char *p;
  
  pcVar15 = *pp;
  cVar1 = *pcVar15;
  switch(cVar1) {
  case 'A':
    pbVar13 = (byte *)(pcVar15 + 1);
    *pp = (char *)pbVar13;
    bVar4 = pcVar15[1];
    if ((bVar4 == 0) || (bVar4 == 0x5f)) {
      upper = 0;
LAB_00111d10:
      if (bVar4 == 0x5f) {
        *pp = (char *)(pbVar13 + 1);
        bVar6 = stab_demangle_type(minfo,pp,ptype);
        if (bVar6 == 0) {
          return 0;
        }
        if (ptype == (debug_type_conflict *)0x0) {
          return 1;
        }
        pdVar9 = debug_find_named_type(minfo->dhandle,"int");
        if (pdVar9 == (debug_type_conflict)0x0) {
          pdVar9 = debug_make_int_type(minfo->dhandle,4,0);
        }
        pdVar9 = debug_make_array_type(minfo->dhandle,*ptype,pdVar9,0,upper,0);
        *ptype = pdVar9;
        return 1;
      }
    }
    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {
      pbVar13 = (byte *)(pcVar15 + 2);
      upper = 0;
      do {
        *pp = (char *)pbVar13;
        upper = (long)((char)bVar4 + -0x30) + upper * 10;
        bVar4 = *pbVar13;
        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;
        pbVar13 = pbVar13 + 1;
      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);
    }
    break;
  default:
    bVar3 = false;
    pstart = (char **)0x0;
    iVar5 = 0;
    bVar2 = false;
    pcVar11 = pcVar15;
    do {
      if (cVar1 == 'S') {
        bVar3 = true;
        *pp = pcVar11 + 1;
      }
      else if (cVar1 < 'T') {
        if (cVar1 != 'C') goto code_r0x00111cf8;
        bVar2 = true;
        *pp = pcVar11 + 1;
      }
      else if (cVar1 == 'U') {
        pstart = (char **)0x1;
        *pp = pcVar11 + 1;
      }
      else {
        if (cVar1 != 'V') goto code_r0x00111cf8;
        iVar5 = 1;
        *pp = pcVar11 + 1;
      }
      cVar1 = pcVar11[1];
      pcVar11 = *pp;
    } while( true );
  case 'C':
    *pp = pcVar15 + 1;
    bVar6 = stab_demangle_type(minfo,pp,ptype);
    if (bVar6 == 0) {
      return 0;
    }
    if (ptype == (debug_type_conflict *)0x0) {
      return 1;
    }
    pdVar9 = debug_make_const_type(minfo->dhandle,*ptype);
    *ptype = pdVar9;
    return 1;
  case 'F':
    pvarargs = (uint *)0x0;
    pppdVar14 = (debug_type_conflict **)0x0;
    *pp = pcVar15 + 1;
    if (ptype != (debug_type_conflict *)0x0) {
      pvarargs = &i;
      pppdVar14 = (debug_type_conflict **)&p;
    }
    bVar6 = stab_demangle_args(minfo,pp,pppdVar14,(bfd_boolean *)pvarargs);
    if (bVar6 == 0) {
      return 0;
    }
    if (**pp == '_') {
      *pp = *pp + 1;
      bVar6 = stab_demangle_type(minfo,pp,ptype);
      if (bVar6 == 0) {
        return 0;
      }
      if (ptype == (debug_type_conflict *)0x0) {
        return 1;
      }
      pdVar9 = debug_make_function_type(minfo->dhandle,*ptype,(debug_type_conflict *)p,i);
      *ptype = pdVar9;
      return 1;
    }
    break;
  case 'G':
    *pp = pcVar15 + 1;
    bVar6 = stab_demangle_type(minfo,pp,ptype);
    return (uint)(bVar6 != 0);
  case 'M':
  case 'O':
    _i = (debug_type)0x0;
    cVar1 = *pcVar15;
    *pp = pcVar15 + 1;
    p = (char *)0x0;
    varargs_1 = 0;
    bVar4 = pcVar15[1];
    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {
      if (bVar4 != 0x51) break;
      ptype_00 = (debug_type_conflict *)&i;
      if (ptype == (debug_type_conflict *)0x0) {
        ptype_00 = (debug_type_conflict *)0x0;
      }
      bVar6 = stab_demangle_qualified(minfo,pp,ptype_00);
      if (bVar6 == 0) {
        return 0;
      }
LAB_00111b38:
      pbVar13 = (byte *)*pp;
    }
    else {
      len = 0;
      uVar7 = (ulong)bVar4;
      pbVar13 = (byte *)(pcVar15 + 2);
      do {
        pbVar12 = pbVar13;
        *pp = (char *)pbVar12;
        len = (char)uVar7 + -0x30 + len * 10;
        uVar7 = (ulong)*pbVar12;
        pbVar13 = pbVar12 + 1;
      } while ((_sch_istable[(ulong)*pbVar12 * 2] & 4) != 0);
      sVar8 = strlen((char *)pbVar12);
      if (sVar8 < len) break;
      pbVar13 = pbVar12 + len;
      *pp = (char *)pbVar13;
      if (ptype != (debug_type_conflict *)0x0) {
        _i = stab_find_tagged_type
                       (minfo->dhandle,(stab_handle *)&minfo->info->tags,(char *)pbVar12,len,
                        DEBUG_KIND_CLASS);
        if (_i == (debug_type)0x0) {
          return 0;
        }
        goto LAB_00111b38;
      }
    }
    bVar4 = *pbVar13;
    if (cVar1 == 'M') {
      if ((bVar4 == 0x43) || (pbVar12 = pbVar13, bVar4 == 0x56)) {
        pbVar12 = pbVar13 + 1;
        *pp = (char *)pbVar12;
        bVar4 = pbVar13[1];
      }
      if (bVar4 != 0x46) break;
      *pp = (char *)(pbVar12 + 1);
      if (ptype == (debug_type_conflict *)0x0) {
        pvarargs_00 = (bfd_boolean *)0x0;
        pppdVar14 = (debug_type_conflict **)0x0;
      }
      else {
        pvarargs_00 = &varargs_1;
        pppdVar14 = (debug_type_conflict **)&p;
      }
      bVar6 = stab_demangle_args(minfo,pp,pppdVar14,pvarargs_00);
      if (bVar6 == 0) {
        return 0;
      }
      pbVar13 = (byte *)*pp;
      bVar4 = *pbVar13;
    }
    if (bVar4 == 0x5f) {
      *pp = (char *)(pbVar13 + 1);
      bVar6 = stab_demangle_type(minfo,pp,ptype);
      if (bVar6 == 0) {
        return 0;
      }
      if (ptype == (debug_type_conflict *)0x0) {
        return 1;
      }
      if (cVar1 != 'M') {
        pdVar9 = debug_make_offset_type(minfo->dhandle,_i,*ptype);
        *ptype = pdVar9;
        return 1;
      }
      pdVar9 = debug_make_method_type(minfo->dhandle,*ptype,_i,(debug_type_conflict *)p,varargs_1);
      *ptype = pdVar9;
      return 1;
    }
    break;
  case 'P':
  case 'p':
    *pp = pcVar15 + 1;
    bVar6 = stab_demangle_type(minfo,pp,ptype);
    if (bVar6 == 0) {
      return 0;
    }
    if (ptype == (debug_type_conflict *)0x0) {
      return 1;
    }
    pdVar9 = debug_make_pointer_type(minfo->dhandle,*ptype);
    *ptype = pdVar9;
    return 1;
  case 'Q':
    bVar6 = stab_demangle_qualified(minfo,pp,ptype);
    return (uint)(bVar6 != 0);
  case 'R':
    *pp = pcVar15 + 1;
    bVar6 = stab_demangle_type(minfo,pp,ptype);
    if (bVar6 == 0) {
      return 0;
    }
    if (ptype == (debug_type_conflict *)0x0) {
      return 1;
    }
    pdVar9 = debug_make_reference_type(minfo->dhandle,*ptype);
    *ptype = pdVar9;
    return 1;
  case 'T':
    *pp = pcVar15 + 1;
    bVar6 = stab_demangle_get_count(pp,&i);
    if (bVar6 != 0) {
      if (i < minfo->typestring_count) {
        p = minfo->typestrings[(ulong)_i & 0xffffffff].typestring;
        iVar5 = stab_demangle_type(minfo,&p,ptype);
        goto joined_r0x0011192e;
      }
    }
  }
switchD_00111d06_caseD_1:
  stab_bad_demangle(pcVar15);
  return 0;
switchD_00111d06_caseD_30:
  bVar6 = stab_demangle_class((stab_demangle_info *)pp,&p,pstart);
  if (bVar6 == 0) {
    return 0;
  }
  if (ptype == (debug_type_conflict *)0x0) {
    return 1;
  }
  pcVar15 = savestring(p,(int)*pp - (int)p);
  pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);
  *ptype = pdVar9;
  free(pcVar15);
  if (*ptype == (debug_type_conflict)0x0) {
    pdVar10 = stab_find_tagged_type
                        (minfo->dhandle,(stab_handle *)&minfo->info->tags,p,(int)*pp - (int)p,
                         DEBUG_KIND_ILLEGAL);
    *ptype = pdVar10;
joined_r0x00111f61:
    if (pdVar10 == (debug_type)0x0) {
      return 0;
    }
  }
  goto LAB_00111df8;
code_r0x00111cf8:
  bVar6 = (bfd_boolean)pstart;
  switch(cVar1) {
  case '\0':
  case '_':
    stab_bad_demangle(pcVar15);
    goto LAB_00111df8;
  default:
    goto switchD_00111d06_caseD_1;
  case '0':
  case '1':
  case '2':
  case '3':
  case '4':
  case '5':
  case '6':
  case '7':
  case '8':
  case '9':
    goto switchD_00111d06_caseD_30;
  case 'G':
    *pp = pcVar11 + 1;
    pstart = (char **)(ulong)(byte)pcVar11[1];
    if ((_sch_istable[(long)pstart * 2] & 4) == 0) goto switchD_00111d06_caseD_1;
    goto switchD_00111d06_caseD_30;
  case 'b':
    if (ptype != (debug_type_conflict *)0x0) {
      pdVar9 = debug_find_named_type(minfo->dhandle,"bool");
      *ptype = pdVar9;
      if (pdVar9 == (debug_type_conflict)0x0) {
        pdVar9 = debug_make_bool_type(minfo->dhandle,4);
        *ptype = pdVar9;
      }
LAB_00111e80:
      pcVar11 = *pp;
    }
    break;
  case 'c':
    if (ptype != (debug_type_conflict *)0x0) {
      pcVar15 = "unsigned char";
      if ((bVar6 == 0) && (pcVar15 = "signed char", !bVar3)) {
        pcVar15 = "char";
      }
      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);
      *ptype = pdVar9;
      if (pdVar9 == (debug_type_conflict)0x0) {
        pdVar9 = debug_make_int_type(minfo->dhandle,1,bVar6);
        *ptype = pdVar9;
      }
      goto LAB_00111e80;
    }
    break;
  case 'd':
    if (ptype != (debug_type_conflict *)0x0) {
      pcVar15 = "double";
LAB_00111fc0:
      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);
      *ptype = pdVar9;
      if (pdVar9 == (debug_type_conflict)0x0) {
        pdVar9 = debug_make_float_type(minfo->dhandle,8);
        *ptype = pdVar9;
      }
      goto LAB_00111e80;
    }
    break;
  case 'f':
    if (ptype != (debug_type_conflict *)0x0) {
      pdVar9 = debug_find_named_type(minfo->dhandle,"float");
      *ptype = pdVar9;
      if (pdVar9 == (debug_type_conflict)0x0) {
        pdVar9 = debug_make_float_type(minfo->dhandle,4);
        *ptype = pdVar9;
      }
      goto LAB_00111e80;
    }
    break;
  case 'i':
    if (ptype != (debug_type_conflict *)0x0) {
      pcVar15 = "unsigned int";
      pcVar11 = "int";
LAB_0011200d:
      if (bVar6 == 0) {
        pcVar15 = pcVar11;
      }
      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);
      *ptype = pdVar9;
      if (pdVar9 == (debug_type_conflict)0x0) {
        pdVar9 = debug_make_int_type(minfo->dhandle,4,bVar6);
        *ptype = pdVar9;
      }
      goto LAB_00111e80;
    }
    break;
  case 'l':
    if (ptype != (debug_type_conflict *)0x0) {
      pcVar15 = "long unsigned int";
      pcVar11 = "long int";
      goto LAB_0011200d;
    }
    break;
  case 'r':
    pcVar15 = "long double";
    if (ptype != (debug_type_conflict *)0x0) goto LAB_00111fc0;
    break;
  case 's':
    if (ptype != (debug_type_conflict *)0x0) {
      pcVar15 = "short unsigned int";
      if (bVar6 == 0) {
        pcVar15 = "short int";
      }
      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);
      *ptype = pdVar9;
      if (pdVar9 == (debug_type_conflict)0x0) {
LAB_00111eb3:
        pdVar9 = debug_make_int_type(minfo->dhandle,2,bVar6);
        *ptype = pdVar9;
      }
      goto LAB_00111e80;
    }
    break;
  case 't':
    if (ptype == (debug_type_conflict *)0x0) {
      iVar5 = stab_demangle_template(minfo,pp,(char **)0x0);
joined_r0x0011192e:
      if (iVar5 != 0) {
        return 1;
      }
      return 0;
    }
    bVar6 = stab_demangle_template(minfo,pp,&p);
    pcVar15 = p;
    if (bVar6 == 0) {
      return 0;
    }
    sVar8 = strlen(p);
    pdVar10 = stab_find_tagged_type
                        (minfo->dhandle,(stab_handle *)&minfo->info->tags,pcVar15,(int)sVar8,
                         DEBUG_KIND_CLASS);
    *ptype = pdVar10;
    free(p);
    pdVar10 = *ptype;
    goto joined_r0x00111f61;
  case 'v':
    if (ptype != (debug_type_conflict *)0x0) {
      pdVar9 = debug_find_named_type(minfo->dhandle,"void");
      *ptype = pdVar9;
      if (pdVar9 == (debug_type_conflict)0x0) {
        pdVar9 = debug_make_void_type(minfo->dhandle);
        *ptype = pdVar9;
      }
      goto LAB_00111e80;
    }
    break;
  case 'w':
    if (ptype != (debug_type_conflict *)0x0) {
      pdVar9 = debug_find_named_type(minfo->dhandle,"__wchar_t");
      *ptype = pdVar9;
      if (pdVar9 == (debug_type_conflict)0x0) {
        bVar6 = 1;
        goto LAB_00111eb3;
      }
      goto LAB_00111e80;
    }
    break;
  case 'x':
    if (ptype != (debug_type_conflict *)0x0) {
      pcVar15 = "long long unsigned int";
      if (bVar6 == 0) {
        pcVar15 = "long long int";
      }
      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);
      *ptype = pdVar9;
      if (pdVar9 == (debug_type_conflict)0x0) {
        pdVar9 = debug_make_int_type(minfo->dhandle,8,bVar6);
        *ptype = pdVar9;
      }
      goto LAB_00111e80;
    }
  }
  *pp = pcVar11 + 1;
LAB_00111df8:
  if (ptype != (debug_type_conflict *)0x0) {
    if (bVar2) {
      pdVar9 = debug_make_const_type(minfo->dhandle,*ptype);
      *ptype = pdVar9;
    }
    if (iVar5 != 0) {
      pdVar9 = debug_make_volatile_type(minfo->dhandle,*ptype);
      *ptype = pdVar9;
      return iVar5;
    }
  }
  return 1;
}



/* WARNING: Type propagation algorithm not settling */

bool FUN_001118a0(undefined8 *param_1,long *param_2,long *param_3)

{
  char cVar1;
  bool bVar2;
  bool bVar3;
  byte bVar4;
  int iVar5;
  ulong uVar6;
  size_t sVar7;
  long lVar8;
  long lVar9;
  void *__ptr;
  char *pcVar10;
  byte *pbVar11;
  byte *pbVar12;
  undefined4 *puVar13;
  char **ppcVar14;
  ulong *puVar15;
  char *pcVar16;
  bool bVar17;
  uint uVar18;
  undefined4 local_4c;
  ulong local_48;
  char *local_40 [2];
  
  pcVar16 = (char *)*param_2;
  cVar1 = *pcVar16;
  switch(cVar1) {
  case 'A':
    pbVar12 = (byte *)(pcVar16 + 1);
    *param_2 = (long)pbVar12;
    bVar4 = pcVar16[1];
    if ((bVar4 == 0) || (bVar4 == 0x5f)) {
      lVar8 = 0;
LAB_00111d10:
      if (bVar4 == 0x5f) {
        *param_2 = (long)(pbVar12 + 1);
        iVar5 = FUN_001118a0(param_1,param_2,param_3);
        if (iVar5 == 0) {
          return false;
        }
        if (param_3 == (long *)0x0) {
          return true;
        }
        lVar9 = FUN_0010fe00(*param_1,"int");
        if (lVar9 == 0) {
          lVar9 = FUN_0010f4a0(*param_1,4,0);
        }
        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);
        *param_3 = lVar8;
        return true;
      }
    }
    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {
      pbVar12 = (byte *)(pcVar16 + 2);
      lVar8 = 0;
      do {
        *param_2 = (long)pbVar12;
        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;
        bVar4 = *pbVar12;
        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;
        pbVar12 = pbVar12 + 1;
      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);
    }
    break;
  default:
    bVar3 = false;
    iVar5 = 0;
    bVar17 = false;
    bVar2 = false;
    pcVar10 = pcVar16;
    do {
      if (cVar1 == 'S') {
        bVar3 = true;
        *param_2 = (long)(pcVar10 + 1);
      }
      else if (cVar1 < 'T') {
        if (cVar1 != 'C') goto code_r0x00111cf8;
        bVar2 = true;
        *param_2 = (long)(pcVar10 + 1);
      }
      else if (cVar1 == 'U') {
        iVar5 = 1;
        *param_2 = (long)(pcVar10 + 1);
      }
      else {
        if (cVar1 != 'V') goto code_r0x00111cf8;
        bVar17 = true;
        *param_2 = (long)(pcVar10 + 1);
      }
      cVar1 = pcVar10[1];
      pcVar10 = (char *)*param_2;
    } while( true );
  case 'C':
    *param_2 = (long)(pcVar16 + 1);
    iVar5 = FUN_001118a0(param_1,param_2,param_3);
    if (iVar5 == 0) {
      return false;
    }
    if (param_3 == (long *)0x0) {
      return true;
    }
    lVar8 = FUN_0010f8f0(*param_1,*param_3);
    *param_3 = lVar8;
    return true;
  case 'F':
    puVar15 = (ulong *)0x0;
    ppcVar14 = (char **)0x0;
    *param_2 = (long)(pcVar16 + 1);
    if (param_3 != (long *)0x0) {
      puVar15 = &local_48;
      ppcVar14 = local_40;
    }
    iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar15);
    if (iVar5 == 0) {
      return false;
    }
    if (*(char *)*param_2 == '_') {
      *param_2 = (long)((char *)*param_2 + 1);
      iVar5 = FUN_001118a0(param_1,param_2,param_3);
      if (iVar5 == 0) {
        return false;
      }
      if (param_3 == (long *)0x0) {
        return true;
      }
      lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);
      *param_3 = lVar8;
      return true;
    }
    break;
  case 'G':
    *param_2 = (long)(pcVar16 + 1);
    iVar5 = FUN_001118a0(param_1,param_2,param_3);
    return iVar5 != 0;
  case 'M':
  case 'O':
    local_48 = 0;
    cVar1 = *pcVar16;
    *param_2 = (long)(pcVar16 + 1);
    local_40[0] = (char *)0x0;
    local_4c = 0;
    bVar4 = pcVar16[1];
    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {
      if (bVar4 != 0x51) break;
      puVar15 = &local_48;
      if (param_3 == (long *)0x0) {
        puVar15 = (ulong *)0x0;
      }
      iVar5 = FUN_00112870(param_1,param_2,puVar15);
      if (iVar5 == 0) {
        return false;
      }
LAB_00111b38:
      pbVar12 = (byte *)*param_2;
    }
    else {
      uVar18 = 0;
      uVar6 = (ulong)bVar4;
      pbVar12 = (byte *)(pcVar16 + 2);
      do {
        pbVar11 = pbVar12;
        *param_2 = (long)pbVar11;
        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;
        uVar6 = (ulong)*pbVar11;
        pbVar12 = pbVar11 + 1;
      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);
      sVar7 = strlen((char *)pbVar11);
      if (sVar7 < uVar18) break;
      pbVar12 = pbVar11 + uVar18;
      *param_2 = (long)pbVar12;
      if (param_3 != (long *)0x0) {
        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);
        if (local_48 == 0) {
          return false;
        }
        goto LAB_00111b38;
      }
    }
    bVar4 = *pbVar12;
    if (cVar1 == 'M') {
      if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {
        pbVar11 = pbVar12 + 1;
        *param_2 = (long)pbVar11;
        bVar4 = pbVar12[1];
      }
      if (bVar4 != 0x46) break;
      *param_2 = (long)(pbVar11 + 1);
      if (param_3 == (long *)0x0) {
        puVar13 = (undefined4 *)0x0;
        ppcVar14 = (char **)0x0;
      }
      else {
        puVar13 = &local_4c;
        ppcVar14 = local_40;
      }
      iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);
      if (iVar5 == 0) {
        return false;
      }
      pbVar12 = (byte *)*param_2;
      bVar4 = *pbVar12;
    }
    if (bVar4 == 0x5f) {
      *param_2 = (long)(pbVar12 + 1);
      iVar5 = FUN_001118a0(param_1,param_2,param_3);
      if (iVar5 == 0) {
        return false;
      }
      if (param_3 == (long *)0x0) {
        return true;
      }
      if (cVar1 != 'M') {
        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);
        *param_3 = lVar8;
        return true;
      }
      lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);
      *param_3 = lVar8;
      return true;
    }
    break;
  case 'P':
  case 'p':
    *param_2 = (long)(pcVar16 + 1);
    iVar5 = FUN_001118a0(param_1,param_2,param_3);
    if (iVar5 == 0) {
      return false;
    }
    if (param_3 == (long *)0x0) {
      return true;
    }
    lVar8 = FUN_0010f5f0(*param_1,*param_3);
    *param_3 = lVar8;
    return true;
  case 'Q':
    iVar5 = FUN_00112870(param_1,param_2,param_3);
    return iVar5 != 0;
  case 'R':
    *param_2 = (long)(pcVar16 + 1);
    iVar5 = FUN_001118a0(param_1,param_2,param_3);
    if (iVar5 == 0) {
      return false;
    }
    if (param_3 == (long *)0x0) {
      return true;
    }
    lVar8 = FUN_0010f6a0(*param_1,*param_3);
    *param_3 = lVar8;
    return true;
  case 'T':
    *param_2 = (long)(pcVar16 + 1);
    iVar5 = FUN_001103c0(param_2,&local_48);
    if (iVar5 != 0) {
      if ((uint)local_48 < *(uint *)(param_1 + 5)) {
        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);
        iVar5 = FUN_001118a0(param_1,local_40,param_3);
        goto joined_r0x0011192e;
      }
    }
  }
switchD_00111d06_caseD_1:
  FUN_00110480(pcVar16);
  return false;
switchD_00111d06_caseD_30:
  iVar5 = FUN_00110de0(param_2,local_40);
  if (iVar5 == 0) {
    return false;
  }
  if (param_3 == (long *)0x0) {
    return true;
  }
  __ptr = (void *)FUN_00110540(local_40[0],*param_2 - (long)local_40[0]);
  lVar8 = FUN_0010fe00(*param_1,__ptr);
  *param_3 = lVar8;
  free(__ptr);
  if (*param_3 == 0) {
    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0);
    *param_3 = lVar8;
joined_r0x00111f61:
    if (lVar8 == 0) {
      return false;
    }
  }
  goto LAB_00111df8;
code_r0x00111cf8:
  switch(cVar1) {
  case '\0':
  case '_':
    FUN_00110480(pcVar16);
    goto LAB_00111df8;
  default:
    goto switchD_00111d06_caseD_1;
  case '0':
  case '1':
  case '2':
  case '3':
  case '4':
  case '5':
  case '6':
  case '7':
  case '8':
  case '9':
    goto switchD_00111d06_caseD_30;
  case 'G':
    *param_2 = (long)(pcVar10 + 1);
    if ((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0) goto switchD_00111d06_caseD_1;
    goto switchD_00111d06_caseD_30;
  case 'b':
    if (param_3 != (long *)0x0) {
      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);
      *param_3 = lVar8;
      if (lVar8 == 0) {
        lVar8 = FUN_0010f4d0(*param_1,4);
        *param_3 = lVar8;
      }
LAB_00111e80:
      pcVar10 = (char *)*param_2;
    }
    break;
  case 'c':
    if (param_3 != (long *)0x0) {
      pcVar16 = "unsigned char";
      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {
        pcVar16 = "char";
      }
      lVar8 = FUN_0010fe00(*param_1,pcVar16);
      *param_3 = lVar8;
      if (lVar8 == 0) {
        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);
        *param_3 = lVar8;
      }
      goto LAB_00111e80;
    }
    break;
  case 'd':
    if (param_3 != (long *)0x0) {
      pcVar16 = "double";
LAB_00111fc0:
      lVar8 = FUN_0010fe00(*param_1,pcVar16);
      *param_3 = lVar8;
      if (lVar8 == 0) {
        lVar8 = FUN_0010f4c0(*param_1,8);
        *param_3 = lVar8;
      }
      goto LAB_00111e80;
    }
    break;
  case 'f':
    if (param_3 != (long *)0x0) {
      lVar8 = FUN_0010fe00(*param_1,"float");
      *param_3 = lVar8;
      if (lVar8 == 0) {
        lVar8 = FUN_0010f4c0(*param_1,4);
        *param_3 = lVar8;
      }
      goto LAB_00111e80;
    }
    break;
  case 'i':
    if (param_3 != (long *)0x0) {
      pcVar16 = "unsigned int";
      pcVar10 = "int";
LAB_0011200d:
      if (iVar5 == 0) {
        pcVar16 = pcVar10;
      }
      lVar8 = FUN_0010fe00(*param_1,pcVar16);
      *param_3 = lVar8;
      if (lVar8 == 0) {
        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);
        *param_3 = lVar8;
      }
      goto LAB_00111e80;
    }
    break;
  case 'l':
    if (param_3 != (long *)0x0) {
      pcVar16 = "long unsigned int";
      pcVar10 = "long int";
      goto LAB_0011200d;
    }
    break;
  case 'r':
    pcVar16 = "long double";
    if (param_3 != (long *)0x0) goto LAB_00111fc0;
    break;
  case 's':
    if (param_3 != (long *)0x0) {
      pcVar16 = "short unsigned int";
      if (iVar5 == 0) {
        pcVar16 = "short int";
      }
      lVar8 = FUN_0010fe00(*param_1,pcVar16);
      *param_3 = lVar8;
      if (lVar8 == 0) {
LAB_00111eb3:
        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);
        *param_3 = lVar8;
      }
      goto LAB_00111e80;
    }
    break;
  case 't':
    if (param_3 == (long *)0x0) {
      iVar5 = FUN_001122d0(param_1,param_2,0);
joined_r0x0011192e:
      if (iVar5 != 0) {
        return true;
      }
      return false;
    }
    iVar5 = FUN_001122d0(param_1,param_2,local_40);
    pcVar16 = local_40[0];
    if (iVar5 == 0) {
      return false;
    }
    sVar7 = strlen(local_40[0]);
    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9);
    *param_3 = lVar8;
    free(local_40[0]);
    lVar8 = *param_3;
    goto joined_r0x00111f61;
  case 'v':
    if (param_3 != (long *)0x0) {
      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);
      *param_3 = lVar8;
      if (lVar8 == 0) {
        lVar8 = FUN_0010f490(*param_1);
        *param_3 = lVar8;
      }
      goto LAB_00111e80;
    }
    break;
  case 'w':
    if (param_3 != (long *)0x0) {
      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");
      *param_3 = lVar8;
      if (lVar8 == 0) {
        iVar5 = 1;
        goto LAB_00111eb3;
      }
      goto LAB_00111e80;
    }
    break;
  case 'x':
    if (param_3 != (long *)0x0) {
      pcVar16 = "long long unsigned int";
      if (iVar5 == 0) {
        pcVar16 = "long long int";
      }
      lVar8 = FUN_0010fe00(*param_1,pcVar16);
      *param_3 = lVar8;
      if (lVar8 == 0) {
        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);
        *param_3 = lVar8;
      }
      goto LAB_00111e80;
    }
  }
  *param_2 = (long)(pcVar10 + 1);
LAB_00111df8:
  if (param_3 != (long *)0x0) {
    if (bVar2) {
      lVar8 = FUN_0010f8f0(*param_1,*param_3);
      *param_3 = lVar8;
    }
    if (bVar17 != false) {
      lVar8 = FUN_0010f920(*param_1,*param_3);
      *param_3 = lVar8;
      return bVar17;
    }
  }
  return true;
}


PUSH R15
PUSH R14
PUSH R13
PUSH R12
MOV R12,RDI
PUSH RBP
MOV RBP,RDX
PUSH RBX
MOV RBX,RSI
SUB RSP,0x38
MOV R13,qword ptr [RSI]
MOVZX EAX,byte ptr [R13]
LEA EDX,[RAX + -0x41]
CMP DL,0x2f
JA 0x00111c80
LEA RCX,[0x123658]
MOVZX EDX,DL
MOVSXD RDX,dword ptr [RCX + RDX*0x4]
ADD RDX,RCX
JMP RDX
LEA RAX,[R13 + 0x1]
MOV RDI,RBX
MOV qword ptr [RSI],RAX
LEA RSI,[RSP + 0x20]
CALL 0x001103c0
TEST EAX,EAX
JZ 0x001119c0
MOV EAX,dword ptr [RSP + 0x20]
CMP dword ptr [R12 + 0x28],EAX
JBE 0x001119c0
SHL RAX,0x4
ADD RAX,qword ptr [R12 + 0x20]
MOV RDX,RBP
MOV RDI,R12
MOV RAX,qword ptr [RAX]
LEA RSI,[RSP + 0x28]
MOV qword ptr [RSP + 0x28],RAX
CALL 0x001118a0
TEST EAX,EAX
JZ 0x001119c8
NOP dword ptr [RAX]
MOV R14D,0x1
JMP 0x00111a60
LEA RDX,[R13 + 0x1]
MOV qword ptr [RSI],RDX
MOVZX EAX,byte ptr [R13 + 0x1]
TEST AL,AL
JZ 0x00111d08
CMP AL,0x5f
JZ 0x00111d08
MOVSX EDX,AL
LEA RSI,[0x12ab80]
MOVZX EAX,AL
TEST byte ptr [RSI + RAX*0x2],0x4
JZ 0x001119c0
LEA RCX,[R13 + 0x2]
XOR R14D,R14D
NOP
SUB EDX,0x30
LEA RAX,[R14 + R14*0x4]
MOV qword ptr [RBX],RCX
MOVSXD RDX,EDX
LEA R14,[RDX + RAX*0x2]
MOVZX EAX,byte ptr [RCX]
MOV RDX,RCX
TEST AL,AL
JZ 0x00111d10
CMP AL,0x5f
JZ 0x00111d10
MOVSX EDX,AL
MOVZX EAX,AL
ADD RCX,0x1
TEST byte ptr [RSI + RAX*0x2],0x4
JNZ 0x00111980
NOP word ptr [RAX + RAX*0x1]
MOV RDI,R13
CALL 0x00110480
XOR R14D,R14D
JMP 0x00111a60
LEA RAX,[R13 + 0x1]
XOR ECX,ECX
XOR EDX,EDX
MOV qword ptr [RSI],RAX
TEST RBP,RBP
JZ 0x001119ea
LEA RCX,[RSP + 0x20]
LEA RDX,[RSP + 0x28]
MOV RSI,RBX
MOV RDI,R12
CALL 0x00112ce0
TEST EAX,EAX
JZ 0x001119c8
MOV RAX,qword ptr [RBX]
CMP byte ptr [RAX],0x5f
JNZ 0x001119c0
ADD RAX,0x1
MOV RDX,RBP
MOV RSI,RBX
MOV RDI,R12
MOV qword ptr [RBX],RAX
CALL 0x001118a0
TEST EAX,EAX
JZ 0x001119c8
TEST RBP,RBP
JZ 0x00111938
MOV ECX,dword ptr [RSP + 0x20]
MOV RDX,qword ptr [RSP + 0x28]
MOV RSI,qword ptr [RBP]
MOV RDI,qword ptr [R12]
CALL 0x0010f630
MOV qword ptr [RBP],RAX
JMP 0x00111938
ADD R13,0x1
MOV RDX,RBP
XOR R14D,R14D
MOV qword ptr [RSI],R13
CALL 0x001118a0
TEST EAX,EAX
SETNZ R14B
ADD RSP,0x38
MOV EAX,R14D
POP RBX
POP RBP
POP R12
POP R13
POP R14
POP R15
RET
MOV qword ptr [RSP + 0x20],0x0
LEA RAX,[R13 + 0x1]
MOVZX R14D,byte ptr [R13]
MOV qword ptr [RSI],RAX
LEA RSI,[0x12ab80]
MOV qword ptr [RSP + 0x28],0x0
MOV dword ptr [RSP + 0x1c],0x0
MOVZX EDX,byte ptr [R13 + 0x1]
MOV RAX,RDX
TEST byte ptr [RSI + RDX*0x2],0x4
JZ 0x00112168
LEA RDI,[R13 + 0x2]
XOR R15D,R15D
NOP
MOV qword ptr [RBX],RDI
MOVZX ECX,byte ptr [RDI]
LEA EDX,[R15 + R15*0x4]
MOVSX EAX,AL
LEA R15D,[RAX + RDX*0x2 + -0x30]
MOV RDX,RDI
ADD RDI,0x1
MOV RAX,RCX
TEST byte ptr [RSI + RCX*0x2],0x4
JNZ 0x00111ac0
MOV RDI,RDX
MOV qword ptr [RSP + 0x8],RDX
CALL 0x00104260
MOV ECX,R15D
CMP RAX,RCX
JC 0x001119c0
MOV RDX,qword ptr [RSP + 0x8]
LEA RAX,[RDX + RCX*0x1]
MOV qword ptr [RBX],RAX
TEST RBP,RBP
JZ 0x00111b3b
MOV RAX,qword ptr [R12 + 0x8]
MOV RDI,qword ptr [R12]
MOV R8D,0x9
MOV ECX,R15D
LEA RSI,[RAX + 0x1a0]
CALL 0x00110e80
MOV qword ptr [RSP + 0x20],RAX
TEST RAX,RAX
JZ 0x001119c8
MOV RAX,qword ptr [RBX]
MOVZX EDX,byte ptr [RAX]
CMP R14B,0x4d
JZ 0x001121c0
CMP DL,0x5f
JNZ 0x001119c0
ADD RAX,0x1
MOV RDX,RBP
MOV RSI,RBX
MOV RDI,R12
MOV qword ptr [RBX],RAX
CALL 0x001118a0
TEST EAX,EAX
JZ 0x001119c8
TEST RBP,RBP
JZ 0x00111938
MOV RSI,qword ptr [RSP + 0x20]
MOV RAX,qword ptr [RBP]
MOV RDI,qword ptr [R12]
CMP R14B,0x4d
JZ 0x00112226
MOV RDX,RAX
CALL 0x0010f820
MOV qword ptr [RBP],RAX
JMP 0x00111938
ADD R13,0x1
MOV RDX,RBP
MOV qword ptr [RSI],R13
CALL 0x001118a0
TEST EAX,EAX
JZ 0x001119c8
TEST RBP,RBP
JZ 0x00111938
MOV RSI,qword ptr [RBP]
MOV RDI,qword ptr [R12]
CALL 0x0010f5f0
MOV qword ptr [RBP],RAX
JMP 0x00111938
ADD R13,0x1
MOV RDX,RBP
MOV qword ptr [RSI],R13
CALL 0x001118a0
TEST EAX,EAX
JZ 0x001119c8
TEST RBP,RBP
JZ 0x00111938
MOV RSI,qword ptr [RBP]
MOV RDI,qword ptr [R12]
CALL 0x0010f8f0
MOV qword ptr [RBP],RAX
JMP 0x00111938
MOV RDX,RBP
XOR R14D,R14D
CALL 0x00112870
TEST EAX,EAX
SETNZ R14B
JMP 0x00111a60
ADD R13,0x1
MOV RDX,RBP
MOV qword ptr [RSI],R13
CALL 0x001118a0
TEST EAX,EAX
JZ 0x001119c8
TEST RBP,RBP
JZ 0x00111938
MOV RSI,qword ptr [RBP]
MOV RDI,qword ptr [R12]
MOV R14D,0x1
CALL 0x0010f6a0
MOV qword ptr [RBP],RAX
JMP 0x00111a60
MOV RCX,R13
XOR EDI,EDI
XOR EDX,EDX
XOR R14D,R14D
XOR R15D,R15D
JMP 0x00111ca8
CMP AL,0x56
JNZ 0x00111cf0
LEA RAX,[RCX + 0x1]
MOV R14D,0x1
MOV qword ptr [RBX],RAX
MOVZX EAX,byte ptr [RCX + 0x1]
MOV RCX,qword ptr [RBX]
CMP AL,0x53
JZ 0x00111cd8
JLE 0x00111cc0
CMP AL,0x55
JNZ 0x00111c90
LEA RAX,[RCX + 0x1]
MOV EDX,0x1
MOV qword ptr [RBX],RAX
JMP 0x00111ca1
CMP AL,0x43
JNZ 0x00111cf0
LEA RAX,[RCX + 0x1]
MOV R15D,0x1
MOV qword ptr [RBX],RAX
JMP 0x00111ca1
LEA RAX,[RCX + 0x1]
MOV EDI,0x1
MOV qword ptr [RBX],RAX
JMP 0x00111ca1
CMP AL,0x78
JA 0x001119c0
LEA RSI,[0x123718]
MOVSXD RAX,dword ptr [RSI + RAX*0x4]
ADD RAX,RSI
JMP RAX
XOR R14D,R14D
NOP dword ptr [RAX + RAX*0x1]
CMP AL,0x5f
JNZ 0x001119c0
ADD RDX,0x1
MOV RSI,RBX
MOV RDI,R12
MOV qword ptr [RBX],RDX
MOV RDX,RBP
CALL 0x001118a0
TEST EAX,EAX
JZ 0x001119c8
TEST RBP,RBP
JZ 0x00111938
MOV RDI,qword ptr [R12]
LEA RSI,[0x1230d2]
CALL 0x0010fe00
TEST RAX,RAX
JZ 0x00112260
MOV RSI,qword ptr [RBP]
MOV RDI,qword ptr [R12]
MOV R8,R14
XOR R9D,R9D
XOR ECX,ECX
MOV RDX,RAX
MOV R14D,0x1
CALL 0x0010f740
MOV qword ptr [RBP],RAX
JMP 0x00111a60
LEA RAX,[RCX + 0x1]
MOV qword ptr [RBX],RAX
MOVZX EDX,byte ptr [RCX + 0x1]
LEA RAX,[0x12ab80]
TEST byte ptr [RAX + RDX*0x2],0x4
JZ 0x001119c0
NOP dword ptr [RAX]
LEA RSI,[RSP + 0x28]
MOV RDI,RBX
CALL 0x00110de0
TEST EAX,EAX
JZ 0x001119c8
TEST RBP,RBP
JZ 0x00111938
MOV RDI,qword ptr [RSP + 0x28]
MOV RSI,qword ptr [RBX]
SUB RSI,RDI
CALL 0x00110540
MOV RDI,qword ptr [R12]
MOV RSI,RAX
MOV R13,RAX
CALL 0x0010fe00
MOV RDI,R13
MOV qword ptr [RBP],RAX
CALL 0x00104920
CMP qword ptr [RBP],0x0
JZ 0x0011228c
NOP dword ptr [RAX]
TEST RBP,RBP
JZ 0x00111938
TEST R15D,R15D
JNZ 0x001121a0
TEST R14D,R14D
JZ 0x00111938
MOV RSI,qword ptr [RBP]
MOV RDI,qword ptr [R12]
CALL 0x0010f920
MOV qword ptr [RBP],RAX
JMP 0x00111a60
MOV RDI,R13
CALL 0x00110480
JMP 0x00111df8
TEST RBP,RBP
JZ 0x00111e83
TEST EDX,EDX
LEA RAX,[0x1230d6]
MOV RDI,qword ptr [R12]
MOV dword ptr [RSP + 0x8],EDX
LEA RSI,[0x1230bf]
CMOVZ RSI,RAX
CALL 0x0010fe00
MOV EDX,dword ptr [RSP + 0x8]
TEST RAX,RAX
MOV qword ptr [RBP],RAX
JZ 0x00112275
NOP word ptr [RAX + RAX*0x1]
MOV RCX,qword ptr [RBX]
ADD RCX,0x1
MOV qword ptr [RBX],RCX
JMP 0x00111df8
TEST RBP,RBP
JZ 0x00111e83
MOV RDI,qword ptr [R12]
LEA RSI,[0x123101]
CALL 0x0010fe00
MOV qword ptr [RBP],RAX
TEST RAX,RAX
JNZ 0x00111e80
MOV EDX,0x1
MOV RDI,qword ptr [R12]
MOV ESI,0x2
CALL 0x0010f4a0
MOV qword ptr [RBP],RAX
JMP 0x00111e80
TEST RBP,RBP
JZ 0x00111e83
MOV RDI,qword ptr [R12]
LEA RSI,[0x122fa3]
CALL 0x0010fe00
MOV qword ptr [RBP],RAX
TEST RAX,RAX
JNZ 0x00111e80
MOV RDI,qword ptr [R12]
CALL 0x0010f490
MOV qword ptr [RBP],RAX
JMP 0x00111e80
TEST RBP,RBP
JZ 0x00112244
LEA RDX,[RSP + 0x28]
MOV RSI,RBX
MOV RDI,R12
CALL 0x001122d0
TEST EAX,EAX
JZ 0x001119c8
MOV RBX,qword ptr [RSP + 0x28]
MOV RDI,RBX
CALL 0x00104260
MOV RDI,qword ptr [R12 + 0x8]
MOV R8D,0x9
MOV RDX,RBX
MOV ECX,EAX
LEA RSI,[RDI + 0x1a0]
MOV RDI,qword ptr [R12]
CALL 0x00110e80
MOV RDI,qword ptr [RSP + 0x28]
MOV qword ptr [RBP],RAX
CALL 0x00104920
CMP qword ptr [RBP],0x0
JNZ 0x00111df8
JMP 0x001119c8
TEST RBP,RBP
JZ 0x00111e83
TEST EDX,EDX
LEA RAX,[0x1230f7]
MOV RDI,qword ptr [R12]
MOV dword ptr [RSP + 0x8],EDX
LEA RSI,[0x1230e4]
CMOVZ RSI,RAX
CALL 0x0010fe00
MOV EDX,dword ptr [RSP + 0x8]
TEST RAX,RAX
MOV qword ptr [RBP],RAX
JNZ 0x00111e80
JMP 0x00111eb3
LEA RSI,[0x122fae]
TEST RBP,RBP
JZ 0x00111e83
MOV RDI,qword ptr [R12]
CALL 0x0010fe00
MOV qword ptr [RBP],RAX
TEST RAX,RAX
JNZ 0x00111e80
MOV RDI,qword ptr [R12]
MOV ESI,0x8
CALL 0x0010f4c0
MOV qword ptr [RBP],RAX
JMP 0x00111e80
TEST RBP,RBP
JZ 0x00111e83
MOV dword ptr [RSP + 0x8],EDX
TEST EDX,EDX
LEA RSI,[0x1230c4]
LEA RAX,[0x1230db]
CMOVZ RSI,RAX
MOV RDI,qword ptr [R12]
CALL 0x0010fe00
MOV EDX,dword ptr [RSP + 0x8]
TEST RAX,RAX
MOV qword ptr [RBP],RAX
JNZ 0x00111e80
MOV RDI,qword ptr [R12]
MOV ESI,0x4
CALL 0x0010f4a0
MOV qword ptr [RBP],RAX
JMP 0x00111e80
TEST RBP,RBP
JZ 0x00111e83
TEST EDX,EDX
MOV dword ptr [RSP + 0x8],EDX
LEA RSI,[0x1230c9]
LEA RAX,[0x1230d2]
JMP 0x0011200d
TEST RBP,RBP
JZ 0x00111e83
MOV RDI,qword ptr [R12]
LEA RSI,[0x122fa8]
CALL 0x0010fe00
MOV qword ptr [RBP],RAX
TEST RAX,RAX
JNZ 0x00111e80
MOV RDI,qword ptr [R12]
MOV ESI,0x4
CALL 0x0010f4c0
MOV qword ptr [RBP],RAX
JMP 0x00111e80
TEST RBP,RBP
JZ 0x00111e83
LEA RSI,[0x122fb3]
JMP 0x00111fc0
TEST RBP,RBP
JZ 0x00111e83
LEA RSI,[0x122f6f]
TEST EDX,EDX
JNZ 0x001120f0
TEST EDI,EDI
LEA RSI,[0x122f71]
LEA RAX,[0x122f78]
CMOVZ RSI,RAX
MOV RDI,qword ptr [R12]
MOV dword ptr [RSP + 0x8],EDX
CALL 0x0010fe00
MOV EDX,dword ptr [RSP + 0x8]
TEST RAX,RAX
MOV qword ptr [RBP],RAX
JNZ 0x00111e80
MOV RDI,qword ptr [R12]
MOV ESI,0x1
CALL 0x0010f4a0
MOV qword ptr [RBP],RAX
JMP 0x00111e80
TEST RBP,RBP
JZ 0x00111e83
MOV RDI,qword ptr [R12]
LEA RSI,[0x12307b]
CALL 0x0010fe00
MOV qword ptr [RBP],RAX
TEST RAX,RAX
JNZ 0x00111e80
MOV RDI,qword ptr [R12]
MOV ESI,0x4
CALL 0x0010f4d0
MOV qword ptr [RBP],RAX
JMP 0x00111e80
CMP DL,0x51
JNZ 0x001119c0
TEST RBP,RBP
LEA RDX,[RSP + 0x20]
MOV EAX,0x0
MOV RSI,RBX
CMOVZ RDX,RAX
CALL 0x00112870
TEST EAX,EAX
JNZ 0x00111b38
JMP 0x001119c8
MOV RSI,qword ptr [RBP]
MOV RDI,qword ptr [R12]
CALL 0x0010f8f0
MOV qword ptr [RBP],RAX
JMP 0x00111e0a
CMP DL,0x43
JZ 0x00112210
CMP DL,0x56
JZ 0x00112210
CMP DL,0x46
JNZ 0x001119c0
ADD RAX,0x1
MOV qword ptr [RBX],RAX
TEST RBP,RBP
JZ 0x00112220
LEA RCX,[RSP + 0x1c]
LEA RDX,[RSP + 0x28]
MOV RSI,RBX
MOV RDI,R12
CALL 0x00112ce0
TEST EAX,EAX
JZ 0x001119c8
MOV RAX,qword ptr [RBX]
MOVZX EDX,byte ptr [RAX]
JMP 0x00111b48
LEA RCX,[RAX + 0x1]
MOV qword ptr [RBX],RCX
MOVZX EDX,byte ptr [RAX + 0x1]
MOV RAX,RCX
JMP 0x001121ca
XOR ECX,ECX
XOR EDX,EDX
JMP 0x001121e9
MOV R8D,dword ptr [RSP + 0x1c]
MOV RCX,qword ptr [RSP + 0x28]
MOV RDX,RSI
MOV RSI,RAX
CALL 0x0010f880
MOV qword ptr [RBP],RAX
JMP 0x00111938
XOR EDX,EDX
MOV RSI,RBX
MOV RDI,R12
CALL 0x001122d0
TEST EAX,EAX
JNZ 0x00111938
JMP 0x001119c8
MOV RDI,qword ptr [R12]
XOR EDX,EDX
MOV ESI,0x4
CALL 0x0010f4a0
JMP 0x00111d57
MOV RDI,qword ptr [R12]
MOV ESI,0x8
CALL 0x0010f4a0
MOV qword ptr [RBP],RAX
JMP 0x00111e80
MOV RDX,qword ptr [RSP + 0x28]
MOV RCX,qword ptr [RBX]
XOR R8D,R8D
MOV RAX,qword ptr [R12 + 0x8]
MOV RDI,qword ptr [R12]
SUB RCX,RDX
LEA RSI,[RAX + 0x1a0]
CALL 0x00110e80
MOV qword ptr [RBP],RAX
TEST RAX,RAX
JNZ 0x00111df8
JMP 0x001119c8
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nbool FUN_001118a0(undefined8 *param_1,long *param_2,long *param_3)\n\n{\n  char cVar1;\n  bool bVar2;\n  bool bVar3;\n  byte bVar4;\n  int iVar5;\n  ulong uVar6;\n  size_t sVar7;\n  long lVar8;\n  long lVar9;\n  void *__ptr;\n  char *pcVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  undefined4 *puVar13;\n  char **ppcVar14;\n  ulong *puVar15;\n  char *pcVar16;\n  bool bVar17;\n  uint uVar18;\n  undefined4 local_4c;\n  ulong local_48;\n  char *local_40 [2];\n  \n  pcVar16 = (char *)*param_2;\n  cVar1 = *pcVar16;\n  switch(cVar1) {\n  case 'A':\n    pbVar12 = (byte *)(pcVar16 + 1);\n    *param_2 = (long)pbVar12;\n    bVar4 = pcVar16[1];\n    if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      lVar8 = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }\n    break;\n  default:\n    bVar3 = false;\n    iVar5 = 0;\n    bVar17 = false;\n    bVar2 = false;\n    pcVar10 = pcVar16;\n    do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      cVar1 = pcVar10[1];\n      pcVar10 = (char *)*param_2;\n    } while( true );\n  case 'C':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f8f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'F':\n    puVar15 = (ulong *)0x0;\n    ppcVar14 = (char **)0x0;\n    *param_2 = (long)(pcVar16 + 1);\n    if (param_3 != (long *)0x0) {\n      puVar15 = &local_48;\n      ppcVar14 = local_40;\n    }\n    iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar15);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (*(char *)*param_2 == '_') {\n      *param_2 = (long)((char *)*param_2 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'G':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'M':\n  case 'O':\n    local_48 = 0;\n    cVar1 = *pcVar16;\n    *param_2 = (long)(pcVar16 + 1);\n    local_40[0] = (char *)0x0;\n    local_4c = 0;\n    bVar4 = pcVar16[1];\n    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      puVar15 = &local_48;\n      if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }\n      iVar5 = FUN_00112870(param_1,param_2,puVar15);\n      if (iVar5 == 0) {\n        return false;\n      }\nLAB_00111b38:\n      pbVar12 = (byte *)*param_2;\n    }\n    else {\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }\n    bVar4 = *pbVar12;\n    if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }\n      if (bVar4 != 0x46) break;\n      *param_2 = (long)(pbVar11 + 1);\n      if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }\n      iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);\n      if (iVar5 == 0) {\n        return false;\n      }\n      pbVar12 = (byte *)*param_2;\n      bVar4 = *pbVar12;\n    }\n    if (bVar4 == 0x5f) {\n      *param_2 = (long)(pbVar12 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }\n      lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'P':\n  case 'p':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f5f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'Q':\n    iVar5 = FUN_00112870(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'R':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f6a0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'T':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001103c0(param_2,&local_48);\n    if (iVar5 != 0) {\n      if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }\n    }\n  }\nswitchD_00111d06_caseD_1:\n  FUN_00110480(pcVar16);\n  return false;\nswitchD_00111d06_caseD_30:\n  iVar5 = FUN_00110de0(param_2,local_40);\n  if (iVar5 == 0) {\n    return false;\n  }\n  if (param_3 == (long *)0x0) {\n    return true;\n  }\n  __ptr = (void *)FUN_00110540(local_40[0],*param_2 - (long)local_40[0]);\n  lVar8 = FUN_0010fe00(*param_1,__ptr);\n  *param_3 = lVar8;\n  free(__ptr);\n  if (*param_3 == 0) {\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0);\n    *param_3 = lVar8;\njoined_r0x00111f61:\n    if (lVar8 == 0) {\n      return false;\n    }\n  }\n  goto LAB_00111df8;\ncode_r0x00111cf8:\n  switch(cVar1) {\n  case '\0':\n  case '_':\n    FUN_00110480(pcVar16);\n    goto LAB_00111df8;\n  default:\n    goto switchD_00111d06_caseD_1;\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    goto switchD_00111d06_caseD_30;\n  case 'G':\n    *param_2 = (long)(pcVar10 + 1);\n    if ((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;\n  case 'b':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }\n    break;\n  case 'c':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'd':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'f':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'i':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'l':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }\n    break;\n  case 'r':\n    pcVar16 = "long double";\n    if (param_3 != (long *)0x0) goto LAB_00111fc0;\n    break;\n  case 's':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 't':\n    if (param_3 == (long *)0x0) {\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }\n    iVar5 = FUN_001122d0(param_1,param_2,local_40);\n    pcVar16 = local_40[0];\n    if (iVar5 == 0) {\n      return false;\n    }\n    sVar7 = strlen(local_40[0]);\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9);\n    *param_3 = lVar8;\n    free(local_40[0]);\n    lVar8 = *param_3;\n    goto joined_r0x00111f61;\n  case 'v':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'w':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'x':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n  }\n  *param_2 = (long)(pcVar10 + 1);\nLAB_00111df8:\n  if (param_3 != (long *)0x0) {\n    if (bVar2) {\n      lVar8 = FUN_0010f8f0(*param_1,*param_3);\n      *param_3 = lVar8;\n    }\n    if (bVar17 != false) {\n      lVar8 = FUN_0010f920(*param_1,*param_3);\n      *param_3 = lVar8;\n      return bVar17;\n    }\n  }\n  return true;\n}\n\n" comment (function_definition "bool FUN_001118a0(undefined8 *param_1,long *param_2,long *param_3)\n\n{\n  char cVar1;\n  bool bVar2;\n  bool bVar3;\n  byte bVar4;\n  int iVar5;\n  ulong uVar6;\n  size_t sVar7;\n  long lVar8;\n  long lVar9;\n  void *__ptr;\n  char *pcVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  undefined4 *puVar13;\n  char **ppcVar14;\n  ulong *puVar15;\n  char *pcVar16;\n  bool bVar17;\n  uint uVar18;\n  undefined4 local_4c;\n  ulong local_48;\n  char *local_40 [2];\n  \n  pcVar16 = (char *)*param_2;\n  cVar1 = *pcVar16;\n  switch(cVar1) {\n  case 'A':\n    pbVar12 = (byte *)(pcVar16 + 1);\n    *param_2 = (long)pbVar12;\n    bVar4 = pcVar16[1];\n    if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      lVar8 = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }\n    break;\n  default:\n    bVar3 = false;\n    iVar5 = 0;\n    bVar17 = false;\n    bVar2 = false;\n    pcVar10 = pcVar16;\n    do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      cVar1 = pcVar10[1];\n      pcVar10 = (char *)*param_2;\n    } while( true );\n  case 'C':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f8f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'F':\n    puVar15 = (ulong *)0x0;\n    ppcVar14 = (char **)0x0;\n    *param_2 = (long)(pcVar16 + 1);\n    if (param_3 != (long *)0x0) {\n      puVar15 = &local_48;\n      ppcVar14 = local_40;\n    }\n    iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar15);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (*(char *)*param_2 == '_') {\n      *param_2 = (long)((char *)*param_2 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'G':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'M':\n  case 'O':\n    local_48 = 0;\n    cVar1 = *pcVar16;\n    *param_2 = (long)(pcVar16 + 1);\n    local_40[0] = (char *)0x0;\n    local_4c = 0;\n    bVar4 = pcVar16[1];\n    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      puVar15 = &local_48;\n      if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }\n      iVar5 = FUN_00112870(param_1,param_2,puVar15);\n      if (iVar5 == 0) {\n        return false;\n      }\nLAB_00111b38:\n      pbVar12 = (byte *)*param_2;\n    }\n    else {\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }\n    bVar4 = *pbVar12;\n    if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }\n      if (bVar4 != 0x46) break;\n      *param_2 = (long)(pbVar11 + 1);\n      if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }\n      iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);\n      if (iVar5 == 0) {\n        return false;\n      }\n      pbVar12 = (byte *)*param_2;\n      bVar4 = *pbVar12;\n    }\n    if (bVar4 == 0x5f) {\n      *param_2 = (long)(pbVar12 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }\n      lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'P':\n  case 'p':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f5f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'Q':\n    iVar5 = FUN_00112870(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'R':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f6a0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'T':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001103c0(param_2,&local_48);\n    if (iVar5 != 0) {\n      if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }\n    }\n  }\nswitchD_00111d06_caseD_1:\n  FUN_00110480(pcVar16);\n  return false;\nswitchD_00111d06_caseD_30:\n  iVar5 = FUN_00110de0(param_2,local_40);\n  if (iVar5 == 0) {\n    return false;\n  }\n  if (param_3 == (long *)0x0) {\n    return true;\n  }\n  __ptr = (void *)FUN_00110540(local_40[0],*param_2 - (long)local_40[0]);\n  lVar8 = FUN_0010fe00(*param_1,__ptr);\n  *param_3 = lVar8;\n  free(__ptr);\n  if (*param_3 == 0) {\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0);\n    *param_3 = lVar8;\njoined_r0x00111f61:\n    if (lVar8 == 0) {\n      return false;\n    }\n  }\n  goto LAB_00111df8;\ncode_r0x00111cf8:\n  switch(cVar1) {\n  case '\0':\n  case '_':\n    FUN_00110480(pcVar16);\n    goto LAB_00111df8;\n  default:\n    goto switchD_00111d06_caseD_1;\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    goto switchD_00111d06_caseD_30;\n  case 'G':\n    *param_2 = (long)(pcVar10 + 1);\n    if ((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;\n  case 'b':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }\n    break;\n  case 'c':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'd':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'f':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'i':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'l':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }\n    break;\n  case 'r':\n    pcVar16 = "long double";\n    if (param_3 != (long *)0x0) goto LAB_00111fc0;\n    break;\n  case 's':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 't':\n    if (param_3 == (long *)0x0) {\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }\n    iVar5 = FUN_001122d0(param_1,param_2,local_40);\n    pcVar16 = local_40[0];\n    if (iVar5 == 0) {\n      return false;\n    }\n    sVar7 = strlen(local_40[0]);\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9);\n    *param_3 = lVar8;\n    free(local_40[0]);\n    lVar8 = *param_3;\n    goto joined_r0x00111f61;\n  case 'v':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'w':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'x':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n  }\n  *param_2 = (long)(pcVar10 + 1);\nLAB_00111df8:\n  if (param_3 != (long *)0x0) {\n    if (bVar2) {\n      lVar8 = FUN_0010f8f0(*param_1,*param_3);\n      *param_3 = lVar8;\n    }\n    if (bVar17 != false) {\n      lVar8 = FUN_0010f920(*param_1,*param_3);\n      *param_3 = lVar8;\n      return bVar17;\n    }\n  }\n  return true;\n}" primitive_type (function_declarator "FUN_001118a0(undefined8 *param_1,long *param_2,long *param_3)" identifier (parameter_list "(undefined8 *param_1,long *param_2,long *param_3)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "long *param_3" (sized_type_specifier "long" long) (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  bool bVar3;\n  byte bVar4;\n  int iVar5;\n  ulong uVar6;\n  size_t sVar7;\n  long lVar8;\n  long lVar9;\n  void *__ptr;\n  char *pcVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  undefined4 *puVar13;\n  char **ppcVar14;\n  ulong *puVar15;\n  char *pcVar16;\n  bool bVar17;\n  uint uVar18;\n  undefined4 local_4c;\n  ulong local_48;\n  char *local_40 [2];\n  \n  pcVar16 = (char *)*param_2;\n  cVar1 = *pcVar16;\n  switch(cVar1) {\n  case 'A':\n    pbVar12 = (byte *)(pcVar16 + 1);\n    *param_2 = (long)pbVar12;\n    bVar4 = pcVar16[1];\n    if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      lVar8 = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }\n    break;\n  default:\n    bVar3 = false;\n    iVar5 = 0;\n    bVar17 = false;\n    bVar2 = false;\n    pcVar10 = pcVar16;\n    do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      cVar1 = pcVar10[1];\n      pcVar10 = (char *)*param_2;\n    } while( true );\n  case 'C':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f8f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'F':\n    puVar15 = (ulong *)0x0;\n    ppcVar14 = (char **)0x0;\n    *param_2 = (long)(pcVar16 + 1);\n    if (param_3 != (long *)0x0) {\n      puVar15 = &local_48;\n      ppcVar14 = local_40;\n    }\n    iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar15);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (*(char *)*param_2 == '_') {\n      *param_2 = (long)((char *)*param_2 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'G':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'M':\n  case 'O':\n    local_48 = 0;\n    cVar1 = *pcVar16;\n    *param_2 = (long)(pcVar16 + 1);\n    local_40[0] = (char *)0x0;\n    local_4c = 0;\n    bVar4 = pcVar16[1];\n    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      puVar15 = &local_48;\n      if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }\n      iVar5 = FUN_00112870(param_1,param_2,puVar15);\n      if (iVar5 == 0) {\n        return false;\n      }\nLAB_00111b38:\n      pbVar12 = (byte *)*param_2;\n    }\n    else {\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }\n    bVar4 = *pbVar12;\n    if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }\n      if (bVar4 != 0x46) break;\n      *param_2 = (long)(pbVar11 + 1);\n      if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }\n      iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);\n      if (iVar5 == 0) {\n        return false;\n      }\n      pbVar12 = (byte *)*param_2;\n      bVar4 = *pbVar12;\n    }\n    if (bVar4 == 0x5f) {\n      *param_2 = (long)(pbVar12 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }\n      lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'P':\n  case 'p':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f5f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'Q':\n    iVar5 = FUN_00112870(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'R':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f6a0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'T':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001103c0(param_2,&local_48);\n    if (iVar5 != 0) {\n      if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }\n    }\n  }\nswitchD_00111d06_caseD_1:\n  FUN_00110480(pcVar16);\n  return false;\nswitchD_00111d06_caseD_30:\n  iVar5 = FUN_00110de0(param_2,local_40);\n  if (iVar5 == 0) {\n    return false;\n  }\n  if (param_3 == (long *)0x0) {\n    return true;\n  }\n  __ptr = (void *)FUN_00110540(local_40[0],*param_2 - (long)local_40[0]);\n  lVar8 = FUN_0010fe00(*param_1,__ptr);\n  *param_3 = lVar8;\n  free(__ptr);\n  if (*param_3 == 0) {\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0);\n    *param_3 = lVar8;\njoined_r0x00111f61:\n    if (lVar8 == 0) {\n      return false;\n    }\n  }\n  goto LAB_00111df8;\ncode_r0x00111cf8:\n  switch(cVar1) {\n  case '\0':\n  case '_':\n    FUN_00110480(pcVar16);\n    goto LAB_00111df8;\n  default:\n    goto switchD_00111d06_caseD_1;\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    goto switchD_00111d06_caseD_30;\n  case 'G':\n    *param_2 = (long)(pcVar10 + 1);\n    if ((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;\n  case 'b':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }\n    break;\n  case 'c':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'd':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'f':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'i':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'l':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }\n    break;\n  case 'r':\n    pcVar16 = "long double";\n    if (param_3 != (long *)0x0) goto LAB_00111fc0;\n    break;\n  case 's':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 't':\n    if (param_3 == (long *)0x0) {\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }\n    iVar5 = FUN_001122d0(param_1,param_2,local_40);\n    pcVar16 = local_40[0];\n    if (iVar5 == 0) {\n      return false;\n    }\n    sVar7 = strlen(local_40[0]);\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9);\n    *param_3 = lVar8;\n    free(local_40[0]);\n    lVar8 = *param_3;\n    goto joined_r0x00111f61;\n  case 'v':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'w':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'x':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n  }\n  *param_2 = (long)(pcVar10 + 1);\nLAB_00111df8:\n  if (param_3 != (long *)0x0) {\n    if (bVar2) {\n      lVar8 = FUN_0010f8f0(*param_1,*param_3);\n      *param_3 = lVar8;\n    }\n    if (bVar17 != false) {\n      lVar8 = FUN_0010f920(*param_1,*param_3);\n      *param_3 = lVar8;\n      return bVar17;\n    }\n  }\n  return true;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "char **ppcVar14;" primitive_type (pointer_declarator "**ppcVar14" * (pointer_declarator "*ppcVar14" * identifier)) ;) (declaration "ulong *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "ulong local_48;" type_identifier identifier ;) (declaration "char *local_40 [2];" primitive_type (pointer_declarator "*local_40 [2]" * (array_declarator "local_40 [2]" identifier [ number_literal ])) ;) (expression_statement "pcVar16 = (char *)*param_2;" (assignment_expression "pcVar16 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (switch_statement "switch(cVar1) {\n  case 'A':\n    pbVar12 = (byte *)(pcVar16 + 1);\n    *param_2 = (long)pbVar12;\n    bVar4 = pcVar16[1];\n    if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      lVar8 = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }\n    break;\n  default:\n    bVar3 = false;\n    iVar5 = 0;\n    bVar17 = false;\n    bVar2 = false;\n    pcVar10 = pcVar16;\n    do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      cVar1 = pcVar10[1];\n      pcVar10 = (char *)*param_2;\n    } while( true );\n  case 'C':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f8f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'F':\n    puVar15 = (ulong *)0x0;\n    ppcVar14 = (char **)0x0;\n    *param_2 = (long)(pcVar16 + 1);\n    if (param_3 != (long *)0x0) {\n      puVar15 = &local_48;\n      ppcVar14 = local_40;\n    }\n    iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar15);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (*(char *)*param_2 == '_') {\n      *param_2 = (long)((char *)*param_2 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'G':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'M':\n  case 'O':\n    local_48 = 0;\n    cVar1 = *pcVar16;\n    *param_2 = (long)(pcVar16 + 1);\n    local_40[0] = (char *)0x0;\n    local_4c = 0;\n    bVar4 = pcVar16[1];\n    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      puVar15 = &local_48;\n      if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }\n      iVar5 = FUN_00112870(param_1,param_2,puVar15);\n      if (iVar5 == 0) {\n        return false;\n      }\nLAB_00111b38:\n      pbVar12 = (byte *)*param_2;\n    }\n    else {\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }\n    bVar4 = *pbVar12;\n    if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }\n      if (bVar4 != 0x46) break;\n      *param_2 = (long)(pbVar11 + 1);\n      if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }\n      iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);\n      if (iVar5 == 0) {\n        return false;\n      }\n      pbVar12 = (byte *)*param_2;\n      bVar4 = *pbVar12;\n    }\n    if (bVar4 == 0x5f) {\n      *param_2 = (long)(pbVar12 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }\n      lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'P':\n  case 'p':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f5f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'Q':\n    iVar5 = FUN_00112870(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'R':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f6a0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'T':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001103c0(param_2,&local_48);\n    if (iVar5 != 0) {\n      if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }\n    }\n  }" switch (parenthesized_expression "(cVar1)" ( identifier )) (compound_statement "{\n  case 'A':\n    pbVar12 = (byte *)(pcVar16 + 1);\n    *param_2 = (long)pbVar12;\n    bVar4 = pcVar16[1];\n    if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      lVar8 = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }\n    break;\n  default:\n    bVar3 = false;\n    iVar5 = 0;\n    bVar17 = false;\n    bVar2 = false;\n    pcVar10 = pcVar16;\n    do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      cVar1 = pcVar10[1];\n      pcVar10 = (char *)*param_2;\n    } while( true );\n  case 'C':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f8f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'F':\n    puVar15 = (ulong *)0x0;\n    ppcVar14 = (char **)0x0;\n    *param_2 = (long)(pcVar16 + 1);\n    if (param_3 != (long *)0x0) {\n      puVar15 = &local_48;\n      ppcVar14 = local_40;\n    }\n    iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar15);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (*(char *)*param_2 == '_') {\n      *param_2 = (long)((char *)*param_2 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'G':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'M':\n  case 'O':\n    local_48 = 0;\n    cVar1 = *pcVar16;\n    *param_2 = (long)(pcVar16 + 1);\n    local_40[0] = (char *)0x0;\n    local_4c = 0;\n    bVar4 = pcVar16[1];\n    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      puVar15 = &local_48;\n      if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }\n      iVar5 = FUN_00112870(param_1,param_2,puVar15);\n      if (iVar5 == 0) {\n        return false;\n      }\nLAB_00111b38:\n      pbVar12 = (byte *)*param_2;\n    }\n    else {\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }\n    bVar4 = *pbVar12;\n    if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }\n      if (bVar4 != 0x46) break;\n      *param_2 = (long)(pbVar11 + 1);\n      if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }\n      iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);\n      if (iVar5 == 0) {\n        return false;\n      }\n      pbVar12 = (byte *)*param_2;\n      bVar4 = *pbVar12;\n    }\n    if (bVar4 == 0x5f) {\n      *param_2 = (long)(pbVar12 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }\n      lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'P':\n  case 'p':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f5f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'Q':\n    iVar5 = FUN_00112870(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'R':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f6a0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'T':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001103c0(param_2,&local_48);\n    if (iVar5 != 0) {\n      if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }\n    }\n  }" { (case_statement "case 'A':\n    pbVar12 = (byte *)(pcVar16 + 1);\n    *param_2 = (long)pbVar12;\n    bVar4 = pcVar16[1];\n    if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      lVar8 = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }\n    break;" case (char_literal "'A'" ' character ') : (expression_statement "pbVar12 = (byte *)(pcVar16 + 1);" (assignment_expression "pbVar12 = (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) )))) ;) (expression_statement "*param_2 = (long)pbVar12;" (assignment_expression "*param_2 = (long)pbVar12" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)pbVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "bVar4 = pcVar16[1];" (assignment_expression "bVar4 = pcVar16[1]" identifier = (subscript_expression "pcVar16[1]" identifier [ number_literal ])) ;) (if_statement "if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      lVar8 = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }" if (parenthesized_expression "((bVar4 == 0) || (bVar4 == 0x5f))" ( (binary_expression "(bVar4 == 0) || (bVar4 == 0x5f)" (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "(bVar4 == 0x5f)" ( (binary_expression "bVar4 == 0x5f" identifier == number_literal) ))) )) (compound_statement "{\n      lVar8 = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }\n    }" { (expression_statement "lVar8 = 0;" (assignment_expression "lVar8 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }" statement_identifier : (if_statement "if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }" if (parenthesized_expression "(bVar4 == 0x5f)" ( (binary_expression "bVar4 == 0x5f" identifier == number_literal) )) (compound_statement "{\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }" { (expression_statement "*param_2 = (long)(pbVar12 + 1);" (assignment_expression "*param_2 = (long)(pbVar12 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pbVar12 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pbVar12 + 1)" ( (binary_expression "pbVar12 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar5 = FUN_001118a0(param_1,param_2,param_3);" (assignment_expression "iVar5 = FUN_001118a0(param_1,param_2,param_3)" identifier = (call_expression "FUN_001118a0(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n          return false;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          return false;\n        }" { (return_statement "return false;" return false ;) })) (if_statement "if (param_3 == (long *)0x0) {\n          return true;\n        }" if (parenthesized_expression "(param_3 == (long *)0x0)" ( (binary_expression "param_3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return true;\n        }" { (return_statement "return true;" return true ;) })) (expression_statement "lVar9 = FUN_0010fe00(*param_1,"int");" (assignment_expression "lVar9 = FUN_0010fe00(*param_1,"int")" identifier = (call_expression "FUN_0010fe00(*param_1,"int")" identifier (argument_list "(*param_1,"int")" ( (pointer_expression "*param_1" * identifier) , (string_literal ""int"" " string_content ") )))) ;) (if_statement "if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }" { (expression_statement "lVar9 = FUN_0010f4a0(*param_1,4,0);" (assignment_expression "lVar9 = FUN_0010f4a0(*param_1,4,0)" identifier = (call_expression "FUN_0010f4a0(*param_1,4,0)" identifier (argument_list "(*param_1,4,0)" ( (pointer_expression "*param_1" * identifier) , number_literal , number_literal )))) ;) })) (expression_statement "lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);" (assignment_expression "lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0)" identifier = (call_expression "FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0)" identifier (argument_list "(*param_1,*param_3,lVar9,0,lVar8,0)" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "*param_3" * identifier) , identifier , number_literal , identifier , number_literal )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (return_statement "return true;" return true ;) }))) }) (else_clause "else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }" else (if_statement "if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }" if (parenthesized_expression "((_sch_istable[(ulong)bVar4 * 2] & 4) != 0)" ( (binary_expression "(_sch_istable[(ulong)bVar4 * 2] & 4) != 0" (parenthesized_expression "(_sch_istable[(ulong)bVar4 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)bVar4 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar4 * 2]" identifier [ (binary_expression "(ulong)bVar4 * 2" (cast_expression "(ulong)bVar4" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }" { (expression_statement "pbVar12 = (byte *)(pcVar16 + 2);" (assignment_expression "pbVar12 = (byte *)(pcVar16 + 2)" identifier = (cast_expression "(byte *)(pcVar16 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 2)" ( (binary_expression "pcVar16 + 2" identifier + number_literal) )))) ;) (expression_statement "lVar8 = 0;" (assignment_expression "lVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);" do (compound_statement "{\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      }" { (expression_statement "*param_2 = (long)pbVar12;" (assignment_expression "*param_2 = (long)pbVar12" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)pbVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;" (assignment_expression "lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10" identifier = (binary_expression "(long)((char)bVar4 + -0x30) + lVar8 * 10" (cast_expression "(long)((char)bVar4 + -0x30)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "((char)bVar4 + -0x30)" ( (binary_expression "(char)bVar4 + -0x30" (cast_expression "(char)bVar4" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal) ))) + (binary_expression "lVar8 * 10" identifier * number_literal))) ;) (expression_statement "bVar4 = *pbVar12;" (assignment_expression "bVar4 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) (if_statement "if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;" if (parenthesized_expression "((bVar4 == 0) || (bVar4 == 0x5f))" ( (binary_expression "(bVar4 == 0) || (bVar4 == 0x5f)" (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "(bVar4 == 0x5f)" ( (binary_expression "bVar4 == 0x5f" identifier == number_literal) ))) )) (goto_statement "goto LAB_00111d10;" goto statement_identifier ;)) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((_sch_istable[(ulong)bVar4 * 2] & 4) != 0)" ( (binary_expression "(_sch_istable[(ulong)bVar4 * 2] & 4) != 0" (parenthesized_expression "(_sch_istable[(ulong)bVar4 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)bVar4 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar4 * 2]" identifier [ (binary_expression "(ulong)bVar4 * 2" (cast_expression "(ulong)bVar4" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) != number_literal) )) ;) })))) (break_statement "break;" break ;)) (case_statement "default:\n    bVar3 = false;\n    iVar5 = 0;\n    bVar17 = false;\n    bVar2 = false;\n    pcVar10 = pcVar16;\n    do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      cVar1 = pcVar10[1];\n      pcVar10 = (char *)*param_2;\n    } while( true );" default : (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "pcVar10 = pcVar16;" (assignment_expression "pcVar10 = pcVar16" identifier = identifier) ;) (do_statement "do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      cVar1 = pcVar10[1];\n      pcVar10 = (char *)*param_2;\n    } while( true );" do (compound_statement "{\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      cVar1 = pcVar10[1];\n      pcVar10 = (char *)*param_2;\n    }" { (if_statement "if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" if (parenthesized_expression "(cVar1 == 'S')" ( (binary_expression "cVar1 == 'S'" identifier == (char_literal "'S'" ' character ')) )) (compound_statement "{\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" { (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (expression_statement "*param_2 = (long)(pcVar10 + 1);" (assignment_expression "*param_2 = (long)(pcVar10 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar10 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar10 + 1)" ( (binary_expression "pcVar10 + 1" identifier + number_literal) )))) ;) }) (else_clause "else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" else (if_statement "if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" if (parenthesized_expression "(cVar1 < 'T')" ( (binary_expression "cVar1 < 'T'" identifier < (char_literal "'T'" ' character ')) )) (compound_statement "{\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" { (if_statement "if (cVar1 != 'C') goto code_r0x00111cf8;" if (parenthesized_expression "(cVar1 != 'C')" ( (binary_expression "cVar1 != 'C'" identifier != (char_literal "'C'" ' character ')) )) (goto_statement "goto code_r0x00111cf8;" goto statement_identifier ;)) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "*param_2 = (long)(pcVar10 + 1);" (assignment_expression "*param_2 = (long)(pcVar10 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar10 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar10 + 1)" ( (binary_expression "pcVar10 + 1" identifier + number_literal) )))) ;) }) (else_clause "else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" else (if_statement "if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" if (parenthesized_expression "(cVar1 == 'U')" ( (binary_expression "cVar1 == 'U'" identifier == (char_literal "'U'" ' character ')) )) (compound_statement "{\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }" { (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (expression_statement "*param_2 = (long)(pcVar10 + 1);" (assignment_expression "*param_2 = (long)(pcVar10 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar10 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar10 + 1)" ( (binary_expression "pcVar10 + 1" identifier + number_literal) )))) ;) }) (else_clause "else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" else (compound_statement "{\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" { (if_statement "if (cVar1 != 'V') goto code_r0x00111cf8;" if (parenthesized_expression "(cVar1 != 'V')" ( (binary_expression "cVar1 != 'V'" identifier != (char_literal "'V'" ' character ')) )) (goto_statement "goto code_r0x00111cf8;" goto statement_identifier ;)) (expression_statement "bVar17 = true;" (assignment_expression "bVar17 = true" identifier = true) ;) (expression_statement "*param_2 = (long)(pcVar10 + 1);" (assignment_expression "*param_2 = (long)(pcVar10 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar10 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar10 + 1)" ( (binary_expression "pcVar10 + 1" identifier + number_literal) )))) ;) }))))))) (expression_statement "cVar1 = pcVar10[1];" (assignment_expression "cVar1 = pcVar10[1]" identifier = (subscript_expression "pcVar10[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar10 = (char *)*param_2;" (assignment_expression "pcVar10 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) (case_statement "case 'C':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f8f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;" case (char_literal "'C'" ' character ') : (expression_statement "*param_2 = (long)(pcVar16 + 1);" (assignment_expression "*param_2 = (long)(pcVar16 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar16 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar5 = FUN_001118a0(param_1,param_2,param_3);" (assignment_expression "iVar5 = FUN_001118a0(param_1,param_2,param_3)" identifier = (call_expression "FUN_001118a0(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      return false;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (if_statement "if (param_3 == (long *)0x0) {\n      return true;\n    }" if (parenthesized_expression "(param_3 == (long *)0x0)" ( (binary_expression "param_3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return true;\n    }" { (return_statement "return true;" return true ;) })) (expression_statement "lVar8 = FUN_0010f8f0(*param_1,*param_3);" (assignment_expression "lVar8 = FUN_0010f8f0(*param_1,*param_3)" identifier = (call_expression "FUN_0010f8f0(*param_1,*param_3)" identifier (argument_list "(*param_1,*param_3)" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "*param_3" * identifier) )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (return_statement "return true;" return true ;)) (case_statement "case 'F':\n    puVar15 = (ulong *)0x0;\n    ppcVar14 = (char **)0x0;\n    *param_2 = (long)(pcVar16 + 1);\n    if (param_3 != (long *)0x0) {\n      puVar15 = &local_48;\n      ppcVar14 = local_40;\n    }\n    iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar15);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (*(char *)*param_2 == '_') {\n      *param_2 = (long)((char *)*param_2 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;" case (char_literal "'F'" ' character ') : (expression_statement "puVar15 = (ulong *)0x0;" (assignment_expression "puVar15 = (ulong *)0x0" identifier = (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppcVar14 = (char **)0x0;" (assignment_expression "ppcVar14 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "*param_2 = (long)(pcVar16 + 1);" (assignment_expression "*param_2 = (long)(pcVar16 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar16 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (if_statement "if (param_3 != (long *)0x0) {\n      puVar15 = &local_48;\n      ppcVar14 = local_40;\n    }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar15 = &local_48;\n      ppcVar14 = local_40;\n    }" { (expression_statement "puVar15 = &local_48;" (assignment_expression "puVar15 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (expression_statement "ppcVar14 = local_40;" (assignment_expression "ppcVar14 = local_40" identifier = identifier) ;) })) (expression_statement "iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar15);" (assignment_expression "iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar15)" identifier = (call_expression "FUN_00112ce0(param_1,param_2,ppcVar14,puVar15)" identifier (argument_list "(param_1,param_2,ppcVar14,puVar15)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      return false;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (if_statement "if (*(char *)*param_2 == '_') {\n      *param_2 = (long)((char *)*param_2 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);\n      *param_3 = lVar8;\n      return true;\n    }" if (parenthesized_expression "(*(char *)*param_2 == '_')" ( (binary_expression "*(char *)*param_2 == '_'" (pointer_expression "*(char *)*param_2" * (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) == (char_literal "'_'" ' character ')) )) (compound_statement "{\n      *param_2 = (long)((char *)*param_2 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);\n      *param_3 = lVar8;\n      return true;\n    }" { (expression_statement "*param_2 = (long)((char *)*param_2 + 1);" (assignment_expression "*param_2 = (long)((char *)*param_2 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)((char *)*param_2 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "((char *)*param_2 + 1)" ( (binary_expression "(char *)*param_2 + 1" (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)) + number_literal) )))) ;) (expression_statement "iVar5 = FUN_001118a0(param_1,param_2,param_3);" (assignment_expression "iVar5 = FUN_001118a0(param_1,param_2,param_3)" identifier = (call_expression "FUN_001118a0(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n        return false;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) })) (if_statement "if (param_3 == (long *)0x0) {\n        return true;\n      }" if (parenthesized_expression "(param_3 == (long *)0x0)" ( (binary_expression "param_3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return true;\n      }" { (return_statement "return true;" return true ;) })) (expression_statement "lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);" (assignment_expression "lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff)" identifier = (call_expression "FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff)" identifier (argument_list "(*param_1,*param_3,local_40[0],local_48 & 0xffffffff)" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "*param_3" * identifier) , (subscript_expression "local_40[0]" identifier [ number_literal ]) , (binary_expression "local_48 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (return_statement "return true;" return true ;) })) (break_statement "break;" break ;)) (case_statement "case 'G':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    return iVar5 != 0;" case (char_literal "'G'" ' character ') : (expression_statement "*param_2 = (long)(pcVar16 + 1);" (assignment_expression "*param_2 = (long)(pcVar16 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar16 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar5 = FUN_001118a0(param_1,param_2,param_3);" (assignment_expression "iVar5 = FUN_001118a0(param_1,param_2,param_3)" identifier = (call_expression "FUN_001118a0(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier )))) ;) (return_statement "return iVar5 != 0;" return (binary_expression "iVar5 != 0" identifier != number_literal) ;)) (case_statement "case 'M':" case (char_literal "'M'" ' character ') :) (case_statement "case 'O':\n    local_48 = 0;\n    cVar1 = *pcVar16;\n    *param_2 = (long)(pcVar16 + 1);\n    local_40[0] = (char *)0x0;\n    local_4c = 0;\n    bVar4 = pcVar16[1];\n    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      puVar15 = &local_48;\n      if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }\n      iVar5 = FUN_00112870(param_1,param_2,puVar15);\n      if (iVar5 == 0) {\n        return false;\n      }\nLAB_00111b38:\n      pbVar12 = (byte *)*param_2;\n    }\n    else {\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }\n    bVar4 = *pbVar12;\n    if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }\n      if (bVar4 != 0x46) break;\n      *param_2 = (long)(pbVar11 + 1);\n      if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }\n      iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);\n      if (iVar5 == 0) {\n        return false;\n      }\n      pbVar12 = (byte *)*param_2;\n      bVar4 = *pbVar12;\n    }\n    if (bVar4 == 0x5f) {\n      *param_2 = (long)(pbVar12 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }\n      lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;" case (char_literal "'O'" ' character ') : (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (expression_statement "*param_2 = (long)(pcVar16 + 1);" (assignment_expression "*param_2 = (long)(pcVar16 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar16 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (expression_statement "local_40[0] = (char *)0x0;" (assignment_expression "local_40[0] = (char *)0x0" (subscript_expression "local_40[0]" identifier [ number_literal ]) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "bVar4 = pcVar16[1];" (assignment_expression "bVar4 = pcVar16[1]" identifier = (subscript_expression "pcVar16[1]" identifier [ number_literal ])) ;) (if_statement "if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      puVar15 = &local_48;\n      if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }\n      iVar5 = FUN_00112870(param_1,param_2,puVar15);\n      if (iVar5 == 0) {\n        return false;\n      }\nLAB_00111b38:\n      pbVar12 = (byte *)*param_2;\n    }\n    else {\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }" if (parenthesized_expression "((_sch_istable[(ulong)bVar4 * 2] & 4) == 0)" ( (binary_expression "(_sch_istable[(ulong)bVar4 * 2] & 4) == 0" (parenthesized_expression "(_sch_istable[(ulong)bVar4 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)bVar4 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar4 * 2]" identifier [ (binary_expression "(ulong)bVar4 * 2" (cast_expression "(ulong)bVar4" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (bVar4 != 0x51) break;\n      puVar15 = &local_48;\n      if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }\n      iVar5 = FUN_00112870(param_1,param_2,puVar15);\n      if (iVar5 == 0) {\n        return false;\n      }\nLAB_00111b38:\n      pbVar12 = (byte *)*param_2;\n    }" { (if_statement "if (bVar4 != 0x51) break;" if (parenthesized_expression "(bVar4 != 0x51)" ( (binary_expression "bVar4 != 0x51" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "puVar15 = &local_48;" (assignment_expression "puVar15 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (if_statement "if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }" if (parenthesized_expression "(param_3 == (long *)0x0)" ( (binary_expression "param_3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar15 = (ulong *)0x0;\n      }" { (expression_statement "puVar15 = (ulong *)0x0;" (assignment_expression "puVar15 = (ulong *)0x0" identifier = (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "iVar5 = FUN_00112870(param_1,param_2,puVar15);" (assignment_expression "iVar5 = FUN_00112870(param_1,param_2,puVar15)" identifier = (call_expression "FUN_00112870(param_1,param_2,puVar15)" identifier (argument_list "(param_1,param_2,puVar15)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n        return false;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) })) (labeled_statement "LAB_00111b38:\n      pbVar12 = (byte *)*param_2;" statement_identifier : (expression_statement "pbVar12 = (byte *)*param_2;" (assignment_expression "pbVar12 = (byte *)*param_2" identifier = (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;)) }) (else_clause "else {\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }" else (compound_statement "{\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = (ulong)bVar4;" (assignment_expression "uVar6 = (ulong)bVar4" identifier = (cast_expression "(ulong)bVar4" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "pbVar12 = (byte *)(pcVar16 + 2);" (assignment_expression "pbVar12 = (byte *)(pcVar16 + 2)" identifier = (cast_expression "(byte *)(pcVar16 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 2)" ( (binary_expression "pcVar16 + 2" identifier + number_literal) )))) ;) (do_statement "do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);" do (compound_statement "{\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      }" { (expression_statement "pbVar11 = pbVar12;" (assignment_expression "pbVar11 = pbVar12" identifier = identifier) ;) (expression_statement "*param_2 = (long)pbVar11;" (assignment_expression "*param_2 = (long)pbVar11" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)pbVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;" (assignment_expression "uVar18 = (char)uVar6 + -0x30 + uVar18 * 10" identifier = (binary_expression "(char)uVar6 + -0x30 + uVar18 * 10" (binary_expression "(char)uVar6 + -0x30" (cast_expression "(char)uVar6" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal) + (binary_expression "uVar18 * 10" identifier * number_literal))) ;) (expression_statement "uVar6 = (ulong)*pbVar11;" (assignment_expression "uVar6 = (ulong)*pbVar11" identifier = (binary_expression "(ulong)*pbVar11" (parenthesized_expression "(ulong)" ( identifier )) * identifier)) ;) (expression_statement "pbVar12 = pbVar11 + 1;" (assignment_expression "pbVar12 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0)" ( (binary_expression "(_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0" (parenthesized_expression "(_sch_istable[(ulong)*pbVar11 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)*pbVar11 * 2] & 4" (subscript_expression "_sch_istable[(ulong)*pbVar11 * 2]" identifier [ (binary_expression "(ulong)*pbVar11 * 2" (binary_expression "(ulong)*pbVar11" (parenthesized_expression "(ulong)" ( identifier )) * identifier) * number_literal) ]) & number_literal) )) != number_literal) )) ;) (expression_statement "sVar7 = strlen((char *)pbVar11);" (assignment_expression "sVar7 = strlen((char *)pbVar11)" identifier = (call_expression "strlen((char *)pbVar11)" identifier (argument_list "((char *)pbVar11)" ( (cast_expression "(char *)pbVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (sVar7 < uVar18) break;" if (parenthesized_expression "(sVar7 < uVar18)" ( (binary_expression "sVar7 < uVar18" identifier < identifier) )) (break_statement "break;" break ;)) (expression_statement "pbVar12 = pbVar11 + uVar18;" (assignment_expression "pbVar12 = pbVar11 + uVar18" identifier = (binary_expression "pbVar11 + uVar18" identifier + identifier)) ;) (expression_statement "*param_2 = (long)pbVar12;" (assignment_expression "*param_2 = (long)pbVar12" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)pbVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (if_statement "if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }" { (expression_statement "local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);" (assignment_expression "local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9)" identifier = (call_expression "FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9)" identifier (argument_list "(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9)" ( (pointer_expression "*param_1" * identifier) , (binary_expression "param_1[1] + 0x1a0" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) , identifier , identifier , number_literal )))) ;) (if_statement "if (local_48 == 0) {\n          return false;\n        }" if (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) (compound_statement "{\n          return false;\n        }" { (return_statement "return false;" return false ;) })) (goto_statement "goto LAB_00111b38;" goto statement_identifier ;) })) }))) (expression_statement "bVar4 = *pbVar12;" (assignment_expression "bVar4 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) (if_statement "if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }\n      if (bVar4 != 0x46) break;\n      *param_2 = (long)(pbVar11 + 1);\n      if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }\n      iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);\n      if (iVar5 == 0) {\n        return false;\n      }\n      pbVar12 = (byte *)*param_2;\n      bVar4 = *pbVar12;\n    }" if (parenthesized_expression "(cVar1 == 'M')" ( (binary_expression "cVar1 == 'M'" identifier == (char_literal "'M'" ' character ')) )) (compound_statement "{\n      if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }\n      if (bVar4 != 0x46) break;\n      *param_2 = (long)(pbVar11 + 1);\n      if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }\n      iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);\n      if (iVar5 == 0) {\n        return false;\n      }\n      pbVar12 = (byte *)*param_2;\n      bVar4 = *pbVar12;\n    }" { (if_statement "if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }" if (parenthesized_expression "((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56))" ( (binary_expression "(bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)" (parenthesized_expression "(bVar4 == 0x43)" ( (binary_expression "bVar4 == 0x43" identifier == number_literal) )) || (parenthesized_expression "(pbVar11 = pbVar12, bVar4 == 0x56)" ( (comma_expression "pbVar11 = pbVar12, bVar4 == 0x56" (assignment_expression "pbVar11 = pbVar12" identifier = identifier) , (binary_expression "bVar4 == 0x56" identifier == number_literal)) ))) )) (compound_statement "{\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }" { (expression_statement "pbVar11 = pbVar12 + 1;" (assignment_expression "pbVar11 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "*param_2 = (long)pbVar11;" (assignment_expression "*param_2 = (long)pbVar11" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)pbVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "bVar4 = pbVar12[1];" (assignment_expression "bVar4 = pbVar12[1]" identifier = (subscript_expression "pbVar12[1]" identifier [ number_literal ])) ;) })) (if_statement "if (bVar4 != 0x46) break;" if (parenthesized_expression "(bVar4 != 0x46)" ( (binary_expression "bVar4 != 0x46" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "*param_2 = (long)(pbVar11 + 1);" (assignment_expression "*param_2 = (long)(pbVar11 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pbVar11 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pbVar11 + 1)" ( (binary_expression "pbVar11 + 1" identifier + number_literal) )))) ;) (if_statement "if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }" if (parenthesized_expression "(param_3 == (long *)0x0)" ( (binary_expression "param_3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }" { (expression_statement "puVar13 = (undefined4 *)0x0;" (assignment_expression "puVar13 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppcVar14 = (char **)0x0;" (assignment_expression "ppcVar14 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) }) (else_clause "else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }" else (compound_statement "{\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }" { (expression_statement "puVar13 = &local_4c;" (assignment_expression "puVar13 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "ppcVar14 = local_40;" (assignment_expression "ppcVar14 = local_40" identifier = identifier) ;) }))) (expression_statement "iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);" (assignment_expression "iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13)" identifier = (call_expression "FUN_00112ce0(param_1,param_2,ppcVar14,puVar13)" identifier (argument_list "(param_1,param_2,ppcVar14,puVar13)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n        return false;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) })) (expression_statement "pbVar12 = (byte *)*param_2;" (assignment_expression "pbVar12 = (byte *)*param_2" identifier = (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "bVar4 = *pbVar12;" (assignment_expression "bVar4 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) })) (if_statement "if (bVar4 == 0x5f) {\n      *param_2 = (long)(pbVar12 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }\n      lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);\n      *param_3 = lVar8;\n      return true;\n    }" if (parenthesized_expression "(bVar4 == 0x5f)" ( (binary_expression "bVar4 == 0x5f" identifier == number_literal) )) (compound_statement "{\n      *param_2 = (long)(pbVar12 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }\n      lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);\n      *param_3 = lVar8;\n      return true;\n    }" { (expression_statement "*param_2 = (long)(pbVar12 + 1);" (assignment_expression "*param_2 = (long)(pbVar12 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pbVar12 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pbVar12 + 1)" ( (binary_expression "pbVar12 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar5 = FUN_001118a0(param_1,param_2,param_3);" (assignment_expression "iVar5 = FUN_001118a0(param_1,param_2,param_3)" identifier = (call_expression "FUN_001118a0(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n        return false;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) })) (if_statement "if (param_3 == (long *)0x0) {\n        return true;\n      }" if (parenthesized_expression "(param_3 == (long *)0x0)" ( (binary_expression "param_3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return true;\n      }" { (return_statement "return true;" return true ;) })) (if_statement "if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }" if (parenthesized_expression "(cVar1 != 'M')" ( (binary_expression "cVar1 != 'M'" identifier != (char_literal "'M'" ' character ')) )) (compound_statement "{\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }" { (expression_statement "lVar8 = FUN_0010f820(*param_1,local_48,*param_3);" (assignment_expression "lVar8 = FUN_0010f820(*param_1,local_48,*param_3)" identifier = (call_expression "FUN_0010f820(*param_1,local_48,*param_3)" identifier (argument_list "(*param_1,local_48,*param_3)" ( (pointer_expression "*param_1" * identifier) , identifier , (pointer_expression "*param_3" * identifier) )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (return_statement "return true;" return true ;) })) (expression_statement "lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);" (assignment_expression "lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c)" identifier = (call_expression "FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c)" identifier (argument_list "(*param_1,*param_3,local_48,local_40[0],local_4c)" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "*param_3" * identifier) , identifier , (subscript_expression "local_40[0]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (return_statement "return true;" return true ;) })) (break_statement "break;" break ;)) (case_statement "case 'P':" case (char_literal "'P'" ' character ') :) (case_statement "case 'p':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f5f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;" case (char_literal "'p'" ' character ') : (expression_statement "*param_2 = (long)(pcVar16 + 1);" (assignment_expression "*param_2 = (long)(pcVar16 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar16 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar5 = FUN_001118a0(param_1,param_2,param_3);" (assignment_expression "iVar5 = FUN_001118a0(param_1,param_2,param_3)" identifier = (call_expression "FUN_001118a0(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      return false;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (if_statement "if (param_3 == (long *)0x0) {\n      return true;\n    }" if (parenthesized_expression "(param_3 == (long *)0x0)" ( (binary_expression "param_3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return true;\n    }" { (return_statement "return true;" return true ;) })) (expression_statement "lVar8 = FUN_0010f5f0(*param_1,*param_3);" (assignment_expression "lVar8 = FUN_0010f5f0(*param_1,*param_3)" identifier = (call_expression "FUN_0010f5f0(*param_1,*param_3)" identifier (argument_list "(*param_1,*param_3)" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "*param_3" * identifier) )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (return_statement "return true;" return true ;)) (case_statement "case 'Q':\n    iVar5 = FUN_00112870(param_1,param_2,param_3);\n    return iVar5 != 0;" case (char_literal "'Q'" ' character ') : (expression_statement "iVar5 = FUN_00112870(param_1,param_2,param_3);" (assignment_expression "iVar5 = FUN_00112870(param_1,param_2,param_3)" identifier = (call_expression "FUN_00112870(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier )))) ;) (return_statement "return iVar5 != 0;" return (binary_expression "iVar5 != 0" identifier != number_literal) ;)) (case_statement "case 'R':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f6a0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;" case (char_literal "'R'" ' character ') : (expression_statement "*param_2 = (long)(pcVar16 + 1);" (assignment_expression "*param_2 = (long)(pcVar16 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar16 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar5 = FUN_001118a0(param_1,param_2,param_3);" (assignment_expression "iVar5 = FUN_001118a0(param_1,param_2,param_3)" identifier = (call_expression "FUN_001118a0(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      return false;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (if_statement "if (param_3 == (long *)0x0) {\n      return true;\n    }" if (parenthesized_expression "(param_3 == (long *)0x0)" ( (binary_expression "param_3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return true;\n    }" { (return_statement "return true;" return true ;) })) (expression_statement "lVar8 = FUN_0010f6a0(*param_1,*param_3);" (assignment_expression "lVar8 = FUN_0010f6a0(*param_1,*param_3)" identifier = (call_expression "FUN_0010f6a0(*param_1,*param_3)" identifier (argument_list "(*param_1,*param_3)" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "*param_3" * identifier) )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (return_statement "return true;" return true ;)) (case_statement "case 'T':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001103c0(param_2,&local_48);\n    if (iVar5 != 0) {\n      if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }\n    }" case (char_literal "'T'" ' character ') : (expression_statement "*param_2 = (long)(pcVar16 + 1);" (assignment_expression "*param_2 = (long)(pcVar16 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar16 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar5 = FUN_001103c0(param_2,&local_48);" (assignment_expression "iVar5 = FUN_001103c0(param_2,&local_48)" identifier = (call_expression "FUN_001103c0(param_2,&local_48)" identifier (argument_list "(param_2,&local_48)" ( identifier , (pointer_expression "&local_48" & identifier) )))) ;) (if_statement "if (iVar5 != 0) {\n      if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }\n    }" { (if_statement "if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }" if (parenthesized_expression "((uint)local_48 < *(uint *)(param_1 + 5))" ( (binary_expression "(uint)local_48 < *(uint *)(param_1 + 5)" (cast_expression "(uint)local_48" ( (type_descriptor "uint" type_identifier) ) identifier) < (pointer_expression "*(uint *)(param_1 + 5)" * (cast_expression "(uint *)(param_1 + 5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 5)" ( (binary_expression "param_1 + 5" identifier + number_literal) ))))) )) (compound_statement "{\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }" { (expression_statement "local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);" (assignment_expression "local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4])" (subscript_expression "local_40[0]" identifier [ number_literal ]) = (pointer_expression "*(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4])" * (cast_expression "(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4])" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((local_48 & 0xffffffff) * 0x10 + param_1[4])" ( (binary_expression "(local_48 & 0xffffffff) * 0x10 + param_1[4]" (binary_expression "(local_48 & 0xffffffff) * 0x10" (parenthesized_expression "(local_48 & 0xffffffff)" ( (binary_expression "local_48 & 0xffffffff" identifier & number_literal) )) * number_literal) + (subscript_expression "param_1[4]" identifier [ number_literal ])) ))))) ;) (expression_statement "iVar5 = FUN_001118a0(param_1,local_40,param_3);" (assignment_expression "iVar5 = FUN_001118a0(param_1,local_40,param_3)" identifier = (call_expression "FUN_001118a0(param_1,local_40,param_3)" identifier (argument_list "(param_1,local_40,param_3)" ( identifier , identifier , identifier )))) ;) (goto_statement "goto joined_r0x0011192e;" goto statement_identifier ;) })) }))) })) (labeled_statement "switchD_00111d06_caseD_1:\n  FUN_00110480(pcVar16);" statement_identifier : (expression_statement "FUN_00110480(pcVar16);" (call_expression "FUN_00110480(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;)) (return_statement "return false;" return false ;) (labeled_statement "switchD_00111d06_caseD_30:\n  iVar5 = FUN_00110de0(param_2,local_40);" statement_identifier : (expression_statement "iVar5 = FUN_00110de0(param_2,local_40);" (assignment_expression "iVar5 = FUN_00110de0(param_2,local_40)" identifier = (call_expression "FUN_00110de0(param_2,local_40)" identifier (argument_list "(param_2,local_40)" ( identifier , identifier )))) ;)) (if_statement "if (iVar5 == 0) {\n    return false;\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (if_statement "if (param_3 == (long *)0x0) {\n    return true;\n  }" if (parenthesized_expression "(param_3 == (long *)0x0)" ( (binary_expression "param_3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return true;\n  }" { (return_statement "return true;" return true ;) })) (expression_statement "__ptr = (void *)FUN_00110540(local_40[0],*param_2 - (long)local_40[0]);" (assignment_expression "__ptr = (void *)FUN_00110540(local_40[0],*param_2 - (long)local_40[0])" identifier = (cast_expression "(void *)FUN_00110540(local_40[0],*param_2 - (long)local_40[0])" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00110540(local_40[0],*param_2 - (long)local_40[0])" identifier (argument_list "(local_40[0],*param_2 - (long)local_40[0])" ( (subscript_expression "local_40[0]" identifier [ number_literal ]) , (binary_expression "*param_2 - (long)local_40[0]" (pointer_expression "*param_2" * identifier) - (cast_expression "(long)local_40[0]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (subscript_expression "local_40[0]" identifier [ number_literal ]))) ))))) ;) (expression_statement "lVar8 = FUN_0010fe00(*param_1,__ptr);" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,__ptr)" identifier = (call_expression "FUN_0010fe00(*param_1,__ptr)" identifier (argument_list "(*param_1,__ptr)" ( (pointer_expression "*param_1" * identifier) , identifier )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (if_statement "if (*param_3 == 0) {\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0);\n    *param_3 = lVar8;\njoined_r0x00111f61:\n    if (lVar8 == 0) {\n      return false;\n    }\n  }" if (parenthesized_expression "(*param_3 == 0)" ( (binary_expression "*param_3 == 0" (pointer_expression "*param_3" * identifier) == number_literal) )) (compound_statement "{\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0);\n    *param_3 = lVar8;\njoined_r0x00111f61:\n    if (lVar8 == 0) {\n      return false;\n    }\n  }" { (expression_statement "lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0);" (assignment_expression "lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0)" identifier = (call_expression "FUN_00110e80(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0)" identifier (argument_list "(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0)" ( (pointer_expression "*param_1" * identifier) , (binary_expression "param_1[1] + 0x1a0" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) , (subscript_expression "local_40[0]" identifier [ number_literal ]) , (binary_expression "*param_2 - (long)local_40[0]" (pointer_expression "*param_2" * identifier) - (cast_expression "(long)local_40[0]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (subscript_expression "local_40[0]" identifier [ number_literal ]))) , number_literal )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (labeled_statement "joined_r0x00111f61:\n    if (lVar8 == 0) {\n      return false;\n    }" statement_identifier : (if_statement "if (lVar8 == 0) {\n      return false;\n    }" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) }))) })) (goto_statement "goto LAB_00111df8;" goto statement_identifier ;) (labeled_statement "code_r0x00111cf8:\n  switch(cVar1) {\n  case '\0':\n  case '_':\n    FUN_00110480(pcVar16);\n    goto LAB_00111df8;\n  default:\n    goto switchD_00111d06_caseD_1;\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    goto switchD_00111d06_caseD_30;\n  case 'G':\n    *param_2 = (long)(pcVar10 + 1);\n    if ((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;\n  case 'b':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }\n    break;\n  case 'c':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'd':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'f':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'i':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'l':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }\n    break;\n  case 'r':\n    pcVar16 = "long double";\n    if (param_3 != (long *)0x0) goto LAB_00111fc0;\n    break;\n  case 's':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 't':\n    if (param_3 == (long *)0x0) {\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }\n    iVar5 = FUN_001122d0(param_1,param_2,local_40);\n    pcVar16 = local_40[0];\n    if (iVar5 == 0) {\n      return false;\n    }\n    sVar7 = strlen(local_40[0]);\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9);\n    *param_3 = lVar8;\n    free(local_40[0]);\n    lVar8 = *param_3;\n    goto joined_r0x00111f61;\n  case 'v':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'w':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'x':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n  }" statement_identifier : (switch_statement "switch(cVar1) {\n  case '\0':\n  case '_':\n    FUN_00110480(pcVar16);\n    goto LAB_00111df8;\n  default:\n    goto switchD_00111d06_caseD_1;\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    goto switchD_00111d06_caseD_30;\n  case 'G':\n    *param_2 = (long)(pcVar10 + 1);\n    if ((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;\n  case 'b':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }\n    break;\n  case 'c':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'd':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'f':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'i':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'l':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }\n    break;\n  case 'r':\n    pcVar16 = "long double";\n    if (param_3 != (long *)0x0) goto LAB_00111fc0;\n    break;\n  case 's':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 't':\n    if (param_3 == (long *)0x0) {\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }\n    iVar5 = FUN_001122d0(param_1,param_2,local_40);\n    pcVar16 = local_40[0];\n    if (iVar5 == 0) {\n      return false;\n    }\n    sVar7 = strlen(local_40[0]);\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9);\n    *param_3 = lVar8;\n    free(local_40[0]);\n    lVar8 = *param_3;\n    goto joined_r0x00111f61;\n  case 'v':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'w':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'x':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n  }" switch (parenthesized_expression "(cVar1)" ( identifier )) (compound_statement "{\n  case '\0':\n  case '_':\n    FUN_00110480(pcVar16);\n    goto LAB_00111df8;\n  default:\n    goto switchD_00111d06_caseD_1;\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    goto switchD_00111d06_caseD_30;\n  case 'G':\n    *param_2 = (long)(pcVar10 + 1);\n    if ((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;\n  case 'b':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }\n    break;\n  case 'c':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'd':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'f':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'i':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'l':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }\n    break;\n  case 'r':\n    pcVar16 = "long double";\n    if (param_3 != (long *)0x0) goto LAB_00111fc0;\n    break;\n  case 's':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 't':\n    if (param_3 == (long *)0x0) {\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }\n    iVar5 = FUN_001122d0(param_1,param_2,local_40);\n    pcVar16 = local_40[0];\n    if (iVar5 == 0) {\n      return false;\n    }\n    sVar7 = strlen(local_40[0]);\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9);\n    *param_3 = lVar8;\n    free(local_40[0]);\n    lVar8 = *param_3;\n    goto joined_r0x00111f61;\n  case 'v':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'w':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'x':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n  }" { (case_statement "case '\0':" case (char_literal "'\0'" ' escape_sequence ') :) (case_statement "case '_':\n    FUN_00110480(pcVar16);\n    goto LAB_00111df8;" case (char_literal "'_'" ' character ') : (expression_statement "FUN_00110480(pcVar16);" (call_expression "FUN_00110480(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) (goto_statement "goto LAB_00111df8;" goto statement_identifier ;)) (case_statement "default:\n    goto switchD_00111d06_caseD_1;" default : (goto_statement "goto switchD_00111d06_caseD_1;" goto statement_identifier ;)) (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    goto switchD_00111d06_caseD_30;" case (char_literal "'9'" ' character ') : (goto_statement "goto switchD_00111d06_caseD_30;" goto statement_identifier ;)) (case_statement "case 'G':\n    *param_2 = (long)(pcVar10 + 1);\n    if ((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;" case (char_literal "'G'" ' character ') : (expression_statement "*param_2 = (long)(pcVar10 + 1);" (assignment_expression "*param_2 = (long)(pcVar10 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar10 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar10 + 1)" ( (binary_expression "pcVar10 + 1" identifier + number_literal) )))) ;) (if_statement "if ((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0) goto switchD_00111d06_caseD_1;" if (parenthesized_expression "((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0)" ( (binary_expression "(_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0" (parenthesized_expression "(_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4" (subscript_expression "_sch_istable[(ulong)(byte)pcVar10[1] * 2]" identifier [ (binary_expression "(ulong)(byte)pcVar10[1] * 2" (cast_expression "(ulong)(byte)pcVar10[1]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)pcVar10[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar10[1]" identifier [ number_literal ]))) * number_literal) ]) & number_literal) )) == number_literal) )) (goto_statement "goto switchD_00111d06_caseD_1;" goto statement_identifier ;)) (goto_statement "goto switchD_00111d06_caseD_30;" goto statement_identifier ;)) (case_statement "case 'b':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }\n    break;" case (char_literal "'b'" ' character ') : (if_statement "if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }" { (expression_statement "lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b)" identifier = (call_expression "FUN_0010fe00(*param_1,&DAT_0012307b)" identifier (argument_list "(*param_1,&DAT_0012307b)" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "&DAT_0012307b" & identifier) )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (if_statement "if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }" { (expression_statement "lVar8 = FUN_0010f4d0(*param_1,4);" (assignment_expression "lVar8 = FUN_0010f4d0(*param_1,4)" identifier = (call_expression "FUN_0010f4d0(*param_1,4)" identifier (argument_list "(*param_1,4)" ( (pointer_expression "*param_1" * identifier) , number_literal )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) })) (labeled_statement "LAB_00111e80:\n      pcVar10 = (char *)*param_2;" statement_identifier : (expression_statement "pcVar10 = (char *)*param_2;" (assignment_expression "pcVar10 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;)) })) (break_statement "break;" break ;)) (case_statement "case 'c':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;" case (char_literal "'c'" ' character ') : (if_statement "if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" { (expression_statement "pcVar16 = "unsigned char";" (assignment_expression "pcVar16 = "unsigned char"" identifier = (string_literal ""unsigned char"" " string_content ")) ;) (if_statement "if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }" if (parenthesized_expression "((iVar5 == 0) && (pcVar16 = "signed char", !bVar3))" ( (binary_expression "(iVar5 == 0) && (pcVar16 = "signed char", !bVar3)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) && (parenthesized_expression "(pcVar16 = "signed char", !bVar3)" ( (comma_expression "pcVar16 = "signed char", !bVar3" (assignment_expression "pcVar16 = "signed char"" identifier = (string_literal ""signed char"" " string_content ")) , (unary_expression "!bVar3" ! identifier)) ))) )) (compound_statement "{\n        pcVar16 = "char";\n      }" { (expression_statement "pcVar16 = "char";" (assignment_expression "pcVar16 = "char"" identifier = (string_literal ""char"" " string_content ")) ;) })) (expression_statement "lVar8 = FUN_0010fe00(*param_1,pcVar16);" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,pcVar16)" identifier = (call_expression "FUN_0010fe00(*param_1,pcVar16)" identifier (argument_list "(*param_1,pcVar16)" ( (pointer_expression "*param_1" * identifier) , identifier )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (if_statement "if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }" { (expression_statement "lVar8 = FUN_0010f4a0(*param_1,1,iVar5);" (assignment_expression "lVar8 = FUN_0010f4a0(*param_1,1,iVar5)" identifier = (call_expression "FUN_0010f4a0(*param_1,1,iVar5)" identifier (argument_list "(*param_1,1,iVar5)" ( (pointer_expression "*param_1" * identifier) , number_literal , identifier )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) })) (goto_statement "goto LAB_00111e80;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 'd':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;" case (char_literal "'d'" ' character ') : (if_statement "if (param_3 != (long *)0x0) {\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" { (expression_statement "pcVar16 = "double";" (assignment_expression "pcVar16 = "double"" identifier = (string_literal ""double"" " string_content ")) ;) (labeled_statement "LAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);" statement_identifier : (expression_statement "lVar8 = FUN_0010fe00(*param_1,pcVar16);" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,pcVar16)" identifier = (call_expression "FUN_0010fe00(*param_1,pcVar16)" identifier (argument_list "(*param_1,pcVar16)" ( (pointer_expression "*param_1" * identifier) , identifier )))) ;)) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (if_statement "if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }" { (expression_statement "lVar8 = FUN_0010f4c0(*param_1,8);" (assignment_expression "lVar8 = FUN_0010f4c0(*param_1,8)" identifier = (call_expression "FUN_0010f4c0(*param_1,8)" identifier (argument_list "(*param_1,8)" ( (pointer_expression "*param_1" * identifier) , number_literal )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) })) (goto_statement "goto LAB_00111e80;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 'f':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;" case (char_literal "'f'" ' character ') : (if_statement "if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" { (expression_statement "lVar8 = FUN_0010fe00(*param_1,"float");" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,"float")" identifier = (call_expression "FUN_0010fe00(*param_1,"float")" identifier (argument_list "(*param_1,"float")" ( (pointer_expression "*param_1" * identifier) , (string_literal ""float"" " string_content ") )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (if_statement "if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }" { (expression_statement "lVar8 = FUN_0010f4c0(*param_1,4);" (assignment_expression "lVar8 = FUN_0010f4c0(*param_1,4)" identifier = (call_expression "FUN_0010f4c0(*param_1,4)" identifier (argument_list "(*param_1,4)" ( (pointer_expression "*param_1" * identifier) , number_literal )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) })) (goto_statement "goto LAB_00111e80;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 'i':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;" case (char_literal "'i'" ' character ') : (if_statement "if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" { (expression_statement "pcVar16 = "unsigned int";" (assignment_expression "pcVar16 = "unsigned int"" identifier = (string_literal ""unsigned int"" " string_content ")) ;) (expression_statement "pcVar10 = "int";" (assignment_expression "pcVar10 = "int"" identifier = (string_literal ""int"" " string_content ")) ;) (labeled_statement "LAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }" statement_identifier : (if_statement "if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar16 = pcVar10;\n      }" { (expression_statement "pcVar16 = pcVar10;" (assignment_expression "pcVar16 = pcVar10" identifier = identifier) ;) }))) (expression_statement "lVar8 = FUN_0010fe00(*param_1,pcVar16);" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,pcVar16)" identifier = (call_expression "FUN_0010fe00(*param_1,pcVar16)" identifier (argument_list "(*param_1,pcVar16)" ( (pointer_expression "*param_1" * identifier) , identifier )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (if_statement "if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }" { (expression_statement "lVar8 = FUN_0010f4a0(*param_1,4,iVar5);" (assignment_expression "lVar8 = FUN_0010f4a0(*param_1,4,iVar5)" identifier = (call_expression "FUN_0010f4a0(*param_1,4,iVar5)" identifier (argument_list "(*param_1,4,iVar5)" ( (pointer_expression "*param_1" * identifier) , number_literal , identifier )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) })) (goto_statement "goto LAB_00111e80;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 'l':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }\n    break;" case (char_literal "'l'" ' character ') : (if_statement "if (param_3 != (long *)0x0) {\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }" { (expression_statement "pcVar16 = "long unsigned int";" (assignment_expression "pcVar16 = "long unsigned int"" identifier = (string_literal ""long unsigned int"" " string_content ")) ;) (expression_statement "pcVar10 = "long int";" (assignment_expression "pcVar10 = "long int"" identifier = (string_literal ""long int"" " string_content ")) ;) (goto_statement "goto LAB_0011200d;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 'r':\n    pcVar16 = "long double";\n    if (param_3 != (long *)0x0) goto LAB_00111fc0;\n    break;" case (char_literal "'r'" ' character ') : (expression_statement "pcVar16 = "long double";" (assignment_expression "pcVar16 = "long double"" identifier = (string_literal ""long double"" " string_content ")) ;) (if_statement "if (param_3 != (long *)0x0) goto LAB_00111fc0;" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00111fc0;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "case 's':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;" case (char_literal "'s'" ' character ') : (if_statement "if (param_3 != (long *)0x0) {\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" { (expression_statement "pcVar16 = "short unsigned int";" (assignment_expression "pcVar16 = "short unsigned int"" identifier = (string_literal ""short unsigned int"" " string_content ")) ;) (if_statement "if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar16 = "short int";\n      }" { (expression_statement "pcVar16 = "short int";" (assignment_expression "pcVar16 = "short int"" identifier = (string_literal ""short int"" " string_content ")) ;) })) (expression_statement "lVar8 = FUN_0010fe00(*param_1,pcVar16);" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,pcVar16)" identifier = (call_expression "FUN_0010fe00(*param_1,pcVar16)" identifier (argument_list "(*param_1,pcVar16)" ( (pointer_expression "*param_1" * identifier) , identifier )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (if_statement "if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }" { (labeled_statement "LAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);" statement_identifier : (expression_statement "lVar8 = FUN_0010f4a0(*param_1,2,iVar5);" (assignment_expression "lVar8 = FUN_0010f4a0(*param_1,2,iVar5)" identifier = (call_expression "FUN_0010f4a0(*param_1,2,iVar5)" identifier (argument_list "(*param_1,2,iVar5)" ( (pointer_expression "*param_1" * identifier) , number_literal , identifier )))) ;)) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) })) (goto_statement "goto LAB_00111e80;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 't':\n    if (param_3 == (long *)0x0) {\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }\n    iVar5 = FUN_001122d0(param_1,param_2,local_40);\n    pcVar16 = local_40[0];\n    if (iVar5 == 0) {\n      return false;\n    }\n    sVar7 = strlen(local_40[0]);\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9);\n    *param_3 = lVar8;\n    free(local_40[0]);\n    lVar8 = *param_3;\n    goto joined_r0x00111f61;" case (char_literal "'t'" ' character ') : (if_statement "if (param_3 == (long *)0x0) {\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }" if (parenthesized_expression "(param_3 == (long *)0x0)" ( (binary_expression "param_3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }" { (expression_statement "iVar5 = FUN_001122d0(param_1,param_2,0);" (assignment_expression "iVar5 = FUN_001122d0(param_1,param_2,0)" identifier = (call_expression "FUN_001122d0(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal )))) ;) (labeled_statement "joined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }" statement_identifier : (if_statement "if (iVar5 != 0) {\n        return true;\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        return true;\n      }" { (return_statement "return true;" return true ;) }))) (return_statement "return false;" return false ;) })) (expression_statement "iVar5 = FUN_001122d0(param_1,param_2,local_40);" (assignment_expression "iVar5 = FUN_001122d0(param_1,param_2,local_40)" identifier = (call_expression "FUN_001122d0(param_1,param_2,local_40)" identifier (argument_list "(param_1,param_2,local_40)" ( identifier , identifier , identifier )))) ;) (expression_statement "pcVar16 = local_40[0];" (assignment_expression "pcVar16 = local_40[0]" identifier = (subscript_expression "local_40[0]" identifier [ number_literal ])) ;) (if_statement "if (iVar5 == 0) {\n      return false;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (expression_statement "sVar7 = strlen(local_40[0]);" (assignment_expression "sVar7 = strlen(local_40[0])" identifier = (call_expression "strlen(local_40[0])" identifier (argument_list "(local_40[0])" ( (subscript_expression "local_40[0]" identifier [ number_literal ]) )))) ;) (expression_statement "lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9);" (assignment_expression "lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9)" identifier = (call_expression "FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9)" identifier (argument_list "(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9)" ( (pointer_expression "*param_1" * identifier) , (binary_expression "param_1[1] + 0x1a0" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) , identifier , (binary_expression "sVar7 & 0xffffffff" identifier & number_literal) , number_literal )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "free(local_40[0]);" (call_expression "free(local_40[0])" identifier (argument_list "(local_40[0])" ( (subscript_expression "local_40[0]" identifier [ number_literal ]) ))) ;) (expression_statement "lVar8 = *param_3;" (assignment_expression "lVar8 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (goto_statement "goto joined_r0x00111f61;" goto statement_identifier ;)) (case_statement "case 'v':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;" case (char_literal "'v'" ' character ') : (if_statement "if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" { (expression_statement "lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3)" identifier = (call_expression "FUN_0010fe00(*param_1,&DAT_00122fa3)" identifier (argument_list "(*param_1,&DAT_00122fa3)" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "&DAT_00122fa3" & identifier) )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (if_statement "if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }" { (expression_statement "lVar8 = FUN_0010f490(*param_1);" (assignment_expression "lVar8 = FUN_0010f490(*param_1)" identifier = (call_expression "FUN_0010f490(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) })) (goto_statement "goto LAB_00111e80;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 'w':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;" case (char_literal "'w'" ' character ') : (if_statement "if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }" { (expression_statement "lVar8 = FUN_0010fe00(*param_1,"__wchar_t");" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,"__wchar_t")" identifier = (call_expression "FUN_0010fe00(*param_1,"__wchar_t")" identifier (argument_list "(*param_1,"__wchar_t")" ( (pointer_expression "*param_1" * identifier) , (string_literal ""__wchar_t"" " string_content ") )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (if_statement "if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }" { (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00111eb3;" goto statement_identifier ;) })) (goto_statement "goto LAB_00111e80;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 'x':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" case (char_literal "'x'" ' character ') : (if_statement "if (param_3 != (long *)0x0) {\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" { (expression_statement "pcVar16 = "long long unsigned int";" (assignment_expression "pcVar16 = "long long unsigned int"" identifier = (string_literal ""long long unsigned int"" " string_content ")) ;) (if_statement "if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar16 = "long long int";\n      }" { (expression_statement "pcVar16 = "long long int";" (assignment_expression "pcVar16 = "long long int"" identifier = (string_literal ""long long int"" " string_content ")) ;) })) (expression_statement "lVar8 = FUN_0010fe00(*param_1,pcVar16);" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,pcVar16)" identifier = (call_expression "FUN_0010fe00(*param_1,pcVar16)" identifier (argument_list "(*param_1,pcVar16)" ( (pointer_expression "*param_1" * identifier) , identifier )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (if_statement "if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }" { (expression_statement "lVar8 = FUN_0010f4a0(*param_1,8,iVar5);" (assignment_expression "lVar8 = FUN_0010f4a0(*param_1,8,iVar5)" identifier = (call_expression "FUN_0010f4a0(*param_1,8,iVar5)" identifier (argument_list "(*param_1,8,iVar5)" ( (pointer_expression "*param_1" * identifier) , number_literal , identifier )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) })) (goto_statement "goto LAB_00111e80;" goto statement_identifier ;) }))) }))) (expression_statement "*param_2 = (long)(pcVar10 + 1);" (assignment_expression "*param_2 = (long)(pcVar10 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar10 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar10 + 1)" ( (binary_expression "pcVar10 + 1" identifier + number_literal) )))) ;) (labeled_statement "LAB_00111df8:\n  if (param_3 != (long *)0x0) {\n    if (bVar2) {\n      lVar8 = FUN_0010f8f0(*param_1,*param_3);\n      *param_3 = lVar8;\n    }\n    if (bVar17 != false) {\n      lVar8 = FUN_0010f920(*param_1,*param_3);\n      *param_3 = lVar8;\n      return bVar17;\n    }\n  }" statement_identifier : (if_statement "if (param_3 != (long *)0x0) {\n    if (bVar2) {\n      lVar8 = FUN_0010f8f0(*param_1,*param_3);\n      *param_3 = lVar8;\n    }\n    if (bVar17 != false) {\n      lVar8 = FUN_0010f920(*param_1,*param_3);\n      *param_3 = lVar8;\n      return bVar17;\n    }\n  }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (bVar2) {\n      lVar8 = FUN_0010f8f0(*param_1,*param_3);\n      *param_3 = lVar8;\n    }\n    if (bVar17 != false) {\n      lVar8 = FUN_0010f920(*param_1,*param_3);\n      *param_3 = lVar8;\n      return bVar17;\n    }\n  }" { (if_statement "if (bVar2) {\n      lVar8 = FUN_0010f8f0(*param_1,*param_3);\n      *param_3 = lVar8;\n    }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n      lVar8 = FUN_0010f8f0(*param_1,*param_3);\n      *param_3 = lVar8;\n    }" { (expression_statement "lVar8 = FUN_0010f8f0(*param_1,*param_3);" (assignment_expression "lVar8 = FUN_0010f8f0(*param_1,*param_3)" identifier = (call_expression "FUN_0010f8f0(*param_1,*param_3)" identifier (argument_list "(*param_1,*param_3)" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "*param_3" * identifier) )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) })) (if_statement "if (bVar17 != false) {\n      lVar8 = FUN_0010f920(*param_1,*param_3);\n      *param_3 = lVar8;\n      return bVar17;\n    }" if (parenthesized_expression "(bVar17 != false)" ( (binary_expression "bVar17 != false" identifier != false) )) (compound_statement "{\n      lVar8 = FUN_0010f920(*param_1,*param_3);\n      *param_3 = lVar8;\n      return bVar17;\n    }" { (expression_statement "lVar8 = FUN_0010f920(*param_1,*param_3);" (assignment_expression "lVar8 = FUN_0010f920(*param_1,*param_3)" identifier = (call_expression "FUN_0010f920(*param_1,*param_3)" identifier (argument_list "(*param_1,*param_3)" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "*param_3" * identifier) )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (return_statement "return bVar17;" return identifier ;) })) }))) (return_statement "return true;" return true ;) })))
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nbfd_boolean stab_demangle_type(stab_demangle_info *minfo,char **pp,debug_type_conflict *ptype)\n\n{\n  char cVar1;\n  bool bVar2;\n  bool bVar3;\n  byte bVar4;\n  int iVar5;\n  bfd_boolean bVar6;\n  ulong uVar7;\n  size_t sVar8;\n  debug_type_conflict pdVar9;\n  debug_type pdVar10;\n  char *pcVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  uint *pvarargs;\n  bfd_boolean *pvarargs_00;\n  debug_type_conflict **pppdVar14;\n  char **pstart;\n  debug_type_conflict *ptype_00;\n  char *pcVar15;\n  long upper;\n  uint len;\n  bfd_boolean varargs_1;\n  uint i;\n  char *p;\n  \n  pcVar15 = *pp;\n  cVar1 = *pcVar15;\n  switch(cVar1) {\n  case 'A':\n    pbVar13 = (byte *)(pcVar15 + 1);\n    *pp = (char *)pbVar13;\n    bVar4 = pcVar15[1];\n    if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      upper = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *pp = (char *)(pbVar13 + 1);\n        bVar6 = stab_demangle_type(minfo,pp,ptype);\n        if (bVar6 == 0) {\n          return 0;\n        }\n        if (ptype == (debug_type_conflict *)0x0) {\n          return 1;\n        }\n        pdVar9 = debug_find_named_type(minfo->dhandle,"int");\n        if (pdVar9 == (debug_type_conflict)0x0) {\n          pdVar9 = debug_make_int_type(minfo->dhandle,4,0);\n        }\n        pdVar9 = debug_make_array_type(minfo->dhandle,*ptype,pdVar9,0,upper,0);\n        *ptype = pdVar9;\n        return 1;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar13 = (byte *)(pcVar15 + 2);\n      upper = 0;\n      do {\n        *pp = (char *)pbVar13;\n        upper = (long)((char)bVar4 + -0x30) + upper * 10;\n        bVar4 = *pbVar13;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar13 = pbVar13 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }\n    break;\n  default:\n    bVar3 = false;\n    pstart = (char **)0x0;\n    iVar5 = 0;\n    bVar2 = false;\n    pcVar11 = pcVar15;\n    do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *pp = pcVar11 + 1;\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *pp = pcVar11 + 1;\n      }\n      else if (cVar1 == 'U') {\n        pstart = (char **)0x1;\n        *pp = pcVar11 + 1;\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        iVar5 = 1;\n        *pp = pcVar11 + 1;\n      }\n      cVar1 = pcVar11[1];\n      pcVar11 = *pp;\n    } while( true );\n  case 'C':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_type(minfo,pp,ptype);\n    if (bVar6 == 0) {\n      return 0;\n    }\n    if (ptype == (debug_type_conflict *)0x0) {\n      return 1;\n    }\n    pdVar9 = debug_make_const_type(minfo->dhandle,*ptype);\n    *ptype = pdVar9;\n    return 1;\n  case 'F':\n    pvarargs = (uint *)0x0;\n    pppdVar14 = (debug_type_conflict **)0x0;\n    *pp = pcVar15 + 1;\n    if (ptype != (debug_type_conflict *)0x0) {\n      pvarargs = &i;\n      pppdVar14 = (debug_type_conflict **)&p;\n    }\n    bVar6 = stab_demangle_args(minfo,pp,pppdVar14,(bfd_boolean *)pvarargs);\n    if (bVar6 == 0) {\n      return 0;\n    }\n    if (**pp == '_') {\n      *pp = *pp + 1;\n      bVar6 = stab_demangle_type(minfo,pp,ptype);\n      if (bVar6 == 0) {\n        return 0;\n      }\n      if (ptype == (debug_type_conflict *)0x0) {\n        return 1;\n      }\n      pdVar9 = debug_make_function_type(minfo->dhandle,*ptype,(debug_type_conflict *)p,i);\n      *ptype = pdVar9;\n      return 1;\n    }\n    break;\n  case 'G':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_type(minfo,pp,ptype);\n    return (uint)(bVar6 != 0);\n  case 'M':\n  case 'O':\n    _i = (debug_type)0x0;\n    cVar1 = *pcVar15;\n    *pp = pcVar15 + 1;\n    p = (char *)0x0;\n    varargs_1 = 0;\n    bVar4 = pcVar15[1];\n    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      ptype_00 = (debug_type_conflict *)&i;\n      if (ptype == (debug_type_conflict *)0x0) {\n        ptype_00 = (debug_type_conflict *)0x0;\n      }\n      bVar6 = stab_demangle_qualified(minfo,pp,ptype_00);\n      if (bVar6 == 0) {\n        return 0;\n      }\nLAB_00111b38:\n      pbVar13 = (byte *)*pp;\n    }\n    else {\n      len = 0;\n      uVar7 = (ulong)bVar4;\n      pbVar13 = (byte *)(pcVar15 + 2);\n      do {\n        pbVar12 = pbVar13;\n        *pp = (char *)pbVar12;\n        len = (char)uVar7 + -0x30 + len * 10;\n        uVar7 = (ulong)*pbVar12;\n        pbVar13 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)*pbVar12 * 2] & 4) != 0);\n      sVar8 = strlen((char *)pbVar12);\n      if (sVar8 < len) break;\n      pbVar13 = pbVar12 + len;\n      *pp = (char *)pbVar13;\n      if (ptype != (debug_type_conflict *)0x0) {\n        _i = stab_find_tagged_type\n                       (minfo->dhandle,(stab_handle *)&minfo->info->tags,(char *)pbVar12,len,\n                        DEBUG_KIND_CLASS);\n        if (_i == (debug_type)0x0) {\n          return 0;\n        }\n        goto LAB_00111b38;\n      }\n    }\n    bVar4 = *pbVar13;\n    if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar12 = pbVar13, bVar4 == 0x56)) {\n        pbVar12 = pbVar13 + 1;\n        *pp = (char *)pbVar12;\n        bVar4 = pbVar13[1];\n      }\n      if (bVar4 != 0x46) break;\n      *pp = (char *)(pbVar12 + 1);\n      if (ptype == (debug_type_conflict *)0x0) {\n        pvarargs_00 = (bfd_boolean *)0x0;\n        pppdVar14 = (debug_type_conflict **)0x0;\n      }\n      else {\n        pvarargs_00 = &varargs_1;\n        pppdVar14 = (debug_type_conflict **)&p;\n      }\n      bVar6 = stab_demangle_args(minfo,pp,pppdVar14,pvarargs_00);\n      if (bVar6 == 0) {\n        return 0;\n      }\n      pbVar13 = (byte *)*pp;\n      bVar4 = *pbVar13;\n    }\n    if (bVar4 == 0x5f) {\n      *pp = (char *)(pbVar13 + 1);\n      bVar6 = stab_demangle_type(minfo,pp,ptype);\n      if (bVar6 == 0) {\n        return 0;\n      }\n      if (ptype == (debug_type_conflict *)0x0) {\n        return 1;\n      }\n      if (cVar1 != 'M') {\n        pdVar9 = debug_make_offset_type(minfo->dhandle,_i,*ptype);\n        *ptype = pdVar9;\n        return 1;\n      }\n      pdVar9 = debug_make_method_type(minfo->dhandle,*ptype,_i,(debug_type_conflict *)p,varargs_1);\n      *ptype = pdVar9;\n      return 1;\n    }\n    break;\n  case 'P':\n  case 'p':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_type(minfo,pp,ptype);\n    if (bVar6 == 0) {\n      return 0;\n    }\n    if (ptype == (debug_type_conflict *)0x0) {\n      return 1;\n    }\n    pdVar9 = debug_make_pointer_type(minfo->dhandle,*ptype);\n    *ptype = pdVar9;\n    return 1;\n  case 'Q':\n    bVar6 = stab_demangle_qualified(minfo,pp,ptype);\n    return (uint)(bVar6 != 0);\n  case 'R':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_type(minfo,pp,ptype);\n    if (bVar6 == 0) {\n      return 0;\n    }\n    if (ptype == (debug_type_conflict *)0x0) {\n      return 1;\n    }\n    pdVar9 = debug_make_reference_type(minfo->dhandle,*ptype);\n    *ptype = pdVar9;\n    return 1;\n  case 'T':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_get_count(pp,&i);\n    if (bVar6 != 0) {\n      if (i < minfo->typestring_count) {\n        p = minfo->typestrings[(ulong)_i & 0xffffffff].typestring;\n        iVar5 = stab_demangle_type(minfo,&p,ptype);\n        goto joined_r0x0011192e;\n      }\n    }\n  }\nswitchD_00111d06_caseD_1:\n  stab_bad_demangle(pcVar15);\n  return 0;\nswitchD_00111d06_caseD_30:\n  bVar6 = stab_demangle_class((stab_demangle_info *)pp,&p,pstart);\n  if (bVar6 == 0) {\n    return 0;\n  }\n  if (ptype == (debug_type_conflict *)0x0) {\n    return 1;\n  }\n  pcVar15 = savestring(p,(int)*pp - (int)p);\n  pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n  *ptype = pdVar9;\n  free(pcVar15);\n  if (*ptype == (debug_type_conflict)0x0) {\n    pdVar10 = stab_find_tagged_type\n                        (minfo->dhandle,(stab_handle *)&minfo->info->tags,p,(int)*pp - (int)p,\n                         DEBUG_KIND_ILLEGAL);\n    *ptype = pdVar10;\njoined_r0x00111f61:\n    if (pdVar10 == (debug_type)0x0) {\n      return 0;\n    }\n  }\n  goto LAB_00111df8;\ncode_r0x00111cf8:\n  bVar6 = (bfd_boolean)pstart;\n  switch(cVar1) {\n  case '\0':\n  case '_':\n    stab_bad_demangle(pcVar15);\n    goto LAB_00111df8;\n  default:\n    goto switchD_00111d06_caseD_1;\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    goto switchD_00111d06_caseD_30;\n  case 'G':\n    *pp = pcVar11 + 1;\n    pstart = (char **)(ulong)(byte)pcVar11[1];\n    if ((_sch_istable[(long)pstart * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;\n  case 'b':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"bool");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_bool_type(minfo->dhandle,4);\n        *ptype = pdVar9;\n      }\nLAB_00111e80:\n      pcVar11 = *pp;\n    }\n    break;\n  case 'c':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "unsigned char";\n      if ((bVar6 == 0) && (pcVar15 = "signed char", !bVar3)) {\n        pcVar15 = "char";\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,1,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'd':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "double";\nLAB_00111fc0:\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_float_type(minfo->dhandle,8);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'f':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"float");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_float_type(minfo->dhandle,4);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'i':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "unsigned int";\n      pcVar11 = "int";\nLAB_0011200d:\n      if (bVar6 == 0) {\n        pcVar15 = pcVar11;\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,4,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'l':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "long unsigned int";\n      pcVar11 = "long int";\n      goto LAB_0011200d;\n    }\n    break;\n  case 'r':\n    pcVar15 = "long double";\n    if (ptype != (debug_type_conflict *)0x0) goto LAB_00111fc0;\n    break;\n  case 's':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "short unsigned int";\n      if (bVar6 == 0) {\n        pcVar15 = "short int";\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\nLAB_00111eb3:\n        pdVar9 = debug_make_int_type(minfo->dhandle,2,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 't':\n    if (ptype == (debug_type_conflict *)0x0) {\n      iVar5 = stab_demangle_template(minfo,pp,(char **)0x0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return 1;\n      }\n      return 0;\n    }\n    bVar6 = stab_demangle_template(minfo,pp,&p);\n    pcVar15 = p;\n    if (bVar6 == 0) {\n      return 0;\n    }\n    sVar8 = strlen(p);\n    pdVar10 = stab_find_tagged_type\n                        (minfo->dhandle,(stab_handle *)&minfo->info->tags,pcVar15,(int)sVar8,\n                         DEBUG_KIND_CLASS);\n    *ptype = pdVar10;\n    free(p);\n    pdVar10 = *ptype;\n    goto joined_r0x00111f61;\n  case 'v':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"void");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_void_type(minfo->dhandle);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'w':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"__wchar_t");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        bVar6 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'x':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "long long unsigned int";\n      if (bVar6 == 0) {\n        pcVar15 = "long long int";\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,8,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n  }\n  *pp = pcVar11 + 1;\nLAB_00111df8:\n  if (ptype != (debug_type_conflict *)0x0) {\n    if (bVar2) {\n      pdVar9 = debug_make_const_type(minfo->dhandle,*ptype);\n      *ptype = pdVar9;\n    }\n    if (iVar5 != 0) {\n      pdVar9 = debug_make_volatile_type(minfo->dhandle,*ptype);\n      *ptype = pdVar9;\n      return iVar5;\n    }\n  }\n  return 1;\n}\n\n" comment (function_definition "bfd_boolean stab_demangle_type(stab_demangle_info *minfo,char **pp,debug_type_conflict *ptype)\n\n{\n  char cVar1;\n  bool bVar2;\n  bool bVar3;\n  byte bVar4;\n  int iVar5;\n  bfd_boolean bVar6;\n  ulong uVar7;\n  size_t sVar8;\n  debug_type_conflict pdVar9;\n  debug_type pdVar10;\n  char *pcVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  uint *pvarargs;\n  bfd_boolean *pvarargs_00;\n  debug_type_conflict **pppdVar14;\n  char **pstart;\n  debug_type_conflict *ptype_00;\n  char *pcVar15;\n  long upper;\n  uint len;\n  bfd_boolean varargs_1;\n  uint i;\n  char *p;\n  \n  pcVar15 = *pp;\n  cVar1 = *pcVar15;\n  switch(cVar1) {\n  case 'A':\n    pbVar13 = (byte *)(pcVar15 + 1);\n    *pp = (char *)pbVar13;\n    bVar4 = pcVar15[1];\n    if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      upper = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *pp = (char *)(pbVar13 + 1);\n        bVar6 = stab_demangle_type(minfo,pp,ptype);\n        if (bVar6 == 0) {\n          return 0;\n        }\n        if (ptype == (debug_type_conflict *)0x0) {\n          return 1;\n        }\n        pdVar9 = debug_find_named_type(minfo->dhandle,"int");\n        if (pdVar9 == (debug_type_conflict)0x0) {\n          pdVar9 = debug_make_int_type(minfo->dhandle,4,0);\n        }\n        pdVar9 = debug_make_array_type(minfo->dhandle,*ptype,pdVar9,0,upper,0);\n        *ptype = pdVar9;\n        return 1;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar13 = (byte *)(pcVar15 + 2);\n      upper = 0;\n      do {\n        *pp = (char *)pbVar13;\n        upper = (long)((char)bVar4 + -0x30) + upper * 10;\n        bVar4 = *pbVar13;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar13 = pbVar13 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }\n    break;\n  default:\n    bVar3 = false;\n    pstart = (char **)0x0;\n    iVar5 = 0;\n    bVar2 = false;\n    pcVar11 = pcVar15;\n    do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *pp = pcVar11 + 1;\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *pp = pcVar11 + 1;\n      }\n      else if (cVar1 == 'U') {\n        pstart = (char **)0x1;\n        *pp = pcVar11 + 1;\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        iVar5 = 1;\n        *pp = pcVar11 + 1;\n      }\n      cVar1 = pcVar11[1];\n      pcVar11 = *pp;\n    } while( true );\n  case 'C':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_type(minfo,pp,ptype);\n    if (bVar6 == 0) {\n      return 0;\n    }\n    if (ptype == (debug_type_conflict *)0x0) {\n      return 1;\n    }\n    pdVar9 = debug_make_const_type(minfo->dhandle,*ptype);\n    *ptype = pdVar9;\n    return 1;\n  case 'F':\n    pvarargs = (uint *)0x0;\n    pppdVar14 = (debug_type_conflict **)0x0;\n    *pp = pcVar15 + 1;\n    if (ptype != (debug_type_conflict *)0x0) {\n      pvarargs = &i;\n      pppdVar14 = (debug_type_conflict **)&p;\n    }\n    bVar6 = stab_demangle_args(minfo,pp,pppdVar14,(bfd_boolean *)pvarargs);\n    if (bVar6 == 0) {\n      return 0;\n    }\n    if (**pp == '_') {\n      *pp = *pp + 1;\n      bVar6 = stab_demangle_type(minfo,pp,ptype);\n      if (bVar6 == 0) {\n        return 0;\n      }\n      if (ptype == (debug_type_conflict *)0x0) {\n        return 1;\n      }\n      pdVar9 = debug_make_function_type(minfo->dhandle,*ptype,(debug_type_conflict *)p,i);\n      *ptype = pdVar9;\n      return 1;\n    }\n    break;\n  case 'G':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_type(minfo,pp,ptype);\n    return (uint)(bVar6 != 0);\n  case 'M':\n  case 'O':\n    _i = (debug_type)0x0;\n    cVar1 = *pcVar15;\n    *pp = pcVar15 + 1;\n    p = (char *)0x0;\n    varargs_1 = 0;\n    bVar4 = pcVar15[1];\n    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      ptype_00 = (debug_type_conflict *)&i;\n      if (ptype == (debug_type_conflict *)0x0) {\n        ptype_00 = (debug_type_conflict *)0x0;\n      }\n      bVar6 = stab_demangle_qualified(minfo,pp,ptype_00);\n      if (bVar6 == 0) {\n        return 0;\n      }\nLAB_00111b38:\n      pbVar13 = (byte *)*pp;\n    }\n    else {\n      len = 0;\n      uVar7 = (ulong)bVar4;\n      pbVar13 = (byte *)(pcVar15 + 2);\n      do {\n        pbVar12 = pbVar13;\n        *pp = (char *)pbVar12;\n        len = (char)uVar7 + -0x30 + len * 10;\n        uVar7 = (ulong)*pbVar12;\n        pbVar13 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)*pbVar12 * 2] & 4) != 0);\n      sVar8 = strlen((char *)pbVar12);\n      if (sVar8 < len) break;\n      pbVar13 = pbVar12 + len;\n      *pp = (char *)pbVar13;\n      if (ptype != (debug_type_conflict *)0x0) {\n        _i = stab_find_tagged_type\n                       (minfo->dhandle,(stab_handle *)&minfo->info->tags,(char *)pbVar12,len,\n                        DEBUG_KIND_CLASS);\n        if (_i == (debug_type)0x0) {\n          return 0;\n        }\n        goto LAB_00111b38;\n      }\n    }\n    bVar4 = *pbVar13;\n    if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar12 = pbVar13, bVar4 == 0x56)) {\n        pbVar12 = pbVar13 + 1;\n        *pp = (char *)pbVar12;\n        bVar4 = pbVar13[1];\n      }\n      if (bVar4 != 0x46) break;\n      *pp = (char *)(pbVar12 + 1);\n      if (ptype == (debug_type_conflict *)0x0) {\n        pvarargs_00 = (bfd_boolean *)0x0;\n        pppdVar14 = (debug_type_conflict **)0x0;\n      }\n      else {\n        pvarargs_00 = &varargs_1;\n        pppdVar14 = (debug_type_conflict **)&p;\n      }\n      bVar6 = stab_demangle_args(minfo,pp,pppdVar14,pvarargs_00);\n      if (bVar6 == 0) {\n        return 0;\n      }\n      pbVar13 = (byte *)*pp;\n      bVar4 = *pbVar13;\n    }\n    if (bVar4 == 0x5f) {\n      *pp = (char *)(pbVar13 + 1);\n      bVar6 = stab_demangle_type(minfo,pp,ptype);\n      if (bVar6 == 0) {\n        return 0;\n      }\n      if (ptype == (debug_type_conflict *)0x0) {\n        return 1;\n      }\n      if (cVar1 != 'M') {\n        pdVar9 = debug_make_offset_type(minfo->dhandle,_i,*ptype);\n        *ptype = pdVar9;\n        return 1;\n      }\n      pdVar9 = debug_make_method_type(minfo->dhandle,*ptype,_i,(debug_type_conflict *)p,varargs_1);\n      *ptype = pdVar9;\n      return 1;\n    }\n    break;\n  case 'P':\n  case 'p':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_type(minfo,pp,ptype);\n    if (bVar6 == 0) {\n      return 0;\n    }\n    if (ptype == (debug_type_conflict *)0x0) {\n      return 1;\n    }\n    pdVar9 = debug_make_pointer_type(minfo->dhandle,*ptype);\n    *ptype = pdVar9;\n    return 1;\n  case 'Q':\n    bVar6 = stab_demangle_qualified(minfo,pp,ptype);\n    return (uint)(bVar6 != 0);\n  case 'R':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_type(minfo,pp,ptype);\n    if (bVar6 == 0) {\n      return 0;\n    }\n    if (ptype == (debug_type_conflict *)0x0) {\n      return 1;\n    }\n    pdVar9 = debug_make_reference_type(minfo->dhandle,*ptype);\n    *ptype = pdVar9;\n    return 1;\n  case 'T':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_get_count(pp,&i);\n    if (bVar6 != 0) {\n      if (i < minfo->typestring_count) {\n        p = minfo->typestrings[(ulong)_i & 0xffffffff].typestring;\n        iVar5 = stab_demangle_type(minfo,&p,ptype);\n        goto joined_r0x0011192e;\n      }\n    }\n  }\nswitchD_00111d06_caseD_1:\n  stab_bad_demangle(pcVar15);\n  return 0;\nswitchD_00111d06_caseD_30:\n  bVar6 = stab_demangle_class((stab_demangle_info *)pp,&p,pstart);\n  if (bVar6 == 0) {\n    return 0;\n  }\n  if (ptype == (debug_type_conflict *)0x0) {\n    return 1;\n  }\n  pcVar15 = savestring(p,(int)*pp - (int)p);\n  pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n  *ptype = pdVar9;\n  free(pcVar15);\n  if (*ptype == (debug_type_conflict)0x0) {\n    pdVar10 = stab_find_tagged_type\n                        (minfo->dhandle,(stab_handle *)&minfo->info->tags,p,(int)*pp - (int)p,\n                         DEBUG_KIND_ILLEGAL);\n    *ptype = pdVar10;\njoined_r0x00111f61:\n    if (pdVar10 == (debug_type)0x0) {\n      return 0;\n    }\n  }\n  goto LAB_00111df8;\ncode_r0x00111cf8:\n  bVar6 = (bfd_boolean)pstart;\n  switch(cVar1) {\n  case '\0':\n  case '_':\n    stab_bad_demangle(pcVar15);\n    goto LAB_00111df8;\n  default:\n    goto switchD_00111d06_caseD_1;\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    goto switchD_00111d06_caseD_30;\n  case 'G':\n    *pp = pcVar11 + 1;\n    pstart = (char **)(ulong)(byte)pcVar11[1];\n    if ((_sch_istable[(long)pstart * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;\n  case 'b':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"bool");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_bool_type(minfo->dhandle,4);\n        *ptype = pdVar9;\n      }\nLAB_00111e80:\n      pcVar11 = *pp;\n    }\n    break;\n  case 'c':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "unsigned char";\n      if ((bVar6 == 0) && (pcVar15 = "signed char", !bVar3)) {\n        pcVar15 = "char";\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,1,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'd':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "double";\nLAB_00111fc0:\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_float_type(minfo->dhandle,8);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'f':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"float");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_float_type(minfo->dhandle,4);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'i':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "unsigned int";\n      pcVar11 = "int";\nLAB_0011200d:\n      if (bVar6 == 0) {\n        pcVar15 = pcVar11;\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,4,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'l':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "long unsigned int";\n      pcVar11 = "long int";\n      goto LAB_0011200d;\n    }\n    break;\n  case 'r':\n    pcVar15 = "long double";\n    if (ptype != (debug_type_conflict *)0x0) goto LAB_00111fc0;\n    break;\n  case 's':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "short unsigned int";\n      if (bVar6 == 0) {\n        pcVar15 = "short int";\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\nLAB_00111eb3:\n        pdVar9 = debug_make_int_type(minfo->dhandle,2,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 't':\n    if (ptype == (debug_type_conflict *)0x0) {\n      iVar5 = stab_demangle_template(minfo,pp,(char **)0x0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return 1;\n      }\n      return 0;\n    }\n    bVar6 = stab_demangle_template(minfo,pp,&p);\n    pcVar15 = p;\n    if (bVar6 == 0) {\n      return 0;\n    }\n    sVar8 = strlen(p);\n    pdVar10 = stab_find_tagged_type\n                        (minfo->dhandle,(stab_handle *)&minfo->info->tags,pcVar15,(int)sVar8,\n                         DEBUG_KIND_CLASS);\n    *ptype = pdVar10;\n    free(p);\n    pdVar10 = *ptype;\n    goto joined_r0x00111f61;\n  case 'v':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"void");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_void_type(minfo->dhandle);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'w':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"__wchar_t");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        bVar6 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'x':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "long long unsigned int";\n      if (bVar6 == 0) {\n        pcVar15 = "long long int";\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,8,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n  }\n  *pp = pcVar11 + 1;\nLAB_00111df8:\n  if (ptype != (debug_type_conflict *)0x0) {\n    if (bVar2) {\n      pdVar9 = debug_make_const_type(minfo->dhandle,*ptype);\n      *ptype = pdVar9;\n    }\n    if (iVar5 != 0) {\n      pdVar9 = debug_make_volatile_type(minfo->dhandle,*ptype);\n      *ptype = pdVar9;\n      return iVar5;\n    }\n  }\n  return 1;\n}" type_identifier (function_declarator "stab_demangle_type(stab_demangle_info *minfo,char **pp,debug_type_conflict *ptype)" identifier (parameter_list "(stab_demangle_info *minfo,char **pp,debug_type_conflict *ptype)" ( (parameter_declaration "stab_demangle_info *minfo" type_identifier (pointer_declarator "*minfo" * identifier)) , (parameter_declaration "char **pp" primitive_type (pointer_declarator "**pp" * (pointer_declarator "*pp" * identifier))) , (parameter_declaration "debug_type_conflict *ptype" type_identifier (pointer_declarator "*ptype" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  bool bVar3;\n  byte bVar4;\n  int iVar5;\n  bfd_boolean bVar6;\n  ulong uVar7;\n  size_t sVar8;\n  debug_type_conflict pdVar9;\n  debug_type pdVar10;\n  char *pcVar11;\n  byte *pbVar12;\n  byte *pbVar13;\n  uint *pvarargs;\n  bfd_boolean *pvarargs_00;\n  debug_type_conflict **pppdVar14;\n  char **pstart;\n  debug_type_conflict *ptype_00;\n  char *pcVar15;\n  long upper;\n  uint len;\n  bfd_boolean varargs_1;\n  uint i;\n  char *p;\n  \n  pcVar15 = *pp;\n  cVar1 = *pcVar15;\n  switch(cVar1) {\n  case 'A':\n    pbVar13 = (byte *)(pcVar15 + 1);\n    *pp = (char *)pbVar13;\n    bVar4 = pcVar15[1];\n    if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      upper = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *pp = (char *)(pbVar13 + 1);\n        bVar6 = stab_demangle_type(minfo,pp,ptype);\n        if (bVar6 == 0) {\n          return 0;\n        }\n        if (ptype == (debug_type_conflict *)0x0) {\n          return 1;\n        }\n        pdVar9 = debug_find_named_type(minfo->dhandle,"int");\n        if (pdVar9 == (debug_type_conflict)0x0) {\n          pdVar9 = debug_make_int_type(minfo->dhandle,4,0);\n        }\n        pdVar9 = debug_make_array_type(minfo->dhandle,*ptype,pdVar9,0,upper,0);\n        *ptype = pdVar9;\n        return 1;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar13 = (byte *)(pcVar15 + 2);\n      upper = 0;\n      do {\n        *pp = (char *)pbVar13;\n        upper = (long)((char)bVar4 + -0x30) + upper * 10;\n        bVar4 = *pbVar13;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar13 = pbVar13 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }\n    break;\n  default:\n    bVar3 = false;\n    pstart = (char **)0x0;\n    iVar5 = 0;\n    bVar2 = false;\n    pcVar11 = pcVar15;\n    do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *pp = pcVar11 + 1;\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *pp = pcVar11 + 1;\n      }\n      else if (cVar1 == 'U') {\n        pstart = (char **)0x1;\n        *pp = pcVar11 + 1;\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        iVar5 = 1;\n        *pp = pcVar11 + 1;\n      }\n      cVar1 = pcVar11[1];\n      pcVar11 = *pp;\n    } while( true );\n  case 'C':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_type(minfo,pp,ptype);\n    if (bVar6 == 0) {\n      return 0;\n    }\n    if (ptype == (debug_type_conflict *)0x0) {\n      return 1;\n    }\n    pdVar9 = debug_make_const_type(minfo->dhandle,*ptype);\n    *ptype = pdVar9;\n    return 1;\n  case 'F':\n    pvarargs = (uint *)0x0;\n    pppdVar14 = (debug_type_conflict **)0x0;\n    *pp = pcVar15 + 1;\n    if (ptype != (debug_type_conflict *)0x0) {\n      pvarargs = &i;\n      pppdVar14 = (debug_type_conflict **)&p;\n    }\n    bVar6 = stab_demangle_args(minfo,pp,pppdVar14,(bfd_boolean *)pvarargs);\n    if (bVar6 == 0) {\n      return 0;\n    }\n    if (**pp == '_') {\n      *pp = *pp + 1;\n      bVar6 = stab_demangle_type(minfo,pp,ptype);\n      if (bVar6 == 0) {\n        return 0;\n      }\n      if (ptype == (debug_type_conflict *)0x0) {\n        return 1;\n      }\n      pdVar9 = debug_make_function_type(minfo->dhandle,*ptype,(debug_type_conflict *)p,i);\n      *ptype = pdVar9;\n      return 1;\n    }\n    break;\n  case 'G':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_type(minfo,pp,ptype);\n    return (uint)(bVar6 != 0);\n  case 'M':\n  case 'O':\n    _i = (debug_type)0x0;\n    cVar1 = *pcVar15;\n    *pp = pcVar15 + 1;\n    p = (char *)0x0;\n    varargs_1 = 0;\n    bVar4 = pcVar15[1];\n    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      ptype_00 = (debug_type_conflict *)&i;\n      if (ptype == (debug_type_conflict *)0x0) {\n        ptype_00 = (debug_type_conflict *)0x0;\n      }\n      bVar6 = stab_demangle_qualified(minfo,pp,ptype_00);\n      if (bVar6 == 0) {\n        return 0;\n      }\nLAB_00111b38:\n      pbVar13 = (byte *)*pp;\n    }\n    else {\n      len = 0;\n      uVar7 = (ulong)bVar4;\n      pbVar13 = (byte *)(pcVar15 + 2);\n      do {\n        pbVar12 = pbVar13;\n        *pp = (char *)pbVar12;\n        len = (char)uVar7 + -0x30 + len * 10;\n        uVar7 = (ulong)*pbVar12;\n        pbVar13 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)*pbVar12 * 2] & 4) != 0);\n      sVar8 = strlen((char *)pbVar12);\n      if (sVar8 < len) break;\n      pbVar13 = pbVar12 + len;\n      *pp = (char *)pbVar13;\n      if (ptype != (debug_type_conflict *)0x0) {\n        _i = stab_find_tagged_type\n                       (minfo->dhandle,(stab_handle *)&minfo->info->tags,(char *)pbVar12,len,\n                        DEBUG_KIND_CLASS);\n        if (_i == (debug_type)0x0) {\n          return 0;\n        }\n        goto LAB_00111b38;\n      }\n    }\n    bVar4 = *pbVar13;\n    if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar12 = pbVar13, bVar4 == 0x56)) {\n        pbVar12 = pbVar13 + 1;\n        *pp = (char *)pbVar12;\n        bVar4 = pbVar13[1];\n      }\n      if (bVar4 != 0x46) break;\n      *pp = (char *)(pbVar12 + 1);\n      if (ptype == (debug_type_conflict *)0x0) {\n        pvarargs_00 = (bfd_boolean *)0x0;\n        pppdVar14 = (debug_type_conflict **)0x0;\n      }\n      else {\n        pvarargs_00 = &varargs_1;\n        pppdVar14 = (debug_type_conflict **)&p;\n      }\n      bVar6 = stab_demangle_args(minfo,pp,pppdVar14,pvarargs_00);\n      if (bVar6 == 0) {\n        return 0;\n      }\n      pbVar13 = (byte *)*pp;\n      bVar4 = *pbVar13;\n    }\n    if (bVar4 == 0x5f) {\n      *pp = (char *)(pbVar13 + 1);\n      bVar6 = stab_demangle_type(minfo,pp,ptype);\n      if (bVar6 == 0) {\n        return 0;\n      }\n      if (ptype == (debug_type_conflict *)0x0) {\n        return 1;\n      }\n      if (cVar1 != 'M') {\n        pdVar9 = debug_make_offset_type(minfo->dhandle,_i,*ptype);\n        *ptype = pdVar9;\n        return 1;\n      }\n      pdVar9 = debug_make_method_type(minfo->dhandle,*ptype,_i,(debug_type_conflict *)p,varargs_1);\n      *ptype = pdVar9;\n      return 1;\n    }\n    break;\n  case 'P':\n  case 'p':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_type(minfo,pp,ptype);\n    if (bVar6 == 0) {\n      return 0;\n    }\n    if (ptype == (debug_type_conflict *)0x0) {\n      return 1;\n    }\n    pdVar9 = debug_make_pointer_type(minfo->dhandle,*ptype);\n    *ptype = pdVar9;\n    return 1;\n  case 'Q':\n    bVar6 = stab_demangle_qualified(minfo,pp,ptype);\n    return (uint)(bVar6 != 0);\n  case 'R':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_type(minfo,pp,ptype);\n    if (bVar6 == 0) {\n      return 0;\n    }\n    if (ptype == (debug_type_conflict *)0x0) {\n      return 1;\n    }\n    pdVar9 = debug_make_reference_type(minfo->dhandle,*ptype);\n    *ptype = pdVar9;\n    return 1;\n  case 'T':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_get_count(pp,&i);\n    if (bVar6 != 0) {\n      if (i < minfo->typestring_count) {\n        p = minfo->typestrings[(ulong)_i & 0xffffffff].typestring;\n        iVar5 = stab_demangle_type(minfo,&p,ptype);\n        goto joined_r0x0011192e;\n      }\n    }\n  }\nswitchD_00111d06_caseD_1:\n  stab_bad_demangle(pcVar15);\n  return 0;\nswitchD_00111d06_caseD_30:\n  bVar6 = stab_demangle_class((stab_demangle_info *)pp,&p,pstart);\n  if (bVar6 == 0) {\n    return 0;\n  }\n  if (ptype == (debug_type_conflict *)0x0) {\n    return 1;\n  }\n  pcVar15 = savestring(p,(int)*pp - (int)p);\n  pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n  *ptype = pdVar9;\n  free(pcVar15);\n  if (*ptype == (debug_type_conflict)0x0) {\n    pdVar10 = stab_find_tagged_type\n                        (minfo->dhandle,(stab_handle *)&minfo->info->tags,p,(int)*pp - (int)p,\n                         DEBUG_KIND_ILLEGAL);\n    *ptype = pdVar10;\njoined_r0x00111f61:\n    if (pdVar10 == (debug_type)0x0) {\n      return 0;\n    }\n  }\n  goto LAB_00111df8;\ncode_r0x00111cf8:\n  bVar6 = (bfd_boolean)pstart;\n  switch(cVar1) {\n  case '\0':\n  case '_':\n    stab_bad_demangle(pcVar15);\n    goto LAB_00111df8;\n  default:\n    goto switchD_00111d06_caseD_1;\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    goto switchD_00111d06_caseD_30;\n  case 'G':\n    *pp = pcVar11 + 1;\n    pstart = (char **)(ulong)(byte)pcVar11[1];\n    if ((_sch_istable[(long)pstart * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;\n  case 'b':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"bool");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_bool_type(minfo->dhandle,4);\n        *ptype = pdVar9;\n      }\nLAB_00111e80:\n      pcVar11 = *pp;\n    }\n    break;\n  case 'c':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "unsigned char";\n      if ((bVar6 == 0) && (pcVar15 = "signed char", !bVar3)) {\n        pcVar15 = "char";\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,1,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'd':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "double";\nLAB_00111fc0:\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_float_type(minfo->dhandle,8);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'f':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"float");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_float_type(minfo->dhandle,4);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'i':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "unsigned int";\n      pcVar11 = "int";\nLAB_0011200d:\n      if (bVar6 == 0) {\n        pcVar15 = pcVar11;\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,4,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'l':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "long unsigned int";\n      pcVar11 = "long int";\n      goto LAB_0011200d;\n    }\n    break;\n  case 'r':\n    pcVar15 = "long double";\n    if (ptype != (debug_type_conflict *)0x0) goto LAB_00111fc0;\n    break;\n  case 's':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "short unsigned int";\n      if (bVar6 == 0) {\n        pcVar15 = "short int";\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\nLAB_00111eb3:\n        pdVar9 = debug_make_int_type(minfo->dhandle,2,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 't':\n    if (ptype == (debug_type_conflict *)0x0) {\n      iVar5 = stab_demangle_template(minfo,pp,(char **)0x0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return 1;\n      }\n      return 0;\n    }\n    bVar6 = stab_demangle_template(minfo,pp,&p);\n    pcVar15 = p;\n    if (bVar6 == 0) {\n      return 0;\n    }\n    sVar8 = strlen(p);\n    pdVar10 = stab_find_tagged_type\n                        (minfo->dhandle,(stab_handle *)&minfo->info->tags,pcVar15,(int)sVar8,\n                         DEBUG_KIND_CLASS);\n    *ptype = pdVar10;\n    free(p);\n    pdVar10 = *ptype;\n    goto joined_r0x00111f61;\n  case 'v':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"void");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_void_type(minfo->dhandle);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'w':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"__wchar_t");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        bVar6 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'x':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "long long unsigned int";\n      if (bVar6 == 0) {\n        pcVar15 = "long long int";\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,8,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n  }\n  *pp = pcVar11 + 1;\nLAB_00111df8:\n  if (ptype != (debug_type_conflict *)0x0) {\n    if (bVar2) {\n      pdVar9 = debug_make_const_type(minfo->dhandle,*ptype);\n      *ptype = pdVar9;\n    }\n    if (iVar5 != 0) {\n      pdVar9 = debug_make_volatile_type(minfo->dhandle,*ptype);\n      *ptype = pdVar9;\n      return iVar5;\n    }\n  }\n  return 1;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "bfd_boolean bVar6;" type_identifier identifier ;) (declaration "ulong uVar7;" type_identifier identifier ;) (declaration "size_t sVar8;" primitive_type identifier ;) (declaration "debug_type_conflict pdVar9;" type_identifier identifier ;) (declaration "debug_type pdVar10;" type_identifier identifier ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "byte *pbVar13;" type_identifier (pointer_declarator "*pbVar13" * identifier) ;) (declaration "uint *pvarargs;" type_identifier (pointer_declarator "*pvarargs" * identifier) ;) (declaration "bfd_boolean *pvarargs_00;" type_identifier (pointer_declarator "*pvarargs_00" * identifier) ;) (declaration "debug_type_conflict **pppdVar14;" type_identifier (pointer_declarator "**pppdVar14" * (pointer_declarator "*pppdVar14" * identifier)) ;) (declaration "char **pstart;" primitive_type (pointer_declarator "**pstart" * (pointer_declarator "*pstart" * identifier)) ;) (declaration "debug_type_conflict *ptype_00;" type_identifier (pointer_declarator "*ptype_00" * identifier) ;) (declaration "char *pcVar15;" primitive_type (pointer_declarator "*pcVar15" * identifier) ;) (declaration "long upper;" (sized_type_specifier "long" long) identifier ;) (declaration "uint len;" type_identifier identifier ;) (declaration "bfd_boolean varargs_1;" type_identifier identifier ;) (declaration "uint i;" type_identifier identifier ;) (declaration "char *p;" primitive_type (pointer_declarator "*p" * identifier) ;) (expression_statement "pcVar15 = *pp;" (assignment_expression "pcVar15 = *pp" identifier = (pointer_expression "*pp" * identifier)) ;) (expression_statement "cVar1 = *pcVar15;" (assignment_expression "cVar1 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (switch_statement "switch(cVar1) {\n  case 'A':\n    pbVar13 = (byte *)(pcVar15 + 1);\n    *pp = (char *)pbVar13;\n    bVar4 = pcVar15[1];\n    if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      upper = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *pp = (char *)(pbVar13 + 1);\n        bVar6 = stab_demangle_type(minfo,pp,ptype);\n        if (bVar6 == 0) {\n          return 0;\n        }\n        if (ptype == (debug_type_conflict *)0x0) {\n          return 1;\n        }\n        pdVar9 = debug_find_named_type(minfo->dhandle,"int");\n        if (pdVar9 == (debug_type_conflict)0x0) {\n          pdVar9 = debug_make_int_type(minfo->dhandle,4,0);\n        }\n        pdVar9 = debug_make_array_type(minfo->dhandle,*ptype,pdVar9,0,upper,0);\n        *ptype = pdVar9;\n        return 1;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar13 = (byte *)(pcVar15 + 2);\n      upper = 0;\n      do {\n        *pp = (char *)pbVar13;\n        upper = (long)((char)bVar4 + -0x30) + upper * 10;\n        bVar4 = *pbVar13;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar13 = pbVar13 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }\n    break;\n  default:\n    bVar3 = false;\n    pstart = (char **)0x0;\n    iVar5 = 0;\n    bVar2 = false;\n    pcVar11 = pcVar15;\n    do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *pp = pcVar11 + 1;\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *pp = pcVar11 + 1;\n      }\n      else if (cVar1 == 'U') {\n        pstart = (char **)0x1;\n        *pp = pcVar11 + 1;\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        iVar5 = 1;\n        *pp = pcVar11 + 1;\n      }\n      cVar1 = pcVar11[1];\n      pcVar11 = *pp;\n    } while( true );\n  case 'C':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_type(minfo,pp,ptype);\n    if (bVar6 == 0) {\n      return 0;\n    }\n    if (ptype == (debug_type_conflict *)0x0) {\n      return 1;\n    }\n    pdVar9 = debug_make_const_type(minfo->dhandle,*ptype);\n    *ptype = pdVar9;\n    return 1;\n  case 'F':\n    pvarargs = (uint *)0x0;\n    pppdVar14 = (debug_type_conflict **)0x0;\n    *pp = pcVar15 + 1;\n    if (ptype != (debug_type_conflict *)0x0) {\n      pvarargs = &i;\n      pppdVar14 = (debug_type_conflict **)&p;\n    }\n    bVar6 = stab_demangle_args(minfo,pp,pppdVar14,(bfd_boolean *)pvarargs);\n    if (bVar6 == 0) {\n      return 0;\n    }\n    if (**pp == '_') {\n      *pp = *pp + 1;\n      bVar6 = stab_demangle_type(minfo,pp,ptype);\n      if (bVar6 == 0) {\n        return 0;\n      }\n      if (ptype == (debug_type_conflict *)0x0) {\n        return 1;\n      }\n      pdVar9 = debug_make_function_type(minfo->dhandle,*ptype,(debug_type_conflict *)p,i);\n      *ptype = pdVar9;\n      return 1;\n    }\n    break;\n  case 'G':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_type(minfo,pp,ptype);\n    return (uint)(bVar6 != 0);\n  case 'M':\n  case 'O':\n    _i = (debug_type)0x0;\n    cVar1 = *pcVar15;\n    *pp = pcVar15 + 1;\n    p = (char *)0x0;\n    varargs_1 = 0;\n    bVar4 = pcVar15[1];\n    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      ptype_00 = (debug_type_conflict *)&i;\n      if (ptype == (debug_type_conflict *)0x0) {\n        ptype_00 = (debug_type_conflict *)0x0;\n      }\n      bVar6 = stab_demangle_qualified(minfo,pp,ptype_00);\n      if (bVar6 == 0) {\n        return 0;\n      }\nLAB_00111b38:\n      pbVar13 = (byte *)*pp;\n    }\n    else {\n      len = 0;\n      uVar7 = (ulong)bVar4;\n      pbVar13 = (byte *)(pcVar15 + 2);\n      do {\n        pbVar12 = pbVar13;\n        *pp = (char *)pbVar12;\n        len = (char)uVar7 + -0x30 + len * 10;\n        uVar7 = (ulong)*pbVar12;\n        pbVar13 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)*pbVar12 * 2] & 4) != 0);\n      sVar8 = strlen((char *)pbVar12);\n      if (sVar8 < len) break;\n      pbVar13 = pbVar12 + len;\n      *pp = (char *)pbVar13;\n      if (ptype != (debug_type_conflict *)0x0) {\n        _i = stab_find_tagged_type\n                       (minfo->dhandle,(stab_handle *)&minfo->info->tags,(char *)pbVar12,len,\n                        DEBUG_KIND_CLASS);\n        if (_i == (debug_type)0x0) {\n          return 0;\n        }\n        goto LAB_00111b38;\n      }\n    }\n    bVar4 = *pbVar13;\n    if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar12 = pbVar13, bVar4 == 0x56)) {\n        pbVar12 = pbVar13 + 1;\n        *pp = (char *)pbVar12;\n        bVar4 = pbVar13[1];\n      }\n      if (bVar4 != 0x46) break;\n      *pp = (char *)(pbVar12 + 1);\n      if (ptype == (debug_type_conflict *)0x0) {\n        pvarargs_00 = (bfd_boolean *)0x0;\n        pppdVar14 = (debug_type_conflict **)0x0;\n      }\n      else {\n        pvarargs_00 = &varargs_1;\n        pppdVar14 = (debug_type_conflict **)&p;\n      }\n      bVar6 = stab_demangle_args(minfo,pp,pppdVar14,pvarargs_00);\n      if (bVar6 == 0) {\n        return 0;\n      }\n      pbVar13 = (byte *)*pp;\n      bVar4 = *pbVar13;\n    }\n    if (bVar4 == 0x5f) {\n      *pp = (char *)(pbVar13 + 1);\n      bVar6 = stab_demangle_type(minfo,pp,ptype);\n      if (bVar6 == 0) {\n        return 0;\n      }\n      if (ptype == (debug_type_conflict *)0x0) {\n        return 1;\n      }\n      if (cVar1 != 'M') {\n        pdVar9 = debug_make_offset_type(minfo->dhandle,_i,*ptype);\n        *ptype = pdVar9;\n        return 1;\n      }\n      pdVar9 = debug_make_method_type(minfo->dhandle,*ptype,_i,(debug_type_conflict *)p,varargs_1);\n      *ptype = pdVar9;\n      return 1;\n    }\n    break;\n  case 'P':\n  case 'p':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_type(minfo,pp,ptype);\n    if (bVar6 == 0) {\n      return 0;\n    }\n    if (ptype == (debug_type_conflict *)0x0) {\n      return 1;\n    }\n    pdVar9 = debug_make_pointer_type(minfo->dhandle,*ptype);\n    *ptype = pdVar9;\n    return 1;\n  case 'Q':\n    bVar6 = stab_demangle_qualified(minfo,pp,ptype);\n    return (uint)(bVar6 != 0);\n  case 'R':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_type(minfo,pp,ptype);\n    if (bVar6 == 0) {\n      return 0;\n    }\n    if (ptype == (debug_type_conflict *)0x0) {\n      return 1;\n    }\n    pdVar9 = debug_make_reference_type(minfo->dhandle,*ptype);\n    *ptype = pdVar9;\n    return 1;\n  case 'T':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_get_count(pp,&i);\n    if (bVar6 != 0) {\n      if (i < minfo->typestring_count) {\n        p = minfo->typestrings[(ulong)_i & 0xffffffff].typestring;\n        iVar5 = stab_demangle_type(minfo,&p,ptype);\n        goto joined_r0x0011192e;\n      }\n    }\n  }" switch (parenthesized_expression "(cVar1)" ( identifier )) (compound_statement "{\n  case 'A':\n    pbVar13 = (byte *)(pcVar15 + 1);\n    *pp = (char *)pbVar13;\n    bVar4 = pcVar15[1];\n    if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      upper = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *pp = (char *)(pbVar13 + 1);\n        bVar6 = stab_demangle_type(minfo,pp,ptype);\n        if (bVar6 == 0) {\n          return 0;\n        }\n        if (ptype == (debug_type_conflict *)0x0) {\n          return 1;\n        }\n        pdVar9 = debug_find_named_type(minfo->dhandle,"int");\n        if (pdVar9 == (debug_type_conflict)0x0) {\n          pdVar9 = debug_make_int_type(minfo->dhandle,4,0);\n        }\n        pdVar9 = debug_make_array_type(minfo->dhandle,*ptype,pdVar9,0,upper,0);\n        *ptype = pdVar9;\n        return 1;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar13 = (byte *)(pcVar15 + 2);\n      upper = 0;\n      do {\n        *pp = (char *)pbVar13;\n        upper = (long)((char)bVar4 + -0x30) + upper * 10;\n        bVar4 = *pbVar13;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar13 = pbVar13 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }\n    break;\n  default:\n    bVar3 = false;\n    pstart = (char **)0x0;\n    iVar5 = 0;\n    bVar2 = false;\n    pcVar11 = pcVar15;\n    do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *pp = pcVar11 + 1;\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *pp = pcVar11 + 1;\n      }\n      else if (cVar1 == 'U') {\n        pstart = (char **)0x1;\n        *pp = pcVar11 + 1;\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        iVar5 = 1;\n        *pp = pcVar11 + 1;\n      }\n      cVar1 = pcVar11[1];\n      pcVar11 = *pp;\n    } while( true );\n  case 'C':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_type(minfo,pp,ptype);\n    if (bVar6 == 0) {\n      return 0;\n    }\n    if (ptype == (debug_type_conflict *)0x0) {\n      return 1;\n    }\n    pdVar9 = debug_make_const_type(minfo->dhandle,*ptype);\n    *ptype = pdVar9;\n    return 1;\n  case 'F':\n    pvarargs = (uint *)0x0;\n    pppdVar14 = (debug_type_conflict **)0x0;\n    *pp = pcVar15 + 1;\n    if (ptype != (debug_type_conflict *)0x0) {\n      pvarargs = &i;\n      pppdVar14 = (debug_type_conflict **)&p;\n    }\n    bVar6 = stab_demangle_args(minfo,pp,pppdVar14,(bfd_boolean *)pvarargs);\n    if (bVar6 == 0) {\n      return 0;\n    }\n    if (**pp == '_') {\n      *pp = *pp + 1;\n      bVar6 = stab_demangle_type(minfo,pp,ptype);\n      if (bVar6 == 0) {\n        return 0;\n      }\n      if (ptype == (debug_type_conflict *)0x0) {\n        return 1;\n      }\n      pdVar9 = debug_make_function_type(minfo->dhandle,*ptype,(debug_type_conflict *)p,i);\n      *ptype = pdVar9;\n      return 1;\n    }\n    break;\n  case 'G':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_type(minfo,pp,ptype);\n    return (uint)(bVar6 != 0);\n  case 'M':\n  case 'O':\n    _i = (debug_type)0x0;\n    cVar1 = *pcVar15;\n    *pp = pcVar15 + 1;\n    p = (char *)0x0;\n    varargs_1 = 0;\n    bVar4 = pcVar15[1];\n    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      ptype_00 = (debug_type_conflict *)&i;\n      if (ptype == (debug_type_conflict *)0x0) {\n        ptype_00 = (debug_type_conflict *)0x0;\n      }\n      bVar6 = stab_demangle_qualified(minfo,pp,ptype_00);\n      if (bVar6 == 0) {\n        return 0;\n      }\nLAB_00111b38:\n      pbVar13 = (byte *)*pp;\n    }\n    else {\n      len = 0;\n      uVar7 = (ulong)bVar4;\n      pbVar13 = (byte *)(pcVar15 + 2);\n      do {\n        pbVar12 = pbVar13;\n        *pp = (char *)pbVar12;\n        len = (char)uVar7 + -0x30 + len * 10;\n        uVar7 = (ulong)*pbVar12;\n        pbVar13 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)*pbVar12 * 2] & 4) != 0);\n      sVar8 = strlen((char *)pbVar12);\n      if (sVar8 < len) break;\n      pbVar13 = pbVar12 + len;\n      *pp = (char *)pbVar13;\n      if (ptype != (debug_type_conflict *)0x0) {\n        _i = stab_find_tagged_type\n                       (minfo->dhandle,(stab_handle *)&minfo->info->tags,(char *)pbVar12,len,\n                        DEBUG_KIND_CLASS);\n        if (_i == (debug_type)0x0) {\n          return 0;\n        }\n        goto LAB_00111b38;\n      }\n    }\n    bVar4 = *pbVar13;\n    if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar12 = pbVar13, bVar4 == 0x56)) {\n        pbVar12 = pbVar13 + 1;\n        *pp = (char *)pbVar12;\n        bVar4 = pbVar13[1];\n      }\n      if (bVar4 != 0x46) break;\n      *pp = (char *)(pbVar12 + 1);\n      if (ptype == (debug_type_conflict *)0x0) {\n        pvarargs_00 = (bfd_boolean *)0x0;\n        pppdVar14 = (debug_type_conflict **)0x0;\n      }\n      else {\n        pvarargs_00 = &varargs_1;\n        pppdVar14 = (debug_type_conflict **)&p;\n      }\n      bVar6 = stab_demangle_args(minfo,pp,pppdVar14,pvarargs_00);\n      if (bVar6 == 0) {\n        return 0;\n      }\n      pbVar13 = (byte *)*pp;\n      bVar4 = *pbVar13;\n    }\n    if (bVar4 == 0x5f) {\n      *pp = (char *)(pbVar13 + 1);\n      bVar6 = stab_demangle_type(minfo,pp,ptype);\n      if (bVar6 == 0) {\n        return 0;\n      }\n      if (ptype == (debug_type_conflict *)0x0) {\n        return 1;\n      }\n      if (cVar1 != 'M') {\n        pdVar9 = debug_make_offset_type(minfo->dhandle,_i,*ptype);\n        *ptype = pdVar9;\n        return 1;\n      }\n      pdVar9 = debug_make_method_type(minfo->dhandle,*ptype,_i,(debug_type_conflict *)p,varargs_1);\n      *ptype = pdVar9;\n      return 1;\n    }\n    break;\n  case 'P':\n  case 'p':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_type(minfo,pp,ptype);\n    if (bVar6 == 0) {\n      return 0;\n    }\n    if (ptype == (debug_type_conflict *)0x0) {\n      return 1;\n    }\n    pdVar9 = debug_make_pointer_type(minfo->dhandle,*ptype);\n    *ptype = pdVar9;\n    return 1;\n  case 'Q':\n    bVar6 = stab_demangle_qualified(minfo,pp,ptype);\n    return (uint)(bVar6 != 0);\n  case 'R':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_type(minfo,pp,ptype);\n    if (bVar6 == 0) {\n      return 0;\n    }\n    if (ptype == (debug_type_conflict *)0x0) {\n      return 1;\n    }\n    pdVar9 = debug_make_reference_type(minfo->dhandle,*ptype);\n    *ptype = pdVar9;\n    return 1;\n  case 'T':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_get_count(pp,&i);\n    if (bVar6 != 0) {\n      if (i < minfo->typestring_count) {\n        p = minfo->typestrings[(ulong)_i & 0xffffffff].typestring;\n        iVar5 = stab_demangle_type(minfo,&p,ptype);\n        goto joined_r0x0011192e;\n      }\n    }\n  }" { (case_statement "case 'A':\n    pbVar13 = (byte *)(pcVar15 + 1);\n    *pp = (char *)pbVar13;\n    bVar4 = pcVar15[1];\n    if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      upper = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *pp = (char *)(pbVar13 + 1);\n        bVar6 = stab_demangle_type(minfo,pp,ptype);\n        if (bVar6 == 0) {\n          return 0;\n        }\n        if (ptype == (debug_type_conflict *)0x0) {\n          return 1;\n        }\n        pdVar9 = debug_find_named_type(minfo->dhandle,"int");\n        if (pdVar9 == (debug_type_conflict)0x0) {\n          pdVar9 = debug_make_int_type(minfo->dhandle,4,0);\n        }\n        pdVar9 = debug_make_array_type(minfo->dhandle,*ptype,pdVar9,0,upper,0);\n        *ptype = pdVar9;\n        return 1;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar13 = (byte *)(pcVar15 + 2);\n      upper = 0;\n      do {\n        *pp = (char *)pbVar13;\n        upper = (long)((char)bVar4 + -0x30) + upper * 10;\n        bVar4 = *pbVar13;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar13 = pbVar13 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }\n    break;" case (char_literal "'A'" ' character ') : (expression_statement "pbVar13 = (byte *)(pcVar15 + 1);" (assignment_expression "pbVar13 = (byte *)(pcVar15 + 1)" identifier = (cast_expression "(byte *)(pcVar15 + 1)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 1)" ( (binary_expression "pcVar15 + 1" identifier + number_literal) )))) ;) (expression_statement "*pp = (char *)pbVar13;" (assignment_expression "*pp = (char *)pbVar13" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar4 = pcVar15[1];" (assignment_expression "bVar4 = pcVar15[1]" identifier = (subscript_expression "pcVar15[1]" identifier [ number_literal ])) ;) (if_statement "if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      upper = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *pp = (char *)(pbVar13 + 1);\n        bVar6 = stab_demangle_type(minfo,pp,ptype);\n        if (bVar6 == 0) {\n          return 0;\n        }\n        if (ptype == (debug_type_conflict *)0x0) {\n          return 1;\n        }\n        pdVar9 = debug_find_named_type(minfo->dhandle,"int");\n        if (pdVar9 == (debug_type_conflict)0x0) {\n          pdVar9 = debug_make_int_type(minfo->dhandle,4,0);\n        }\n        pdVar9 = debug_make_array_type(minfo->dhandle,*ptype,pdVar9,0,upper,0);\n        *ptype = pdVar9;\n        return 1;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar13 = (byte *)(pcVar15 + 2);\n      upper = 0;\n      do {\n        *pp = (char *)pbVar13;\n        upper = (long)((char)bVar4 + -0x30) + upper * 10;\n        bVar4 = *pbVar13;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar13 = pbVar13 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }" if (parenthesized_expression "((bVar4 == 0) || (bVar4 == 0x5f))" ( (binary_expression "(bVar4 == 0) || (bVar4 == 0x5f)" (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "(bVar4 == 0x5f)" ( (binary_expression "bVar4 == 0x5f" identifier == number_literal) ))) )) (compound_statement "{\n      upper = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *pp = (char *)(pbVar13 + 1);\n        bVar6 = stab_demangle_type(minfo,pp,ptype);\n        if (bVar6 == 0) {\n          return 0;\n        }\n        if (ptype == (debug_type_conflict *)0x0) {\n          return 1;\n        }\n        pdVar9 = debug_find_named_type(minfo->dhandle,"int");\n        if (pdVar9 == (debug_type_conflict)0x0) {\n          pdVar9 = debug_make_int_type(minfo->dhandle,4,0);\n        }\n        pdVar9 = debug_make_array_type(minfo->dhandle,*ptype,pdVar9,0,upper,0);\n        *ptype = pdVar9;\n        return 1;\n      }\n    }" { (expression_statement "upper = 0;" (assignment_expression "upper = 0" identifier = number_literal) ;) (labeled_statement "LAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *pp = (char *)(pbVar13 + 1);\n        bVar6 = stab_demangle_type(minfo,pp,ptype);\n        if (bVar6 == 0) {\n          return 0;\n        }\n        if (ptype == (debug_type_conflict *)0x0) {\n          return 1;\n        }\n        pdVar9 = debug_find_named_type(minfo->dhandle,"int");\n        if (pdVar9 == (debug_type_conflict)0x0) {\n          pdVar9 = debug_make_int_type(minfo->dhandle,4,0);\n        }\n        pdVar9 = debug_make_array_type(minfo->dhandle,*ptype,pdVar9,0,upper,0);\n        *ptype = pdVar9;\n        return 1;\n      }" statement_identifier : (if_statement "if (bVar4 == 0x5f) {\n        *pp = (char *)(pbVar13 + 1);\n        bVar6 = stab_demangle_type(minfo,pp,ptype);\n        if (bVar6 == 0) {\n          return 0;\n        }\n        if (ptype == (debug_type_conflict *)0x0) {\n          return 1;\n        }\n        pdVar9 = debug_find_named_type(minfo->dhandle,"int");\n        if (pdVar9 == (debug_type_conflict)0x0) {\n          pdVar9 = debug_make_int_type(minfo->dhandle,4,0);\n        }\n        pdVar9 = debug_make_array_type(minfo->dhandle,*ptype,pdVar9,0,upper,0);\n        *ptype = pdVar9;\n        return 1;\n      }" if (parenthesized_expression "(bVar4 == 0x5f)" ( (binary_expression "bVar4 == 0x5f" identifier == number_literal) )) (compound_statement "{\n        *pp = (char *)(pbVar13 + 1);\n        bVar6 = stab_demangle_type(minfo,pp,ptype);\n        if (bVar6 == 0) {\n          return 0;\n        }\n        if (ptype == (debug_type_conflict *)0x0) {\n          return 1;\n        }\n        pdVar9 = debug_find_named_type(minfo->dhandle,"int");\n        if (pdVar9 == (debug_type_conflict)0x0) {\n          pdVar9 = debug_make_int_type(minfo->dhandle,4,0);\n        }\n        pdVar9 = debug_make_array_type(minfo->dhandle,*ptype,pdVar9,0,upper,0);\n        *ptype = pdVar9;\n        return 1;\n      }" { (expression_statement "*pp = (char *)(pbVar13 + 1);" (assignment_expression "*pp = (char *)(pbVar13 + 1)" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)(pbVar13 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + 1)" ( (binary_expression "pbVar13 + 1" identifier + number_literal) )))) ;) (expression_statement "bVar6 = stab_demangle_type(minfo,pp,ptype);" (assignment_expression "bVar6 = stab_demangle_type(minfo,pp,ptype)" identifier = (call_expression "stab_demangle_type(minfo,pp,ptype)" identifier (argument_list "(minfo,pp,ptype)" ( identifier , identifier , identifier )))) ;) (if_statement "if (bVar6 == 0) {\n          return 0;\n        }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (ptype == (debug_type_conflict *)0x0) {\n          return 1;\n        }" if (parenthesized_expression "(ptype == (debug_type_conflict *)0x0)" ( (binary_expression "ptype == (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 1;\n        }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "pdVar9 = debug_find_named_type(minfo->dhandle,"int");" (assignment_expression "pdVar9 = debug_find_named_type(minfo->dhandle,"int")" identifier = (call_expression "debug_find_named_type(minfo->dhandle,"int")" identifier (argument_list "(minfo->dhandle,"int")" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , (string_literal ""int"" " string_content ") )))) ;) (if_statement "if (pdVar9 == (debug_type_conflict)0x0) {\n          pdVar9 = debug_make_int_type(minfo->dhandle,4,0);\n        }" if (parenthesized_expression "(pdVar9 == (debug_type_conflict)0x0)" ( (binary_expression "pdVar9 == (debug_type_conflict)0x0" identifier == (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) )) (compound_statement "{\n          pdVar9 = debug_make_int_type(minfo->dhandle,4,0);\n        }" { (expression_statement "pdVar9 = debug_make_int_type(minfo->dhandle,4,0);" (assignment_expression "pdVar9 = debug_make_int_type(minfo->dhandle,4,0)" identifier = (call_expression "debug_make_int_type(minfo->dhandle,4,0)" identifier (argument_list "(minfo->dhandle,4,0)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , number_literal , number_literal )))) ;) })) (expression_statement "pdVar9 = debug_make_array_type(minfo->dhandle,*ptype,pdVar9,0,upper,0);" (assignment_expression "pdVar9 = debug_make_array_type(minfo->dhandle,*ptype,pdVar9,0,upper,0)" identifier = (call_expression "debug_make_array_type(minfo->dhandle,*ptype,pdVar9,0,upper,0)" identifier (argument_list "(minfo->dhandle,*ptype,pdVar9,0,upper,0)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , (pointer_expression "*ptype" * identifier) , identifier , number_literal , identifier , number_literal )))) ;) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) (return_statement "return 1;" return number_literal ;) }))) }) (else_clause "else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar13 = (byte *)(pcVar15 + 2);\n      upper = 0;\n      do {\n        *pp = (char *)pbVar13;\n        upper = (long)((char)bVar4 + -0x30) + upper * 10;\n        bVar4 = *pbVar13;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar13 = pbVar13 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }" else (if_statement "if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar13 = (byte *)(pcVar15 + 2);\n      upper = 0;\n      do {\n        *pp = (char *)pbVar13;\n        upper = (long)((char)bVar4 + -0x30) + upper * 10;\n        bVar4 = *pbVar13;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar13 = pbVar13 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }" if (parenthesized_expression "((_sch_istable[(ulong)bVar4 * 2] & 4) != 0)" ( (binary_expression "(_sch_istable[(ulong)bVar4 * 2] & 4) != 0" (parenthesized_expression "(_sch_istable[(ulong)bVar4 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)bVar4 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar4 * 2]" identifier [ (binary_expression "(ulong)bVar4 * 2" (cast_expression "(ulong)bVar4" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\n      pbVar13 = (byte *)(pcVar15 + 2);\n      upper = 0;\n      do {\n        *pp = (char *)pbVar13;\n        upper = (long)((char)bVar4 + -0x30) + upper * 10;\n        bVar4 = *pbVar13;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar13 = pbVar13 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }" { (expression_statement "pbVar13 = (byte *)(pcVar15 + 2);" (assignment_expression "pbVar13 = (byte *)(pcVar15 + 2)" identifier = (cast_expression "(byte *)(pcVar15 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 2)" ( (binary_expression "pcVar15 + 2" identifier + number_literal) )))) ;) (expression_statement "upper = 0;" (assignment_expression "upper = 0" identifier = number_literal) ;) (do_statement "do {\n        *pp = (char *)pbVar13;\n        upper = (long)((char)bVar4 + -0x30) + upper * 10;\n        bVar4 = *pbVar13;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar13 = pbVar13 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);" do (compound_statement "{\n        *pp = (char *)pbVar13;\n        upper = (long)((char)bVar4 + -0x30) + upper * 10;\n        bVar4 = *pbVar13;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar13 = pbVar13 + 1;\n      }" { (expression_statement "*pp = (char *)pbVar13;" (assignment_expression "*pp = (char *)pbVar13" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "upper = (long)((char)bVar4 + -0x30) + upper * 10;" (assignment_expression "upper = (long)((char)bVar4 + -0x30) + upper * 10" identifier = (binary_expression "(long)((char)bVar4 + -0x30) + upper * 10" (cast_expression "(long)((char)bVar4 + -0x30)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "((char)bVar4 + -0x30)" ( (binary_expression "(char)bVar4 + -0x30" (cast_expression "(char)bVar4" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal) ))) + (binary_expression "upper * 10" identifier * number_literal))) ;) (expression_statement "bVar4 = *pbVar13;" (assignment_expression "bVar4 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) (if_statement "if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;" if (parenthesized_expression "((bVar4 == 0) || (bVar4 == 0x5f))" ( (binary_expression "(bVar4 == 0) || (bVar4 == 0x5f)" (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "(bVar4 == 0x5f)" ( (binary_expression "bVar4 == 0x5f" identifier == number_literal) ))) )) (goto_statement "goto LAB_00111d10;" goto statement_identifier ;)) (expression_statement "pbVar13 = pbVar13 + 1;" (assignment_expression "pbVar13 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((_sch_istable[(ulong)bVar4 * 2] & 4) != 0)" ( (binary_expression "(_sch_istable[(ulong)bVar4 * 2] & 4) != 0" (parenthesized_expression "(_sch_istable[(ulong)bVar4 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)bVar4 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar4 * 2]" identifier [ (binary_expression "(ulong)bVar4 * 2" (cast_expression "(ulong)bVar4" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) != number_literal) )) ;) })))) (break_statement "break;" break ;)) (case_statement "default:\n    bVar3 = false;\n    pstart = (char **)0x0;\n    iVar5 = 0;\n    bVar2 = false;\n    pcVar11 = pcVar15;\n    do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *pp = pcVar11 + 1;\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *pp = pcVar11 + 1;\n      }\n      else if (cVar1 == 'U') {\n        pstart = (char **)0x1;\n        *pp = pcVar11 + 1;\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        iVar5 = 1;\n        *pp = pcVar11 + 1;\n      }\n      cVar1 = pcVar11[1];\n      pcVar11 = *pp;\n    } while( true );" default : (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = 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)) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "pcVar11 = pcVar15;" (assignment_expression "pcVar11 = pcVar15" identifier = identifier) ;) (do_statement "do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *pp = pcVar11 + 1;\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *pp = pcVar11 + 1;\n      }\n      else if (cVar1 == 'U') {\n        pstart = (char **)0x1;\n        *pp = pcVar11 + 1;\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        iVar5 = 1;\n        *pp = pcVar11 + 1;\n      }\n      cVar1 = pcVar11[1];\n      pcVar11 = *pp;\n    } while( true );" do (compound_statement "{\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *pp = pcVar11 + 1;\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *pp = pcVar11 + 1;\n      }\n      else if (cVar1 == 'U') {\n        pstart = (char **)0x1;\n        *pp = pcVar11 + 1;\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        iVar5 = 1;\n        *pp = pcVar11 + 1;\n      }\n      cVar1 = pcVar11[1];\n      pcVar11 = *pp;\n    }" { (if_statement "if (cVar1 == 'S') {\n        bVar3 = true;\n        *pp = pcVar11 + 1;\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *pp = pcVar11 + 1;\n      }\n      else if (cVar1 == 'U') {\n        pstart = (char **)0x1;\n        *pp = pcVar11 + 1;\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        iVar5 = 1;\n        *pp = pcVar11 + 1;\n      }" if (parenthesized_expression "(cVar1 == 'S')" ( (binary_expression "cVar1 == 'S'" identifier == (char_literal "'S'" ' character ')) )) (compound_statement "{\n        bVar3 = true;\n        *pp = pcVar11 + 1;\n      }" { (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (expression_statement "*pp = pcVar11 + 1;" (assignment_expression "*pp = pcVar11 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) }) (else_clause "else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *pp = pcVar11 + 1;\n      }\n      else if (cVar1 == 'U') {\n        pstart = (char **)0x1;\n        *pp = pcVar11 + 1;\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        iVar5 = 1;\n        *pp = pcVar11 + 1;\n      }" else (if_statement "if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *pp = pcVar11 + 1;\n      }\n      else if (cVar1 == 'U') {\n        pstart = (char **)0x1;\n        *pp = pcVar11 + 1;\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        iVar5 = 1;\n        *pp = pcVar11 + 1;\n      }" if (parenthesized_expression "(cVar1 < 'T')" ( (binary_expression "cVar1 < 'T'" identifier < (char_literal "'T'" ' character ')) )) (compound_statement "{\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *pp = pcVar11 + 1;\n      }" { (if_statement "if (cVar1 != 'C') goto code_r0x00111cf8;" if (parenthesized_expression "(cVar1 != 'C')" ( (binary_expression "cVar1 != 'C'" identifier != (char_literal "'C'" ' character ')) )) (goto_statement "goto code_r0x00111cf8;" goto statement_identifier ;)) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "*pp = pcVar11 + 1;" (assignment_expression "*pp = pcVar11 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) }) (else_clause "else if (cVar1 == 'U') {\n        pstart = (char **)0x1;\n        *pp = pcVar11 + 1;\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        iVar5 = 1;\n        *pp = pcVar11 + 1;\n      }" else (if_statement "if (cVar1 == 'U') {\n        pstart = (char **)0x1;\n        *pp = pcVar11 + 1;\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        iVar5 = 1;\n        *pp = pcVar11 + 1;\n      }" if (parenthesized_expression "(cVar1 == 'U')" ( (binary_expression "cVar1 == 'U'" identifier == (char_literal "'U'" ' character ')) )) (compound_statement "{\n        pstart = (char **)0x1;\n        *pp = pcVar11 + 1;\n      }" { (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 "*pp = pcVar11 + 1;" (assignment_expression "*pp = pcVar11 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) }) (else_clause "else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        iVar5 = 1;\n        *pp = pcVar11 + 1;\n      }" else (compound_statement "{\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        iVar5 = 1;\n        *pp = pcVar11 + 1;\n      }" { (if_statement "if (cVar1 != 'V') goto code_r0x00111cf8;" if (parenthesized_expression "(cVar1 != 'V')" ( (binary_expression "cVar1 != 'V'" identifier != (char_literal "'V'" ' character ')) )) (goto_statement "goto code_r0x00111cf8;" goto statement_identifier ;)) (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (expression_statement "*pp = pcVar11 + 1;" (assignment_expression "*pp = pcVar11 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) }))))))) (expression_statement "cVar1 = pcVar11[1];" (assignment_expression "cVar1 = pcVar11[1]" identifier = (subscript_expression "pcVar11[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar11 = *pp;" (assignment_expression "pcVar11 = *pp" identifier = (pointer_expression "*pp" * identifier)) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) (case_statement "case 'C':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_type(minfo,pp,ptype);\n    if (bVar6 == 0) {\n      return 0;\n    }\n    if (ptype == (debug_type_conflict *)0x0) {\n      return 1;\n    }\n    pdVar9 = debug_make_const_type(minfo->dhandle,*ptype);\n    *ptype = pdVar9;\n    return 1;" case (char_literal "'C'" ' character ') : (expression_statement "*pp = pcVar15 + 1;" (assignment_expression "*pp = pcVar15 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) (expression_statement "bVar6 = stab_demangle_type(minfo,pp,ptype);" (assignment_expression "bVar6 = stab_demangle_type(minfo,pp,ptype)" identifier = (call_expression "stab_demangle_type(minfo,pp,ptype)" identifier (argument_list "(minfo,pp,ptype)" ( identifier , identifier , identifier )))) ;) (if_statement "if (bVar6 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (ptype == (debug_type_conflict *)0x0) {\n      return 1;\n    }" if (parenthesized_expression "(ptype == (debug_type_conflict *)0x0)" ( (binary_expression "ptype == (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 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "pdVar9 = debug_make_const_type(minfo->dhandle,*ptype);" (assignment_expression "pdVar9 = debug_make_const_type(minfo->dhandle,*ptype)" identifier = (call_expression "debug_make_const_type(minfo->dhandle,*ptype)" identifier (argument_list "(minfo->dhandle,*ptype)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , (pointer_expression "*ptype" * identifier) )))) ;) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) (return_statement "return 1;" return number_literal ;)) (case_statement "case 'F':\n    pvarargs = (uint *)0x0;\n    pppdVar14 = (debug_type_conflict **)0x0;\n    *pp = pcVar15 + 1;\n    if (ptype != (debug_type_conflict *)0x0) {\n      pvarargs = &i;\n      pppdVar14 = (debug_type_conflict **)&p;\n    }\n    bVar6 = stab_demangle_args(minfo,pp,pppdVar14,(bfd_boolean *)pvarargs);\n    if (bVar6 == 0) {\n      return 0;\n    }\n    if (**pp == '_') {\n      *pp = *pp + 1;\n      bVar6 = stab_demangle_type(minfo,pp,ptype);\n      if (bVar6 == 0) {\n        return 0;\n      }\n      if (ptype == (debug_type_conflict *)0x0) {\n        return 1;\n      }\n      pdVar9 = debug_make_function_type(minfo->dhandle,*ptype,(debug_type_conflict *)p,i);\n      *ptype = pdVar9;\n      return 1;\n    }\n    break;" case (char_literal "'F'" ' character ') : (expression_statement "pvarargs = (uint *)0x0;" (assignment_expression "pvarargs = (uint *)0x0" identifier = (cast_expression "(uint *)0x0" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pppdVar14 = (debug_type_conflict **)0x0;" (assignment_expression "pppdVar14 = (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)) ;) (expression_statement "*pp = pcVar15 + 1;" (assignment_expression "*pp = pcVar15 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) (if_statement "if (ptype != (debug_type_conflict *)0x0) {\n      pvarargs = &i;\n      pppdVar14 = (debug_type_conflict **)&p;\n    }" if (parenthesized_expression "(ptype != (debug_type_conflict *)0x0)" ( (binary_expression "ptype != (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      pvarargs = &i;\n      pppdVar14 = (debug_type_conflict **)&p;\n    }" { (expression_statement "pvarargs = &i;" (assignment_expression "pvarargs = &i" identifier = (pointer_expression "&i" & identifier)) ;) (expression_statement "pppdVar14 = (debug_type_conflict **)&p;" (assignment_expression "pppdVar14 = (debug_type_conflict **)&p" identifier = (cast_expression "(debug_type_conflict **)&p" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&p" & identifier))) ;) })) (expression_statement "bVar6 = stab_demangle_args(minfo,pp,pppdVar14,(bfd_boolean *)pvarargs);" (assignment_expression "bVar6 = stab_demangle_args(minfo,pp,pppdVar14,(bfd_boolean *)pvarargs)" identifier = (call_expression "stab_demangle_args(minfo,pp,pppdVar14,(bfd_boolean *)pvarargs)" identifier (argument_list "(minfo,pp,pppdVar14,(bfd_boolean *)pvarargs)" ( identifier , identifier , identifier , (cast_expression "(bfd_boolean *)pvarargs" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (bVar6 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (**pp == '_') {\n      *pp = *pp + 1;\n      bVar6 = stab_demangle_type(minfo,pp,ptype);\n      if (bVar6 == 0) {\n        return 0;\n      }\n      if (ptype == (debug_type_conflict *)0x0) {\n        return 1;\n      }\n      pdVar9 = debug_make_function_type(minfo->dhandle,*ptype,(debug_type_conflict *)p,i);\n      *ptype = pdVar9;\n      return 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      bVar6 = stab_demangle_type(minfo,pp,ptype);\n      if (bVar6 == 0) {\n        return 0;\n      }\n      if (ptype == (debug_type_conflict *)0x0) {\n        return 1;\n      }\n      pdVar9 = debug_make_function_type(minfo->dhandle,*ptype,(debug_type_conflict *)p,i);\n      *ptype = pdVar9;\n      return 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)) ;) (expression_statement "bVar6 = stab_demangle_type(minfo,pp,ptype);" (assignment_expression "bVar6 = stab_demangle_type(minfo,pp,ptype)" identifier = (call_expression "stab_demangle_type(minfo,pp,ptype)" identifier (argument_list "(minfo,pp,ptype)" ( identifier , identifier , identifier )))) ;) (if_statement "if (bVar6 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (ptype == (debug_type_conflict *)0x0) {\n        return 1;\n      }" if (parenthesized_expression "(ptype == (debug_type_conflict *)0x0)" ( (binary_expression "ptype == (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 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "pdVar9 = debug_make_function_type(minfo->dhandle,*ptype,(debug_type_conflict *)p,i);" (assignment_expression "pdVar9 = debug_make_function_type(minfo->dhandle,*ptype,(debug_type_conflict *)p,i)" identifier = (call_expression "debug_make_function_type(minfo->dhandle,*ptype,(debug_type_conflict *)p,i)" identifier (argument_list "(minfo->dhandle,*ptype,(debug_type_conflict *)p,i)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , (pointer_expression "*ptype" * identifier) , (cast_expression "(debug_type_conflict *)p" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (break_statement "break;" break ;)) (case_statement "case 'G':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_type(minfo,pp,ptype);\n    return (uint)(bVar6 != 0);" case (char_literal "'G'" ' character ') : (expression_statement "*pp = pcVar15 + 1;" (assignment_expression "*pp = pcVar15 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) (expression_statement "bVar6 = stab_demangle_type(minfo,pp,ptype);" (assignment_expression "bVar6 = stab_demangle_type(minfo,pp,ptype)" identifier = (call_expression "stab_demangle_type(minfo,pp,ptype)" identifier (argument_list "(minfo,pp,ptype)" ( identifier , identifier , identifier )))) ;) (return_statement "return (uint)(bVar6 != 0);" return (call_expression "(uint)(bVar6 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar6 != 0)" ( (binary_expression "bVar6 != 0" identifier != number_literal) ))) ;)) (case_statement "case 'M':" case (char_literal "'M'" ' character ') :) (case_statement "case 'O':\n    _i = (debug_type)0x0;\n    cVar1 = *pcVar15;\n    *pp = pcVar15 + 1;\n    p = (char *)0x0;\n    varargs_1 = 0;\n    bVar4 = pcVar15[1];\n    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      ptype_00 = (debug_type_conflict *)&i;\n      if (ptype == (debug_type_conflict *)0x0) {\n        ptype_00 = (debug_type_conflict *)0x0;\n      }\n      bVar6 = stab_demangle_qualified(minfo,pp,ptype_00);\n      if (bVar6 == 0) {\n        return 0;\n      }\nLAB_00111b38:\n      pbVar13 = (byte *)*pp;\n    }\n    else {\n      len = 0;\n      uVar7 = (ulong)bVar4;\n      pbVar13 = (byte *)(pcVar15 + 2);\n      do {\n        pbVar12 = pbVar13;\n        *pp = (char *)pbVar12;\n        len = (char)uVar7 + -0x30 + len * 10;\n        uVar7 = (ulong)*pbVar12;\n        pbVar13 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)*pbVar12 * 2] & 4) != 0);\n      sVar8 = strlen((char *)pbVar12);\n      if (sVar8 < len) break;\n      pbVar13 = pbVar12 + len;\n      *pp = (char *)pbVar13;\n      if (ptype != (debug_type_conflict *)0x0) {\n        _i = stab_find_tagged_type\n                       (minfo->dhandle,(stab_handle *)&minfo->info->tags,(char *)pbVar12,len,\n                        DEBUG_KIND_CLASS);\n        if (_i == (debug_type)0x0) {\n          return 0;\n        }\n        goto LAB_00111b38;\n      }\n    }\n    bVar4 = *pbVar13;\n    if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar12 = pbVar13, bVar4 == 0x56)) {\n        pbVar12 = pbVar13 + 1;\n        *pp = (char *)pbVar12;\n        bVar4 = pbVar13[1];\n      }\n      if (bVar4 != 0x46) break;\n      *pp = (char *)(pbVar12 + 1);\n      if (ptype == (debug_type_conflict *)0x0) {\n        pvarargs_00 = (bfd_boolean *)0x0;\n        pppdVar14 = (debug_type_conflict **)0x0;\n      }\n      else {\n        pvarargs_00 = &varargs_1;\n        pppdVar14 = (debug_type_conflict **)&p;\n      }\n      bVar6 = stab_demangle_args(minfo,pp,pppdVar14,pvarargs_00);\n      if (bVar6 == 0) {\n        return 0;\n      }\n      pbVar13 = (byte *)*pp;\n      bVar4 = *pbVar13;\n    }\n    if (bVar4 == 0x5f) {\n      *pp = (char *)(pbVar13 + 1);\n      bVar6 = stab_demangle_type(minfo,pp,ptype);\n      if (bVar6 == 0) {\n        return 0;\n      }\n      if (ptype == (debug_type_conflict *)0x0) {\n        return 1;\n      }\n      if (cVar1 != 'M') {\n        pdVar9 = debug_make_offset_type(minfo->dhandle,_i,*ptype);\n        *ptype = pdVar9;\n        return 1;\n      }\n      pdVar9 = debug_make_method_type(minfo->dhandle,*ptype,_i,(debug_type_conflict *)p,varargs_1);\n      *ptype = pdVar9;\n      return 1;\n    }\n    break;" case (char_literal "'O'" ' character ') : (expression_statement "_i = (debug_type)0x0;" (assignment_expression "_i = (debug_type)0x0" identifier = (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) ;) (expression_statement "cVar1 = *pcVar15;" (assignment_expression "cVar1 = *pcVar15" identifier = (pointer_expression "*pcVar15" * identifier)) ;) (expression_statement "*pp = pcVar15 + 1;" (assignment_expression "*pp = pcVar15 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) (expression_statement "p = (char *)0x0;" (assignment_expression "p = (char *)0x0" identifier = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "varargs_1 = 0;" (assignment_expression "varargs_1 = 0" identifier = number_literal) ;) (expression_statement "bVar4 = pcVar15[1];" (assignment_expression "bVar4 = pcVar15[1]" identifier = (subscript_expression "pcVar15[1]" identifier [ number_literal ])) ;) (if_statement "if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      ptype_00 = (debug_type_conflict *)&i;\n      if (ptype == (debug_type_conflict *)0x0) {\n        ptype_00 = (debug_type_conflict *)0x0;\n      }\n      bVar6 = stab_demangle_qualified(minfo,pp,ptype_00);\n      if (bVar6 == 0) {\n        return 0;\n      }\nLAB_00111b38:\n      pbVar13 = (byte *)*pp;\n    }\n    else {\n      len = 0;\n      uVar7 = (ulong)bVar4;\n      pbVar13 = (byte *)(pcVar15 + 2);\n      do {\n        pbVar12 = pbVar13;\n        *pp = (char *)pbVar12;\n        len = (char)uVar7 + -0x30 + len * 10;\n        uVar7 = (ulong)*pbVar12;\n        pbVar13 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)*pbVar12 * 2] & 4) != 0);\n      sVar8 = strlen((char *)pbVar12);\n      if (sVar8 < len) break;\n      pbVar13 = pbVar12 + len;\n      *pp = (char *)pbVar13;\n      if (ptype != (debug_type_conflict *)0x0) {\n        _i = stab_find_tagged_type\n                       (minfo->dhandle,(stab_handle *)&minfo->info->tags,(char *)pbVar12,len,\n                        DEBUG_KIND_CLASS);\n        if (_i == (debug_type)0x0) {\n          return 0;\n        }\n        goto LAB_00111b38;\n      }\n    }" if (parenthesized_expression "((_sch_istable[(ulong)bVar4 * 2] & 4) == 0)" ( (binary_expression "(_sch_istable[(ulong)bVar4 * 2] & 4) == 0" (parenthesized_expression "(_sch_istable[(ulong)bVar4 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)bVar4 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar4 * 2]" identifier [ (binary_expression "(ulong)bVar4 * 2" (cast_expression "(ulong)bVar4" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (bVar4 != 0x51) break;\n      ptype_00 = (debug_type_conflict *)&i;\n      if (ptype == (debug_type_conflict *)0x0) {\n        ptype_00 = (debug_type_conflict *)0x0;\n      }\n      bVar6 = stab_demangle_qualified(minfo,pp,ptype_00);\n      if (bVar6 == 0) {\n        return 0;\n      }\nLAB_00111b38:\n      pbVar13 = (byte *)*pp;\n    }" { (if_statement "if (bVar4 != 0x51) break;" if (parenthesized_expression "(bVar4 != 0x51)" ( (binary_expression "bVar4 != 0x51" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "ptype_00 = (debug_type_conflict *)&i;" (assignment_expression "ptype_00 = (debug_type_conflict *)&i" identifier = (cast_expression "(debug_type_conflict *)&i" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&i" & identifier))) ;) (if_statement "if (ptype == (debug_type_conflict *)0x0) {\n        ptype_00 = (debug_type_conflict *)0x0;\n      }" if (parenthesized_expression "(ptype == (debug_type_conflict *)0x0)" ( (binary_expression "ptype == (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        ptype_00 = (debug_type_conflict *)0x0;\n      }" { (expression_statement "ptype_00 = (debug_type_conflict *)0x0;" (assignment_expression "ptype_00 = (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 "bVar6 = stab_demangle_qualified(minfo,pp,ptype_00);" (assignment_expression "bVar6 = stab_demangle_qualified(minfo,pp,ptype_00)" identifier = (call_expression "stab_demangle_qualified(minfo,pp,ptype_00)" identifier (argument_list "(minfo,pp,ptype_00)" ( identifier , identifier , identifier )))) ;) (if_statement "if (bVar6 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (labeled_statement "LAB_00111b38:\n      pbVar13 = (byte *)*pp;" statement_identifier : (expression_statement "pbVar13 = (byte *)*pp;" (assignment_expression "pbVar13 = (byte *)*pp" identifier = (cast_expression "(byte *)*pp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp" * identifier))) ;)) }) (else_clause "else {\n      len = 0;\n      uVar7 = (ulong)bVar4;\n      pbVar13 = (byte *)(pcVar15 + 2);\n      do {\n        pbVar12 = pbVar13;\n        *pp = (char *)pbVar12;\n        len = (char)uVar7 + -0x30 + len * 10;\n        uVar7 = (ulong)*pbVar12;\n        pbVar13 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)*pbVar12 * 2] & 4) != 0);\n      sVar8 = strlen((char *)pbVar12);\n      if (sVar8 < len) break;\n      pbVar13 = pbVar12 + len;\n      *pp = (char *)pbVar13;\n      if (ptype != (debug_type_conflict *)0x0) {\n        _i = stab_find_tagged_type\n                       (minfo->dhandle,(stab_handle *)&minfo->info->tags,(char *)pbVar12,len,\n                        DEBUG_KIND_CLASS);\n        if (_i == (debug_type)0x0) {\n          return 0;\n        }\n        goto LAB_00111b38;\n      }\n    }" else (compound_statement "{\n      len = 0;\n      uVar7 = (ulong)bVar4;\n      pbVar13 = (byte *)(pcVar15 + 2);\n      do {\n        pbVar12 = pbVar13;\n        *pp = (char *)pbVar12;\n        len = (char)uVar7 + -0x30 + len * 10;\n        uVar7 = (ulong)*pbVar12;\n        pbVar13 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)*pbVar12 * 2] & 4) != 0);\n      sVar8 = strlen((char *)pbVar12);\n      if (sVar8 < len) break;\n      pbVar13 = pbVar12 + len;\n      *pp = (char *)pbVar13;\n      if (ptype != (debug_type_conflict *)0x0) {\n        _i = stab_find_tagged_type\n                       (minfo->dhandle,(stab_handle *)&minfo->info->tags,(char *)pbVar12,len,\n                        DEBUG_KIND_CLASS);\n        if (_i == (debug_type)0x0) {\n          return 0;\n        }\n        goto LAB_00111b38;\n      }\n    }" { (expression_statement "len = 0;" (assignment_expression "len = 0" identifier = number_literal) ;) (expression_statement "uVar7 = (ulong)bVar4;" (assignment_expression "uVar7 = (ulong)bVar4" identifier = (cast_expression "(ulong)bVar4" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "pbVar13 = (byte *)(pcVar15 + 2);" (assignment_expression "pbVar13 = (byte *)(pcVar15 + 2)" identifier = (cast_expression "(byte *)(pcVar15 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar15 + 2)" ( (binary_expression "pcVar15 + 2" identifier + number_literal) )))) ;) (do_statement "do {\n        pbVar12 = pbVar13;\n        *pp = (char *)pbVar12;\n        len = (char)uVar7 + -0x30 + len * 10;\n        uVar7 = (ulong)*pbVar12;\n        pbVar13 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)*pbVar12 * 2] & 4) != 0);" do (compound_statement "{\n        pbVar12 = pbVar13;\n        *pp = (char *)pbVar12;\n        len = (char)uVar7 + -0x30 + len * 10;\n        uVar7 = (ulong)*pbVar12;\n        pbVar13 = pbVar12 + 1;\n      }" { (expression_statement "pbVar12 = pbVar13;" (assignment_expression "pbVar12 = pbVar13" identifier = identifier) ;) (expression_statement "*pp = (char *)pbVar12;" (assignment_expression "*pp = (char *)pbVar12" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar12" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "len = (char)uVar7 + -0x30 + len * 10;" (assignment_expression "len = (char)uVar7 + -0x30 + len * 10" identifier = (binary_expression "(char)uVar7 + -0x30 + len * 10" (binary_expression "(char)uVar7 + -0x30" (cast_expression "(char)uVar7" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal) + (binary_expression "len * 10" identifier * number_literal))) ;) (expression_statement "uVar7 = (ulong)*pbVar12;" (assignment_expression "uVar7 = (ulong)*pbVar12" identifier = (binary_expression "(ulong)*pbVar12" (parenthesized_expression "(ulong)" ( identifier )) * identifier)) ;) (expression_statement "pbVar13 = pbVar12 + 1;" (assignment_expression "pbVar13 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((_sch_istable[(ulong)*pbVar12 * 2] & 4) != 0)" ( (binary_expression "(_sch_istable[(ulong)*pbVar12 * 2] & 4) != 0" (parenthesized_expression "(_sch_istable[(ulong)*pbVar12 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)*pbVar12 * 2] & 4" (subscript_expression "_sch_istable[(ulong)*pbVar12 * 2]" identifier [ (binary_expression "(ulong)*pbVar12 * 2" (binary_expression "(ulong)*pbVar12" (parenthesized_expression "(ulong)" ( identifier )) * identifier) * number_literal) ]) & number_literal) )) != number_literal) )) ;) (expression_statement "sVar8 = strlen((char *)pbVar12);" (assignment_expression "sVar8 = strlen((char *)pbVar12)" identifier = (call_expression "strlen((char *)pbVar12)" identifier (argument_list "((char *)pbVar12)" ( (cast_expression "(char *)pbVar12" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (sVar8 < len) break;" if (parenthesized_expression "(sVar8 < len)" ( (binary_expression "sVar8 < len" identifier < identifier) )) (break_statement "break;" break ;)) (expression_statement "pbVar13 = pbVar12 + len;" (assignment_expression "pbVar13 = pbVar12 + len" identifier = (binary_expression "pbVar12 + len" identifier + identifier)) ;) (expression_statement "*pp = (char *)pbVar13;" (assignment_expression "*pp = (char *)pbVar13" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar13" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (if_statement "if (ptype != (debug_type_conflict *)0x0) {\n        _i = stab_find_tagged_type\n                       (minfo->dhandle,(stab_handle *)&minfo->info->tags,(char *)pbVar12,len,\n                        DEBUG_KIND_CLASS);\n        if (_i == (debug_type)0x0) {\n          return 0;\n        }\n        goto LAB_00111b38;\n      }" if (parenthesized_expression "(ptype != (debug_type_conflict *)0x0)" ( (binary_expression "ptype != (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        _i = stab_find_tagged_type\n                       (minfo->dhandle,(stab_handle *)&minfo->info->tags,(char *)pbVar12,len,\n                        DEBUG_KIND_CLASS);\n        if (_i == (debug_type)0x0) {\n          return 0;\n        }\n        goto LAB_00111b38;\n      }" { (expression_statement "_i = stab_find_tagged_type\n                       (minfo->dhandle,(stab_handle *)&minfo->info->tags,(char *)pbVar12,len,\n                        DEBUG_KIND_CLASS);" (assignment_expression "_i = stab_find_tagged_type\n                       (minfo->dhandle,(stab_handle *)&minfo->info->tags,(char *)pbVar12,len,\n                        DEBUG_KIND_CLASS)" identifier = (call_expression "stab_find_tagged_type\n                       (minfo->dhandle,(stab_handle *)&minfo->info->tags,(char *)pbVar12,len,\n                        DEBUG_KIND_CLASS)" identifier (argument_list "(minfo->dhandle,(stab_handle *)&minfo->info->tags,(char *)pbVar12,len,\n                        DEBUG_KIND_CLASS)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , (cast_expression "(stab_handle *)&minfo->info->tags" ( (type_descriptor "stab_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&minfo->info->tags" & (field_expression "minfo->info->tags" (field_expression "minfo->info" identifier -> field_identifier) -> field_identifier))) , (cast_expression "(char *)pbVar12" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) , identifier , identifier )))) ;) (if_statement "if (_i == (debug_type)0x0) {\n          return 0;\n        }" if (parenthesized_expression "(_i == (debug_type)0x0)" ( (binary_expression "_i == (debug_type)0x0" identifier == (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (compound_statement "{\n          return 0;\n        }" { (return_statement "return 0;" return number_literal ;) })) (goto_statement "goto LAB_00111b38;" goto statement_identifier ;) })) }))) (expression_statement "bVar4 = *pbVar13;" (assignment_expression "bVar4 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) (if_statement "if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar12 = pbVar13, bVar4 == 0x56)) {\n        pbVar12 = pbVar13 + 1;\n        *pp = (char *)pbVar12;\n        bVar4 = pbVar13[1];\n      }\n      if (bVar4 != 0x46) break;\n      *pp = (char *)(pbVar12 + 1);\n      if (ptype == (debug_type_conflict *)0x0) {\n        pvarargs_00 = (bfd_boolean *)0x0;\n        pppdVar14 = (debug_type_conflict **)0x0;\n      }\n      else {\n        pvarargs_00 = &varargs_1;\n        pppdVar14 = (debug_type_conflict **)&p;\n      }\n      bVar6 = stab_demangle_args(minfo,pp,pppdVar14,pvarargs_00);\n      if (bVar6 == 0) {\n        return 0;\n      }\n      pbVar13 = (byte *)*pp;\n      bVar4 = *pbVar13;\n    }" if (parenthesized_expression "(cVar1 == 'M')" ( (binary_expression "cVar1 == 'M'" identifier == (char_literal "'M'" ' character ')) )) (compound_statement "{\n      if ((bVar4 == 0x43) || (pbVar12 = pbVar13, bVar4 == 0x56)) {\n        pbVar12 = pbVar13 + 1;\n        *pp = (char *)pbVar12;\n        bVar4 = pbVar13[1];\n      }\n      if (bVar4 != 0x46) break;\n      *pp = (char *)(pbVar12 + 1);\n      if (ptype == (debug_type_conflict *)0x0) {\n        pvarargs_00 = (bfd_boolean *)0x0;\n        pppdVar14 = (debug_type_conflict **)0x0;\n      }\n      else {\n        pvarargs_00 = &varargs_1;\n        pppdVar14 = (debug_type_conflict **)&p;\n      }\n      bVar6 = stab_demangle_args(minfo,pp,pppdVar14,pvarargs_00);\n      if (bVar6 == 0) {\n        return 0;\n      }\n      pbVar13 = (byte *)*pp;\n      bVar4 = *pbVar13;\n    }" { (if_statement "if ((bVar4 == 0x43) || (pbVar12 = pbVar13, bVar4 == 0x56)) {\n        pbVar12 = pbVar13 + 1;\n        *pp = (char *)pbVar12;\n        bVar4 = pbVar13[1];\n      }" if (parenthesized_expression "((bVar4 == 0x43) || (pbVar12 = pbVar13, bVar4 == 0x56))" ( (binary_expression "(bVar4 == 0x43) || (pbVar12 = pbVar13, bVar4 == 0x56)" (parenthesized_expression "(bVar4 == 0x43)" ( (binary_expression "bVar4 == 0x43" identifier == number_literal) )) || (parenthesized_expression "(pbVar12 = pbVar13, bVar4 == 0x56)" ( (comma_expression "pbVar12 = pbVar13, bVar4 == 0x56" (assignment_expression "pbVar12 = pbVar13" identifier = identifier) , (binary_expression "bVar4 == 0x56" identifier == number_literal)) ))) )) (compound_statement "{\n        pbVar12 = pbVar13 + 1;\n        *pp = (char *)pbVar12;\n        bVar4 = pbVar13[1];\n      }" { (expression_statement "pbVar12 = pbVar13 + 1;" (assignment_expression "pbVar12 = pbVar13 + 1" identifier = (binary_expression "pbVar13 + 1" identifier + number_literal)) ;) (expression_statement "*pp = (char *)pbVar12;" (assignment_expression "*pp = (char *)pbVar12" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)pbVar12" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bVar4 = pbVar13[1];" (assignment_expression "bVar4 = pbVar13[1]" identifier = (subscript_expression "pbVar13[1]" identifier [ number_literal ])) ;) })) (if_statement "if (bVar4 != 0x46) break;" if (parenthesized_expression "(bVar4 != 0x46)" ( (binary_expression "bVar4 != 0x46" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "*pp = (char *)(pbVar12 + 1);" (assignment_expression "*pp = (char *)(pbVar12 + 1)" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)(pbVar12 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar12 + 1)" ( (binary_expression "pbVar12 + 1" identifier + number_literal) )))) ;) (if_statement "if (ptype == (debug_type_conflict *)0x0) {\n        pvarargs_00 = (bfd_boolean *)0x0;\n        pppdVar14 = (debug_type_conflict **)0x0;\n      }\n      else {\n        pvarargs_00 = &varargs_1;\n        pppdVar14 = (debug_type_conflict **)&p;\n      }" if (parenthesized_expression "(ptype == (debug_type_conflict *)0x0)" ( (binary_expression "ptype == (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        pvarargs_00 = (bfd_boolean *)0x0;\n        pppdVar14 = (debug_type_conflict **)0x0;\n      }" { (expression_statement "pvarargs_00 = (bfd_boolean *)0x0;" (assignment_expression "pvarargs_00 = (bfd_boolean *)0x0" identifier = (cast_expression "(bfd_boolean *)0x0" ( (type_descriptor "bfd_boolean *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pppdVar14 = (debug_type_conflict **)0x0;" (assignment_expression "pppdVar14 = (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)) ;) }) (else_clause "else {\n        pvarargs_00 = &varargs_1;\n        pppdVar14 = (debug_type_conflict **)&p;\n      }" else (compound_statement "{\n        pvarargs_00 = &varargs_1;\n        pppdVar14 = (debug_type_conflict **)&p;\n      }" { (expression_statement "pvarargs_00 = &varargs_1;" (assignment_expression "pvarargs_00 = &varargs_1" identifier = (pointer_expression "&varargs_1" & identifier)) ;) (expression_statement "pppdVar14 = (debug_type_conflict **)&p;" (assignment_expression "pppdVar14 = (debug_type_conflict **)&p" identifier = (cast_expression "(debug_type_conflict **)&p" ( (type_descriptor "debug_type_conflict **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (pointer_expression "&p" & identifier))) ;) }))) (expression_statement "bVar6 = stab_demangle_args(minfo,pp,pppdVar14,pvarargs_00);" (assignment_expression "bVar6 = stab_demangle_args(minfo,pp,pppdVar14,pvarargs_00)" identifier = (call_expression "stab_demangle_args(minfo,pp,pppdVar14,pvarargs_00)" identifier (argument_list "(minfo,pp,pppdVar14,pvarargs_00)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (bVar6 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "pbVar13 = (byte *)*pp;" (assignment_expression "pbVar13 = (byte *)*pp" identifier = (cast_expression "(byte *)*pp" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*pp" * identifier))) ;) (expression_statement "bVar4 = *pbVar13;" (assignment_expression "bVar4 = *pbVar13" identifier = (pointer_expression "*pbVar13" * identifier)) ;) })) (if_statement "if (bVar4 == 0x5f) {\n      *pp = (char *)(pbVar13 + 1);\n      bVar6 = stab_demangle_type(minfo,pp,ptype);\n      if (bVar6 == 0) {\n        return 0;\n      }\n      if (ptype == (debug_type_conflict *)0x0) {\n        return 1;\n      }\n      if (cVar1 != 'M') {\n        pdVar9 = debug_make_offset_type(minfo->dhandle,_i,*ptype);\n        *ptype = pdVar9;\n        return 1;\n      }\n      pdVar9 = debug_make_method_type(minfo->dhandle,*ptype,_i,(debug_type_conflict *)p,varargs_1);\n      *ptype = pdVar9;\n      return 1;\n    }" if (parenthesized_expression "(bVar4 == 0x5f)" ( (binary_expression "bVar4 == 0x5f" identifier == number_literal) )) (compound_statement "{\n      *pp = (char *)(pbVar13 + 1);\n      bVar6 = stab_demangle_type(minfo,pp,ptype);\n      if (bVar6 == 0) {\n        return 0;\n      }\n      if (ptype == (debug_type_conflict *)0x0) {\n        return 1;\n      }\n      if (cVar1 != 'M') {\n        pdVar9 = debug_make_offset_type(minfo->dhandle,_i,*ptype);\n        *ptype = pdVar9;\n        return 1;\n      }\n      pdVar9 = debug_make_method_type(minfo->dhandle,*ptype,_i,(debug_type_conflict *)p,varargs_1);\n      *ptype = pdVar9;\n      return 1;\n    }" { (expression_statement "*pp = (char *)(pbVar13 + 1);" (assignment_expression "*pp = (char *)(pbVar13 + 1)" (pointer_expression "*pp" * identifier) = (cast_expression "(char *)(pbVar13 + 1)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pbVar13 + 1)" ( (binary_expression "pbVar13 + 1" identifier + number_literal) )))) ;) (expression_statement "bVar6 = stab_demangle_type(minfo,pp,ptype);" (assignment_expression "bVar6 = stab_demangle_type(minfo,pp,ptype)" identifier = (call_expression "stab_demangle_type(minfo,pp,ptype)" identifier (argument_list "(minfo,pp,ptype)" ( identifier , identifier , identifier )))) ;) (if_statement "if (bVar6 == 0) {\n        return 0;\n      }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        return 0;\n      }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (ptype == (debug_type_conflict *)0x0) {\n        return 1;\n      }" if (parenthesized_expression "(ptype == (debug_type_conflict *)0x0)" ( (binary_expression "ptype == (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 1;\n      }" { (return_statement "return 1;" return number_literal ;) })) (if_statement "if (cVar1 != 'M') {\n        pdVar9 = debug_make_offset_type(minfo->dhandle,_i,*ptype);\n        *ptype = pdVar9;\n        return 1;\n      }" if (parenthesized_expression "(cVar1 != 'M')" ( (binary_expression "cVar1 != 'M'" identifier != (char_literal "'M'" ' character ')) )) (compound_statement "{\n        pdVar9 = debug_make_offset_type(minfo->dhandle,_i,*ptype);\n        *ptype = pdVar9;\n        return 1;\n      }" { (expression_statement "pdVar9 = debug_make_offset_type(minfo->dhandle,_i,*ptype);" (assignment_expression "pdVar9 = debug_make_offset_type(minfo->dhandle,_i,*ptype)" identifier = (call_expression "debug_make_offset_type(minfo->dhandle,_i,*ptype)" identifier (argument_list "(minfo->dhandle,_i,*ptype)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , identifier , (pointer_expression "*ptype" * identifier) )))) ;) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (expression_statement "pdVar9 = debug_make_method_type(minfo->dhandle,*ptype,_i,(debug_type_conflict *)p,varargs_1);" (assignment_expression "pdVar9 = debug_make_method_type(minfo->dhandle,*ptype,_i,(debug_type_conflict *)p,varargs_1)" identifier = (call_expression "debug_make_method_type(minfo->dhandle,*ptype,_i,(debug_type_conflict *)p,varargs_1)" identifier (argument_list "(minfo->dhandle,*ptype,_i,(debug_type_conflict *)p,varargs_1)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , (pointer_expression "*ptype" * identifier) , identifier , (cast_expression "(debug_type_conflict *)p" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , identifier )))) ;) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) (return_statement "return 1;" return number_literal ;) })) (break_statement "break;" break ;)) (case_statement "case 'P':" case (char_literal "'P'" ' character ') :) (case_statement "case 'p':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_type(minfo,pp,ptype);\n    if (bVar6 == 0) {\n      return 0;\n    }\n    if (ptype == (debug_type_conflict *)0x0) {\n      return 1;\n    }\n    pdVar9 = debug_make_pointer_type(minfo->dhandle,*ptype);\n    *ptype = pdVar9;\n    return 1;" case (char_literal "'p'" ' character ') : (expression_statement "*pp = pcVar15 + 1;" (assignment_expression "*pp = pcVar15 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) (expression_statement "bVar6 = stab_demangle_type(minfo,pp,ptype);" (assignment_expression "bVar6 = stab_demangle_type(minfo,pp,ptype)" identifier = (call_expression "stab_demangle_type(minfo,pp,ptype)" identifier (argument_list "(minfo,pp,ptype)" ( identifier , identifier , identifier )))) ;) (if_statement "if (bVar6 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (ptype == (debug_type_conflict *)0x0) {\n      return 1;\n    }" if (parenthesized_expression "(ptype == (debug_type_conflict *)0x0)" ( (binary_expression "ptype == (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 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "pdVar9 = debug_make_pointer_type(minfo->dhandle,*ptype);" (assignment_expression "pdVar9 = debug_make_pointer_type(minfo->dhandle,*ptype)" identifier = (call_expression "debug_make_pointer_type(minfo->dhandle,*ptype)" identifier (argument_list "(minfo->dhandle,*ptype)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , (pointer_expression "*ptype" * identifier) )))) ;) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) (return_statement "return 1;" return number_literal ;)) (case_statement "case 'Q':\n    bVar6 = stab_demangle_qualified(minfo,pp,ptype);\n    return (uint)(bVar6 != 0);" case (char_literal "'Q'" ' character ') : (expression_statement "bVar6 = stab_demangle_qualified(minfo,pp,ptype);" (assignment_expression "bVar6 = stab_demangle_qualified(minfo,pp,ptype)" identifier = (call_expression "stab_demangle_qualified(minfo,pp,ptype)" identifier (argument_list "(minfo,pp,ptype)" ( identifier , identifier , identifier )))) ;) (return_statement "return (uint)(bVar6 != 0);" return (call_expression "(uint)(bVar6 != 0)" (parenthesized_expression "(uint)" ( identifier )) (argument_list "(bVar6 != 0)" ( (binary_expression "bVar6 != 0" identifier != number_literal) ))) ;)) (case_statement "case 'R':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_type(minfo,pp,ptype);\n    if (bVar6 == 0) {\n      return 0;\n    }\n    if (ptype == (debug_type_conflict *)0x0) {\n      return 1;\n    }\n    pdVar9 = debug_make_reference_type(minfo->dhandle,*ptype);\n    *ptype = pdVar9;\n    return 1;" case (char_literal "'R'" ' character ') : (expression_statement "*pp = pcVar15 + 1;" (assignment_expression "*pp = pcVar15 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) (expression_statement "bVar6 = stab_demangle_type(minfo,pp,ptype);" (assignment_expression "bVar6 = stab_demangle_type(minfo,pp,ptype)" identifier = (call_expression "stab_demangle_type(minfo,pp,ptype)" identifier (argument_list "(minfo,pp,ptype)" ( identifier , identifier , identifier )))) ;) (if_statement "if (bVar6 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (ptype == (debug_type_conflict *)0x0) {\n      return 1;\n    }" if (parenthesized_expression "(ptype == (debug_type_conflict *)0x0)" ( (binary_expression "ptype == (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 1;\n    }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "pdVar9 = debug_make_reference_type(minfo->dhandle,*ptype);" (assignment_expression "pdVar9 = debug_make_reference_type(minfo->dhandle,*ptype)" identifier = (call_expression "debug_make_reference_type(minfo->dhandle,*ptype)" identifier (argument_list "(minfo->dhandle,*ptype)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , (pointer_expression "*ptype" * identifier) )))) ;) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) (return_statement "return 1;" return number_literal ;)) (case_statement "case 'T':\n    *pp = pcVar15 + 1;\n    bVar6 = stab_demangle_get_count(pp,&i);\n    if (bVar6 != 0) {\n      if (i < minfo->typestring_count) {\n        p = minfo->typestrings[(ulong)_i & 0xffffffff].typestring;\n        iVar5 = stab_demangle_type(minfo,&p,ptype);\n        goto joined_r0x0011192e;\n      }\n    }" case (char_literal "'T'" ' character ') : (expression_statement "*pp = pcVar15 + 1;" (assignment_expression "*pp = pcVar15 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar15 + 1" identifier + number_literal)) ;) (expression_statement "bVar6 = stab_demangle_get_count(pp,&i);" (assignment_expression "bVar6 = stab_demangle_get_count(pp,&i)" identifier = (call_expression "stab_demangle_get_count(pp,&i)" identifier (argument_list "(pp,&i)" ( identifier , (pointer_expression "&i" & identifier) )))) ;) (if_statement "if (bVar6 != 0) {\n      if (i < minfo->typestring_count) {\n        p = minfo->typestrings[(ulong)_i & 0xffffffff].typestring;\n        iVar5 = stab_demangle_type(minfo,&p,ptype);\n        goto joined_r0x0011192e;\n      }\n    }" if (parenthesized_expression "(bVar6 != 0)" ( (binary_expression "bVar6 != 0" identifier != number_literal) )) (compound_statement "{\n      if (i < minfo->typestring_count) {\n        p = minfo->typestrings[(ulong)_i & 0xffffffff].typestring;\n        iVar5 = stab_demangle_type(minfo,&p,ptype);\n        goto joined_r0x0011192e;\n      }\n    }" { (if_statement "if (i < minfo->typestring_count) {\n        p = minfo->typestrings[(ulong)_i & 0xffffffff].typestring;\n        iVar5 = stab_demangle_type(minfo,&p,ptype);\n        goto joined_r0x0011192e;\n      }" if (parenthesized_expression "(i < minfo->typestring_count)" ( (binary_expression "i < minfo->typestring_count" identifier < (field_expression "minfo->typestring_count" identifier -> field_identifier)) )) (compound_statement "{\n        p = minfo->typestrings[(ulong)_i & 0xffffffff].typestring;\n        iVar5 = stab_demangle_type(minfo,&p,ptype);\n        goto joined_r0x0011192e;\n      }" { (expression_statement "p = minfo->typestrings[(ulong)_i & 0xffffffff].typestring;" (assignment_expression "p = minfo->typestrings[(ulong)_i & 0xffffffff].typestring" identifier = (field_expression "minfo->typestrings[(ulong)_i & 0xffffffff].typestring" (subscript_expression "minfo->typestrings[(ulong)_i & 0xffffffff]" (field_expression "minfo->typestrings" identifier -> field_identifier) [ (binary_expression "(ulong)_i & 0xffffffff" (cast_expression "(ulong)_i" ( (type_descriptor "ulong" type_identifier) ) identifier) & number_literal) ]) . field_identifier)) ;) (expression_statement "iVar5 = stab_demangle_type(minfo,&p,ptype);" (assignment_expression "iVar5 = stab_demangle_type(minfo,&p,ptype)" identifier = (call_expression "stab_demangle_type(minfo,&p,ptype)" identifier (argument_list "(minfo,&p,ptype)" ( identifier , (pointer_expression "&p" & identifier) , identifier )))) ;) (goto_statement "goto joined_r0x0011192e;" goto statement_identifier ;) })) }))) })) (labeled_statement "switchD_00111d06_caseD_1:\n  stab_bad_demangle(pcVar15);" statement_identifier : (expression_statement "stab_bad_demangle(pcVar15);" (call_expression "stab_bad_demangle(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier ))) ;)) (return_statement "return 0;" return number_literal ;) (labeled_statement "switchD_00111d06_caseD_30:\n  bVar6 = stab_demangle_class((stab_demangle_info *)pp,&p,pstart);" statement_identifier : (expression_statement "bVar6 = stab_demangle_class((stab_demangle_info *)pp,&p,pstart);" (assignment_expression "bVar6 = stab_demangle_class((stab_demangle_info *)pp,&p,pstart)" identifier = (call_expression "stab_demangle_class((stab_demangle_info *)pp,&p,pstart)" identifier (argument_list "((stab_demangle_info *)pp,&p,pstart)" ( (cast_expression "(stab_demangle_info *)pp" ( (type_descriptor "stab_demangle_info *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (pointer_expression "&p" & identifier) , identifier )))) ;)) (if_statement "if (bVar6 == 0) {\n    return 0;\n  }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    return 0;\n  }" { (return_statement "return 0;" return number_literal ;) })) (if_statement "if (ptype == (debug_type_conflict *)0x0) {\n    return 1;\n  }" if (parenthesized_expression "(ptype == (debug_type_conflict *)0x0)" ( (binary_expression "ptype == (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 1;\n  }" { (return_statement "return 1;" return number_literal ;) })) (expression_statement "pcVar15 = savestring(p,(int)*pp - (int)p);" (assignment_expression "pcVar15 = savestring(p,(int)*pp - (int)p)" identifier = (call_expression "savestring(p,(int)*pp - (int)p)" identifier (argument_list "(p,(int)*pp - (int)p)" ( identifier , (binary_expression "(int)*pp - (int)p" (cast_expression "(int)*pp" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pp" * identifier)) - (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);" (assignment_expression "pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15)" identifier = (call_expression "debug_find_named_type(minfo->dhandle,pcVar15)" identifier (argument_list "(minfo->dhandle,pcVar15)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , identifier )))) ;) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) (expression_statement "free(pcVar15);" (call_expression "free(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier ))) ;) (if_statement "if (*ptype == (debug_type_conflict)0x0) {\n    pdVar10 = stab_find_tagged_type\n                        (minfo->dhandle,(stab_handle *)&minfo->info->tags,p,(int)*pp - (int)p,\n                         DEBUG_KIND_ILLEGAL);\n    *ptype = pdVar10;\njoined_r0x00111f61:\n    if (pdVar10 == (debug_type)0x0) {\n      return 0;\n    }\n  }" if (parenthesized_expression "(*ptype == (debug_type_conflict)0x0)" ( (binary_expression "*ptype == (debug_type_conflict)0x0" (pointer_expression "*ptype" * identifier) == (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) )) (compound_statement "{\n    pdVar10 = stab_find_tagged_type\n                        (minfo->dhandle,(stab_handle *)&minfo->info->tags,p,(int)*pp - (int)p,\n                         DEBUG_KIND_ILLEGAL);\n    *ptype = pdVar10;\njoined_r0x00111f61:\n    if (pdVar10 == (debug_type)0x0) {\n      return 0;\n    }\n  }" { (expression_statement "pdVar10 = stab_find_tagged_type\n                        (minfo->dhandle,(stab_handle *)&minfo->info->tags,p,(int)*pp - (int)p,\n                         DEBUG_KIND_ILLEGAL);" (assignment_expression "pdVar10 = stab_find_tagged_type\n                        (minfo->dhandle,(stab_handle *)&minfo->info->tags,p,(int)*pp - (int)p,\n                         DEBUG_KIND_ILLEGAL)" identifier = (call_expression "stab_find_tagged_type\n                        (minfo->dhandle,(stab_handle *)&minfo->info->tags,p,(int)*pp - (int)p,\n                         DEBUG_KIND_ILLEGAL)" identifier (argument_list "(minfo->dhandle,(stab_handle *)&minfo->info->tags,p,(int)*pp - (int)p,\n                         DEBUG_KIND_ILLEGAL)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , (cast_expression "(stab_handle *)&minfo->info->tags" ( (type_descriptor "stab_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&minfo->info->tags" & (field_expression "minfo->info->tags" (field_expression "minfo->info" identifier -> field_identifier) -> field_identifier))) , identifier , (binary_expression "(int)*pp - (int)p" (cast_expression "(int)*pp" ( (type_descriptor "int" primitive_type) ) (pointer_expression "*pp" * identifier)) - (cast_expression "(int)p" ( (type_descriptor "int" primitive_type) ) identifier)) , identifier )))) ;) (expression_statement "*ptype = pdVar10;" (assignment_expression "*ptype = pdVar10" (pointer_expression "*ptype" * identifier) = identifier) ;) (labeled_statement "joined_r0x00111f61:\n    if (pdVar10 == (debug_type)0x0) {\n      return 0;\n    }" statement_identifier : (if_statement "if (pdVar10 == (debug_type)0x0) {\n      return 0;\n    }" if (parenthesized_expression "(pdVar10 == (debug_type)0x0)" ( (binary_expression "pdVar10 == (debug_type)0x0" identifier == (cast_expression "(debug_type)0x0" ( (type_descriptor "debug_type" type_identifier) ) number_literal)) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) }))) })) (goto_statement "goto LAB_00111df8;" goto statement_identifier ;) (labeled_statement "code_r0x00111cf8:\n  bVar6 = (bfd_boolean)pstart;" statement_identifier : (expression_statement "bVar6 = (bfd_boolean)pstart;" (assignment_expression "bVar6 = (bfd_boolean)pstart" identifier = (cast_expression "(bfd_boolean)pstart" ( (type_descriptor "bfd_boolean" type_identifier) ) identifier)) ;)) (switch_statement "switch(cVar1) {\n  case '\0':\n  case '_':\n    stab_bad_demangle(pcVar15);\n    goto LAB_00111df8;\n  default:\n    goto switchD_00111d06_caseD_1;\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    goto switchD_00111d06_caseD_30;\n  case 'G':\n    *pp = pcVar11 + 1;\n    pstart = (char **)(ulong)(byte)pcVar11[1];\n    if ((_sch_istable[(long)pstart * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;\n  case 'b':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"bool");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_bool_type(minfo->dhandle,4);\n        *ptype = pdVar9;\n      }\nLAB_00111e80:\n      pcVar11 = *pp;\n    }\n    break;\n  case 'c':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "unsigned char";\n      if ((bVar6 == 0) && (pcVar15 = "signed char", !bVar3)) {\n        pcVar15 = "char";\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,1,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'd':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "double";\nLAB_00111fc0:\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_float_type(minfo->dhandle,8);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'f':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"float");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_float_type(minfo->dhandle,4);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'i':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "unsigned int";\n      pcVar11 = "int";\nLAB_0011200d:\n      if (bVar6 == 0) {\n        pcVar15 = pcVar11;\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,4,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'l':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "long unsigned int";\n      pcVar11 = "long int";\n      goto LAB_0011200d;\n    }\n    break;\n  case 'r':\n    pcVar15 = "long double";\n    if (ptype != (debug_type_conflict *)0x0) goto LAB_00111fc0;\n    break;\n  case 's':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "short unsigned int";\n      if (bVar6 == 0) {\n        pcVar15 = "short int";\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\nLAB_00111eb3:\n        pdVar9 = debug_make_int_type(minfo->dhandle,2,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 't':\n    if (ptype == (debug_type_conflict *)0x0) {\n      iVar5 = stab_demangle_template(minfo,pp,(char **)0x0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return 1;\n      }\n      return 0;\n    }\n    bVar6 = stab_demangle_template(minfo,pp,&p);\n    pcVar15 = p;\n    if (bVar6 == 0) {\n      return 0;\n    }\n    sVar8 = strlen(p);\n    pdVar10 = stab_find_tagged_type\n                        (minfo->dhandle,(stab_handle *)&minfo->info->tags,pcVar15,(int)sVar8,\n                         DEBUG_KIND_CLASS);\n    *ptype = pdVar10;\n    free(p);\n    pdVar10 = *ptype;\n    goto joined_r0x00111f61;\n  case 'v':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"void");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_void_type(minfo->dhandle);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'w':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"__wchar_t");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        bVar6 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'x':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "long long unsigned int";\n      if (bVar6 == 0) {\n        pcVar15 = "long long int";\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,8,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n  }" switch (parenthesized_expression "(cVar1)" ( identifier )) (compound_statement "{\n  case '\0':\n  case '_':\n    stab_bad_demangle(pcVar15);\n    goto LAB_00111df8;\n  default:\n    goto switchD_00111d06_caseD_1;\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    goto switchD_00111d06_caseD_30;\n  case 'G':\n    *pp = pcVar11 + 1;\n    pstart = (char **)(ulong)(byte)pcVar11[1];\n    if ((_sch_istable[(long)pstart * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;\n  case 'b':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"bool");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_bool_type(minfo->dhandle,4);\n        *ptype = pdVar9;\n      }\nLAB_00111e80:\n      pcVar11 = *pp;\n    }\n    break;\n  case 'c':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "unsigned char";\n      if ((bVar6 == 0) && (pcVar15 = "signed char", !bVar3)) {\n        pcVar15 = "char";\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,1,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'd':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "double";\nLAB_00111fc0:\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_float_type(minfo->dhandle,8);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'f':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"float");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_float_type(minfo->dhandle,4);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'i':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "unsigned int";\n      pcVar11 = "int";\nLAB_0011200d:\n      if (bVar6 == 0) {\n        pcVar15 = pcVar11;\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,4,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'l':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "long unsigned int";\n      pcVar11 = "long int";\n      goto LAB_0011200d;\n    }\n    break;\n  case 'r':\n    pcVar15 = "long double";\n    if (ptype != (debug_type_conflict *)0x0) goto LAB_00111fc0;\n    break;\n  case 's':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "short unsigned int";\n      if (bVar6 == 0) {\n        pcVar15 = "short int";\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\nLAB_00111eb3:\n        pdVar9 = debug_make_int_type(minfo->dhandle,2,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 't':\n    if (ptype == (debug_type_conflict *)0x0) {\n      iVar5 = stab_demangle_template(minfo,pp,(char **)0x0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return 1;\n      }\n      return 0;\n    }\n    bVar6 = stab_demangle_template(minfo,pp,&p);\n    pcVar15 = p;\n    if (bVar6 == 0) {\n      return 0;\n    }\n    sVar8 = strlen(p);\n    pdVar10 = stab_find_tagged_type\n                        (minfo->dhandle,(stab_handle *)&minfo->info->tags,pcVar15,(int)sVar8,\n                         DEBUG_KIND_CLASS);\n    *ptype = pdVar10;\n    free(p);\n    pdVar10 = *ptype;\n    goto joined_r0x00111f61;\n  case 'v':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"void");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_void_type(minfo->dhandle);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'w':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"__wchar_t");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        bVar6 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'x':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "long long unsigned int";\n      if (bVar6 == 0) {\n        pcVar15 = "long long int";\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,8,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n  }" { (case_statement "case '\0':" case (char_literal "'\0'" ' escape_sequence ') :) (case_statement "case '_':\n    stab_bad_demangle(pcVar15);\n    goto LAB_00111df8;" case (char_literal "'_'" ' character ') : (expression_statement "stab_bad_demangle(pcVar15);" (call_expression "stab_bad_demangle(pcVar15)" identifier (argument_list "(pcVar15)" ( identifier ))) ;) (goto_statement "goto LAB_00111df8;" goto statement_identifier ;)) (case_statement "default:\n    goto switchD_00111d06_caseD_1;" default : (goto_statement "goto switchD_00111d06_caseD_1;" goto statement_identifier ;)) (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    goto switchD_00111d06_caseD_30;" case (char_literal "'9'" ' character ') : (goto_statement "goto switchD_00111d06_caseD_30;" goto statement_identifier ;)) (case_statement "case 'G':\n    *pp = pcVar11 + 1;\n    pstart = (char **)(ulong)(byte)pcVar11[1];\n    if ((_sch_istable[(long)pstart * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;" case (char_literal "'G'" ' character ') : (expression_statement "*pp = pcVar11 + 1;" (assignment_expression "*pp = pcVar11 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) (expression_statement "pstart = (char **)(ulong)(byte)pcVar11[1];" (assignment_expression "pstart = (char **)(ulong)(byte)pcVar11[1]" identifier = (cast_expression "(char **)(ulong)(byte)pcVar11[1]" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (cast_expression "(ulong)(byte)pcVar11[1]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)pcVar11[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar11[1]" identifier [ number_literal ]))))) ;) (if_statement "if ((_sch_istable[(long)pstart * 2] & 4) == 0) goto switchD_00111d06_caseD_1;" if (parenthesized_expression "((_sch_istable[(long)pstart * 2] & 4) == 0)" ( (binary_expression "(_sch_istable[(long)pstart * 2] & 4) == 0" (parenthesized_expression "(_sch_istable[(long)pstart * 2] & 4)" ( (binary_expression "_sch_istable[(long)pstart * 2] & 4" (subscript_expression "_sch_istable[(long)pstart * 2]" identifier [ (binary_expression "(long)pstart * 2" (cast_expression "(long)pstart" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) (goto_statement "goto switchD_00111d06_caseD_1;" goto statement_identifier ;)) (goto_statement "goto switchD_00111d06_caseD_30;" goto statement_identifier ;)) (case_statement "case 'b':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"bool");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_bool_type(minfo->dhandle,4);\n        *ptype = pdVar9;\n      }\nLAB_00111e80:\n      pcVar11 = *pp;\n    }\n    break;" case (char_literal "'b'" ' character ') : (if_statement "if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"bool");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_bool_type(minfo->dhandle,4);\n        *ptype = pdVar9;\n      }\nLAB_00111e80:\n      pcVar11 = *pp;\n    }" if (parenthesized_expression "(ptype != (debug_type_conflict *)0x0)" ( (binary_expression "ptype != (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      pdVar9 = debug_find_named_type(minfo->dhandle,"bool");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_bool_type(minfo->dhandle,4);\n        *ptype = pdVar9;\n      }\nLAB_00111e80:\n      pcVar11 = *pp;\n    }" { (expression_statement "pdVar9 = debug_find_named_type(minfo->dhandle,"bool");" (assignment_expression "pdVar9 = debug_find_named_type(minfo->dhandle,"bool")" identifier = (call_expression "debug_find_named_type(minfo->dhandle,"bool")" identifier (argument_list "(minfo->dhandle,"bool")" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , (string_literal ""bool"" " string_content ") )))) ;) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) (if_statement "if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_bool_type(minfo->dhandle,4);\n        *ptype = pdVar9;\n      }" if (parenthesized_expression "(pdVar9 == (debug_type_conflict)0x0)" ( (binary_expression "pdVar9 == (debug_type_conflict)0x0" identifier == (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) )) (compound_statement "{\n        pdVar9 = debug_make_bool_type(minfo->dhandle,4);\n        *ptype = pdVar9;\n      }" { (expression_statement "pdVar9 = debug_make_bool_type(minfo->dhandle,4);" (assignment_expression "pdVar9 = debug_make_bool_type(minfo->dhandle,4)" identifier = (call_expression "debug_make_bool_type(minfo->dhandle,4)" identifier (argument_list "(minfo->dhandle,4)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , number_literal )))) ;) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) })) (labeled_statement "LAB_00111e80:\n      pcVar11 = *pp;" statement_identifier : (expression_statement "pcVar11 = *pp;" (assignment_expression "pcVar11 = *pp" identifier = (pointer_expression "*pp" * identifier)) ;)) })) (break_statement "break;" break ;)) (case_statement "case 'c':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "unsigned char";\n      if ((bVar6 == 0) && (pcVar15 = "signed char", !bVar3)) {\n        pcVar15 = "char";\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,1,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;" case (char_literal "'c'" ' character ') : (if_statement "if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "unsigned char";\n      if ((bVar6 == 0) && (pcVar15 = "signed char", !bVar3)) {\n        pcVar15 = "char";\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,1,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }" if (parenthesized_expression "(ptype != (debug_type_conflict *)0x0)" ( (binary_expression "ptype != (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      pcVar15 = "unsigned char";\n      if ((bVar6 == 0) && (pcVar15 = "signed char", !bVar3)) {\n        pcVar15 = "char";\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,1,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }" { (expression_statement "pcVar15 = "unsigned char";" (assignment_expression "pcVar15 = "unsigned char"" identifier = (string_literal ""unsigned char"" " string_content ")) ;) (if_statement "if ((bVar6 == 0) && (pcVar15 = "signed char", !bVar3)) {\n        pcVar15 = "char";\n      }" if (parenthesized_expression "((bVar6 == 0) && (pcVar15 = "signed char", !bVar3))" ( (binary_expression "(bVar6 == 0) && (pcVar15 = "signed char", !bVar3)" (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) && (parenthesized_expression "(pcVar15 = "signed char", !bVar3)" ( (comma_expression "pcVar15 = "signed char", !bVar3" (assignment_expression "pcVar15 = "signed char"" identifier = (string_literal ""signed char"" " string_content ")) , (unary_expression "!bVar3" ! identifier)) ))) )) (compound_statement "{\n        pcVar15 = "char";\n      }" { (expression_statement "pcVar15 = "char";" (assignment_expression "pcVar15 = "char"" identifier = (string_literal ""char"" " string_content ")) ;) })) (expression_statement "pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);" (assignment_expression "pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15)" identifier = (call_expression "debug_find_named_type(minfo->dhandle,pcVar15)" identifier (argument_list "(minfo->dhandle,pcVar15)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , identifier )))) ;) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) (if_statement "if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,1,bVar6);\n        *ptype = pdVar9;\n      }" if (parenthesized_expression "(pdVar9 == (debug_type_conflict)0x0)" ( (binary_expression "pdVar9 == (debug_type_conflict)0x0" identifier == (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) )) (compound_statement "{\n        pdVar9 = debug_make_int_type(minfo->dhandle,1,bVar6);\n        *ptype = pdVar9;\n      }" { (expression_statement "pdVar9 = debug_make_int_type(minfo->dhandle,1,bVar6);" (assignment_expression "pdVar9 = debug_make_int_type(minfo->dhandle,1,bVar6)" identifier = (call_expression "debug_make_int_type(minfo->dhandle,1,bVar6)" identifier (argument_list "(minfo->dhandle,1,bVar6)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , number_literal , identifier )))) ;) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) })) (goto_statement "goto LAB_00111e80;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 'd':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "double";\nLAB_00111fc0:\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_float_type(minfo->dhandle,8);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;" case (char_literal "'d'" ' character ') : (if_statement "if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "double";\nLAB_00111fc0:\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_float_type(minfo->dhandle,8);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }" if (parenthesized_expression "(ptype != (debug_type_conflict *)0x0)" ( (binary_expression "ptype != (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      pcVar15 = "double";\nLAB_00111fc0:\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_float_type(minfo->dhandle,8);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }" { (expression_statement "pcVar15 = "double";" (assignment_expression "pcVar15 = "double"" identifier = (string_literal ""double"" " string_content ")) ;) (labeled_statement "LAB_00111fc0:\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);" statement_identifier : (expression_statement "pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);" (assignment_expression "pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15)" identifier = (call_expression "debug_find_named_type(minfo->dhandle,pcVar15)" identifier (argument_list "(minfo->dhandle,pcVar15)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , identifier )))) ;)) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) (if_statement "if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_float_type(minfo->dhandle,8);\n        *ptype = pdVar9;\n      }" if (parenthesized_expression "(pdVar9 == (debug_type_conflict)0x0)" ( (binary_expression "pdVar9 == (debug_type_conflict)0x0" identifier == (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) )) (compound_statement "{\n        pdVar9 = debug_make_float_type(minfo->dhandle,8);\n        *ptype = pdVar9;\n      }" { (expression_statement "pdVar9 = debug_make_float_type(minfo->dhandle,8);" (assignment_expression "pdVar9 = debug_make_float_type(minfo->dhandle,8)" identifier = (call_expression "debug_make_float_type(minfo->dhandle,8)" identifier (argument_list "(minfo->dhandle,8)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , number_literal )))) ;) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) })) (goto_statement "goto LAB_00111e80;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 'f':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"float");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_float_type(minfo->dhandle,4);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;" case (char_literal "'f'" ' character ') : (if_statement "if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"float");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_float_type(minfo->dhandle,4);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }" if (parenthesized_expression "(ptype != (debug_type_conflict *)0x0)" ( (binary_expression "ptype != (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      pdVar9 = debug_find_named_type(minfo->dhandle,"float");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_float_type(minfo->dhandle,4);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }" { (expression_statement "pdVar9 = debug_find_named_type(minfo->dhandle,"float");" (assignment_expression "pdVar9 = debug_find_named_type(minfo->dhandle,"float")" identifier = (call_expression "debug_find_named_type(minfo->dhandle,"float")" identifier (argument_list "(minfo->dhandle,"float")" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , (string_literal ""float"" " string_content ") )))) ;) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) (if_statement "if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_float_type(minfo->dhandle,4);\n        *ptype = pdVar9;\n      }" if (parenthesized_expression "(pdVar9 == (debug_type_conflict)0x0)" ( (binary_expression "pdVar9 == (debug_type_conflict)0x0" identifier == (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) )) (compound_statement "{\n        pdVar9 = debug_make_float_type(minfo->dhandle,4);\n        *ptype = pdVar9;\n      }" { (expression_statement "pdVar9 = debug_make_float_type(minfo->dhandle,4);" (assignment_expression "pdVar9 = debug_make_float_type(minfo->dhandle,4)" identifier = (call_expression "debug_make_float_type(minfo->dhandle,4)" identifier (argument_list "(minfo->dhandle,4)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , number_literal )))) ;) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) })) (goto_statement "goto LAB_00111e80;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 'i':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "unsigned int";\n      pcVar11 = "int";\nLAB_0011200d:\n      if (bVar6 == 0) {\n        pcVar15 = pcVar11;\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,4,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;" case (char_literal "'i'" ' character ') : (if_statement "if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "unsigned int";\n      pcVar11 = "int";\nLAB_0011200d:\n      if (bVar6 == 0) {\n        pcVar15 = pcVar11;\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,4,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }" if (parenthesized_expression "(ptype != (debug_type_conflict *)0x0)" ( (binary_expression "ptype != (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      pcVar15 = "unsigned int";\n      pcVar11 = "int";\nLAB_0011200d:\n      if (bVar6 == 0) {\n        pcVar15 = pcVar11;\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,4,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }" { (expression_statement "pcVar15 = "unsigned int";" (assignment_expression "pcVar15 = "unsigned int"" identifier = (string_literal ""unsigned int"" " string_content ")) ;) (expression_statement "pcVar11 = "int";" (assignment_expression "pcVar11 = "int"" identifier = (string_literal ""int"" " string_content ")) ;) (labeled_statement "LAB_0011200d:\n      if (bVar6 == 0) {\n        pcVar15 = pcVar11;\n      }" statement_identifier : (if_statement "if (bVar6 == 0) {\n        pcVar15 = pcVar11;\n      }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar15 = pcVar11;\n      }" { (expression_statement "pcVar15 = pcVar11;" (assignment_expression "pcVar15 = pcVar11" identifier = identifier) ;) }))) (expression_statement "pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);" (assignment_expression "pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15)" identifier = (call_expression "debug_find_named_type(minfo->dhandle,pcVar15)" identifier (argument_list "(minfo->dhandle,pcVar15)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , identifier )))) ;) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) (if_statement "if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,4,bVar6);\n        *ptype = pdVar9;\n      }" if (parenthesized_expression "(pdVar9 == (debug_type_conflict)0x0)" ( (binary_expression "pdVar9 == (debug_type_conflict)0x0" identifier == (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) )) (compound_statement "{\n        pdVar9 = debug_make_int_type(minfo->dhandle,4,bVar6);\n        *ptype = pdVar9;\n      }" { (expression_statement "pdVar9 = debug_make_int_type(minfo->dhandle,4,bVar6);" (assignment_expression "pdVar9 = debug_make_int_type(minfo->dhandle,4,bVar6)" identifier = (call_expression "debug_make_int_type(minfo->dhandle,4,bVar6)" identifier (argument_list "(minfo->dhandle,4,bVar6)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , number_literal , identifier )))) ;) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) })) (goto_statement "goto LAB_00111e80;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 'l':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "long unsigned int";\n      pcVar11 = "long int";\n      goto LAB_0011200d;\n    }\n    break;" case (char_literal "'l'" ' character ') : (if_statement "if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "long unsigned int";\n      pcVar11 = "long int";\n      goto LAB_0011200d;\n    }" if (parenthesized_expression "(ptype != (debug_type_conflict *)0x0)" ( (binary_expression "ptype != (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      pcVar15 = "long unsigned int";\n      pcVar11 = "long int";\n      goto LAB_0011200d;\n    }" { (expression_statement "pcVar15 = "long unsigned int";" (assignment_expression "pcVar15 = "long unsigned int"" identifier = (string_literal ""long unsigned int"" " string_content ")) ;) (expression_statement "pcVar11 = "long int";" (assignment_expression "pcVar11 = "long int"" identifier = (string_literal ""long int"" " string_content ")) ;) (goto_statement "goto LAB_0011200d;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 'r':\n    pcVar15 = "long double";\n    if (ptype != (debug_type_conflict *)0x0) goto LAB_00111fc0;\n    break;" case (char_literal "'r'" ' character ') : (expression_statement "pcVar15 = "long double";" (assignment_expression "pcVar15 = "long double"" identifier = (string_literal ""long double"" " string_content ")) ;) (if_statement "if (ptype != (debug_type_conflict *)0x0) goto LAB_00111fc0;" if (parenthesized_expression "(ptype != (debug_type_conflict *)0x0)" ( (binary_expression "ptype != (debug_type_conflict *)0x0" identifier != (cast_expression "(debug_type_conflict *)0x0" ( (type_descriptor "debug_type_conflict *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00111fc0;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "case 's':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "short unsigned int";\n      if (bVar6 == 0) {\n        pcVar15 = "short int";\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\nLAB_00111eb3:\n        pdVar9 = debug_make_int_type(minfo->dhandle,2,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;" case (char_literal "'s'" ' character ') : (if_statement "if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "short unsigned int";\n      if (bVar6 == 0) {\n        pcVar15 = "short int";\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\nLAB_00111eb3:\n        pdVar9 = debug_make_int_type(minfo->dhandle,2,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }" if (parenthesized_expression "(ptype != (debug_type_conflict *)0x0)" ( (binary_expression "ptype != (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      pcVar15 = "short unsigned int";\n      if (bVar6 == 0) {\n        pcVar15 = "short int";\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\nLAB_00111eb3:\n        pdVar9 = debug_make_int_type(minfo->dhandle,2,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }" { (expression_statement "pcVar15 = "short unsigned int";" (assignment_expression "pcVar15 = "short unsigned int"" identifier = (string_literal ""short unsigned int"" " string_content ")) ;) (if_statement "if (bVar6 == 0) {\n        pcVar15 = "short int";\n      }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar15 = "short int";\n      }" { (expression_statement "pcVar15 = "short int";" (assignment_expression "pcVar15 = "short int"" identifier = (string_literal ""short int"" " string_content ")) ;) })) (expression_statement "pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);" (assignment_expression "pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15)" identifier = (call_expression "debug_find_named_type(minfo->dhandle,pcVar15)" identifier (argument_list "(minfo->dhandle,pcVar15)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , identifier )))) ;) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) (if_statement "if (pdVar9 == (debug_type_conflict)0x0) {\nLAB_00111eb3:\n        pdVar9 = debug_make_int_type(minfo->dhandle,2,bVar6);\n        *ptype = pdVar9;\n      }" if (parenthesized_expression "(pdVar9 == (debug_type_conflict)0x0)" ( (binary_expression "pdVar9 == (debug_type_conflict)0x0" identifier == (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) )) (compound_statement "{\nLAB_00111eb3:\n        pdVar9 = debug_make_int_type(minfo->dhandle,2,bVar6);\n        *ptype = pdVar9;\n      }" { (labeled_statement "LAB_00111eb3:\n        pdVar9 = debug_make_int_type(minfo->dhandle,2,bVar6);" statement_identifier : (expression_statement "pdVar9 = debug_make_int_type(minfo->dhandle,2,bVar6);" (assignment_expression "pdVar9 = debug_make_int_type(minfo->dhandle,2,bVar6)" identifier = (call_expression "debug_make_int_type(minfo->dhandle,2,bVar6)" identifier (argument_list "(minfo->dhandle,2,bVar6)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , number_literal , identifier )))) ;)) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) })) (goto_statement "goto LAB_00111e80;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 't':\n    if (ptype == (debug_type_conflict *)0x0) {\n      iVar5 = stab_demangle_template(minfo,pp,(char **)0x0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return 1;\n      }\n      return 0;\n    }\n    bVar6 = stab_demangle_template(minfo,pp,&p);\n    pcVar15 = p;\n    if (bVar6 == 0) {\n      return 0;\n    }\n    sVar8 = strlen(p);\n    pdVar10 = stab_find_tagged_type\n                        (minfo->dhandle,(stab_handle *)&minfo->info->tags,pcVar15,(int)sVar8,\n                         DEBUG_KIND_CLASS);\n    *ptype = pdVar10;\n    free(p);\n    pdVar10 = *ptype;\n    goto joined_r0x00111f61;" case (char_literal "'t'" ' character ') : (if_statement "if (ptype == (debug_type_conflict *)0x0) {\n      iVar5 = stab_demangle_template(minfo,pp,(char **)0x0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return 1;\n      }\n      return 0;\n    }" if (parenthesized_expression "(ptype == (debug_type_conflict *)0x0)" ( (binary_expression "ptype == (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      iVar5 = stab_demangle_template(minfo,pp,(char **)0x0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return 1;\n      }\n      return 0;\n    }" { (expression_statement "iVar5 = stab_demangle_template(minfo,pp,(char **)0x0);" (assignment_expression "iVar5 = stab_demangle_template(minfo,pp,(char **)0x0)" identifier = (call_expression "stab_demangle_template(minfo,pp,(char **)0x0)" identifier (argument_list "(minfo,pp,(char **)0x0)" ( identifier , identifier , (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal) )))) ;) (labeled_statement "joined_r0x0011192e:\n      if (iVar5 != 0) {\n        return 1;\n      }" statement_identifier : (if_statement "if (iVar5 != 0) {\n        return 1;\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        return 1;\n      }" { (return_statement "return 1;" return number_literal ;) }))) (return_statement "return 0;" return number_literal ;) })) (expression_statement "bVar6 = stab_demangle_template(minfo,pp,&p);" (assignment_expression "bVar6 = stab_demangle_template(minfo,pp,&p)" identifier = (call_expression "stab_demangle_template(minfo,pp,&p)" identifier (argument_list "(minfo,pp,&p)" ( identifier , identifier , (pointer_expression "&p" & identifier) )))) ;) (expression_statement "pcVar15 = p;" (assignment_expression "pcVar15 = p" identifier = identifier) ;) (if_statement "if (bVar6 == 0) {\n      return 0;\n    }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n      return 0;\n    }" { (return_statement "return 0;" return number_literal ;) })) (expression_statement "sVar8 = strlen(p);" (assignment_expression "sVar8 = strlen(p)" identifier = (call_expression "strlen(p)" identifier (argument_list "(p)" ( identifier )))) ;) (expression_statement "pdVar10 = stab_find_tagged_type\n                        (minfo->dhandle,(stab_handle *)&minfo->info->tags,pcVar15,(int)sVar8,\n                         DEBUG_KIND_CLASS);" (assignment_expression "pdVar10 = stab_find_tagged_type\n                        (minfo->dhandle,(stab_handle *)&minfo->info->tags,pcVar15,(int)sVar8,\n                         DEBUG_KIND_CLASS)" identifier = (call_expression "stab_find_tagged_type\n                        (minfo->dhandle,(stab_handle *)&minfo->info->tags,pcVar15,(int)sVar8,\n                         DEBUG_KIND_CLASS)" identifier (argument_list "(minfo->dhandle,(stab_handle *)&minfo->info->tags,pcVar15,(int)sVar8,\n                         DEBUG_KIND_CLASS)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , (cast_expression "(stab_handle *)&minfo->info->tags" ( (type_descriptor "stab_handle *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&minfo->info->tags" & (field_expression "minfo->info->tags" (field_expression "minfo->info" identifier -> field_identifier) -> field_identifier))) , identifier , (cast_expression "(int)sVar8" ( (type_descriptor "int" primitive_type) ) identifier) , identifier )))) ;) (expression_statement "*ptype = pdVar10;" (assignment_expression "*ptype = pdVar10" (pointer_expression "*ptype" * identifier) = identifier) ;) (expression_statement "free(p);" (call_expression "free(p)" identifier (argument_list "(p)" ( identifier ))) ;) (expression_statement "pdVar10 = *ptype;" (assignment_expression "pdVar10 = *ptype" identifier = (pointer_expression "*ptype" * identifier)) ;) (goto_statement "goto joined_r0x00111f61;" goto statement_identifier ;)) (case_statement "case 'v':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"void");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_void_type(minfo->dhandle);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }\n    break;" case (char_literal "'v'" ' character ') : (if_statement "if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"void");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_void_type(minfo->dhandle);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }" if (parenthesized_expression "(ptype != (debug_type_conflict *)0x0)" ( (binary_expression "ptype != (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      pdVar9 = debug_find_named_type(minfo->dhandle,"void");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_void_type(minfo->dhandle);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }" { (expression_statement "pdVar9 = debug_find_named_type(minfo->dhandle,"void");" (assignment_expression "pdVar9 = debug_find_named_type(minfo->dhandle,"void")" identifier = (call_expression "debug_find_named_type(minfo->dhandle,"void")" identifier (argument_list "(minfo->dhandle,"void")" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , (string_literal ""void"" " string_content ") )))) ;) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) (if_statement "if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_void_type(minfo->dhandle);\n        *ptype = pdVar9;\n      }" if (parenthesized_expression "(pdVar9 == (debug_type_conflict)0x0)" ( (binary_expression "pdVar9 == (debug_type_conflict)0x0" identifier == (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) )) (compound_statement "{\n        pdVar9 = debug_make_void_type(minfo->dhandle);\n        *ptype = pdVar9;\n      }" { (expression_statement "pdVar9 = debug_make_void_type(minfo->dhandle);" (assignment_expression "pdVar9 = debug_make_void_type(minfo->dhandle)" identifier = (call_expression "debug_make_void_type(minfo->dhandle)" identifier (argument_list "(minfo->dhandle)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) )))) ;) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) })) (goto_statement "goto LAB_00111e80;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 'w':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"__wchar_t");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        bVar6 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;" case (char_literal "'w'" ' character ') : (if_statement "if (ptype != (debug_type_conflict *)0x0) {\n      pdVar9 = debug_find_named_type(minfo->dhandle,"__wchar_t");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        bVar6 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }" if (parenthesized_expression "(ptype != (debug_type_conflict *)0x0)" ( (binary_expression "ptype != (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      pdVar9 = debug_find_named_type(minfo->dhandle,"__wchar_t");\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        bVar6 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }" { (expression_statement "pdVar9 = debug_find_named_type(minfo->dhandle,"__wchar_t");" (assignment_expression "pdVar9 = debug_find_named_type(minfo->dhandle,"__wchar_t")" identifier = (call_expression "debug_find_named_type(minfo->dhandle,"__wchar_t")" identifier (argument_list "(minfo->dhandle,"__wchar_t")" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , (string_literal ""__wchar_t"" " string_content ") )))) ;) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) (if_statement "if (pdVar9 == (debug_type_conflict)0x0) {\n        bVar6 = 1;\n        goto LAB_00111eb3;\n      }" if (parenthesized_expression "(pdVar9 == (debug_type_conflict)0x0)" ( (binary_expression "pdVar9 == (debug_type_conflict)0x0" identifier == (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) )) (compound_statement "{\n        bVar6 = 1;\n        goto LAB_00111eb3;\n      }" { (expression_statement "bVar6 = 1;" (assignment_expression "bVar6 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00111eb3;" goto statement_identifier ;) })) (goto_statement "goto LAB_00111e80;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 'x':\n    if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "long long unsigned int";\n      if (bVar6 == 0) {\n        pcVar15 = "long long int";\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,8,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }" case (char_literal "'x'" ' character ') : (if_statement "if (ptype != (debug_type_conflict *)0x0) {\n      pcVar15 = "long long unsigned int";\n      if (bVar6 == 0) {\n        pcVar15 = "long long int";\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,8,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }" if (parenthesized_expression "(ptype != (debug_type_conflict *)0x0)" ( (binary_expression "ptype != (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      pcVar15 = "long long unsigned int";\n      if (bVar6 == 0) {\n        pcVar15 = "long long int";\n      }\n      pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);\n      *ptype = pdVar9;\n      if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,8,bVar6);\n        *ptype = pdVar9;\n      }\n      goto LAB_00111e80;\n    }" { (expression_statement "pcVar15 = "long long unsigned int";" (assignment_expression "pcVar15 = "long long unsigned int"" identifier = (string_literal ""long long unsigned int"" " string_content ")) ;) (if_statement "if (bVar6 == 0) {\n        pcVar15 = "long long int";\n      }" if (parenthesized_expression "(bVar6 == 0)" ( (binary_expression "bVar6 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar15 = "long long int";\n      }" { (expression_statement "pcVar15 = "long long int";" (assignment_expression "pcVar15 = "long long int"" identifier = (string_literal ""long long int"" " string_content ")) ;) })) (expression_statement "pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15);" (assignment_expression "pdVar9 = debug_find_named_type(minfo->dhandle,pcVar15)" identifier = (call_expression "debug_find_named_type(minfo->dhandle,pcVar15)" identifier (argument_list "(minfo->dhandle,pcVar15)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , identifier )))) ;) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) (if_statement "if (pdVar9 == (debug_type_conflict)0x0) {\n        pdVar9 = debug_make_int_type(minfo->dhandle,8,bVar6);\n        *ptype = pdVar9;\n      }" if (parenthesized_expression "(pdVar9 == (debug_type_conflict)0x0)" ( (binary_expression "pdVar9 == (debug_type_conflict)0x0" identifier == (cast_expression "(debug_type_conflict)0x0" ( (type_descriptor "debug_type_conflict" type_identifier) ) number_literal)) )) (compound_statement "{\n        pdVar9 = debug_make_int_type(minfo->dhandle,8,bVar6);\n        *ptype = pdVar9;\n      }" { (expression_statement "pdVar9 = debug_make_int_type(minfo->dhandle,8,bVar6);" (assignment_expression "pdVar9 = debug_make_int_type(minfo->dhandle,8,bVar6)" identifier = (call_expression "debug_make_int_type(minfo->dhandle,8,bVar6)" identifier (argument_list "(minfo->dhandle,8,bVar6)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , number_literal , identifier )))) ;) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) })) (goto_statement "goto LAB_00111e80;" goto statement_identifier ;) }))) })) (expression_statement "*pp = pcVar11 + 1;" (assignment_expression "*pp = pcVar11 + 1" (pointer_expression "*pp" * identifier) = (binary_expression "pcVar11 + 1" identifier + number_literal)) ;) (labeled_statement "LAB_00111df8:\n  if (ptype != (debug_type_conflict *)0x0) {\n    if (bVar2) {\n      pdVar9 = debug_make_const_type(minfo->dhandle,*ptype);\n      *ptype = pdVar9;\n    }\n    if (iVar5 != 0) {\n      pdVar9 = debug_make_volatile_type(minfo->dhandle,*ptype);\n      *ptype = pdVar9;\n      return iVar5;\n    }\n  }" statement_identifier : (if_statement "if (ptype != (debug_type_conflict *)0x0) {\n    if (bVar2) {\n      pdVar9 = debug_make_const_type(minfo->dhandle,*ptype);\n      *ptype = pdVar9;\n    }\n    if (iVar5 != 0) {\n      pdVar9 = debug_make_volatile_type(minfo->dhandle,*ptype);\n      *ptype = pdVar9;\n      return iVar5;\n    }\n  }" if (parenthesized_expression "(ptype != (debug_type_conflict *)0x0)" ( (binary_expression "ptype != (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    if (bVar2) {\n      pdVar9 = debug_make_const_type(minfo->dhandle,*ptype);\n      *ptype = pdVar9;\n    }\n    if (iVar5 != 0) {\n      pdVar9 = debug_make_volatile_type(minfo->dhandle,*ptype);\n      *ptype = pdVar9;\n      return iVar5;\n    }\n  }" { (if_statement "if (bVar2) {\n      pdVar9 = debug_make_const_type(minfo->dhandle,*ptype);\n      *ptype = pdVar9;\n    }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n      pdVar9 = debug_make_const_type(minfo->dhandle,*ptype);\n      *ptype = pdVar9;\n    }" { (expression_statement "pdVar9 = debug_make_const_type(minfo->dhandle,*ptype);" (assignment_expression "pdVar9 = debug_make_const_type(minfo->dhandle,*ptype)" identifier = (call_expression "debug_make_const_type(minfo->dhandle,*ptype)" identifier (argument_list "(minfo->dhandle,*ptype)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , (pointer_expression "*ptype" * identifier) )))) ;) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) })) (if_statement "if (iVar5 != 0) {\n      pdVar9 = debug_make_volatile_type(minfo->dhandle,*ptype);\n      *ptype = pdVar9;\n      return iVar5;\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      pdVar9 = debug_make_volatile_type(minfo->dhandle,*ptype);\n      *ptype = pdVar9;\n      return iVar5;\n    }" { (expression_statement "pdVar9 = debug_make_volatile_type(minfo->dhandle,*ptype);" (assignment_expression "pdVar9 = debug_make_volatile_type(minfo->dhandle,*ptype)" identifier = (call_expression "debug_make_volatile_type(minfo->dhandle,*ptype)" identifier (argument_list "(minfo->dhandle,*ptype)" ( (field_expression "minfo->dhandle" identifier -> field_identifier) , (pointer_expression "*ptype" * identifier) )))) ;) (expression_statement "*ptype = pdVar9;" (assignment_expression "*ptype = pdVar9" (pointer_expression "*ptype" * identifier) = identifier) ;) (return_statement "return iVar5;" return identifier ;) })) }))) (return_statement "return 1;" return number_literal ;) })))
(translation_unit "bool FUN_001118a0(undefined8 *param_1,long *param_2,long *param_3)\n\n{\n  char cVar1;\n  bool bVar2;\n  bool bVar3;\n  byte bVar4;\n  int iVar5;\n  ulong uVar6;\n  size_t sVar7;\n  long lVar8;\n  long lVar9;\n  void *__ptr;\n  char *pcVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  undefined4 *puVar13;\n  char **ppcVar14;\n  ulong *puVar15;\n  char *pcVar16;\n  bool bVar17;\n  uint uVar18;\n  undefined4 local_4c;\n  ulong local_48;\n  char *local_40 [2];\n  \n  pcVar16 = (char *)*param_2;\n  cVar1 = *pcVar16;\n  switch(cVar1) {\n  case 'A':\n    pbVar12 = (byte *)(pcVar16 + 1);\n    *param_2 = (long)pbVar12;\n    bVar4 = pcVar16[1];\n    if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      lVar8 = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }\n    break;\n  default:\n    bVar3 = false;\n    iVar5 = 0;\n    bVar17 = false;\n    bVar2 = false;\n    pcVar10 = pcVar16;\n    do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      cVar1 = pcVar10[1];\n      pcVar10 = (char *)*param_2;\n    } while( true );\n  case 'C':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f8f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'F':\n    puVar15 = (ulong *)0x0;\n    ppcVar14 = (char **)0x0;\n    *param_2 = (long)(pcVar16 + 1);\n    if (param_3 != (long *)0x0) {\n      puVar15 = &local_48;\n      ppcVar14 = local_40;\n    }\n    iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar15);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (*(char *)*param_2 == '_') {\n      *param_2 = (long)((char *)*param_2 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'G':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'M':\n  case 'O':\n    local_48 = 0;\n    cVar1 = *pcVar16;\n    *param_2 = (long)(pcVar16 + 1);\n    local_40[0] = (char *)0x0;\n    local_4c = 0;\n    bVar4 = pcVar16[1];\n    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      puVar15 = &local_48;\n      if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }\n      iVar5 = FUN_00112870(param_1,param_2,puVar15);\n      if (iVar5 == 0) {\n        return false;\n      }\nLAB_00111b38:\n      pbVar12 = (byte *)*param_2;\n    }\n    else {\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }\n    bVar4 = *pbVar12;\n    if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }\n      if (bVar4 != 0x46) break;\n      *param_2 = (long)(pbVar11 + 1);\n      if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }\n      iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);\n      if (iVar5 == 0) {\n        return false;\n      }\n      pbVar12 = (byte *)*param_2;\n      bVar4 = *pbVar12;\n    }\n    if (bVar4 == 0x5f) {\n      *param_2 = (long)(pbVar12 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }\n      lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'P':\n  case 'p':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f5f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'Q':\n    iVar5 = FUN_00112870(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'R':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f6a0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'T':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001103c0(param_2,&local_48);\n    if (iVar5 != 0) {\n      if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }\n    }\n  }\nswitchD_00111d06_caseD_1:\n  FUN_00110480(pcVar16);\n  return false;\nswitchD_00111d06_caseD_30:\n  iVar5 = FUN_00110de0(param_2,local_40);\n  if (iVar5 == 0) {\n    return false;\n  }\n  if (param_3 == (long *)0x0) {\n    return true;\n  }\n  __ptr = (void *)FUN_00110540(local_40[0],*param_2 - (long)local_40[0]);\n  lVar8 = FUN_0010fe00(*param_1,__ptr);\n  *param_3 = lVar8;\n  free(__ptr);\n  if (*param_3 == 0) {\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0);\n    *param_3 = lVar8;\njoined_r0x00111f61:\n    if (lVar8 == 0) {\n      return false;\n    }\n  }\n  goto LAB_00111df8;\ncode_r0x00111cf8:\n  switch(cVar1) {\n  case '\0':\n  case '_':\n    FUN_00110480(pcVar16);\n    goto LAB_00111df8;\n  default:\n    goto switchD_00111d06_caseD_1;\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    goto switchD_00111d06_caseD_30;\n  case 'G':\n    *param_2 = (long)(pcVar10 + 1);\n    if ((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;\n  case 'b':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }\n    break;\n  case 'c':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'd':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'f':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'i':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'l':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }\n    break;\n  case 'r':\n    pcVar16 = "long double";\n    if (param_3 != (long *)0x0) goto LAB_00111fc0;\n    break;\n  case 's':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 't':\n    if (param_3 == (long *)0x0) {\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }\n    iVar5 = FUN_001122d0(param_1,param_2,local_40);\n    pcVar16 = local_40[0];\n    if (iVar5 == 0) {\n      return false;\n    }\n    sVar7 = strlen(local_40[0]);\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9);\n    *param_3 = lVar8;\n    free(local_40[0]);\n    lVar8 = *param_3;\n    goto joined_r0x00111f61;\n  case 'v':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'w':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'x':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n  }\n  *param_2 = (long)(pcVar10 + 1);\nLAB_00111df8:\n  if (param_3 != (long *)0x0) {\n    if (bVar2) {\n      lVar8 = FUN_0010f8f0(*param_1,*param_3);\n      *param_3 = lVar8;\n    }\n    if (bVar17 != false) {\n      lVar8 = FUN_0010f920(*param_1,*param_3);\n      *param_3 = lVar8;\n      return bVar17;\n    }\n  }\n  return true;\n}\n\n" (function_definition "bool FUN_001118a0(undefined8 *param_1,long *param_2,long *param_3)\n\n{\n  char cVar1;\n  bool bVar2;\n  bool bVar3;\n  byte bVar4;\n  int iVar5;\n  ulong uVar6;\n  size_t sVar7;\n  long lVar8;\n  long lVar9;\n  void *__ptr;\n  char *pcVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  undefined4 *puVar13;\n  char **ppcVar14;\n  ulong *puVar15;\n  char *pcVar16;\n  bool bVar17;\n  uint uVar18;\n  undefined4 local_4c;\n  ulong local_48;\n  char *local_40 [2];\n  \n  pcVar16 = (char *)*param_2;\n  cVar1 = *pcVar16;\n  switch(cVar1) {\n  case 'A':\n    pbVar12 = (byte *)(pcVar16 + 1);\n    *param_2 = (long)pbVar12;\n    bVar4 = pcVar16[1];\n    if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      lVar8 = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }\n    break;\n  default:\n    bVar3 = false;\n    iVar5 = 0;\n    bVar17 = false;\n    bVar2 = false;\n    pcVar10 = pcVar16;\n    do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      cVar1 = pcVar10[1];\n      pcVar10 = (char *)*param_2;\n    } while( true );\n  case 'C':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f8f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'F':\n    puVar15 = (ulong *)0x0;\n    ppcVar14 = (char **)0x0;\n    *param_2 = (long)(pcVar16 + 1);\n    if (param_3 != (long *)0x0) {\n      puVar15 = &local_48;\n      ppcVar14 = local_40;\n    }\n    iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar15);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (*(char *)*param_2 == '_') {\n      *param_2 = (long)((char *)*param_2 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'G':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'M':\n  case 'O':\n    local_48 = 0;\n    cVar1 = *pcVar16;\n    *param_2 = (long)(pcVar16 + 1);\n    local_40[0] = (char *)0x0;\n    local_4c = 0;\n    bVar4 = pcVar16[1];\n    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      puVar15 = &local_48;\n      if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }\n      iVar5 = FUN_00112870(param_1,param_2,puVar15);\n      if (iVar5 == 0) {\n        return false;\n      }\nLAB_00111b38:\n      pbVar12 = (byte *)*param_2;\n    }\n    else {\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }\n    bVar4 = *pbVar12;\n    if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }\n      if (bVar4 != 0x46) break;\n      *param_2 = (long)(pbVar11 + 1);\n      if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }\n      iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);\n      if (iVar5 == 0) {\n        return false;\n      }\n      pbVar12 = (byte *)*param_2;\n      bVar4 = *pbVar12;\n    }\n    if (bVar4 == 0x5f) {\n      *param_2 = (long)(pbVar12 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }\n      lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'P':\n  case 'p':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f5f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'Q':\n    iVar5 = FUN_00112870(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'R':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f6a0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'T':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001103c0(param_2,&local_48);\n    if (iVar5 != 0) {\n      if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }\n    }\n  }\nswitchD_00111d06_caseD_1:\n  FUN_00110480(pcVar16);\n  return false;\nswitchD_00111d06_caseD_30:\n  iVar5 = FUN_00110de0(param_2,local_40);\n  if (iVar5 == 0) {\n    return false;\n  }\n  if (param_3 == (long *)0x0) {\n    return true;\n  }\n  __ptr = (void *)FUN_00110540(local_40[0],*param_2 - (long)local_40[0]);\n  lVar8 = FUN_0010fe00(*param_1,__ptr);\n  *param_3 = lVar8;\n  free(__ptr);\n  if (*param_3 == 0) {\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0);\n    *param_3 = lVar8;\njoined_r0x00111f61:\n    if (lVar8 == 0) {\n      return false;\n    }\n  }\n  goto LAB_00111df8;\ncode_r0x00111cf8:\n  switch(cVar1) {\n  case '\0':\n  case '_':\n    FUN_00110480(pcVar16);\n    goto LAB_00111df8;\n  default:\n    goto switchD_00111d06_caseD_1;\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    goto switchD_00111d06_caseD_30;\n  case 'G':\n    *param_2 = (long)(pcVar10 + 1);\n    if ((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;\n  case 'b':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }\n    break;\n  case 'c':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'd':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'f':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'i':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'l':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }\n    break;\n  case 'r':\n    pcVar16 = "long double";\n    if (param_3 != (long *)0x0) goto LAB_00111fc0;\n    break;\n  case 's':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 't':\n    if (param_3 == (long *)0x0) {\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }\n    iVar5 = FUN_001122d0(param_1,param_2,local_40);\n    pcVar16 = local_40[0];\n    if (iVar5 == 0) {\n      return false;\n    }\n    sVar7 = strlen(local_40[0]);\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9);\n    *param_3 = lVar8;\n    free(local_40[0]);\n    lVar8 = *param_3;\n    goto joined_r0x00111f61;\n  case 'v':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'w':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'x':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n  }\n  *param_2 = (long)(pcVar10 + 1);\nLAB_00111df8:\n  if (param_3 != (long *)0x0) {\n    if (bVar2) {\n      lVar8 = FUN_0010f8f0(*param_1,*param_3);\n      *param_3 = lVar8;\n    }\n    if (bVar17 != false) {\n      lVar8 = FUN_0010f920(*param_1,*param_3);\n      *param_3 = lVar8;\n      return bVar17;\n    }\n  }\n  return true;\n}" primitive_type (function_declarator "FUN_001118a0(undefined8 *param_1,long *param_2,long *param_3)" identifier (parameter_list "(undefined8 *param_1,long *param_2,long *param_3)" ( (parameter_declaration "undefined8 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "long *param_2" (sized_type_specifier "long" long) (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "long *param_3" (sized_type_specifier "long" long) (pointer_declarator "*param_3" * identifier)) ))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  bool bVar3;\n  byte bVar4;\n  int iVar5;\n  ulong uVar6;\n  size_t sVar7;\n  long lVar8;\n  long lVar9;\n  void *__ptr;\n  char *pcVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  undefined4 *puVar13;\n  char **ppcVar14;\n  ulong *puVar15;\n  char *pcVar16;\n  bool bVar17;\n  uint uVar18;\n  undefined4 local_4c;\n  ulong local_48;\n  char *local_40 [2];\n  \n  pcVar16 = (char *)*param_2;\n  cVar1 = *pcVar16;\n  switch(cVar1) {\n  case 'A':\n    pbVar12 = (byte *)(pcVar16 + 1);\n    *param_2 = (long)pbVar12;\n    bVar4 = pcVar16[1];\n    if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      lVar8 = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }\n    break;\n  default:\n    bVar3 = false;\n    iVar5 = 0;\n    bVar17 = false;\n    bVar2 = false;\n    pcVar10 = pcVar16;\n    do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      cVar1 = pcVar10[1];\n      pcVar10 = (char *)*param_2;\n    } while( true );\n  case 'C':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f8f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'F':\n    puVar15 = (ulong *)0x0;\n    ppcVar14 = (char **)0x0;\n    *param_2 = (long)(pcVar16 + 1);\n    if (param_3 != (long *)0x0) {\n      puVar15 = &local_48;\n      ppcVar14 = local_40;\n    }\n    iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar15);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (*(char *)*param_2 == '_') {\n      *param_2 = (long)((char *)*param_2 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'G':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'M':\n  case 'O':\n    local_48 = 0;\n    cVar1 = *pcVar16;\n    *param_2 = (long)(pcVar16 + 1);\n    local_40[0] = (char *)0x0;\n    local_4c = 0;\n    bVar4 = pcVar16[1];\n    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      puVar15 = &local_48;\n      if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }\n      iVar5 = FUN_00112870(param_1,param_2,puVar15);\n      if (iVar5 == 0) {\n        return false;\n      }\nLAB_00111b38:\n      pbVar12 = (byte *)*param_2;\n    }\n    else {\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }\n    bVar4 = *pbVar12;\n    if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }\n      if (bVar4 != 0x46) break;\n      *param_2 = (long)(pbVar11 + 1);\n      if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }\n      iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);\n      if (iVar5 == 0) {\n        return false;\n      }\n      pbVar12 = (byte *)*param_2;\n      bVar4 = *pbVar12;\n    }\n    if (bVar4 == 0x5f) {\n      *param_2 = (long)(pbVar12 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }\n      lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'P':\n  case 'p':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f5f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'Q':\n    iVar5 = FUN_00112870(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'R':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f6a0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'T':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001103c0(param_2,&local_48);\n    if (iVar5 != 0) {\n      if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }\n    }\n  }\nswitchD_00111d06_caseD_1:\n  FUN_00110480(pcVar16);\n  return false;\nswitchD_00111d06_caseD_30:\n  iVar5 = FUN_00110de0(param_2,local_40);\n  if (iVar5 == 0) {\n    return false;\n  }\n  if (param_3 == (long *)0x0) {\n    return true;\n  }\n  __ptr = (void *)FUN_00110540(local_40[0],*param_2 - (long)local_40[0]);\n  lVar8 = FUN_0010fe00(*param_1,__ptr);\n  *param_3 = lVar8;\n  free(__ptr);\n  if (*param_3 == 0) {\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0);\n    *param_3 = lVar8;\njoined_r0x00111f61:\n    if (lVar8 == 0) {\n      return false;\n    }\n  }\n  goto LAB_00111df8;\ncode_r0x00111cf8:\n  switch(cVar1) {\n  case '\0':\n  case '_':\n    FUN_00110480(pcVar16);\n    goto LAB_00111df8;\n  default:\n    goto switchD_00111d06_caseD_1;\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    goto switchD_00111d06_caseD_30;\n  case 'G':\n    *param_2 = (long)(pcVar10 + 1);\n    if ((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;\n  case 'b':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }\n    break;\n  case 'c':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'd':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'f':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'i':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'l':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }\n    break;\n  case 'r':\n    pcVar16 = "long double";\n    if (param_3 != (long *)0x0) goto LAB_00111fc0;\n    break;\n  case 's':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 't':\n    if (param_3 == (long *)0x0) {\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }\n    iVar5 = FUN_001122d0(param_1,param_2,local_40);\n    pcVar16 = local_40[0];\n    if (iVar5 == 0) {\n      return false;\n    }\n    sVar7 = strlen(local_40[0]);\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9);\n    *param_3 = lVar8;\n    free(local_40[0]);\n    lVar8 = *param_3;\n    goto joined_r0x00111f61;\n  case 'v':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'w':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'x':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n  }\n  *param_2 = (long)(pcVar10 + 1);\nLAB_00111df8:\n  if (param_3 != (long *)0x0) {\n    if (bVar2) {\n      lVar8 = FUN_0010f8f0(*param_1,*param_3);\n      *param_3 = lVar8;\n    }\n    if (bVar17 != false) {\n      lVar8 = FUN_0010f920(*param_1,*param_3);\n      *param_3 = lVar8;\n      return bVar17;\n    }\n  }\n  return true;\n}" { (declaration "char cVar1;" primitive_type identifier ;) (declaration "bool bVar2;" primitive_type identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "byte bVar4;" type_identifier identifier ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "ulong uVar6;" type_identifier identifier ;) (declaration "size_t sVar7;" primitive_type identifier ;) (declaration "long lVar8;" (sized_type_specifier "long" long) identifier ;) (declaration "long lVar9;" (sized_type_specifier "long" long) identifier ;) (declaration "void *__ptr;" primitive_type (pointer_declarator "*__ptr" * identifier) ;) (declaration "char *pcVar10;" primitive_type (pointer_declarator "*pcVar10" * identifier) ;) (declaration "byte *pbVar11;" type_identifier (pointer_declarator "*pbVar11" * identifier) ;) (declaration "byte *pbVar12;" type_identifier (pointer_declarator "*pbVar12" * identifier) ;) (declaration "undefined4 *puVar13;" type_identifier (pointer_declarator "*puVar13" * identifier) ;) (declaration "char **ppcVar14;" primitive_type (pointer_declarator "**ppcVar14" * (pointer_declarator "*ppcVar14" * identifier)) ;) (declaration "ulong *puVar15;" type_identifier (pointer_declarator "*puVar15" * identifier) ;) (declaration "char *pcVar16;" primitive_type (pointer_declarator "*pcVar16" * identifier) ;) (declaration "bool bVar17;" primitive_type identifier ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "undefined4 local_4c;" type_identifier identifier ;) (declaration "ulong local_48;" type_identifier identifier ;) (declaration "char *local_40 [2];" primitive_type (pointer_declarator "*local_40 [2]" * (array_declarator "local_40 [2]" identifier [ number_literal ])) ;) (expression_statement "pcVar16 = (char *)*param_2;" (assignment_expression "pcVar16 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (switch_statement "switch(cVar1) {\n  case 'A':\n    pbVar12 = (byte *)(pcVar16 + 1);\n    *param_2 = (long)pbVar12;\n    bVar4 = pcVar16[1];\n    if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      lVar8 = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }\n    break;\n  default:\n    bVar3 = false;\n    iVar5 = 0;\n    bVar17 = false;\n    bVar2 = false;\n    pcVar10 = pcVar16;\n    do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      cVar1 = pcVar10[1];\n      pcVar10 = (char *)*param_2;\n    } while( true );\n  case 'C':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f8f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'F':\n    puVar15 = (ulong *)0x0;\n    ppcVar14 = (char **)0x0;\n    *param_2 = (long)(pcVar16 + 1);\n    if (param_3 != (long *)0x0) {\n      puVar15 = &local_48;\n      ppcVar14 = local_40;\n    }\n    iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar15);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (*(char *)*param_2 == '_') {\n      *param_2 = (long)((char *)*param_2 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'G':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'M':\n  case 'O':\n    local_48 = 0;\n    cVar1 = *pcVar16;\n    *param_2 = (long)(pcVar16 + 1);\n    local_40[0] = (char *)0x0;\n    local_4c = 0;\n    bVar4 = pcVar16[1];\n    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      puVar15 = &local_48;\n      if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }\n      iVar5 = FUN_00112870(param_1,param_2,puVar15);\n      if (iVar5 == 0) {\n        return false;\n      }\nLAB_00111b38:\n      pbVar12 = (byte *)*param_2;\n    }\n    else {\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }\n    bVar4 = *pbVar12;\n    if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }\n      if (bVar4 != 0x46) break;\n      *param_2 = (long)(pbVar11 + 1);\n      if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }\n      iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);\n      if (iVar5 == 0) {\n        return false;\n      }\n      pbVar12 = (byte *)*param_2;\n      bVar4 = *pbVar12;\n    }\n    if (bVar4 == 0x5f) {\n      *param_2 = (long)(pbVar12 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }\n      lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'P':\n  case 'p':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f5f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'Q':\n    iVar5 = FUN_00112870(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'R':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f6a0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'T':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001103c0(param_2,&local_48);\n    if (iVar5 != 0) {\n      if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }\n    }\n  }" switch (parenthesized_expression "(cVar1)" ( identifier )) (compound_statement "{\n  case 'A':\n    pbVar12 = (byte *)(pcVar16 + 1);\n    *param_2 = (long)pbVar12;\n    bVar4 = pcVar16[1];\n    if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      lVar8 = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }\n    break;\n  default:\n    bVar3 = false;\n    iVar5 = 0;\n    bVar17 = false;\n    bVar2 = false;\n    pcVar10 = pcVar16;\n    do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      cVar1 = pcVar10[1];\n      pcVar10 = (char *)*param_2;\n    } while( true );\n  case 'C':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f8f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'F':\n    puVar15 = (ulong *)0x0;\n    ppcVar14 = (char **)0x0;\n    *param_2 = (long)(pcVar16 + 1);\n    if (param_3 != (long *)0x0) {\n      puVar15 = &local_48;\n      ppcVar14 = local_40;\n    }\n    iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar15);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (*(char *)*param_2 == '_') {\n      *param_2 = (long)((char *)*param_2 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'G':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'M':\n  case 'O':\n    local_48 = 0;\n    cVar1 = *pcVar16;\n    *param_2 = (long)(pcVar16 + 1);\n    local_40[0] = (char *)0x0;\n    local_4c = 0;\n    bVar4 = pcVar16[1];\n    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      puVar15 = &local_48;\n      if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }\n      iVar5 = FUN_00112870(param_1,param_2,puVar15);\n      if (iVar5 == 0) {\n        return false;\n      }\nLAB_00111b38:\n      pbVar12 = (byte *)*param_2;\n    }\n    else {\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }\n    bVar4 = *pbVar12;\n    if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }\n      if (bVar4 != 0x46) break;\n      *param_2 = (long)(pbVar11 + 1);\n      if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }\n      iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);\n      if (iVar5 == 0) {\n        return false;\n      }\n      pbVar12 = (byte *)*param_2;\n      bVar4 = *pbVar12;\n    }\n    if (bVar4 == 0x5f) {\n      *param_2 = (long)(pbVar12 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }\n      lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'P':\n  case 'p':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f5f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'Q':\n    iVar5 = FUN_00112870(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'R':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f6a0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'T':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001103c0(param_2,&local_48);\n    if (iVar5 != 0) {\n      if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }\n    }\n  }" { (case_statement "case 'A':\n    pbVar12 = (byte *)(pcVar16 + 1);\n    *param_2 = (long)pbVar12;\n    bVar4 = pcVar16[1];\n    if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      lVar8 = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }\n    break;" case (char_literal "'A'" ' character ') : (expression_statement "pbVar12 = (byte *)(pcVar16 + 1);" (assignment_expression "pbVar12 = (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) )))) ;) (expression_statement "*param_2 = (long)pbVar12;" (assignment_expression "*param_2 = (long)pbVar12" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)pbVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "bVar4 = pcVar16[1];" (assignment_expression "bVar4 = pcVar16[1]" identifier = (subscript_expression "pcVar16[1]" identifier [ number_literal ])) ;) (if_statement "if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      lVar8 = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }" if (parenthesized_expression "((bVar4 == 0) || (bVar4 == 0x5f))" ( (binary_expression "(bVar4 == 0) || (bVar4 == 0x5f)" (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "(bVar4 == 0x5f)" ( (binary_expression "bVar4 == 0x5f" identifier == number_literal) ))) )) (compound_statement "{\n      lVar8 = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }\n    }" { (expression_statement "lVar8 = 0;" (assignment_expression "lVar8 = 0" identifier = number_literal) ;) (labeled_statement "LAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }" statement_identifier : (if_statement "if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }" if (parenthesized_expression "(bVar4 == 0x5f)" ( (binary_expression "bVar4 == 0x5f" identifier == number_literal) )) (compound_statement "{\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }" { (expression_statement "*param_2 = (long)(pbVar12 + 1);" (assignment_expression "*param_2 = (long)(pbVar12 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pbVar12 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pbVar12 + 1)" ( (binary_expression "pbVar12 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar5 = FUN_001118a0(param_1,param_2,param_3);" (assignment_expression "iVar5 = FUN_001118a0(param_1,param_2,param_3)" identifier = (call_expression "FUN_001118a0(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n          return false;\n        }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n          return false;\n        }" { (return_statement "return false;" return false ;) })) (if_statement "if (param_3 == (long *)0x0) {\n          return true;\n        }" if (parenthesized_expression "(param_3 == (long *)0x0)" ( (binary_expression "param_3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          return true;\n        }" { (return_statement "return true;" return true ;) })) (expression_statement "lVar9 = FUN_0010fe00(*param_1,"int");" (assignment_expression "lVar9 = FUN_0010fe00(*param_1,"int")" identifier = (call_expression "FUN_0010fe00(*param_1,"int")" identifier (argument_list "(*param_1,"int")" ( (pointer_expression "*param_1" * identifier) , (string_literal ""int"" " string_content ") )))) ;) (if_statement "if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }" if (parenthesized_expression "(lVar9 == 0)" ( (binary_expression "lVar9 == 0" identifier == number_literal) )) (compound_statement "{\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }" { (expression_statement "lVar9 = FUN_0010f4a0(*param_1,4,0);" (assignment_expression "lVar9 = FUN_0010f4a0(*param_1,4,0)" identifier = (call_expression "FUN_0010f4a0(*param_1,4,0)" identifier (argument_list "(*param_1,4,0)" ( (pointer_expression "*param_1" * identifier) , number_literal , number_literal )))) ;) })) (expression_statement "lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);" (assignment_expression "lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0)" identifier = (call_expression "FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0)" identifier (argument_list "(*param_1,*param_3,lVar9,0,lVar8,0)" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "*param_3" * identifier) , identifier , number_literal , identifier , number_literal )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (return_statement "return true;" return true ;) }))) }) (else_clause "else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }" else (if_statement "if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }" if (parenthesized_expression "((_sch_istable[(ulong)bVar4 * 2] & 4) != 0)" ( (binary_expression "(_sch_istable[(ulong)bVar4 * 2] & 4) != 0" (parenthesized_expression "(_sch_istable[(ulong)bVar4 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)bVar4 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar4 * 2]" identifier [ (binary_expression "(ulong)bVar4 * 2" (cast_expression "(ulong)bVar4" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) != number_literal) )) (compound_statement "{\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }" { (expression_statement "pbVar12 = (byte *)(pcVar16 + 2);" (assignment_expression "pbVar12 = (byte *)(pcVar16 + 2)" identifier = (cast_expression "(byte *)(pcVar16 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 2)" ( (binary_expression "pcVar16 + 2" identifier + number_literal) )))) ;) (expression_statement "lVar8 = 0;" (assignment_expression "lVar8 = 0" identifier = number_literal) ;) (do_statement "do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);" do (compound_statement "{\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      }" { (expression_statement "*param_2 = (long)pbVar12;" (assignment_expression "*param_2 = (long)pbVar12" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)pbVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;" (assignment_expression "lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10" identifier = (binary_expression "(long)((char)bVar4 + -0x30) + lVar8 * 10" (cast_expression "(long)((char)bVar4 + -0x30)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "((char)bVar4 + -0x30)" ( (binary_expression "(char)bVar4 + -0x30" (cast_expression "(char)bVar4" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal) ))) + (binary_expression "lVar8 * 10" identifier * number_literal))) ;) (expression_statement "bVar4 = *pbVar12;" (assignment_expression "bVar4 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) (if_statement "if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;" if (parenthesized_expression "((bVar4 == 0) || (bVar4 == 0x5f))" ( (binary_expression "(bVar4 == 0) || (bVar4 == 0x5f)" (parenthesized_expression "(bVar4 == 0)" ( (binary_expression "bVar4 == 0" identifier == number_literal) )) || (parenthesized_expression "(bVar4 == 0x5f)" ( (binary_expression "bVar4 == 0x5f" identifier == number_literal) ))) )) (goto_statement "goto LAB_00111d10;" goto statement_identifier ;)) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((_sch_istable[(ulong)bVar4 * 2] & 4) != 0)" ( (binary_expression "(_sch_istable[(ulong)bVar4 * 2] & 4) != 0" (parenthesized_expression "(_sch_istable[(ulong)bVar4 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)bVar4 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar4 * 2]" identifier [ (binary_expression "(ulong)bVar4 * 2" (cast_expression "(ulong)bVar4" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) != number_literal) )) ;) })))) (break_statement "break;" break ;)) (case_statement "default:\n    bVar3 = false;\n    iVar5 = 0;\n    bVar17 = false;\n    bVar2 = false;\n    pcVar10 = pcVar16;\n    do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      cVar1 = pcVar10[1];\n      pcVar10 = (char *)*param_2;\n    } while( true );" default : (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" identifier = false) ;) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" identifier = false) ;) (expression_statement "pcVar10 = pcVar16;" (assignment_expression "pcVar10 = pcVar16" identifier = identifier) ;) (do_statement "do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      cVar1 = pcVar10[1];\n      pcVar10 = (char *)*param_2;\n    } while( true );" do (compound_statement "{\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      cVar1 = pcVar10[1];\n      pcVar10 = (char *)*param_2;\n    }" { (if_statement "if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" if (parenthesized_expression "(cVar1 == 'S')" ( (binary_expression "cVar1 == 'S'" identifier == (char_literal "'S'" ' character ')) )) (compound_statement "{\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" { (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" identifier = true) ;) (expression_statement "*param_2 = (long)(pcVar10 + 1);" (assignment_expression "*param_2 = (long)(pcVar10 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar10 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar10 + 1)" ( (binary_expression "pcVar10 + 1" identifier + number_literal) )))) ;) }) (else_clause "else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" else (if_statement "if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" if (parenthesized_expression "(cVar1 < 'T')" ( (binary_expression "cVar1 < 'T'" identifier < (char_literal "'T'" ' character ')) )) (compound_statement "{\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" { (if_statement "if (cVar1 != 'C') goto code_r0x00111cf8;" if (parenthesized_expression "(cVar1 != 'C')" ( (binary_expression "cVar1 != 'C'" identifier != (char_literal "'C'" ' character ')) )) (goto_statement "goto code_r0x00111cf8;" goto statement_identifier ;)) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" identifier = true) ;) (expression_statement "*param_2 = (long)(pcVar10 + 1);" (assignment_expression "*param_2 = (long)(pcVar10 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar10 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar10 + 1)" ( (binary_expression "pcVar10 + 1" identifier + number_literal) )))) ;) }) (else_clause "else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" else (if_statement "if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" if (parenthesized_expression "(cVar1 == 'U')" ( (binary_expression "cVar1 == 'U'" identifier == (char_literal "'U'" ' character ')) )) (compound_statement "{\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }" { (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (expression_statement "*param_2 = (long)(pcVar10 + 1);" (assignment_expression "*param_2 = (long)(pcVar10 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar10 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar10 + 1)" ( (binary_expression "pcVar10 + 1" identifier + number_literal) )))) ;) }) (else_clause "else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" else (compound_statement "{\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" { (if_statement "if (cVar1 != 'V') goto code_r0x00111cf8;" if (parenthesized_expression "(cVar1 != 'V')" ( (binary_expression "cVar1 != 'V'" identifier != (char_literal "'V'" ' character ')) )) (goto_statement "goto code_r0x00111cf8;" goto statement_identifier ;)) (expression_statement "bVar17 = true;" (assignment_expression "bVar17 = true" identifier = true) ;) (expression_statement "*param_2 = (long)(pcVar10 + 1);" (assignment_expression "*param_2 = (long)(pcVar10 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar10 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar10 + 1)" ( (binary_expression "pcVar10 + 1" identifier + number_literal) )))) ;) }))))))) (expression_statement "cVar1 = pcVar10[1];" (assignment_expression "cVar1 = pcVar10[1]" identifier = (subscript_expression "pcVar10[1]" identifier [ number_literal ])) ;) (expression_statement "pcVar10 = (char *)*param_2;" (assignment_expression "pcVar10 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) }) while (parenthesized_expression "( true )" ( true )) ;)) (case_statement "case 'C':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f8f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;" case (char_literal "'C'" ' character ') : (expression_statement "*param_2 = (long)(pcVar16 + 1);" (assignment_expression "*param_2 = (long)(pcVar16 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar16 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar5 = FUN_001118a0(param_1,param_2,param_3);" (assignment_expression "iVar5 = FUN_001118a0(param_1,param_2,param_3)" identifier = (call_expression "FUN_001118a0(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      return false;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (if_statement "if (param_3 == (long *)0x0) {\n      return true;\n    }" if (parenthesized_expression "(param_3 == (long *)0x0)" ( (binary_expression "param_3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return true;\n    }" { (return_statement "return true;" return true ;) })) (expression_statement "lVar8 = FUN_0010f8f0(*param_1,*param_3);" (assignment_expression "lVar8 = FUN_0010f8f0(*param_1,*param_3)" identifier = (call_expression "FUN_0010f8f0(*param_1,*param_3)" identifier (argument_list "(*param_1,*param_3)" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "*param_3" * identifier) )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (return_statement "return true;" return true ;)) (case_statement "case 'F':\n    puVar15 = (ulong *)0x0;\n    ppcVar14 = (char **)0x0;\n    *param_2 = (long)(pcVar16 + 1);\n    if (param_3 != (long *)0x0) {\n      puVar15 = &local_48;\n      ppcVar14 = local_40;\n    }\n    iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar15);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (*(char *)*param_2 == '_') {\n      *param_2 = (long)((char *)*param_2 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;" case (char_literal "'F'" ' character ') : (expression_statement "puVar15 = (ulong *)0x0;" (assignment_expression "puVar15 = (ulong *)0x0" identifier = (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppcVar14 = (char **)0x0;" (assignment_expression "ppcVar14 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "*param_2 = (long)(pcVar16 + 1);" (assignment_expression "*param_2 = (long)(pcVar16 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar16 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (if_statement "if (param_3 != (long *)0x0) {\n      puVar15 = &local_48;\n      ppcVar14 = local_40;\n    }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      puVar15 = &local_48;\n      ppcVar14 = local_40;\n    }" { (expression_statement "puVar15 = &local_48;" (assignment_expression "puVar15 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (expression_statement "ppcVar14 = local_40;" (assignment_expression "ppcVar14 = local_40" identifier = identifier) ;) })) (expression_statement "iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar15);" (assignment_expression "iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar15)" identifier = (call_expression "FUN_00112ce0(param_1,param_2,ppcVar14,puVar15)" identifier (argument_list "(param_1,param_2,ppcVar14,puVar15)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      return false;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (if_statement "if (*(char *)*param_2 == '_') {\n      *param_2 = (long)((char *)*param_2 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);\n      *param_3 = lVar8;\n      return true;\n    }" if (parenthesized_expression "(*(char *)*param_2 == '_')" ( (binary_expression "*(char *)*param_2 == '_'" (pointer_expression "*(char *)*param_2" * (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) == (char_literal "'_'" ' character ')) )) (compound_statement "{\n      *param_2 = (long)((char *)*param_2 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);\n      *param_3 = lVar8;\n      return true;\n    }" { (expression_statement "*param_2 = (long)((char *)*param_2 + 1);" (assignment_expression "*param_2 = (long)((char *)*param_2 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)((char *)*param_2 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "((char *)*param_2 + 1)" ( (binary_expression "(char *)*param_2 + 1" (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier)) + number_literal) )))) ;) (expression_statement "iVar5 = FUN_001118a0(param_1,param_2,param_3);" (assignment_expression "iVar5 = FUN_001118a0(param_1,param_2,param_3)" identifier = (call_expression "FUN_001118a0(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n        return false;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) })) (if_statement "if (param_3 == (long *)0x0) {\n        return true;\n      }" if (parenthesized_expression "(param_3 == (long *)0x0)" ( (binary_expression "param_3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return true;\n      }" { (return_statement "return true;" return true ;) })) (expression_statement "lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);" (assignment_expression "lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff)" identifier = (call_expression "FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff)" identifier (argument_list "(*param_1,*param_3,local_40[0],local_48 & 0xffffffff)" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "*param_3" * identifier) , (subscript_expression "local_40[0]" identifier [ number_literal ]) , (binary_expression "local_48 & 0xffffffff" identifier & number_literal) )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (return_statement "return true;" return true ;) })) (break_statement "break;" break ;)) (case_statement "case 'G':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    return iVar5 != 0;" case (char_literal "'G'" ' character ') : (expression_statement "*param_2 = (long)(pcVar16 + 1);" (assignment_expression "*param_2 = (long)(pcVar16 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar16 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar5 = FUN_001118a0(param_1,param_2,param_3);" (assignment_expression "iVar5 = FUN_001118a0(param_1,param_2,param_3)" identifier = (call_expression "FUN_001118a0(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier )))) ;) (return_statement "return iVar5 != 0;" return (binary_expression "iVar5 != 0" identifier != number_literal) ;)) (case_statement "case 'M':" case (char_literal "'M'" ' character ') :) (case_statement "case 'O':\n    local_48 = 0;\n    cVar1 = *pcVar16;\n    *param_2 = (long)(pcVar16 + 1);\n    local_40[0] = (char *)0x0;\n    local_4c = 0;\n    bVar4 = pcVar16[1];\n    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      puVar15 = &local_48;\n      if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }\n      iVar5 = FUN_00112870(param_1,param_2,puVar15);\n      if (iVar5 == 0) {\n        return false;\n      }\nLAB_00111b38:\n      pbVar12 = (byte *)*param_2;\n    }\n    else {\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }\n    bVar4 = *pbVar12;\n    if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }\n      if (bVar4 != 0x46) break;\n      *param_2 = (long)(pbVar11 + 1);\n      if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }\n      iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);\n      if (iVar5 == 0) {\n        return false;\n      }\n      pbVar12 = (byte *)*param_2;\n      bVar4 = *pbVar12;\n    }\n    if (bVar4 == 0x5f) {\n      *param_2 = (long)(pbVar12 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }\n      lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;" case (char_literal "'O'" ' character ') : (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" identifier = number_literal) ;) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" identifier = (pointer_expression "*pcVar16" * identifier)) ;) (expression_statement "*param_2 = (long)(pcVar16 + 1);" (assignment_expression "*param_2 = (long)(pcVar16 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar16 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (expression_statement "local_40[0] = (char *)0x0;" (assignment_expression "local_40[0] = (char *)0x0" (subscript_expression "local_40[0]" identifier [ number_literal ]) = (cast_expression "(char *)0x0" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" identifier = number_literal) ;) (expression_statement "bVar4 = pcVar16[1];" (assignment_expression "bVar4 = pcVar16[1]" identifier = (subscript_expression "pcVar16[1]" identifier [ number_literal ])) ;) (if_statement "if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      puVar15 = &local_48;\n      if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }\n      iVar5 = FUN_00112870(param_1,param_2,puVar15);\n      if (iVar5 == 0) {\n        return false;\n      }\nLAB_00111b38:\n      pbVar12 = (byte *)*param_2;\n    }\n    else {\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }" if (parenthesized_expression "((_sch_istable[(ulong)bVar4 * 2] & 4) == 0)" ( (binary_expression "(_sch_istable[(ulong)bVar4 * 2] & 4) == 0" (parenthesized_expression "(_sch_istable[(ulong)bVar4 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)bVar4 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar4 * 2]" identifier [ (binary_expression "(ulong)bVar4 * 2" (cast_expression "(ulong)bVar4" ( (type_descriptor "ulong" type_identifier) ) identifier) * number_literal) ]) & number_literal) )) == number_literal) )) (compound_statement "{\n      if (bVar4 != 0x51) break;\n      puVar15 = &local_48;\n      if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }\n      iVar5 = FUN_00112870(param_1,param_2,puVar15);\n      if (iVar5 == 0) {\n        return false;\n      }\nLAB_00111b38:\n      pbVar12 = (byte *)*param_2;\n    }" { (if_statement "if (bVar4 != 0x51) break;" if (parenthesized_expression "(bVar4 != 0x51)" ( (binary_expression "bVar4 != 0x51" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "puVar15 = &local_48;" (assignment_expression "puVar15 = &local_48" identifier = (pointer_expression "&local_48" & identifier)) ;) (if_statement "if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }" if (parenthesized_expression "(param_3 == (long *)0x0)" ( (binary_expression "param_3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar15 = (ulong *)0x0;\n      }" { (expression_statement "puVar15 = (ulong *)0x0;" (assignment_expression "puVar15 = (ulong *)0x0" identifier = (cast_expression "(ulong *)0x0" ( (type_descriptor "ulong *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (expression_statement "iVar5 = FUN_00112870(param_1,param_2,puVar15);" (assignment_expression "iVar5 = FUN_00112870(param_1,param_2,puVar15)" identifier = (call_expression "FUN_00112870(param_1,param_2,puVar15)" identifier (argument_list "(param_1,param_2,puVar15)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n        return false;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) })) (labeled_statement "LAB_00111b38:\n      pbVar12 = (byte *)*param_2;" statement_identifier : (expression_statement "pbVar12 = (byte *)*param_2;" (assignment_expression "pbVar12 = (byte *)*param_2" identifier = (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;)) }) (else_clause "else {\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }" else (compound_statement "{\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }" { (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" identifier = number_literal) ;) (expression_statement "uVar6 = (ulong)bVar4;" (assignment_expression "uVar6 = (ulong)bVar4" identifier = (cast_expression "(ulong)bVar4" ( (type_descriptor "ulong" type_identifier) ) identifier)) ;) (expression_statement "pbVar12 = (byte *)(pcVar16 + 2);" (assignment_expression "pbVar12 = (byte *)(pcVar16 + 2)" identifier = (cast_expression "(byte *)(pcVar16 + 2)" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar16 + 2)" ( (binary_expression "pcVar16 + 2" identifier + number_literal) )))) ;) (do_statement "do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);" do (compound_statement "{\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      }" { (expression_statement "pbVar11 = pbVar12;" (assignment_expression "pbVar11 = pbVar12" identifier = identifier) ;) (expression_statement "*param_2 = (long)pbVar11;" (assignment_expression "*param_2 = (long)pbVar11" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)pbVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;" (assignment_expression "uVar18 = (char)uVar6 + -0x30 + uVar18 * 10" identifier = (binary_expression "(char)uVar6 + -0x30 + uVar18 * 10" (binary_expression "(char)uVar6 + -0x30" (cast_expression "(char)uVar6" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal) + (binary_expression "uVar18 * 10" identifier * number_literal))) ;) (expression_statement "uVar6 = (ulong)*pbVar11;" (assignment_expression "uVar6 = (ulong)*pbVar11" identifier = (binary_expression "(ulong)*pbVar11" (parenthesized_expression "(ulong)" ( identifier )) * identifier)) ;) (expression_statement "pbVar12 = pbVar11 + 1;" (assignment_expression "pbVar12 = pbVar11 + 1" identifier = (binary_expression "pbVar11 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0)" ( (binary_expression "(_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0" (parenthesized_expression "(_sch_istable[(ulong)*pbVar11 * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)*pbVar11 * 2] & 4" (subscript_expression "_sch_istable[(ulong)*pbVar11 * 2]" identifier [ (binary_expression "(ulong)*pbVar11 * 2" (binary_expression "(ulong)*pbVar11" (parenthesized_expression "(ulong)" ( identifier )) * identifier) * number_literal) ]) & number_literal) )) != number_literal) )) ;) (expression_statement "sVar7 = strlen((char *)pbVar11);" (assignment_expression "sVar7 = strlen((char *)pbVar11)" identifier = (call_expression "strlen((char *)pbVar11)" identifier (argument_list "((char *)pbVar11)" ( (cast_expression "(char *)pbVar11" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) )))) ;) (if_statement "if (sVar7 < uVar18) break;" if (parenthesized_expression "(sVar7 < uVar18)" ( (binary_expression "sVar7 < uVar18" identifier < identifier) )) (break_statement "break;" break ;)) (expression_statement "pbVar12 = pbVar11 + uVar18;" (assignment_expression "pbVar12 = pbVar11 + uVar18" identifier = (binary_expression "pbVar11 + uVar18" identifier + identifier)) ;) (expression_statement "*param_2 = (long)pbVar12;" (assignment_expression "*param_2 = (long)pbVar12" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)pbVar12" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (if_statement "if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }" { (expression_statement "local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);" (assignment_expression "local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9)" identifier = (call_expression "FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9)" identifier (argument_list "(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9)" ( (pointer_expression "*param_1" * identifier) , (binary_expression "param_1[1] + 0x1a0" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) , identifier , identifier , number_literal )))) ;) (if_statement "if (local_48 == 0) {\n          return false;\n        }" if (parenthesized_expression "(local_48 == 0)" ( (binary_expression "local_48 == 0" identifier == number_literal) )) (compound_statement "{\n          return false;\n        }" { (return_statement "return false;" return false ;) })) (goto_statement "goto LAB_00111b38;" goto statement_identifier ;) })) }))) (expression_statement "bVar4 = *pbVar12;" (assignment_expression "bVar4 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) (if_statement "if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }\n      if (bVar4 != 0x46) break;\n      *param_2 = (long)(pbVar11 + 1);\n      if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }\n      iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);\n      if (iVar5 == 0) {\n        return false;\n      }\n      pbVar12 = (byte *)*param_2;\n      bVar4 = *pbVar12;\n    }" if (parenthesized_expression "(cVar1 == 'M')" ( (binary_expression "cVar1 == 'M'" identifier == (char_literal "'M'" ' character ')) )) (compound_statement "{\n      if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }\n      if (bVar4 != 0x46) break;\n      *param_2 = (long)(pbVar11 + 1);\n      if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }\n      iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);\n      if (iVar5 == 0) {\n        return false;\n      }\n      pbVar12 = (byte *)*param_2;\n      bVar4 = *pbVar12;\n    }" { (if_statement "if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }" if (parenthesized_expression "((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56))" ( (binary_expression "(bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)" (parenthesized_expression "(bVar4 == 0x43)" ( (binary_expression "bVar4 == 0x43" identifier == number_literal) )) || (parenthesized_expression "(pbVar11 = pbVar12, bVar4 == 0x56)" ( (comma_expression "pbVar11 = pbVar12, bVar4 == 0x56" (assignment_expression "pbVar11 = pbVar12" identifier = identifier) , (binary_expression "bVar4 == 0x56" identifier == number_literal)) ))) )) (compound_statement "{\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }" { (expression_statement "pbVar11 = pbVar12 + 1;" (assignment_expression "pbVar11 = pbVar12 + 1" identifier = (binary_expression "pbVar12 + 1" identifier + number_literal)) ;) (expression_statement "*param_2 = (long)pbVar11;" (assignment_expression "*param_2 = (long)pbVar11" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)pbVar11" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) identifier)) ;) (expression_statement "bVar4 = pbVar12[1];" (assignment_expression "bVar4 = pbVar12[1]" identifier = (subscript_expression "pbVar12[1]" identifier [ number_literal ])) ;) })) (if_statement "if (bVar4 != 0x46) break;" if (parenthesized_expression "(bVar4 != 0x46)" ( (binary_expression "bVar4 != 0x46" identifier != number_literal) )) (break_statement "break;" break ;)) (expression_statement "*param_2 = (long)(pbVar11 + 1);" (assignment_expression "*param_2 = (long)(pbVar11 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pbVar11 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pbVar11 + 1)" ( (binary_expression "pbVar11 + 1" identifier + number_literal) )))) ;) (if_statement "if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }" if (parenthesized_expression "(param_3 == (long *)0x0)" ( (binary_expression "param_3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }" { (expression_statement "puVar13 = (undefined4 *)0x0;" (assignment_expression "puVar13 = (undefined4 *)0x0" identifier = (cast_expression "(undefined4 *)0x0" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ppcVar14 = (char **)0x0;" (assignment_expression "ppcVar14 = (char **)0x0" identifier = (cast_expression "(char **)0x0" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) }) (else_clause "else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }" else (compound_statement "{\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }" { (expression_statement "puVar13 = &local_4c;" (assignment_expression "puVar13 = &local_4c" identifier = (pointer_expression "&local_4c" & identifier)) ;) (expression_statement "ppcVar14 = local_40;" (assignment_expression "ppcVar14 = local_40" identifier = identifier) ;) }))) (expression_statement "iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);" (assignment_expression "iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13)" identifier = (call_expression "FUN_00112ce0(param_1,param_2,ppcVar14,puVar13)" identifier (argument_list "(param_1,param_2,ppcVar14,puVar13)" ( identifier , identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n        return false;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) })) (expression_statement "pbVar12 = (byte *)*param_2;" (assignment_expression "pbVar12 = (byte *)*param_2" identifier = (cast_expression "(byte *)*param_2" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;) (expression_statement "bVar4 = *pbVar12;" (assignment_expression "bVar4 = *pbVar12" identifier = (pointer_expression "*pbVar12" * identifier)) ;) })) (if_statement "if (bVar4 == 0x5f) {\n      *param_2 = (long)(pbVar12 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }\n      lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);\n      *param_3 = lVar8;\n      return true;\n    }" if (parenthesized_expression "(bVar4 == 0x5f)" ( (binary_expression "bVar4 == 0x5f" identifier == number_literal) )) (compound_statement "{\n      *param_2 = (long)(pbVar12 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }\n      lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);\n      *param_3 = lVar8;\n      return true;\n    }" { (expression_statement "*param_2 = (long)(pbVar12 + 1);" (assignment_expression "*param_2 = (long)(pbVar12 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pbVar12 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pbVar12 + 1)" ( (binary_expression "pbVar12 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar5 = FUN_001118a0(param_1,param_2,param_3);" (assignment_expression "iVar5 = FUN_001118a0(param_1,param_2,param_3)" identifier = (call_expression "FUN_001118a0(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n        return false;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        return false;\n      }" { (return_statement "return false;" return false ;) })) (if_statement "if (param_3 == (long *)0x0) {\n        return true;\n      }" if (parenthesized_expression "(param_3 == (long *)0x0)" ( (binary_expression "param_3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        return true;\n      }" { (return_statement "return true;" return true ;) })) (if_statement "if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }" if (parenthesized_expression "(cVar1 != 'M')" ( (binary_expression "cVar1 != 'M'" identifier != (char_literal "'M'" ' character ')) )) (compound_statement "{\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }" { (expression_statement "lVar8 = FUN_0010f820(*param_1,local_48,*param_3);" (assignment_expression "lVar8 = FUN_0010f820(*param_1,local_48,*param_3)" identifier = (call_expression "FUN_0010f820(*param_1,local_48,*param_3)" identifier (argument_list "(*param_1,local_48,*param_3)" ( (pointer_expression "*param_1" * identifier) , identifier , (pointer_expression "*param_3" * identifier) )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (return_statement "return true;" return true ;) })) (expression_statement "lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);" (assignment_expression "lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c)" identifier = (call_expression "FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c)" identifier (argument_list "(*param_1,*param_3,local_48,local_40[0],local_4c)" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "*param_3" * identifier) , identifier , (subscript_expression "local_40[0]" identifier [ number_literal ]) , identifier )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (return_statement "return true;" return true ;) })) (break_statement "break;" break ;)) (case_statement "case 'P':" case (char_literal "'P'" ' character ') :) (case_statement "case 'p':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f5f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;" case (char_literal "'p'" ' character ') : (expression_statement "*param_2 = (long)(pcVar16 + 1);" (assignment_expression "*param_2 = (long)(pcVar16 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar16 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar5 = FUN_001118a0(param_1,param_2,param_3);" (assignment_expression "iVar5 = FUN_001118a0(param_1,param_2,param_3)" identifier = (call_expression "FUN_001118a0(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      return false;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (if_statement "if (param_3 == (long *)0x0) {\n      return true;\n    }" if (parenthesized_expression "(param_3 == (long *)0x0)" ( (binary_expression "param_3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return true;\n    }" { (return_statement "return true;" return true ;) })) (expression_statement "lVar8 = FUN_0010f5f0(*param_1,*param_3);" (assignment_expression "lVar8 = FUN_0010f5f0(*param_1,*param_3)" identifier = (call_expression "FUN_0010f5f0(*param_1,*param_3)" identifier (argument_list "(*param_1,*param_3)" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "*param_3" * identifier) )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (return_statement "return true;" return true ;)) (case_statement "case 'Q':\n    iVar5 = FUN_00112870(param_1,param_2,param_3);\n    return iVar5 != 0;" case (char_literal "'Q'" ' character ') : (expression_statement "iVar5 = FUN_00112870(param_1,param_2,param_3);" (assignment_expression "iVar5 = FUN_00112870(param_1,param_2,param_3)" identifier = (call_expression "FUN_00112870(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier )))) ;) (return_statement "return iVar5 != 0;" return (binary_expression "iVar5 != 0" identifier != number_literal) ;)) (case_statement "case 'R':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f6a0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;" case (char_literal "'R'" ' character ') : (expression_statement "*param_2 = (long)(pcVar16 + 1);" (assignment_expression "*param_2 = (long)(pcVar16 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar16 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar5 = FUN_001118a0(param_1,param_2,param_3);" (assignment_expression "iVar5 = FUN_001118a0(param_1,param_2,param_3)" identifier = (call_expression "FUN_001118a0(param_1,param_2,param_3)" identifier (argument_list "(param_1,param_2,param_3)" ( identifier , identifier , identifier )))) ;) (if_statement "if (iVar5 == 0) {\n      return false;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (if_statement "if (param_3 == (long *)0x0) {\n      return true;\n    }" if (parenthesized_expression "(param_3 == (long *)0x0)" ( (binary_expression "param_3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      return true;\n    }" { (return_statement "return true;" return true ;) })) (expression_statement "lVar8 = FUN_0010f6a0(*param_1,*param_3);" (assignment_expression "lVar8 = FUN_0010f6a0(*param_1,*param_3)" identifier = (call_expression "FUN_0010f6a0(*param_1,*param_3)" identifier (argument_list "(*param_1,*param_3)" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "*param_3" * identifier) )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (return_statement "return true;" return true ;)) (case_statement "case 'T':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001103c0(param_2,&local_48);\n    if (iVar5 != 0) {\n      if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }\n    }" case (char_literal "'T'" ' character ') : (expression_statement "*param_2 = (long)(pcVar16 + 1);" (assignment_expression "*param_2 = (long)(pcVar16 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar16 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar16 + 1)" ( (binary_expression "pcVar16 + 1" identifier + number_literal) )))) ;) (expression_statement "iVar5 = FUN_001103c0(param_2,&local_48);" (assignment_expression "iVar5 = FUN_001103c0(param_2,&local_48)" identifier = (call_expression "FUN_001103c0(param_2,&local_48)" identifier (argument_list "(param_2,&local_48)" ( identifier , (pointer_expression "&local_48" & identifier) )))) ;) (if_statement "if (iVar5 != 0) {\n      if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }\n    }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n      if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }\n    }" { (if_statement "if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }" if (parenthesized_expression "((uint)local_48 < *(uint *)(param_1 + 5))" ( (binary_expression "(uint)local_48 < *(uint *)(param_1 + 5)" (cast_expression "(uint)local_48" ( (type_descriptor "uint" type_identifier) ) identifier) < (pointer_expression "*(uint *)(param_1 + 5)" * (cast_expression "(uint *)(param_1 + 5)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 5)" ( (binary_expression "param_1 + 5" identifier + number_literal) ))))) )) (compound_statement "{\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }" { (expression_statement "local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);" (assignment_expression "local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4])" (subscript_expression "local_40[0]" identifier [ number_literal ]) = (pointer_expression "*(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4])" * (cast_expression "(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4])" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((local_48 & 0xffffffff) * 0x10 + param_1[4])" ( (binary_expression "(local_48 & 0xffffffff) * 0x10 + param_1[4]" (binary_expression "(local_48 & 0xffffffff) * 0x10" (parenthesized_expression "(local_48 & 0xffffffff)" ( (binary_expression "local_48 & 0xffffffff" identifier & number_literal) )) * number_literal) + (subscript_expression "param_1[4]" identifier [ number_literal ])) ))))) ;) (expression_statement "iVar5 = FUN_001118a0(param_1,local_40,param_3);" (assignment_expression "iVar5 = FUN_001118a0(param_1,local_40,param_3)" identifier = (call_expression "FUN_001118a0(param_1,local_40,param_3)" identifier (argument_list "(param_1,local_40,param_3)" ( identifier , identifier , identifier )))) ;) (goto_statement "goto joined_r0x0011192e;" goto statement_identifier ;) })) }))) })) (labeled_statement "switchD_00111d06_caseD_1:\n  FUN_00110480(pcVar16);" statement_identifier : (expression_statement "FUN_00110480(pcVar16);" (call_expression "FUN_00110480(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;)) (return_statement "return false;" return false ;) (labeled_statement "switchD_00111d06_caseD_30:\n  iVar5 = FUN_00110de0(param_2,local_40);" statement_identifier : (expression_statement "iVar5 = FUN_00110de0(param_2,local_40);" (assignment_expression "iVar5 = FUN_00110de0(param_2,local_40)" identifier = (call_expression "FUN_00110de0(param_2,local_40)" identifier (argument_list "(param_2,local_40)" ( identifier , identifier )))) ;)) (if_statement "if (iVar5 == 0) {\n    return false;\n  }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    return false;\n  }" { (return_statement "return false;" return false ;) })) (if_statement "if (param_3 == (long *)0x0) {\n    return true;\n  }" if (parenthesized_expression "(param_3 == (long *)0x0)" ( (binary_expression "param_3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    return true;\n  }" { (return_statement "return true;" return true ;) })) (expression_statement "__ptr = (void *)FUN_00110540(local_40[0],*param_2 - (long)local_40[0]);" (assignment_expression "__ptr = (void *)FUN_00110540(local_40[0],*param_2 - (long)local_40[0])" identifier = (cast_expression "(void *)FUN_00110540(local_40[0],*param_2 - (long)local_40[0])" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_00110540(local_40[0],*param_2 - (long)local_40[0])" identifier (argument_list "(local_40[0],*param_2 - (long)local_40[0])" ( (subscript_expression "local_40[0]" identifier [ number_literal ]) , (binary_expression "*param_2 - (long)local_40[0]" (pointer_expression "*param_2" * identifier) - (cast_expression "(long)local_40[0]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (subscript_expression "local_40[0]" identifier [ number_literal ]))) ))))) ;) (expression_statement "lVar8 = FUN_0010fe00(*param_1,__ptr);" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,__ptr)" identifier = (call_expression "FUN_0010fe00(*param_1,__ptr)" identifier (argument_list "(*param_1,__ptr)" ( (pointer_expression "*param_1" * identifier) , identifier )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" identifier (argument_list "(__ptr)" ( identifier ))) ;) (if_statement "if (*param_3 == 0) {\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0);\n    *param_3 = lVar8;\njoined_r0x00111f61:\n    if (lVar8 == 0) {\n      return false;\n    }\n  }" if (parenthesized_expression "(*param_3 == 0)" ( (binary_expression "*param_3 == 0" (pointer_expression "*param_3" * identifier) == number_literal) )) (compound_statement "{\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0);\n    *param_3 = lVar8;\njoined_r0x00111f61:\n    if (lVar8 == 0) {\n      return false;\n    }\n  }" { (expression_statement "lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0);" (assignment_expression "lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0)" identifier = (call_expression "FUN_00110e80(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0)" identifier (argument_list "(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0)" ( (pointer_expression "*param_1" * identifier) , (binary_expression "param_1[1] + 0x1a0" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) , (subscript_expression "local_40[0]" identifier [ number_literal ]) , (binary_expression "*param_2 - (long)local_40[0]" (pointer_expression "*param_2" * identifier) - (cast_expression "(long)local_40[0]" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (subscript_expression "local_40[0]" identifier [ number_literal ]))) , number_literal )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (labeled_statement "joined_r0x00111f61:\n    if (lVar8 == 0) {\n      return false;\n    }" statement_identifier : (if_statement "if (lVar8 == 0) {\n      return false;\n    }" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) }))) })) (goto_statement "goto LAB_00111df8;" goto statement_identifier ;) (labeled_statement "code_r0x00111cf8:\n  switch(cVar1) {\n  case '\0':\n  case '_':\n    FUN_00110480(pcVar16);\n    goto LAB_00111df8;\n  default:\n    goto switchD_00111d06_caseD_1;\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    goto switchD_00111d06_caseD_30;\n  case 'G':\n    *param_2 = (long)(pcVar10 + 1);\n    if ((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;\n  case 'b':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }\n    break;\n  case 'c':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'd':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'f':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'i':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'l':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }\n    break;\n  case 'r':\n    pcVar16 = "long double";\n    if (param_3 != (long *)0x0) goto LAB_00111fc0;\n    break;\n  case 's':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 't':\n    if (param_3 == (long *)0x0) {\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }\n    iVar5 = FUN_001122d0(param_1,param_2,local_40);\n    pcVar16 = local_40[0];\n    if (iVar5 == 0) {\n      return false;\n    }\n    sVar7 = strlen(local_40[0]);\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9);\n    *param_3 = lVar8;\n    free(local_40[0]);\n    lVar8 = *param_3;\n    goto joined_r0x00111f61;\n  case 'v':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'w':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'x':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n  }" statement_identifier : (switch_statement "switch(cVar1) {\n  case '\0':\n  case '_':\n    FUN_00110480(pcVar16);\n    goto LAB_00111df8;\n  default:\n    goto switchD_00111d06_caseD_1;\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    goto switchD_00111d06_caseD_30;\n  case 'G':\n    *param_2 = (long)(pcVar10 + 1);\n    if ((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;\n  case 'b':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }\n    break;\n  case 'c':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'd':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'f':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'i':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'l':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }\n    break;\n  case 'r':\n    pcVar16 = "long double";\n    if (param_3 != (long *)0x0) goto LAB_00111fc0;\n    break;\n  case 's':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 't':\n    if (param_3 == (long *)0x0) {\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }\n    iVar5 = FUN_001122d0(param_1,param_2,local_40);\n    pcVar16 = local_40[0];\n    if (iVar5 == 0) {\n      return false;\n    }\n    sVar7 = strlen(local_40[0]);\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9);\n    *param_3 = lVar8;\n    free(local_40[0]);\n    lVar8 = *param_3;\n    goto joined_r0x00111f61;\n  case 'v':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'w':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'x':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n  }" switch (parenthesized_expression "(cVar1)" ( identifier )) (compound_statement "{\n  case '\0':\n  case '_':\n    FUN_00110480(pcVar16);\n    goto LAB_00111df8;\n  default:\n    goto switchD_00111d06_caseD_1;\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    goto switchD_00111d06_caseD_30;\n  case 'G':\n    *param_2 = (long)(pcVar10 + 1);\n    if ((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;\n  case 'b':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }\n    break;\n  case 'c':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'd':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'f':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'i':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'l':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }\n    break;\n  case 'r':\n    pcVar16 = "long double";\n    if (param_3 != (long *)0x0) goto LAB_00111fc0;\n    break;\n  case 's':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 't':\n    if (param_3 == (long *)0x0) {\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }\n    iVar5 = FUN_001122d0(param_1,param_2,local_40);\n    pcVar16 = local_40[0];\n    if (iVar5 == 0) {\n      return false;\n    }\n    sVar7 = strlen(local_40[0]);\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9);\n    *param_3 = lVar8;\n    free(local_40[0]);\n    lVar8 = *param_3;\n    goto joined_r0x00111f61;\n  case 'v':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'w':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'x':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n  }" { (case_statement "case '\0':" case (char_literal "'\0'" ' escape_sequence ') :) (case_statement "case '_':\n    FUN_00110480(pcVar16);\n    goto LAB_00111df8;" case (char_literal "'_'" ' character ') : (expression_statement "FUN_00110480(pcVar16);" (call_expression "FUN_00110480(pcVar16)" identifier (argument_list "(pcVar16)" ( identifier ))) ;) (goto_statement "goto LAB_00111df8;" goto statement_identifier ;)) (case_statement "default:\n    goto switchD_00111d06_caseD_1;" default : (goto_statement "goto switchD_00111d06_caseD_1;" goto statement_identifier ;)) (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    goto switchD_00111d06_caseD_30;" case (char_literal "'9'" ' character ') : (goto_statement "goto switchD_00111d06_caseD_30;" goto statement_identifier ;)) (case_statement "case 'G':\n    *param_2 = (long)(pcVar10 + 1);\n    if ((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;" case (char_literal "'G'" ' character ') : (expression_statement "*param_2 = (long)(pcVar10 + 1);" (assignment_expression "*param_2 = (long)(pcVar10 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar10 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar10 + 1)" ( (binary_expression "pcVar10 + 1" identifier + number_literal) )))) ;) (if_statement "if ((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0) goto switchD_00111d06_caseD_1;" if (parenthesized_expression "((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0)" ( (binary_expression "(_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0" (parenthesized_expression "(_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4)" ( (binary_expression "_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4" (subscript_expression "_sch_istable[(ulong)(byte)pcVar10[1] * 2]" identifier [ (binary_expression "(ulong)(byte)pcVar10[1] * 2" (cast_expression "(ulong)(byte)pcVar10[1]" ( (type_descriptor "ulong" type_identifier) ) (cast_expression "(byte)pcVar10[1]" ( (type_descriptor "byte" type_identifier) ) (subscript_expression "pcVar10[1]" identifier [ number_literal ]))) * number_literal) ]) & number_literal) )) == number_literal) )) (goto_statement "goto switchD_00111d06_caseD_1;" goto statement_identifier ;)) (goto_statement "goto switchD_00111d06_caseD_30;" goto statement_identifier ;)) (case_statement "case 'b':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }\n    break;" case (char_literal "'b'" ' character ') : (if_statement "if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }" { (expression_statement "lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b)" identifier = (call_expression "FUN_0010fe00(*param_1,&DAT_0012307b)" identifier (argument_list "(*param_1,&DAT_0012307b)" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "&DAT_0012307b" & identifier) )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (if_statement "if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }" { (expression_statement "lVar8 = FUN_0010f4d0(*param_1,4);" (assignment_expression "lVar8 = FUN_0010f4d0(*param_1,4)" identifier = (call_expression "FUN_0010f4d0(*param_1,4)" identifier (argument_list "(*param_1,4)" ( (pointer_expression "*param_1" * identifier) , number_literal )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) })) (labeled_statement "LAB_00111e80:\n      pcVar10 = (char *)*param_2;" statement_identifier : (expression_statement "pcVar10 = (char *)*param_2;" (assignment_expression "pcVar10 = (char *)*param_2" identifier = (cast_expression "(char *)*param_2" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (pointer_expression "*param_2" * identifier))) ;)) })) (break_statement "break;" break ;)) (case_statement "case 'c':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;" case (char_literal "'c'" ' character ') : (if_statement "if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" { (expression_statement "pcVar16 = "unsigned char";" (assignment_expression "pcVar16 = "unsigned char"" identifier = (string_literal ""unsigned char"" " string_content ")) ;) (if_statement "if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }" if (parenthesized_expression "((iVar5 == 0) && (pcVar16 = "signed char", !bVar3))" ( (binary_expression "(iVar5 == 0) && (pcVar16 = "signed char", !bVar3)" (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) && (parenthesized_expression "(pcVar16 = "signed char", !bVar3)" ( (comma_expression "pcVar16 = "signed char", !bVar3" (assignment_expression "pcVar16 = "signed char"" identifier = (string_literal ""signed char"" " string_content ")) , (unary_expression "!bVar3" ! identifier)) ))) )) (compound_statement "{\n        pcVar16 = "char";\n      }" { (expression_statement "pcVar16 = "char";" (assignment_expression "pcVar16 = "char"" identifier = (string_literal ""char"" " string_content ")) ;) })) (expression_statement "lVar8 = FUN_0010fe00(*param_1,pcVar16);" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,pcVar16)" identifier = (call_expression "FUN_0010fe00(*param_1,pcVar16)" identifier (argument_list "(*param_1,pcVar16)" ( (pointer_expression "*param_1" * identifier) , identifier )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (if_statement "if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }" { (expression_statement "lVar8 = FUN_0010f4a0(*param_1,1,iVar5);" (assignment_expression "lVar8 = FUN_0010f4a0(*param_1,1,iVar5)" identifier = (call_expression "FUN_0010f4a0(*param_1,1,iVar5)" identifier (argument_list "(*param_1,1,iVar5)" ( (pointer_expression "*param_1" * identifier) , number_literal , identifier )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) })) (goto_statement "goto LAB_00111e80;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 'd':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;" case (char_literal "'d'" ' character ') : (if_statement "if (param_3 != (long *)0x0) {\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" { (expression_statement "pcVar16 = "double";" (assignment_expression "pcVar16 = "double"" identifier = (string_literal ""double"" " string_content ")) ;) (labeled_statement "LAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);" statement_identifier : (expression_statement "lVar8 = FUN_0010fe00(*param_1,pcVar16);" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,pcVar16)" identifier = (call_expression "FUN_0010fe00(*param_1,pcVar16)" identifier (argument_list "(*param_1,pcVar16)" ( (pointer_expression "*param_1" * identifier) , identifier )))) ;)) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (if_statement "if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }" { (expression_statement "lVar8 = FUN_0010f4c0(*param_1,8);" (assignment_expression "lVar8 = FUN_0010f4c0(*param_1,8)" identifier = (call_expression "FUN_0010f4c0(*param_1,8)" identifier (argument_list "(*param_1,8)" ( (pointer_expression "*param_1" * identifier) , number_literal )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) })) (goto_statement "goto LAB_00111e80;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 'f':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;" case (char_literal "'f'" ' character ') : (if_statement "if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" { (expression_statement "lVar8 = FUN_0010fe00(*param_1,"float");" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,"float")" identifier = (call_expression "FUN_0010fe00(*param_1,"float")" identifier (argument_list "(*param_1,"float")" ( (pointer_expression "*param_1" * identifier) , (string_literal ""float"" " string_content ") )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (if_statement "if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }" { (expression_statement "lVar8 = FUN_0010f4c0(*param_1,4);" (assignment_expression "lVar8 = FUN_0010f4c0(*param_1,4)" identifier = (call_expression "FUN_0010f4c0(*param_1,4)" identifier (argument_list "(*param_1,4)" ( (pointer_expression "*param_1" * identifier) , number_literal )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) })) (goto_statement "goto LAB_00111e80;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 'i':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;" case (char_literal "'i'" ' character ') : (if_statement "if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" { (expression_statement "pcVar16 = "unsigned int";" (assignment_expression "pcVar16 = "unsigned int"" identifier = (string_literal ""unsigned int"" " string_content ")) ;) (expression_statement "pcVar10 = "int";" (assignment_expression "pcVar10 = "int"" identifier = (string_literal ""int"" " string_content ")) ;) (labeled_statement "LAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }" statement_identifier : (if_statement "if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar16 = pcVar10;\n      }" { (expression_statement "pcVar16 = pcVar10;" (assignment_expression "pcVar16 = pcVar10" identifier = identifier) ;) }))) (expression_statement "lVar8 = FUN_0010fe00(*param_1,pcVar16);" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,pcVar16)" identifier = (call_expression "FUN_0010fe00(*param_1,pcVar16)" identifier (argument_list "(*param_1,pcVar16)" ( (pointer_expression "*param_1" * identifier) , identifier )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (if_statement "if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }" { (expression_statement "lVar8 = FUN_0010f4a0(*param_1,4,iVar5);" (assignment_expression "lVar8 = FUN_0010f4a0(*param_1,4,iVar5)" identifier = (call_expression "FUN_0010f4a0(*param_1,4,iVar5)" identifier (argument_list "(*param_1,4,iVar5)" ( (pointer_expression "*param_1" * identifier) , number_literal , identifier )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) })) (goto_statement "goto LAB_00111e80;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 'l':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }\n    break;" case (char_literal "'l'" ' character ') : (if_statement "if (param_3 != (long *)0x0) {\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }" { (expression_statement "pcVar16 = "long unsigned int";" (assignment_expression "pcVar16 = "long unsigned int"" identifier = (string_literal ""long unsigned int"" " string_content ")) ;) (expression_statement "pcVar10 = "long int";" (assignment_expression "pcVar10 = "long int"" identifier = (string_literal ""long int"" " string_content ")) ;) (goto_statement "goto LAB_0011200d;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 'r':\n    pcVar16 = "long double";\n    if (param_3 != (long *)0x0) goto LAB_00111fc0;\n    break;" case (char_literal "'r'" ' character ') : (expression_statement "pcVar16 = "long double";" (assignment_expression "pcVar16 = "long double"" identifier = (string_literal ""long double"" " string_content ")) ;) (if_statement "if (param_3 != (long *)0x0) goto LAB_00111fc0;" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00111fc0;" goto statement_identifier ;)) (break_statement "break;" break ;)) (case_statement "case 's':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;" case (char_literal "'s'" ' character ') : (if_statement "if (param_3 != (long *)0x0) {\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" { (expression_statement "pcVar16 = "short unsigned int";" (assignment_expression "pcVar16 = "short unsigned int"" identifier = (string_literal ""short unsigned int"" " string_content ")) ;) (if_statement "if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar16 = "short int";\n      }" { (expression_statement "pcVar16 = "short int";" (assignment_expression "pcVar16 = "short int"" identifier = (string_literal ""short int"" " string_content ")) ;) })) (expression_statement "lVar8 = FUN_0010fe00(*param_1,pcVar16);" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,pcVar16)" identifier = (call_expression "FUN_0010fe00(*param_1,pcVar16)" identifier (argument_list "(*param_1,pcVar16)" ( (pointer_expression "*param_1" * identifier) , identifier )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (if_statement "if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (compound_statement "{\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }" { (labeled_statement "LAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);" statement_identifier : (expression_statement "lVar8 = FUN_0010f4a0(*param_1,2,iVar5);" (assignment_expression "lVar8 = FUN_0010f4a0(*param_1,2,iVar5)" identifier = (call_expression "FUN_0010f4a0(*param_1,2,iVar5)" identifier (argument_list "(*param_1,2,iVar5)" ( (pointer_expression "*param_1" * identifier) , number_literal , identifier )))) ;)) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) })) (goto_statement "goto LAB_00111e80;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 't':\n    if (param_3 == (long *)0x0) {\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }\n    iVar5 = FUN_001122d0(param_1,param_2,local_40);\n    pcVar16 = local_40[0];\n    if (iVar5 == 0) {\n      return false;\n    }\n    sVar7 = strlen(local_40[0]);\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9);\n    *param_3 = lVar8;\n    free(local_40[0]);\n    lVar8 = *param_3;\n    goto joined_r0x00111f61;" case (char_literal "'t'" ' character ') : (if_statement "if (param_3 == (long *)0x0) {\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }" if (parenthesized_expression "(param_3 == (long *)0x0)" ( (binary_expression "param_3 == (long *)0x0" identifier == (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }" { (expression_statement "iVar5 = FUN_001122d0(param_1,param_2,0);" (assignment_expression "iVar5 = FUN_001122d0(param_1,param_2,0)" identifier = (call_expression "FUN_001122d0(param_1,param_2,0)" identifier (argument_list "(param_1,param_2,0)" ( identifier , identifier , number_literal )))) ;) (labeled_statement "joined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }" statement_identifier : (if_statement "if (iVar5 != 0) {\n        return true;\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        return true;\n      }" { (return_statement "return true;" return true ;) }))) (return_statement "return false;" return false ;) })) (expression_statement "iVar5 = FUN_001122d0(param_1,param_2,local_40);" (assignment_expression "iVar5 = FUN_001122d0(param_1,param_2,local_40)" identifier = (call_expression "FUN_001122d0(param_1,param_2,local_40)" identifier (argument_list "(param_1,param_2,local_40)" ( identifier , identifier , identifier )))) ;) (expression_statement "pcVar16 = local_40[0];" (assignment_expression "pcVar16 = local_40[0]" identifier = (subscript_expression "local_40[0]" identifier [ number_literal ])) ;) (if_statement "if (iVar5 == 0) {\n      return false;\n    }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n      return false;\n    }" { (return_statement "return false;" return false ;) })) (expression_statement "sVar7 = strlen(local_40[0]);" (assignment_expression "sVar7 = strlen(local_40[0])" identifier = (call_expression "strlen(local_40[0])" identifier (argument_list "(local_40[0])" ( (subscript_expression "local_40[0]" identifier [ number_literal ]) )))) ;) (expression_statement "lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9);" (assignment_expression "lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9)" identifier = (call_expression "FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9)" identifier (argument_list "(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9)" ( (pointer_expression "*param_1" * identifier) , (binary_expression "param_1[1] + 0x1a0" (subscript_expression "param_1[1]" identifier [ number_literal ]) + number_literal) , identifier , (binary_expression "sVar7 & 0xffffffff" identifier & number_literal) , number_literal )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (expression_statement "free(local_40[0]);" (call_expression "free(local_40[0])" identifier (argument_list "(local_40[0])" ( (subscript_expression "local_40[0]" identifier [ number_literal ]) ))) ;) (expression_statement "lVar8 = *param_3;" (assignment_expression "lVar8 = *param_3" identifier = (pointer_expression "*param_3" * identifier)) ;) (goto_statement "goto joined_r0x00111f61;" goto statement_identifier ;)) (case_statement "case 'v':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;" case (char_literal "'v'" ' character ') : (if_statement "if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" { (expression_statement "lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3)" identifier = (call_expression "FUN_0010fe00(*param_1,&DAT_00122fa3)" identifier (argument_list "(*param_1,&DAT_00122fa3)" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "&DAT_00122fa3" & identifier) )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (if_statement "if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }" { (expression_statement "lVar8 = FUN_0010f490(*param_1);" (assignment_expression "lVar8 = FUN_0010f490(*param_1)" identifier = (call_expression "FUN_0010f490(*param_1)" identifier (argument_list "(*param_1)" ( (pointer_expression "*param_1" * identifier) )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) })) (goto_statement "goto LAB_00111e80;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 'w':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;" case (char_literal "'w'" ' character ') : (if_statement "if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }" { (expression_statement "lVar8 = FUN_0010fe00(*param_1,"__wchar_t");" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,"__wchar_t")" identifier = (call_expression "FUN_0010fe00(*param_1,"__wchar_t")" identifier (argument_list "(*param_1,"__wchar_t")" ( (pointer_expression "*param_1" * identifier) , (string_literal ""__wchar_t"" " string_content ") )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (if_statement "if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }" { (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00111eb3;" goto statement_identifier ;) })) (goto_statement "goto LAB_00111e80;" goto statement_identifier ;) })) (break_statement "break;" break ;)) (case_statement "case 'x':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" case (char_literal "'x'" ' character ') : (if_statement "if (param_3 != (long *)0x0) {\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" { (expression_statement "pcVar16 = "long long unsigned int";" (assignment_expression "pcVar16 = "long long unsigned int"" identifier = (string_literal ""long long unsigned int"" " string_content ")) ;) (if_statement "if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }" if (parenthesized_expression "(iVar5 == 0)" ( (binary_expression "iVar5 == 0" identifier == number_literal) )) (compound_statement "{\n        pcVar16 = "long long int";\n      }" { (expression_statement "pcVar16 = "long long int";" (assignment_expression "pcVar16 = "long long int"" identifier = (string_literal ""long long int"" " string_content ")) ;) })) (expression_statement "lVar8 = FUN_0010fe00(*param_1,pcVar16);" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,pcVar16)" identifier = (call_expression "FUN_0010fe00(*param_1,pcVar16)" identifier (argument_list "(*param_1,pcVar16)" ( (pointer_expression "*param_1" * identifier) , identifier )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (if_statement "if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }" if (parenthesized_expression "(lVar8 == 0)" ( (binary_expression "lVar8 == 0" identifier == number_literal) )) (compound_statement "{\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }" { (expression_statement "lVar8 = FUN_0010f4a0(*param_1,8,iVar5);" (assignment_expression "lVar8 = FUN_0010f4a0(*param_1,8,iVar5)" identifier = (call_expression "FUN_0010f4a0(*param_1,8,iVar5)" identifier (argument_list "(*param_1,8,iVar5)" ( (pointer_expression "*param_1" * identifier) , number_literal , identifier )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) })) (goto_statement "goto LAB_00111e80;" goto statement_identifier ;) }))) }))) (expression_statement "*param_2 = (long)(pcVar10 + 1);" (assignment_expression "*param_2 = (long)(pcVar10 + 1)" (pointer_expression "*param_2" * identifier) = (cast_expression "(long)(pcVar10 + 1)" ( (type_descriptor "long" (sized_type_specifier "long" long)) ) (parenthesized_expression "(pcVar10 + 1)" ( (binary_expression "pcVar10 + 1" identifier + number_literal) )))) ;) (labeled_statement "LAB_00111df8:\n  if (param_3 != (long *)0x0) {\n    if (bVar2) {\n      lVar8 = FUN_0010f8f0(*param_1,*param_3);\n      *param_3 = lVar8;\n    }\n    if (bVar17 != false) {\n      lVar8 = FUN_0010f920(*param_1,*param_3);\n      *param_3 = lVar8;\n      return bVar17;\n    }\n  }" statement_identifier : (if_statement "if (param_3 != (long *)0x0) {\n    if (bVar2) {\n      lVar8 = FUN_0010f8f0(*param_1,*param_3);\n      *param_3 = lVar8;\n    }\n    if (bVar17 != false) {\n      lVar8 = FUN_0010f920(*param_1,*param_3);\n      *param_3 = lVar8;\n      return bVar17;\n    }\n  }" if (parenthesized_expression "(param_3 != (long *)0x0)" ( (binary_expression "param_3 != (long *)0x0" identifier != (cast_expression "(long *)0x0" ( (type_descriptor "long *" (sized_type_specifier "long" long) (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    if (bVar2) {\n      lVar8 = FUN_0010f8f0(*param_1,*param_3);\n      *param_3 = lVar8;\n    }\n    if (bVar17 != false) {\n      lVar8 = FUN_0010f920(*param_1,*param_3);\n      *param_3 = lVar8;\n      return bVar17;\n    }\n  }" { (if_statement "if (bVar2) {\n      lVar8 = FUN_0010f8f0(*param_1,*param_3);\n      *param_3 = lVar8;\n    }" if (parenthesized_expression "(bVar2)" ( identifier )) (compound_statement "{\n      lVar8 = FUN_0010f8f0(*param_1,*param_3);\n      *param_3 = lVar8;\n    }" { (expression_statement "lVar8 = FUN_0010f8f0(*param_1,*param_3);" (assignment_expression "lVar8 = FUN_0010f8f0(*param_1,*param_3)" identifier = (call_expression "FUN_0010f8f0(*param_1,*param_3)" identifier (argument_list "(*param_1,*param_3)" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "*param_3" * identifier) )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) })) (if_statement "if (bVar17 != false) {\n      lVar8 = FUN_0010f920(*param_1,*param_3);\n      *param_3 = lVar8;\n      return bVar17;\n    }" if (parenthesized_expression "(bVar17 != false)" ( (binary_expression "bVar17 != false" identifier != false) )) (compound_statement "{\n      lVar8 = FUN_0010f920(*param_1,*param_3);\n      *param_3 = lVar8;\n      return bVar17;\n    }" { (expression_statement "lVar8 = FUN_0010f920(*param_1,*param_3);" (assignment_expression "lVar8 = FUN_0010f920(*param_1,*param_3)" identifier = (call_expression "FUN_0010f920(*param_1,*param_3)" identifier (argument_list "(*param_1,*param_3)" ( (pointer_expression "*param_1" * identifier) , (pointer_expression "*param_3" * identifier) )))) ;) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" * identifier) = identifier) ;) (return_statement "return bVar17;" return identifier ;) })) }))) (return_statement "return true;" return true ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) (pointer_declarator * IDENT)) , (parameter_declaration (sized_type_specifier long) (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 (sized_type_specifier long) IDENT ;) (declaration (sized_type_specifier long) IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (array_declarator IDENT [ 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)) ;) (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (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 BOOL ;) })) (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 BOOL ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (string_literal " string_content ") )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , LIT , LIT )))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (pointer_expression * IDENT) , IDENT , LIT , IDENT , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return BOOL ;) }))) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]) & LIT) )) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (binary_expression IDENT == LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]) & LIT) )) != LIT) )) ;) })))) (break_statement break ;)) (case_statement default : (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression IDENT = BOOL) ;) (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 = BOOL) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = BOOL) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (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 = LIT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }) (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 IDENT = BOOL) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) }))))))) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) }) while (parenthesized_expression ( BOOL )) ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (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 BOOL ;) })) (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 BOOL ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return BOOL ;)) (case_statement case (char_literal ' character ') : (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 * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return BOOL ;) })) (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) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (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 )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return BOOL ;) })) (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 BOOL ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (pointer_expression * IDENT) , (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT & LIT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return BOOL ;) })) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (return_statement return (binary_expression IDENT != LIT) ;)) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT) ]) & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (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 { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return BOOL ;) })) (labeled_statement statement_identifier : (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 = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) + (binary_expression IDENT * LIT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (binary_expression (parenthesized_expression ( IDENT )) * IDENT) * LIT) ]) & LIT) )) != LIT) )) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , IDENT , IDENT , LIT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return BOOL ;) })) (goto_statement goto statement_identifier ;) })) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' character ')) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (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 (sized_type_specifier long)) ) 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 (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (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 * (abstract_pointer_declarator *))) ) LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return BOOL ;) })) (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 (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (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 BOOL ;) })) (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 BOOL ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (char_literal ' character ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return BOOL ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (pointer_expression * IDENT) , IDENT , (subscript_expression IDENT [ LIT ]) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return BOOL ;) })) (break_statement break ;)) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (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 BOOL ;) })) (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 BOOL ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return BOOL ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (return_statement return (binary_expression IDENT != LIT) ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (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 BOOL ;) })) (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 BOOL ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return BOOL ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (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 { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) * LIT) + (subscript_expression IDENT [ LIT ])) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (goto_statement goto statement_identifier ;) })) }))) })) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;)) (return_statement return BOOL ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return BOOL ;) })) (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 BOOL ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , (binary_expression (pointer_expression * IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (subscript_expression IDENT [ LIT ]))) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , (subscript_expression IDENT [ LIT ]) , (binary_expression (pointer_expression * IDENT) - (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (subscript_expression IDENT [ LIT ]))) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return BOOL ;) }))) })) (goto_statement goto statement_identifier ;) (labeled_statement statement_identifier : (switch_statement switch (parenthesized_expression ( IDENT )) (compound_statement { (case_statement case (char_literal ' escape_sequence ') :) (case_statement case (char_literal ' character ') : (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (goto_statement goto statement_identifier ;)) (case_statement default : (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') :) (case_statement case (char_literal ' character ') : (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ (binary_expression (cast_expression ( (type_descriptor TYPE) ) (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) * LIT) ]) & LIT) )) == LIT) )) (goto_statement goto statement_identifier ;)) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) })) (break_statement break ;)) (case_statement case (char_literal ' character ') : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression 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 = (string_literal " string_content ")) , (unary_expression ! IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , LIT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) (break_statement break ;)) (case_statement case (char_literal ' character ') : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) (break_statement break ;)) (case_statement case (char_literal ' character ') : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) (break_statement break ;)) (case_statement case (char_literal ' character ') : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , LIT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) (break_statement break ;)) (case_statement case (char_literal ' character ') : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (break_statement break ;)) (case_statement case (char_literal ' character ') : (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (break_statement break ;)) (case_statement case (char_literal ' character ') : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 " string_content ")) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (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 ( (pointer_expression * IDENT) , LIT , IDENT )))) ;)) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) (break_statement break ;)) (case_statement case (char_literal ' character ') : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , LIT )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (return_statement return BOOL ;) }))) (return_statement return BOOL ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (return_statement return BOOL ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) )))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) , IDENT , (binary_expression IDENT & LIT) , LIT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (goto_statement goto statement_identifier ;)) (case_statement case (char_literal ' character ') : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (pointer_expression & IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) (break_statement break ;)) (case_statement case (char_literal ' character ') : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (string_literal " string_content ") )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (goto_statement goto statement_identifier ;) })) (goto_statement goto statement_identifier ;) })) (break_statement break ;)) (case_statement case (char_literal ' character ') : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (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 " string_content ")) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , LIT , IDENT )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (goto_statement goto statement_identifier ;) }))) }))) (expression_statement (assignment_expression (pointer_expression * IDENT) = (cast_expression ( (type_descriptor (sized_type_specifier long)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor (sized_type_specifier long) (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( IDENT )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != BOOL) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , (pointer_expression * IDENT) )))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = IDENT) ;) (return_statement return IDENT ;) })) }))) (return_statement return BOOL ;) })))
(function_definition "bool FUN_001118a0(undefined8 *param_1,long *param_2,long *param_3)\n\n{\n  char cVar1;\n  bool bVar2;\n  bool bVar3;\n  byte bVar4;\n  int iVar5;\n  ulong uVar6;\n  size_t sVar7;\n  long lVar8;\n  long lVar9;\n  void *__ptr;\n  char *pcVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  undefined4 *puVar13;\n  char **ppcVar14;\n  ulong *puVar15;\n  char *pcVar16;\n  bool bVar17;\n  uint uVar18;\n  undefined4 local_4c;\n  ulong local_48;\n  char *local_40 [2];\n  \n  pcVar16 = (char *)*param_2;\n  cVar1 = *pcVar16;\n  switch(cVar1) {\n  case 'A':\n    pbVar12 = (byte *)(pcVar16 + 1);\n    *param_2 = (long)pbVar12;\n    bVar4 = pcVar16[1];\n    if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      lVar8 = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }\n    break;\n  default:\n    bVar3 = false;\n    iVar5 = 0;\n    bVar17 = false;\n    bVar2 = false;\n    pcVar10 = pcVar16;\n    do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      cVar1 = pcVar10[1];\n      pcVar10 = (char *)*param_2;\n    } while( true );\n  case 'C':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f8f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'F':\n    puVar15 = (ulong *)0x0;\n    ppcVar14 = (char **)0x0;\n    *param_2 = (long)(pcVar16 + 1);\n    if (param_3 != (long *)0x0) {\n      puVar15 = &local_48;\n      ppcVar14 = local_40;\n    }\n    iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar15);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (*(char *)*param_2 == '_') {\n      *param_2 = (long)((char *)*param_2 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'G':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'M':\n  case 'O':\n    local_48 = 0;\n    cVar1 = *pcVar16;\n    *param_2 = (long)(pcVar16 + 1);\n    local_40[0] = (char *)0x0;\n    local_4c = 0;\n    bVar4 = pcVar16[1];\n    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      puVar15 = &local_48;\n      if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }\n      iVar5 = FUN_00112870(param_1,param_2,puVar15);\n      if (iVar5 == 0) {\n        return false;\n      }\nLAB_00111b38:\n      pbVar12 = (byte *)*param_2;\n    }\n    else {\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }\n    bVar4 = *pbVar12;\n    if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }\n      if (bVar4 != 0x46) break;\n      *param_2 = (long)(pbVar11 + 1);\n      if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }\n      iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);\n      if (iVar5 == 0) {\n        return false;\n      }\n      pbVar12 = (byte *)*param_2;\n      bVar4 = *pbVar12;\n    }\n    if (bVar4 == 0x5f) {\n      *param_2 = (long)(pbVar12 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }\n      lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'P':\n  case 'p':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f5f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'Q':\n    iVar5 = FUN_00112870(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'R':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f6a0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'T':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001103c0(param_2,&local_48);\n    if (iVar5 != 0) {\n      if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }\n    }\n  }\nswitchD_00111d06_caseD_1:\n  FUN_00110480(pcVar16);\n  return false;\nswitchD_00111d06_caseD_30:\n  iVar5 = FUN_00110de0(param_2,local_40);\n  if (iVar5 == 0) {\n    return false;\n  }\n  if (param_3 == (long *)0x0) {\n    return true;\n  }\n  __ptr = (void *)FUN_00110540(local_40[0],*param_2 - (long)local_40[0]);\n  lVar8 = FUN_0010fe00(*param_1,__ptr);\n  *param_3 = lVar8;\n  free(__ptr);\n  if (*param_3 == 0) {\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0);\n    *param_3 = lVar8;\njoined_r0x00111f61:\n    if (lVar8 == 0) {\n      return false;\n    }\n  }\n  goto LAB_00111df8;\ncode_r0x00111cf8:\n  switch(cVar1) {\n  case '\0':\n  case '_':\n    FUN_00110480(pcVar16);\n    goto LAB_00111df8;\n  default:\n    goto switchD_00111d06_caseD_1;\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    goto switchD_00111d06_caseD_30;\n  case 'G':\n    *param_2 = (long)(pcVar10 + 1);\n    if ((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;\n  case 'b':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }\n    break;\n  case 'c':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'd':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'f':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'i':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'l':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }\n    break;\n  case 'r':\n    pcVar16 = "long double";\n    if (param_3 != (long *)0x0) goto LAB_00111fc0;\n    break;\n  case 's':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 't':\n    if (param_3 == (long *)0x0) {\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }\n    iVar5 = FUN_001122d0(param_1,param_2,local_40);\n    pcVar16 = local_40[0];\n    if (iVar5 == 0) {\n      return false;\n    }\n    sVar7 = strlen(local_40[0]);\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9);\n    *param_3 = lVar8;\n    free(local_40[0]);\n    lVar8 = *param_3;\n    goto joined_r0x00111f61;\n  case 'v':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'w':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'x':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n  }\n  *param_2 = (long)(pcVar10 + 1);\nLAB_00111df8:\n  if (param_3 != (long *)0x0) {\n    if (bVar2) {\n      lVar8 = FUN_0010f8f0(*param_1,*param_3);\n      *param_3 = lVar8;\n    }\n    if (bVar17 != false) {\n      lVar8 = FUN_0010f920(*param_1,*param_3);\n      *param_3 = lVar8;\n      return bVar17;\n    }\n  }\n  return true;\n}" (primitive_type "bool") (function_declarator "FUN_001118a0(undefined8 *param_1,long *param_2,long *param_3)" (identifier "FUN_001118a0") (parameter_list "(undefined8 *param_1,long *param_2,long *param_3)" (( "(") (parameter_declaration "undefined8 *param_1" (type_identifier "undefined8") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "long *param_2" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "long *param_3" (sized_type_specifier "long" (long "long")) (pointer_declarator "*param_3" (* "*") (identifier "param_3"))) () ")"))) (compound_statement "{\n  char cVar1;\n  bool bVar2;\n  bool bVar3;\n  byte bVar4;\n  int iVar5;\n  ulong uVar6;\n  size_t sVar7;\n  long lVar8;\n  long lVar9;\n  void *__ptr;\n  char *pcVar10;\n  byte *pbVar11;\n  byte *pbVar12;\n  undefined4 *puVar13;\n  char **ppcVar14;\n  ulong *puVar15;\n  char *pcVar16;\n  bool bVar17;\n  uint uVar18;\n  undefined4 local_4c;\n  ulong local_48;\n  char *local_40 [2];\n  \n  pcVar16 = (char *)*param_2;\n  cVar1 = *pcVar16;\n  switch(cVar1) {\n  case 'A':\n    pbVar12 = (byte *)(pcVar16 + 1);\n    *param_2 = (long)pbVar12;\n    bVar4 = pcVar16[1];\n    if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      lVar8 = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }\n    break;\n  default:\n    bVar3 = false;\n    iVar5 = 0;\n    bVar17 = false;\n    bVar2 = false;\n    pcVar10 = pcVar16;\n    do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      cVar1 = pcVar10[1];\n      pcVar10 = (char *)*param_2;\n    } while( true );\n  case 'C':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f8f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'F':\n    puVar15 = (ulong *)0x0;\n    ppcVar14 = (char **)0x0;\n    *param_2 = (long)(pcVar16 + 1);\n    if (param_3 != (long *)0x0) {\n      puVar15 = &local_48;\n      ppcVar14 = local_40;\n    }\n    iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar15);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (*(char *)*param_2 == '_') {\n      *param_2 = (long)((char *)*param_2 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'G':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'M':\n  case 'O':\n    local_48 = 0;\n    cVar1 = *pcVar16;\n    *param_2 = (long)(pcVar16 + 1);\n    local_40[0] = (char *)0x0;\n    local_4c = 0;\n    bVar4 = pcVar16[1];\n    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      puVar15 = &local_48;\n      if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }\n      iVar5 = FUN_00112870(param_1,param_2,puVar15);\n      if (iVar5 == 0) {\n        return false;\n      }\nLAB_00111b38:\n      pbVar12 = (byte *)*param_2;\n    }\n    else {\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }\n    bVar4 = *pbVar12;\n    if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }\n      if (bVar4 != 0x46) break;\n      *param_2 = (long)(pbVar11 + 1);\n      if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }\n      iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);\n      if (iVar5 == 0) {\n        return false;\n      }\n      pbVar12 = (byte *)*param_2;\n      bVar4 = *pbVar12;\n    }\n    if (bVar4 == 0x5f) {\n      *param_2 = (long)(pbVar12 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }\n      lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'P':\n  case 'p':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f5f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'Q':\n    iVar5 = FUN_00112870(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'R':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f6a0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'T':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001103c0(param_2,&local_48);\n    if (iVar5 != 0) {\n      if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }\n    }\n  }\nswitchD_00111d06_caseD_1:\n  FUN_00110480(pcVar16);\n  return false;\nswitchD_00111d06_caseD_30:\n  iVar5 = FUN_00110de0(param_2,local_40);\n  if (iVar5 == 0) {\n    return false;\n  }\n  if (param_3 == (long *)0x0) {\n    return true;\n  }\n  __ptr = (void *)FUN_00110540(local_40[0],*param_2 - (long)local_40[0]);\n  lVar8 = FUN_0010fe00(*param_1,__ptr);\n  *param_3 = lVar8;\n  free(__ptr);\n  if (*param_3 == 0) {\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0);\n    *param_3 = lVar8;\njoined_r0x00111f61:\n    if (lVar8 == 0) {\n      return false;\n    }\n  }\n  goto LAB_00111df8;\ncode_r0x00111cf8:\n  switch(cVar1) {\n  case '\0':\n  case '_':\n    FUN_00110480(pcVar16);\n    goto LAB_00111df8;\n  default:\n    goto switchD_00111d06_caseD_1;\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    goto switchD_00111d06_caseD_30;\n  case 'G':\n    *param_2 = (long)(pcVar10 + 1);\n    if ((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;\n  case 'b':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }\n    break;\n  case 'c':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'd':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'f':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'i':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'l':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }\n    break;\n  case 'r':\n    pcVar16 = "long double";\n    if (param_3 != (long *)0x0) goto LAB_00111fc0;\n    break;\n  case 's':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 't':\n    if (param_3 == (long *)0x0) {\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }\n    iVar5 = FUN_001122d0(param_1,param_2,local_40);\n    pcVar16 = local_40[0];\n    if (iVar5 == 0) {\n      return false;\n    }\n    sVar7 = strlen(local_40[0]);\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9);\n    *param_3 = lVar8;\n    free(local_40[0]);\n    lVar8 = *param_3;\n    goto joined_r0x00111f61;\n  case 'v':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'w':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'x':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n  }\n  *param_2 = (long)(pcVar10 + 1);\nLAB_00111df8:\n  if (param_3 != (long *)0x0) {\n    if (bVar2) {\n      lVar8 = FUN_0010f8f0(*param_1,*param_3);\n      *param_3 = lVar8;\n    }\n    if (bVar17 != false) {\n      lVar8 = FUN_0010f920(*param_1,*param_3);\n      *param_3 = lVar8;\n      return bVar17;\n    }\n  }\n  return true;\n}" ({ "{") (declaration "char cVar1;" (primitive_type "char") (identifier "cVar1") (; ";")) (declaration "bool bVar2;" (primitive_type "bool") (identifier "bVar2") (; ";")) (declaration "bool bVar3;" (primitive_type "bool") (identifier "bVar3") (; ";")) (declaration "byte bVar4;" (type_identifier "byte") (identifier "bVar4") (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "ulong uVar6;" (type_identifier "ulong") (identifier "uVar6") (; ";")) (declaration "size_t sVar7;" (primitive_type "size_t") (identifier "sVar7") (; ";")) (declaration "long lVar8;" (sized_type_specifier "long" (long "long")) (identifier "lVar8") (; ";")) (declaration "long lVar9;" (sized_type_specifier "long" (long "long")) (identifier "lVar9") (; ";")) (declaration "void *__ptr;" (primitive_type "void") (pointer_declarator "*__ptr" (* "*") (identifier "__ptr")) (; ";")) (declaration "char *pcVar10;" (primitive_type "char") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "byte *pbVar11;" (type_identifier "byte") (pointer_declarator "*pbVar11" (* "*") (identifier "pbVar11")) (; ";")) (declaration "byte *pbVar12;" (type_identifier "byte") (pointer_declarator "*pbVar12" (* "*") (identifier "pbVar12")) (; ";")) (declaration "undefined4 *puVar13;" (type_identifier "undefined4") (pointer_declarator "*puVar13" (* "*") (identifier "puVar13")) (; ";")) (declaration "char **ppcVar14;" (primitive_type "char") (pointer_declarator "**ppcVar14" (* "*") (pointer_declarator "*ppcVar14" (* "*") (identifier "ppcVar14"))) (; ";")) (declaration "ulong *puVar15;" (type_identifier "ulong") (pointer_declarator "*puVar15" (* "*") (identifier "puVar15")) (; ";")) (declaration "char *pcVar16;" (primitive_type "char") (pointer_declarator "*pcVar16" (* "*") (identifier "pcVar16")) (; ";")) (declaration "bool bVar17;" (primitive_type "bool") (identifier "bVar17") (; ";")) (declaration "uint uVar18;" (type_identifier "uint") (identifier "uVar18") (; ";")) (declaration "undefined4 local_4c;" (type_identifier "undefined4") (identifier "local_4c") (; ";")) (declaration "ulong local_48;" (type_identifier "ulong") (identifier "local_48") (; ";")) (declaration "char *local_40 [2];" (primitive_type "char") (pointer_declarator "*local_40 [2]" (* "*") (array_declarator "local_40 [2]" (identifier "local_40") ([ "[") (number_literal "2") (] "]"))) (; ";")) (expression_statement "pcVar16 = (char *)*param_2;" (assignment_expression "pcVar16 = (char *)*param_2" (identifier "pcVar16") (= "=") (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" (identifier "cVar1") (= "=") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16"))) (; ";")) (switch_statement "switch(cVar1) {\n  case 'A':\n    pbVar12 = (byte *)(pcVar16 + 1);\n    *param_2 = (long)pbVar12;\n    bVar4 = pcVar16[1];\n    if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      lVar8 = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }\n    break;\n  default:\n    bVar3 = false;\n    iVar5 = 0;\n    bVar17 = false;\n    bVar2 = false;\n    pcVar10 = pcVar16;\n    do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      cVar1 = pcVar10[1];\n      pcVar10 = (char *)*param_2;\n    } while( true );\n  case 'C':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f8f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'F':\n    puVar15 = (ulong *)0x0;\n    ppcVar14 = (char **)0x0;\n    *param_2 = (long)(pcVar16 + 1);\n    if (param_3 != (long *)0x0) {\n      puVar15 = &local_48;\n      ppcVar14 = local_40;\n    }\n    iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar15);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (*(char *)*param_2 == '_') {\n      *param_2 = (long)((char *)*param_2 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'G':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'M':\n  case 'O':\n    local_48 = 0;\n    cVar1 = *pcVar16;\n    *param_2 = (long)(pcVar16 + 1);\n    local_40[0] = (char *)0x0;\n    local_4c = 0;\n    bVar4 = pcVar16[1];\n    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      puVar15 = &local_48;\n      if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }\n      iVar5 = FUN_00112870(param_1,param_2,puVar15);\n      if (iVar5 == 0) {\n        return false;\n      }\nLAB_00111b38:\n      pbVar12 = (byte *)*param_2;\n    }\n    else {\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }\n    bVar4 = *pbVar12;\n    if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }\n      if (bVar4 != 0x46) break;\n      *param_2 = (long)(pbVar11 + 1);\n      if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }\n      iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);\n      if (iVar5 == 0) {\n        return false;\n      }\n      pbVar12 = (byte *)*param_2;\n      bVar4 = *pbVar12;\n    }\n    if (bVar4 == 0x5f) {\n      *param_2 = (long)(pbVar12 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }\n      lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'P':\n  case 'p':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f5f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'Q':\n    iVar5 = FUN_00112870(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'R':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f6a0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'T':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001103c0(param_2,&local_48);\n    if (iVar5 != 0) {\n      if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }\n    }\n  }" (switch "switch") (parenthesized_expression "(cVar1)" (( "(") (identifier "cVar1") () ")")) (compound_statement "{\n  case 'A':\n    pbVar12 = (byte *)(pcVar16 + 1);\n    *param_2 = (long)pbVar12;\n    bVar4 = pcVar16[1];\n    if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      lVar8 = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }\n    break;\n  default:\n    bVar3 = false;\n    iVar5 = 0;\n    bVar17 = false;\n    bVar2 = false;\n    pcVar10 = pcVar16;\n    do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      cVar1 = pcVar10[1];\n      pcVar10 = (char *)*param_2;\n    } while( true );\n  case 'C':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f8f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'F':\n    puVar15 = (ulong *)0x0;\n    ppcVar14 = (char **)0x0;\n    *param_2 = (long)(pcVar16 + 1);\n    if (param_3 != (long *)0x0) {\n      puVar15 = &local_48;\n      ppcVar14 = local_40;\n    }\n    iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar15);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (*(char *)*param_2 == '_') {\n      *param_2 = (long)((char *)*param_2 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'G':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'M':\n  case 'O':\n    local_48 = 0;\n    cVar1 = *pcVar16;\n    *param_2 = (long)(pcVar16 + 1);\n    local_40[0] = (char *)0x0;\n    local_4c = 0;\n    bVar4 = pcVar16[1];\n    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      puVar15 = &local_48;\n      if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }\n      iVar5 = FUN_00112870(param_1,param_2,puVar15);\n      if (iVar5 == 0) {\n        return false;\n      }\nLAB_00111b38:\n      pbVar12 = (byte *)*param_2;\n    }\n    else {\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }\n    bVar4 = *pbVar12;\n    if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }\n      if (bVar4 != 0x46) break;\n      *param_2 = (long)(pbVar11 + 1);\n      if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }\n      iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);\n      if (iVar5 == 0) {\n        return false;\n      }\n      pbVar12 = (byte *)*param_2;\n      bVar4 = *pbVar12;\n    }\n    if (bVar4 == 0x5f) {\n      *param_2 = (long)(pbVar12 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }\n      lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;\n  case 'P':\n  case 'p':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f5f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'Q':\n    iVar5 = FUN_00112870(param_1,param_2,param_3);\n    return iVar5 != 0;\n  case 'R':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f6a0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;\n  case 'T':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001103c0(param_2,&local_48);\n    if (iVar5 != 0) {\n      if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }\n    }\n  }" ({ "{") (case_statement "case 'A':\n    pbVar12 = (byte *)(pcVar16 + 1);\n    *param_2 = (long)pbVar12;\n    bVar4 = pcVar16[1];\n    if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      lVar8 = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }\n    break;" (case "case") (char_literal "'A'" (' "'") (character "A") (' "'")) (: ":") (expression_statement "pbVar12 = (byte *)(pcVar16 + 1);" (assignment_expression "pbVar12 = (byte *)(pcVar16 + 1)" (identifier "pbVar12") (= "=") (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")) () ")")))) (; ";")) (expression_statement "*param_2 = (long)pbVar12;" (assignment_expression "*param_2 = (long)pbVar12" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(long)pbVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pbVar12"))) (; ";")) (expression_statement "bVar4 = pcVar16[1];" (assignment_expression "bVar4 = pcVar16[1]" (identifier "bVar4") (= "=") (subscript_expression "pcVar16[1]" (identifier "pcVar16") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((bVar4 == 0) || (bVar4 == 0x5f)) {\n      lVar8 = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }\n    }\n    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }" (if "if") (parenthesized_expression "((bVar4 == 0) || (bVar4 == 0x5f))" (( "(") (binary_expression "(bVar4 == 0) || (bVar4 == 0x5f)" (parenthesized_expression "(bVar4 == 0)" (( "(") (binary_expression "bVar4 == 0" (identifier "bVar4") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(bVar4 == 0x5f)" (( "(") (binary_expression "bVar4 == 0x5f" (identifier "bVar4") (== "==") (number_literal "0x5f")) () ")"))) () ")")) (compound_statement "{\n      lVar8 = 0;\nLAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }\n    }" ({ "{") (expression_statement "lVar8 = 0;" (assignment_expression "lVar8 = 0" (identifier "lVar8") (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00111d10:\n      if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }" (statement_identifier "LAB_00111d10") (: ":") (if_statement "if (bVar4 == 0x5f) {\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }" (if "if") (parenthesized_expression "(bVar4 == 0x5f)" (( "(") (binary_expression "bVar4 == 0x5f" (identifier "bVar4") (== "==") (number_literal "0x5f")) () ")")) (compound_statement "{\n        *param_2 = (long)(pbVar12 + 1);\n        iVar5 = FUN_001118a0(param_1,param_2,param_3);\n        if (iVar5 == 0) {\n          return false;\n        }\n        if (param_3 == (long *)0x0) {\n          return true;\n        }\n        lVar9 = FUN_0010fe00(*param_1,"int");\n        if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }\n        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);\n        *param_3 = lVar8;\n        return true;\n      }" ({ "{") (expression_statement "*param_2 = (long)(pbVar12 + 1);" (assignment_expression "*param_2 = (long)(pbVar12 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(long)(pbVar12 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(pbVar12 + 1)" (( "(") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar5 = FUN_001118a0(param_1,param_2,param_3);" (assignment_expression "iVar5 = FUN_001118a0(param_1,param_2,param_3)" (identifier "iVar5") (= "=") (call_expression "FUN_001118a0(param_1,param_2,param_3)" (identifier "FUN_001118a0") (argument_list "(param_1,param_2,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n          return false;\n        }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return false;\n        }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (if_statement "if (param_3 == (long *)0x0) {\n          return true;\n        }" (if "if") (parenthesized_expression "(param_3 == (long *)0x0)" (( "(") (binary_expression "param_3 == (long *)0x0" (identifier "param_3") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n          return true;\n        }" ({ "{") (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}"))) (expression_statement "lVar9 = FUN_0010fe00(*param_1,"int");" (assignment_expression "lVar9 = FUN_0010fe00(*param_1,"int")" (identifier "lVar9") (= "=") (call_expression "FUN_0010fe00(*param_1,"int")" (identifier "FUN_0010fe00") (argument_list "(*param_1,"int")" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (string_literal ""int"" (" """) (string_content "int") (" """)) () ")")))) (; ";")) (if_statement "if (lVar9 == 0) {\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }" (if "if") (parenthesized_expression "(lVar9 == 0)" (( "(") (binary_expression "lVar9 == 0" (identifier "lVar9") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          lVar9 = FUN_0010f4a0(*param_1,4,0);\n        }" ({ "{") (expression_statement "lVar9 = FUN_0010f4a0(*param_1,4,0);" (assignment_expression "lVar9 = FUN_0010f4a0(*param_1,4,0)" (identifier "lVar9") (= "=") (call_expression "FUN_0010f4a0(*param_1,4,0)" (identifier "FUN_0010f4a0") (argument_list "(*param_1,4,0)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (number_literal "4") (, ",") (number_literal "0") () ")")))) (; ";")) (} "}"))) (expression_statement "lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);" (assignment_expression "lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0)" (identifier "lVar8") (= "=") (call_expression "FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0)" (identifier "FUN_0010f740") (argument_list "(*param_1,*param_3,lVar9,0,lVar8,0)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (pointer_expression "*param_3" (* "*") (identifier "param_3")) (, ",") (identifier "lVar9") (, ",") (number_literal "0") (, ",") (identifier "lVar8") (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}")))) (} "}")) (else_clause "else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }" (else "else") (if_statement "if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }" (if "if") (parenthesized_expression "((_sch_istable[(ulong)bVar4 * 2] & 4) != 0)" (( "(") (binary_expression "(_sch_istable[(ulong)bVar4 * 2] & 4) != 0" (parenthesized_expression "(_sch_istable[(ulong)bVar4 * 2] & 4)" (( "(") (binary_expression "_sch_istable[(ulong)bVar4 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar4 * 2]" (identifier "_sch_istable") ([ "[") (binary_expression "(ulong)bVar4 * 2" (cast_expression "(ulong)bVar4" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar4")) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pbVar12 = (byte *)(pcVar16 + 2);\n      lVar8 = 0;\n      do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);\n    }" ({ "{") (expression_statement "pbVar12 = (byte *)(pcVar16 + 2);" (assignment_expression "pbVar12 = (byte *)(pcVar16 + 2)" (identifier "pbVar12") (= "=") (cast_expression "(byte *)(pcVar16 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar16 + 2)" (( "(") (binary_expression "pcVar16 + 2" (identifier "pcVar16") (+ "+") (number_literal "2")) () ")")))) (; ";")) (expression_statement "lVar8 = 0;" (assignment_expression "lVar8 = 0" (identifier "lVar8") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);" (do "do") (compound_statement "{\n        *param_2 = (long)pbVar12;\n        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;\n        bVar4 = *pbVar12;\n        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;\n        pbVar12 = pbVar12 + 1;\n      }" ({ "{") (expression_statement "*param_2 = (long)pbVar12;" (assignment_expression "*param_2 = (long)pbVar12" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(long)pbVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pbVar12"))) (; ";")) (expression_statement "lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;" (assignment_expression "lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10" (identifier "lVar8") (= "=") (binary_expression "(long)((char)bVar4 + -0x30) + lVar8 * 10" (cast_expression "(long)((char)bVar4 + -0x30)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "((char)bVar4 + -0x30)" (( "(") (binary_expression "(char)bVar4 + -0x30" (cast_expression "(char)bVar4" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "bVar4")) (+ "+") (number_literal "-0x30")) () ")"))) (+ "+") (binary_expression "lVar8 * 10" (identifier "lVar8") (* "*") (number_literal "10")))) (; ";")) (expression_statement "bVar4 = *pbVar12;" (assignment_expression "bVar4 = *pbVar12" (identifier "bVar4") (= "=") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12"))) (; ";")) (if_statement "if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;" (if "if") (parenthesized_expression "((bVar4 == 0) || (bVar4 == 0x5f))" (( "(") (binary_expression "(bVar4 == 0) || (bVar4 == 0x5f)" (parenthesized_expression "(bVar4 == 0)" (( "(") (binary_expression "bVar4 == 0" (identifier "bVar4") (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(bVar4 == 0x5f)" (( "(") (binary_expression "bVar4 == 0x5f" (identifier "bVar4") (== "==") (number_literal "0x5f")) () ")"))) () ")")) (goto_statement "goto LAB_00111d10;" (goto "goto") (statement_identifier "LAB_00111d10") (; ";"))) (expression_statement "pbVar12 = pbVar12 + 1;" (assignment_expression "pbVar12 = pbVar12 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((_sch_istable[(ulong)bVar4 * 2] & 4) != 0)" (( "(") (binary_expression "(_sch_istable[(ulong)bVar4 * 2] & 4) != 0" (parenthesized_expression "(_sch_istable[(ulong)bVar4 * 2] & 4)" (( "(") (binary_expression "_sch_istable[(ulong)bVar4 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar4 * 2]" (identifier "_sch_istable") ([ "[") (binary_expression "(ulong)bVar4 * 2" (cast_expression "(ulong)bVar4" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar4")) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (} "}"))))) (break_statement "break;" (break "break") (; ";"))) (case_statement "default:\n    bVar3 = false;\n    iVar5 = 0;\n    bVar17 = false;\n    bVar2 = false;\n    pcVar10 = pcVar16;\n    do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      cVar1 = pcVar10[1];\n      pcVar10 = (char *)*param_2;\n    } while( true );" (default "default") (: ":") (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" (identifier "bVar3") (= "=") (false "false")) (; ";")) (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar17 = false;" (assignment_expression "bVar17 = false" (identifier "bVar17") (= "=") (false "false")) (; ";")) (expression_statement "bVar2 = false;" (assignment_expression "bVar2 = false" (identifier "bVar2") (= "=") (false "false")) (; ";")) (expression_statement "pcVar10 = pcVar16;" (assignment_expression "pcVar10 = pcVar16" (identifier "pcVar10") (= "=") (identifier "pcVar16")) (; ";")) (do_statement "do {\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      cVar1 = pcVar10[1];\n      pcVar10 = (char *)*param_2;\n    } while( true );" (do "do") (compound_statement "{\n      if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      cVar1 = pcVar10[1];\n      pcVar10 = (char *)*param_2;\n    }" ({ "{") (if_statement "if (cVar1 == 'S') {\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" (if "if") (parenthesized_expression "(cVar1 == 'S')" (( "(") (binary_expression "cVar1 == 'S'" (identifier "cVar1") (== "==") (char_literal "'S'" (' "'") (character "S") (' "'"))) () ")")) (compound_statement "{\n        bVar3 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" ({ "{") (expression_statement "bVar3 = true;" (assignment_expression "bVar3 = true" (identifier "bVar3") (= "=") (true "true")) (; ";")) (expression_statement "*param_2 = (long)(pcVar10 + 1);" (assignment_expression "*param_2 = (long)(pcVar10 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(long)(pcVar10 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(pcVar10 + 1)" (( "(") (binary_expression "pcVar10 + 1" (identifier "pcVar10") (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (else_clause "else if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" (else "else") (if_statement "if (cVar1 < 'T') {\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" (if "if") (parenthesized_expression "(cVar1 < 'T')" (( "(") (binary_expression "cVar1 < 'T'" (identifier "cVar1") (< "<") (char_literal "'T'" (' "'") (character "T") (' "'"))) () ")")) (compound_statement "{\n        if (cVar1 != 'C') goto code_r0x00111cf8;\n        bVar2 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" ({ "{") (if_statement "if (cVar1 != 'C') goto code_r0x00111cf8;" (if "if") (parenthesized_expression "(cVar1 != 'C')" (( "(") (binary_expression "cVar1 != 'C'" (identifier "cVar1") (!= "!=") (char_literal "'C'" (' "'") (character "C") (' "'"))) () ")")) (goto_statement "goto code_r0x00111cf8;" (goto "goto") (statement_identifier "code_r0x00111cf8") (; ";"))) (expression_statement "bVar2 = true;" (assignment_expression "bVar2 = true" (identifier "bVar2") (= "=") (true "true")) (; ";")) (expression_statement "*param_2 = (long)(pcVar10 + 1);" (assignment_expression "*param_2 = (long)(pcVar10 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(long)(pcVar10 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(pcVar10 + 1)" (( "(") (binary_expression "pcVar10 + 1" (identifier "pcVar10") (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (else_clause "else if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" (else "else") (if_statement "if (cVar1 == 'U') {\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }\n      else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" (if "if") (parenthesized_expression "(cVar1 == 'U')" (( "(") (binary_expression "cVar1 == 'U'" (identifier "cVar1") (== "==") (char_literal "'U'" (' "'") (character "U") (' "'"))) () ")")) (compound_statement "{\n        iVar5 = 1;\n        *param_2 = (long)(pcVar10 + 1);\n      }" ({ "{") (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (; ";")) (expression_statement "*param_2 = (long)(pcVar10 + 1);" (assignment_expression "*param_2 = (long)(pcVar10 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(long)(pcVar10 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(pcVar10 + 1)" (( "(") (binary_expression "pcVar10 + 1" (identifier "pcVar10") (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")) (else_clause "else {\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" (else "else") (compound_statement "{\n        if (cVar1 != 'V') goto code_r0x00111cf8;\n        bVar17 = true;\n        *param_2 = (long)(pcVar10 + 1);\n      }" ({ "{") (if_statement "if (cVar1 != 'V') goto code_r0x00111cf8;" (if "if") (parenthesized_expression "(cVar1 != 'V')" (( "(") (binary_expression "cVar1 != 'V'" (identifier "cVar1") (!= "!=") (char_literal "'V'" (' "'") (character "V") (' "'"))) () ")")) (goto_statement "goto code_r0x00111cf8;" (goto "goto") (statement_identifier "code_r0x00111cf8") (; ";"))) (expression_statement "bVar17 = true;" (assignment_expression "bVar17 = true" (identifier "bVar17") (= "=") (true "true")) (; ";")) (expression_statement "*param_2 = (long)(pcVar10 + 1);" (assignment_expression "*param_2 = (long)(pcVar10 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(long)(pcVar10 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(pcVar10 + 1)" (( "(") (binary_expression "pcVar10 + 1" (identifier "pcVar10") (+ "+") (number_literal "1")) () ")")))) (; ";")) (} "}")))))))) (expression_statement "cVar1 = pcVar10[1];" (assignment_expression "cVar1 = pcVar10[1]" (identifier "cVar1") (= "=") (subscript_expression "pcVar10[1]" (identifier "pcVar10") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "pcVar10 = (char *)*param_2;" (assignment_expression "pcVar10 = (char *)*param_2" (identifier "pcVar10") (= "=") (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";"))) (case_statement "case 'C':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f8f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;" (case "case") (char_literal "'C'" (' "'") (character "C") (' "'")) (: ":") (expression_statement "*param_2 = (long)(pcVar16 + 1);" (assignment_expression "*param_2 = (long)(pcVar16 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(long)(pcVar16 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(pcVar16 + 1)" (( "(") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar5 = FUN_001118a0(param_1,param_2,param_3);" (assignment_expression "iVar5 = FUN_001118a0(param_1,param_2,param_3)" (identifier "iVar5") (= "=") (call_expression "FUN_001118a0(param_1,param_2,param_3)" (identifier "FUN_001118a0") (argument_list "(param_1,param_2,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n      return false;\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return false;\n    }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (if_statement "if (param_3 == (long *)0x0) {\n      return true;\n    }" (if "if") (parenthesized_expression "(param_3 == (long *)0x0)" (( "(") (binary_expression "param_3 == (long *)0x0" (identifier "param_3") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return true;\n    }" ({ "{") (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}"))) (expression_statement "lVar8 = FUN_0010f8f0(*param_1,*param_3);" (assignment_expression "lVar8 = FUN_0010f8f0(*param_1,*param_3)" (identifier "lVar8") (= "=") (call_expression "FUN_0010f8f0(*param_1,*param_3)" (identifier "FUN_0010f8f0") (argument_list "(*param_1,*param_3)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (pointer_expression "*param_3" (* "*") (identifier "param_3")) () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (return_statement "return true;" (return "return") (true "true") (; ";"))) (case_statement "case 'F':\n    puVar15 = (ulong *)0x0;\n    ppcVar14 = (char **)0x0;\n    *param_2 = (long)(pcVar16 + 1);\n    if (param_3 != (long *)0x0) {\n      puVar15 = &local_48;\n      ppcVar14 = local_40;\n    }\n    iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar15);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (*(char *)*param_2 == '_') {\n      *param_2 = (long)((char *)*param_2 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;" (case "case") (char_literal "'F'" (' "'") (character "F") (' "'")) (: ":") (expression_statement "puVar15 = (ulong *)0x0;" (assignment_expression "puVar15 = (ulong *)0x0" (identifier "puVar15") (= "=") (cast_expression "(ulong *)0x0" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppcVar14 = (char **)0x0;" (assignment_expression "ppcVar14 = (char **)0x0" (identifier "ppcVar14") (= "=") (cast_expression "(char **)0x0" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "*param_2 = (long)(pcVar16 + 1);" (assignment_expression "*param_2 = (long)(pcVar16 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(long)(pcVar16 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(pcVar16 + 1)" (( "(") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (param_3 != (long *)0x0) {\n      puVar15 = &local_48;\n      ppcVar14 = local_40;\n    }" (if "if") (parenthesized_expression "(param_3 != (long *)0x0)" (( "(") (binary_expression "param_3 != (long *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      puVar15 = &local_48;\n      ppcVar14 = local_40;\n    }" ({ "{") (expression_statement "puVar15 = &local_48;" (assignment_expression "puVar15 = &local_48" (identifier "puVar15") (= "=") (pointer_expression "&local_48" (& "&") (identifier "local_48"))) (; ";")) (expression_statement "ppcVar14 = local_40;" (assignment_expression "ppcVar14 = local_40" (identifier "ppcVar14") (= "=") (identifier "local_40")) (; ";")) (} "}"))) (expression_statement "iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar15);" (assignment_expression "iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar15)" (identifier "iVar5") (= "=") (call_expression "FUN_00112ce0(param_1,param_2,ppcVar14,puVar15)" (identifier "FUN_00112ce0") (argument_list "(param_1,param_2,ppcVar14,puVar15)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "ppcVar14") (, ",") (identifier "puVar15") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n      return false;\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return false;\n    }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (if_statement "if (*(char *)*param_2 == '_') {\n      *param_2 = (long)((char *)*param_2 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);\n      *param_3 = lVar8;\n      return true;\n    }" (if "if") (parenthesized_expression "(*(char *)*param_2 == '_')" (( "(") (binary_expression "*(char *)*param_2 == '_'" (pointer_expression "*(char *)*param_2" (* "*") (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (== "==") (char_literal "'_'" (' "'") (character "_") (' "'"))) () ")")) (compound_statement "{\n      *param_2 = (long)((char *)*param_2 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);\n      *param_3 = lVar8;\n      return true;\n    }" ({ "{") (expression_statement "*param_2 = (long)((char *)*param_2 + 1);" (assignment_expression "*param_2 = (long)((char *)*param_2 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(long)((char *)*param_2 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "((char *)*param_2 + 1)" (( "(") (binary_expression "(char *)*param_2 + 1" (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2"))) (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar5 = FUN_001118a0(param_1,param_2,param_3);" (assignment_expression "iVar5 = FUN_001118a0(param_1,param_2,param_3)" (identifier "iVar5") (= "=") (call_expression "FUN_001118a0(param_1,param_2,param_3)" (identifier "FUN_001118a0") (argument_list "(param_1,param_2,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n        return false;\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return false;\n      }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (if_statement "if (param_3 == (long *)0x0) {\n        return true;\n      }" (if "if") (parenthesized_expression "(param_3 == (long *)0x0)" (( "(") (binary_expression "param_3 == (long *)0x0" (identifier "param_3") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        return true;\n      }" ({ "{") (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}"))) (expression_statement "lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);" (assignment_expression "lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff)" (identifier "lVar8") (= "=") (call_expression "FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff)" (identifier "FUN_0010f630") (argument_list "(*param_1,*param_3,local_40[0],local_48 & 0xffffffff)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (pointer_expression "*param_3" (* "*") (identifier "param_3")) (, ",") (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (, ",") (binary_expression "local_48 & 0xffffffff" (identifier "local_48") (& "&") (number_literal "0xffffffff")) () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'G':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    return iVar5 != 0;" (case "case") (char_literal "'G'" (' "'") (character "G") (' "'")) (: ":") (expression_statement "*param_2 = (long)(pcVar16 + 1);" (assignment_expression "*param_2 = (long)(pcVar16 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(long)(pcVar16 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(pcVar16 + 1)" (( "(") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar5 = FUN_001118a0(param_1,param_2,param_3);" (assignment_expression "iVar5 = FUN_001118a0(param_1,param_2,param_3)" (identifier "iVar5") (= "=") (call_expression "FUN_001118a0(param_1,param_2,param_3)" (identifier "FUN_001118a0") (argument_list "(param_1,param_2,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (return_statement "return iVar5 != 0;" (return "return") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) (; ";"))) (case_statement "case 'M':" (case "case") (char_literal "'M'" (' "'") (character "M") (' "'")) (: ":")) (case_statement "case 'O':\n    local_48 = 0;\n    cVar1 = *pcVar16;\n    *param_2 = (long)(pcVar16 + 1);\n    local_40[0] = (char *)0x0;\n    local_4c = 0;\n    bVar4 = pcVar16[1];\n    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      puVar15 = &local_48;\n      if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }\n      iVar5 = FUN_00112870(param_1,param_2,puVar15);\n      if (iVar5 == 0) {\n        return false;\n      }\nLAB_00111b38:\n      pbVar12 = (byte *)*param_2;\n    }\n    else {\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }\n    bVar4 = *pbVar12;\n    if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }\n      if (bVar4 != 0x46) break;\n      *param_2 = (long)(pbVar11 + 1);\n      if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }\n      iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);\n      if (iVar5 == 0) {\n        return false;\n      }\n      pbVar12 = (byte *)*param_2;\n      bVar4 = *pbVar12;\n    }\n    if (bVar4 == 0x5f) {\n      *param_2 = (long)(pbVar12 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }\n      lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);\n      *param_3 = lVar8;\n      return true;\n    }\n    break;" (case "case") (char_literal "'O'" (' "'") (character "O") (' "'")) (: ":") (expression_statement "local_48 = 0;" (assignment_expression "local_48 = 0" (identifier "local_48") (= "=") (number_literal "0")) (; ";")) (expression_statement "cVar1 = *pcVar16;" (assignment_expression "cVar1 = *pcVar16" (identifier "cVar1") (= "=") (pointer_expression "*pcVar16" (* "*") (identifier "pcVar16"))) (; ";")) (expression_statement "*param_2 = (long)(pcVar16 + 1);" (assignment_expression "*param_2 = (long)(pcVar16 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(long)(pcVar16 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(pcVar16 + 1)" (( "(") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_40[0] = (char *)0x0;" (assignment_expression "local_40[0] = (char *)0x0" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (= "=") (cast_expression "(char *)0x0" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "local_4c = 0;" (assignment_expression "local_4c = 0" (identifier "local_4c") (= "=") (number_literal "0")) (; ";")) (expression_statement "bVar4 = pcVar16[1];" (assignment_expression "bVar4 = pcVar16[1]" (identifier "bVar4") (= "=") (subscript_expression "pcVar16[1]" (identifier "pcVar16") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {\n      if (bVar4 != 0x51) break;\n      puVar15 = &local_48;\n      if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }\n      iVar5 = FUN_00112870(param_1,param_2,puVar15);\n      if (iVar5 == 0) {\n        return false;\n      }\nLAB_00111b38:\n      pbVar12 = (byte *)*param_2;\n    }\n    else {\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }" (if "if") (parenthesized_expression "((_sch_istable[(ulong)bVar4 * 2] & 4) == 0)" (( "(") (binary_expression "(_sch_istable[(ulong)bVar4 * 2] & 4) == 0" (parenthesized_expression "(_sch_istable[(ulong)bVar4 * 2] & 4)" (( "(") (binary_expression "_sch_istable[(ulong)bVar4 * 2] & 4" (subscript_expression "_sch_istable[(ulong)bVar4 * 2]" (identifier "_sch_istable") ([ "[") (binary_expression "(ulong)bVar4 * 2" (cast_expression "(ulong)bVar4" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar4")) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      if (bVar4 != 0x51) break;\n      puVar15 = &local_48;\n      if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }\n      iVar5 = FUN_00112870(param_1,param_2,puVar15);\n      if (iVar5 == 0) {\n        return false;\n      }\nLAB_00111b38:\n      pbVar12 = (byte *)*param_2;\n    }" ({ "{") (if_statement "if (bVar4 != 0x51) break;" (if "if") (parenthesized_expression "(bVar4 != 0x51)" (( "(") (binary_expression "bVar4 != 0x51" (identifier "bVar4") (!= "!=") (number_literal "0x51")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "puVar15 = &local_48;" (assignment_expression "puVar15 = &local_48" (identifier "puVar15") (= "=") (pointer_expression "&local_48" (& "&") (identifier "local_48"))) (; ";")) (if_statement "if (param_3 == (long *)0x0) {\n        puVar15 = (ulong *)0x0;\n      }" (if "if") (parenthesized_expression "(param_3 == (long *)0x0)" (( "(") (binary_expression "param_3 == (long *)0x0" (identifier "param_3") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        puVar15 = (ulong *)0x0;\n      }" ({ "{") (expression_statement "puVar15 = (ulong *)0x0;" (assignment_expression "puVar15 = (ulong *)0x0" (identifier "puVar15") (= "=") (cast_expression "(ulong *)0x0" (( "(") (type_descriptor "ulong *" (type_identifier "ulong") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (expression_statement "iVar5 = FUN_00112870(param_1,param_2,puVar15);" (assignment_expression "iVar5 = FUN_00112870(param_1,param_2,puVar15)" (identifier "iVar5") (= "=") (call_expression "FUN_00112870(param_1,param_2,puVar15)" (identifier "FUN_00112870") (argument_list "(param_1,param_2,puVar15)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "puVar15") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n        return false;\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return false;\n      }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (labeled_statement "LAB_00111b38:\n      pbVar12 = (byte *)*param_2;" (statement_identifier "LAB_00111b38") (: ":") (expression_statement "pbVar12 = (byte *)*param_2;" (assignment_expression "pbVar12 = (byte *)*param_2" (identifier "pbVar12") (= "=") (cast_expression "(byte *)*param_2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";"))) (} "}")) (else_clause "else {\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }" (else "else") (compound_statement "{\n      uVar18 = 0;\n      uVar6 = (ulong)bVar4;\n      pbVar12 = (byte *)(pcVar16 + 2);\n      do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);\n      sVar7 = strlen((char *)pbVar11);\n      if (sVar7 < uVar18) break;\n      pbVar12 = pbVar11 + uVar18;\n      *param_2 = (long)pbVar12;\n      if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }\n    }" ({ "{") (expression_statement "uVar18 = 0;" (assignment_expression "uVar18 = 0" (identifier "uVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar6 = (ulong)bVar4;" (assignment_expression "uVar6 = (ulong)bVar4" (identifier "uVar6") (= "=") (cast_expression "(ulong)bVar4" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (identifier "bVar4"))) (; ";")) (expression_statement "pbVar12 = (byte *)(pcVar16 + 2);" (assignment_expression "pbVar12 = (byte *)(pcVar16 + 2)" (identifier "pbVar12") (= "=") (cast_expression "(byte *)(pcVar16 + 2)" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar16 + 2)" (( "(") (binary_expression "pcVar16 + 2" (identifier "pcVar16") (+ "+") (number_literal "2")) () ")")))) (; ";")) (do_statement "do {\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);" (do "do") (compound_statement "{\n        pbVar11 = pbVar12;\n        *param_2 = (long)pbVar11;\n        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;\n        uVar6 = (ulong)*pbVar11;\n        pbVar12 = pbVar11 + 1;\n      }" ({ "{") (expression_statement "pbVar11 = pbVar12;" (assignment_expression "pbVar11 = pbVar12" (identifier "pbVar11") (= "=") (identifier "pbVar12")) (; ";")) (expression_statement "*param_2 = (long)pbVar11;" (assignment_expression "*param_2 = (long)pbVar11" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(long)pbVar11" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pbVar11"))) (; ";")) (expression_statement "uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;" (assignment_expression "uVar18 = (char)uVar6 + -0x30 + uVar18 * 10" (identifier "uVar18") (= "=") (binary_expression "(char)uVar6 + -0x30 + uVar18 * 10" (binary_expression "(char)uVar6 + -0x30" (cast_expression "(char)uVar6" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "uVar6")) (+ "+") (number_literal "-0x30")) (+ "+") (binary_expression "uVar18 * 10" (identifier "uVar18") (* "*") (number_literal "10")))) (; ";")) (expression_statement "uVar6 = (ulong)*pbVar11;" (assignment_expression "uVar6 = (ulong)*pbVar11" (identifier "uVar6") (= "=") (binary_expression "(ulong)*pbVar11" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (identifier "pbVar11"))) (; ";")) (expression_statement "pbVar12 = pbVar11 + 1;" (assignment_expression "pbVar12 = pbVar11 + 1" (identifier "pbVar12") (= "=") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0)" (( "(") (binary_expression "(_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0" (parenthesized_expression "(_sch_istable[(ulong)*pbVar11 * 2] & 4)" (( "(") (binary_expression "_sch_istable[(ulong)*pbVar11 * 2] & 4" (subscript_expression "_sch_istable[(ulong)*pbVar11 * 2]" (identifier "_sch_istable") ([ "[") (binary_expression "(ulong)*pbVar11 * 2" (binary_expression "(ulong)*pbVar11" (parenthesized_expression "(ulong)" (( "(") (identifier "ulong") () ")")) (* "*") (identifier "pbVar11")) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (!= "!=") (number_literal "0")) () ")")) (; ";")) (expression_statement "sVar7 = strlen((char *)pbVar11);" (assignment_expression "sVar7 = strlen((char *)pbVar11)" (identifier "sVar7") (= "=") (call_expression "strlen((char *)pbVar11)" (identifier "strlen") (argument_list "((char *)pbVar11)" (( "(") (cast_expression "(char *)pbVar11" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pbVar11")) () ")")))) (; ";")) (if_statement "if (sVar7 < uVar18) break;" (if "if") (parenthesized_expression "(sVar7 < uVar18)" (( "(") (binary_expression "sVar7 < uVar18" (identifier "sVar7") (< "<") (identifier "uVar18")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "pbVar12 = pbVar11 + uVar18;" (assignment_expression "pbVar12 = pbVar11 + uVar18" (identifier "pbVar12") (= "=") (binary_expression "pbVar11 + uVar18" (identifier "pbVar11") (+ "+") (identifier "uVar18"))) (; ";")) (expression_statement "*param_2 = (long)pbVar12;" (assignment_expression "*param_2 = (long)pbVar12" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(long)pbVar12" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pbVar12"))) (; ";")) (if_statement "if (param_3 != (long *)0x0) {\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }" (if "if") (parenthesized_expression "(param_3 != (long *)0x0)" (( "(") (binary_expression "param_3 != (long *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);\n        if (local_48 == 0) {\n          return false;\n        }\n        goto LAB_00111b38;\n      }" ({ "{") (expression_statement "local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);" (assignment_expression "local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9)" (identifier "local_48") (= "=") (call_expression "FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9)" (identifier "FUN_00110e80") (argument_list "(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (binary_expression "param_1[1] + 0x1a0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x1a0")) (, ",") (identifier "pbVar11") (, ",") (identifier "uVar18") (, ",") (number_literal "9") () ")")))) (; ";")) (if_statement "if (local_48 == 0) {\n          return false;\n        }" (if "if") (parenthesized_expression "(local_48 == 0)" (( "(") (binary_expression "local_48 == 0" (identifier "local_48") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          return false;\n        }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (goto_statement "goto LAB_00111b38;" (goto "goto") (statement_identifier "LAB_00111b38") (; ";")) (} "}"))) (} "}")))) (expression_statement "bVar4 = *pbVar12;" (assignment_expression "bVar4 = *pbVar12" (identifier "bVar4") (= "=") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12"))) (; ";")) (if_statement "if (cVar1 == 'M') {\n      if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }\n      if (bVar4 != 0x46) break;\n      *param_2 = (long)(pbVar11 + 1);\n      if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }\n      iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);\n      if (iVar5 == 0) {\n        return false;\n      }\n      pbVar12 = (byte *)*param_2;\n      bVar4 = *pbVar12;\n    }" (if "if") (parenthesized_expression "(cVar1 == 'M')" (( "(") (binary_expression "cVar1 == 'M'" (identifier "cVar1") (== "==") (char_literal "'M'" (' "'") (character "M") (' "'"))) () ")")) (compound_statement "{\n      if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }\n      if (bVar4 != 0x46) break;\n      *param_2 = (long)(pbVar11 + 1);\n      if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }\n      iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);\n      if (iVar5 == 0) {\n        return false;\n      }\n      pbVar12 = (byte *)*param_2;\n      bVar4 = *pbVar12;\n    }" ({ "{") (if_statement "if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }" (if "if") (parenthesized_expression "((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56))" (( "(") (binary_expression "(bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)" (parenthesized_expression "(bVar4 == 0x43)" (( "(") (binary_expression "bVar4 == 0x43" (identifier "bVar4") (== "==") (number_literal "0x43")) () ")")) (|| "||") (parenthesized_expression "(pbVar11 = pbVar12, bVar4 == 0x56)" (( "(") (comma_expression "pbVar11 = pbVar12, bVar4 == 0x56" (assignment_expression "pbVar11 = pbVar12" (identifier "pbVar11") (= "=") (identifier "pbVar12")) (, ",") (binary_expression "bVar4 == 0x56" (identifier "bVar4") (== "==") (number_literal "0x56"))) () ")"))) () ")")) (compound_statement "{\n        pbVar11 = pbVar12 + 1;\n        *param_2 = (long)pbVar11;\n        bVar4 = pbVar12[1];\n      }" ({ "{") (expression_statement "pbVar11 = pbVar12 + 1;" (assignment_expression "pbVar11 = pbVar12 + 1" (identifier "pbVar11") (= "=") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*param_2 = (long)pbVar11;" (assignment_expression "*param_2 = (long)pbVar11" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(long)pbVar11" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (identifier "pbVar11"))) (; ";")) (expression_statement "bVar4 = pbVar12[1];" (assignment_expression "bVar4 = pbVar12[1]" (identifier "bVar4") (= "=") (subscript_expression "pbVar12[1]" (identifier "pbVar12") ([ "[") (number_literal "1") (] "]"))) (; ";")) (} "}"))) (if_statement "if (bVar4 != 0x46) break;" (if "if") (parenthesized_expression "(bVar4 != 0x46)" (( "(") (binary_expression "bVar4 != 0x46" (identifier "bVar4") (!= "!=") (number_literal "0x46")) () ")")) (break_statement "break;" (break "break") (; ";"))) (expression_statement "*param_2 = (long)(pbVar11 + 1);" (assignment_expression "*param_2 = (long)(pbVar11 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(long)(pbVar11 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(pbVar11 + 1)" (( "(") (binary_expression "pbVar11 + 1" (identifier "pbVar11") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if (param_3 == (long *)0x0) {\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }\n      else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }" (if "if") (parenthesized_expression "(param_3 == (long *)0x0)" (( "(") (binary_expression "param_3 == (long *)0x0" (identifier "param_3") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        puVar13 = (undefined4 *)0x0;\n        ppcVar14 = (char **)0x0;\n      }" ({ "{") (expression_statement "puVar13 = (undefined4 *)0x0;" (assignment_expression "puVar13 = (undefined4 *)0x0" (identifier "puVar13") (= "=") (cast_expression "(undefined4 *)0x0" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppcVar14 = (char **)0x0;" (assignment_expression "ppcVar14 = (char **)0x0" (identifier "ppcVar14") (= "=") (cast_expression "(char **)0x0" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (} "}")) (else_clause "else {\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }" (else "else") (compound_statement "{\n        puVar13 = &local_4c;\n        ppcVar14 = local_40;\n      }" ({ "{") (expression_statement "puVar13 = &local_4c;" (assignment_expression "puVar13 = &local_4c" (identifier "puVar13") (= "=") (pointer_expression "&local_4c" (& "&") (identifier "local_4c"))) (; ";")) (expression_statement "ppcVar14 = local_40;" (assignment_expression "ppcVar14 = local_40" (identifier "ppcVar14") (= "=") (identifier "local_40")) (; ";")) (} "}")))) (expression_statement "iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);" (assignment_expression "iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13)" (identifier "iVar5") (= "=") (call_expression "FUN_00112ce0(param_1,param_2,ppcVar14,puVar13)" (identifier "FUN_00112ce0") (argument_list "(param_1,param_2,ppcVar14,puVar13)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "ppcVar14") (, ",") (identifier "puVar13") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n        return false;\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return false;\n      }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (expression_statement "pbVar12 = (byte *)*param_2;" (assignment_expression "pbVar12 = (byte *)*param_2" (identifier "pbVar12") (= "=") (cast_expression "(byte *)*param_2" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";")) (expression_statement "bVar4 = *pbVar12;" (assignment_expression "bVar4 = *pbVar12" (identifier "bVar4") (= "=") (pointer_expression "*pbVar12" (* "*") (identifier "pbVar12"))) (; ";")) (} "}"))) (if_statement "if (bVar4 == 0x5f) {\n      *param_2 = (long)(pbVar12 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }\n      lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);\n      *param_3 = lVar8;\n      return true;\n    }" (if "if") (parenthesized_expression "(bVar4 == 0x5f)" (( "(") (binary_expression "bVar4 == 0x5f" (identifier "bVar4") (== "==") (number_literal "0x5f")) () ")")) (compound_statement "{\n      *param_2 = (long)(pbVar12 + 1);\n      iVar5 = FUN_001118a0(param_1,param_2,param_3);\n      if (iVar5 == 0) {\n        return false;\n      }\n      if (param_3 == (long *)0x0) {\n        return true;\n      }\n      if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }\n      lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);\n      *param_3 = lVar8;\n      return true;\n    }" ({ "{") (expression_statement "*param_2 = (long)(pbVar12 + 1);" (assignment_expression "*param_2 = (long)(pbVar12 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(long)(pbVar12 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(pbVar12 + 1)" (( "(") (binary_expression "pbVar12 + 1" (identifier "pbVar12") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar5 = FUN_001118a0(param_1,param_2,param_3);" (assignment_expression "iVar5 = FUN_001118a0(param_1,param_2,param_3)" (identifier "iVar5") (= "=") (call_expression "FUN_001118a0(param_1,param_2,param_3)" (identifier "FUN_001118a0") (argument_list "(param_1,param_2,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n        return false;\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        return false;\n      }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (if_statement "if (param_3 == (long *)0x0) {\n        return true;\n      }" (if "if") (parenthesized_expression "(param_3 == (long *)0x0)" (( "(") (binary_expression "param_3 == (long *)0x0" (identifier "param_3") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        return true;\n      }" ({ "{") (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}"))) (if_statement "if (cVar1 != 'M') {\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }" (if "if") (parenthesized_expression "(cVar1 != 'M')" (( "(") (binary_expression "cVar1 != 'M'" (identifier "cVar1") (!= "!=") (char_literal "'M'" (' "'") (character "M") (' "'"))) () ")")) (compound_statement "{\n        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);\n        *param_3 = lVar8;\n        return true;\n      }" ({ "{") (expression_statement "lVar8 = FUN_0010f820(*param_1,local_48,*param_3);" (assignment_expression "lVar8 = FUN_0010f820(*param_1,local_48,*param_3)" (identifier "lVar8") (= "=") (call_expression "FUN_0010f820(*param_1,local_48,*param_3)" (identifier "FUN_0010f820") (argument_list "(*param_1,local_48,*param_3)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (identifier "local_48") (, ",") (pointer_expression "*param_3" (* "*") (identifier "param_3")) () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}"))) (expression_statement "lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);" (assignment_expression "lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c)" (identifier "lVar8") (= "=") (call_expression "FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c)" (identifier "FUN_0010f880") (argument_list "(*param_1,*param_3,local_48,local_40[0],local_4c)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (pointer_expression "*param_3" (* "*") (identifier "param_3")) (, ",") (identifier "local_48") (, ",") (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (, ",") (identifier "local_4c") () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'P':" (case "case") (char_literal "'P'" (' "'") (character "P") (' "'")) (: ":")) (case_statement "case 'p':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f5f0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;" (case "case") (char_literal "'p'" (' "'") (character "p") (' "'")) (: ":") (expression_statement "*param_2 = (long)(pcVar16 + 1);" (assignment_expression "*param_2 = (long)(pcVar16 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(long)(pcVar16 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(pcVar16 + 1)" (( "(") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar5 = FUN_001118a0(param_1,param_2,param_3);" (assignment_expression "iVar5 = FUN_001118a0(param_1,param_2,param_3)" (identifier "iVar5") (= "=") (call_expression "FUN_001118a0(param_1,param_2,param_3)" (identifier "FUN_001118a0") (argument_list "(param_1,param_2,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n      return false;\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return false;\n    }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (if_statement "if (param_3 == (long *)0x0) {\n      return true;\n    }" (if "if") (parenthesized_expression "(param_3 == (long *)0x0)" (( "(") (binary_expression "param_3 == (long *)0x0" (identifier "param_3") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return true;\n    }" ({ "{") (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}"))) (expression_statement "lVar8 = FUN_0010f5f0(*param_1,*param_3);" (assignment_expression "lVar8 = FUN_0010f5f0(*param_1,*param_3)" (identifier "lVar8") (= "=") (call_expression "FUN_0010f5f0(*param_1,*param_3)" (identifier "FUN_0010f5f0") (argument_list "(*param_1,*param_3)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (pointer_expression "*param_3" (* "*") (identifier "param_3")) () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (return_statement "return true;" (return "return") (true "true") (; ";"))) (case_statement "case 'Q':\n    iVar5 = FUN_00112870(param_1,param_2,param_3);\n    return iVar5 != 0;" (case "case") (char_literal "'Q'" (' "'") (character "Q") (' "'")) (: ":") (expression_statement "iVar5 = FUN_00112870(param_1,param_2,param_3);" (assignment_expression "iVar5 = FUN_00112870(param_1,param_2,param_3)" (identifier "iVar5") (= "=") (call_expression "FUN_00112870(param_1,param_2,param_3)" (identifier "FUN_00112870") (argument_list "(param_1,param_2,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (return_statement "return iVar5 != 0;" (return "return") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) (; ";"))) (case_statement "case 'R':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001118a0(param_1,param_2,param_3);\n    if (iVar5 == 0) {\n      return false;\n    }\n    if (param_3 == (long *)0x0) {\n      return true;\n    }\n    lVar8 = FUN_0010f6a0(*param_1,*param_3);\n    *param_3 = lVar8;\n    return true;" (case "case") (char_literal "'R'" (' "'") (character "R") (' "'")) (: ":") (expression_statement "*param_2 = (long)(pcVar16 + 1);" (assignment_expression "*param_2 = (long)(pcVar16 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(long)(pcVar16 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(pcVar16 + 1)" (( "(") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar5 = FUN_001118a0(param_1,param_2,param_3);" (assignment_expression "iVar5 = FUN_001118a0(param_1,param_2,param_3)" (identifier "iVar5") (= "=") (call_expression "FUN_001118a0(param_1,param_2,param_3)" (identifier "FUN_001118a0") (argument_list "(param_1,param_2,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "param_3") () ")")))) (; ";")) (if_statement "if (iVar5 == 0) {\n      return false;\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return false;\n    }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (if_statement "if (param_3 == (long *)0x0) {\n      return true;\n    }" (if "if") (parenthesized_expression "(param_3 == (long *)0x0)" (( "(") (binary_expression "param_3 == (long *)0x0" (identifier "param_3") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      return true;\n    }" ({ "{") (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}"))) (expression_statement "lVar8 = FUN_0010f6a0(*param_1,*param_3);" (assignment_expression "lVar8 = FUN_0010f6a0(*param_1,*param_3)" (identifier "lVar8") (= "=") (call_expression "FUN_0010f6a0(*param_1,*param_3)" (identifier "FUN_0010f6a0") (argument_list "(*param_1,*param_3)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (pointer_expression "*param_3" (* "*") (identifier "param_3")) () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (return_statement "return true;" (return "return") (true "true") (; ";"))) (case_statement "case 'T':\n    *param_2 = (long)(pcVar16 + 1);\n    iVar5 = FUN_001103c0(param_2,&local_48);\n    if (iVar5 != 0) {\n      if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }\n    }" (case "case") (char_literal "'T'" (' "'") (character "T") (' "'")) (: ":") (expression_statement "*param_2 = (long)(pcVar16 + 1);" (assignment_expression "*param_2 = (long)(pcVar16 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(long)(pcVar16 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(pcVar16 + 1)" (( "(") (binary_expression "pcVar16 + 1" (identifier "pcVar16") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "iVar5 = FUN_001103c0(param_2,&local_48);" (assignment_expression "iVar5 = FUN_001103c0(param_2,&local_48)" (identifier "iVar5") (= "=") (call_expression "FUN_001103c0(param_2,&local_48)" (identifier "FUN_001103c0") (argument_list "(param_2,&local_48)" (( "(") (identifier "param_2") (, ",") (pointer_expression "&local_48" (& "&") (identifier "local_48")) () ")")))) (; ";")) (if_statement "if (iVar5 != 0) {\n      if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }\n    }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }\n    }" ({ "{") (if_statement "if ((uint)local_48 < *(uint *)(param_1 + 5)) {\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }" (if "if") (parenthesized_expression "((uint)local_48 < *(uint *)(param_1 + 5))" (( "(") (binary_expression "(uint)local_48 < *(uint *)(param_1 + 5)" (cast_expression "(uint)local_48" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "local_48")) (< "<") (pointer_expression "*(uint *)(param_1 + 5)" (* "*") (cast_expression "(uint *)(param_1 + 5)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 5)" (( "(") (binary_expression "param_1 + 5" (identifier "param_1") (+ "+") (number_literal "5")) () ")"))))) () ")")) (compound_statement "{\n        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);\n        iVar5 = FUN_001118a0(param_1,local_40,param_3);\n        goto joined_r0x0011192e;\n      }" ({ "{") (expression_statement "local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);" (assignment_expression "local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4])" (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (= "=") (pointer_expression "*(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4])" (* "*") (cast_expression "(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4])" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((local_48 & 0xffffffff) * 0x10 + param_1[4])" (( "(") (binary_expression "(local_48 & 0xffffffff) * 0x10 + param_1[4]" (binary_expression "(local_48 & 0xffffffff) * 0x10" (parenthesized_expression "(local_48 & 0xffffffff)" (( "(") (binary_expression "local_48 & 0xffffffff" (identifier "local_48") (& "&") (number_literal "0xffffffff")) () ")")) (* "*") (number_literal "0x10")) (+ "+") (subscript_expression "param_1[4]" (identifier "param_1") ([ "[") (number_literal "4") (] "]"))) () ")"))))) (; ";")) (expression_statement "iVar5 = FUN_001118a0(param_1,local_40,param_3);" (assignment_expression "iVar5 = FUN_001118a0(param_1,local_40,param_3)" (identifier "iVar5") (= "=") (call_expression "FUN_001118a0(param_1,local_40,param_3)" (identifier "FUN_001118a0") (argument_list "(param_1,local_40,param_3)" (( "(") (identifier "param_1") (, ",") (identifier "local_40") (, ",") (identifier "param_3") () ")")))) (; ";")) (goto_statement "goto joined_r0x0011192e;" (goto "goto") (statement_identifier "joined_r0x0011192e") (; ";")) (} "}"))) (} "}")))) (} "}"))) (labeled_statement "switchD_00111d06_caseD_1:\n  FUN_00110480(pcVar16);" (statement_identifier "switchD_00111d06_caseD_1") (: ":") (expression_statement "FUN_00110480(pcVar16);" (call_expression "FUN_00110480(pcVar16)" (identifier "FUN_00110480") (argument_list "(pcVar16)" (( "(") (identifier "pcVar16") () ")"))) (; ";"))) (return_statement "return false;" (return "return") (false "false") (; ";")) (labeled_statement "switchD_00111d06_caseD_30:\n  iVar5 = FUN_00110de0(param_2,local_40);" (statement_identifier "switchD_00111d06_caseD_30") (: ":") (expression_statement "iVar5 = FUN_00110de0(param_2,local_40);" (assignment_expression "iVar5 = FUN_00110de0(param_2,local_40)" (identifier "iVar5") (= "=") (call_expression "FUN_00110de0(param_2,local_40)" (identifier "FUN_00110de0") (argument_list "(param_2,local_40)" (( "(") (identifier "param_2") (, ",") (identifier "local_40") () ")")))) (; ";"))) (if_statement "if (iVar5 == 0) {\n    return false;\n  }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    return false;\n  }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (if_statement "if (param_3 == (long *)0x0) {\n    return true;\n  }" (if "if") (parenthesized_expression "(param_3 == (long *)0x0)" (( "(") (binary_expression "param_3 == (long *)0x0" (identifier "param_3") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    return true;\n  }" ({ "{") (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}"))) (expression_statement "__ptr = (void *)FUN_00110540(local_40[0],*param_2 - (long)local_40[0]);" (assignment_expression "__ptr = (void *)FUN_00110540(local_40[0],*param_2 - (long)local_40[0])" (identifier "__ptr") (= "=") (cast_expression "(void *)FUN_00110540(local_40[0],*param_2 - (long)local_40[0])" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_00110540(local_40[0],*param_2 - (long)local_40[0])" (identifier "FUN_00110540") (argument_list "(local_40[0],*param_2 - (long)local_40[0])" (( "(") (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (, ",") (binary_expression "*param_2 - (long)local_40[0]" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (- "-") (cast_expression "(long)local_40[0]" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")))) () ")"))))) (; ";")) (expression_statement "lVar8 = FUN_0010fe00(*param_1,__ptr);" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,__ptr)" (identifier "lVar8") (= "=") (call_expression "FUN_0010fe00(*param_1,__ptr)" (identifier "FUN_0010fe00") (argument_list "(*param_1,__ptr)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (identifier "__ptr") () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (expression_statement "free(__ptr);" (call_expression "free(__ptr)" (identifier "free") (argument_list "(__ptr)" (( "(") (identifier "__ptr") () ")"))) (; ";")) (if_statement "if (*param_3 == 0) {\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0);\n    *param_3 = lVar8;\njoined_r0x00111f61:\n    if (lVar8 == 0) {\n      return false;\n    }\n  }" (if "if") (parenthesized_expression "(*param_3 == 0)" (( "(") (binary_expression "*param_3 == 0" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0);\n    *param_3 = lVar8;\njoined_r0x00111f61:\n    if (lVar8 == 0) {\n      return false;\n    }\n  }" ({ "{") (expression_statement "lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0);" (assignment_expression "lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0)" (identifier "lVar8") (= "=") (call_expression "FUN_00110e80(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0)" (identifier "FUN_00110e80") (argument_list "(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (binary_expression "param_1[1] + 0x1a0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x1a0")) (, ",") (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) (, ",") (binary_expression "*param_2 - (long)local_40[0]" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (- "-") (cast_expression "(long)local_40[0]" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")))) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (labeled_statement "joined_r0x00111f61:\n    if (lVar8 == 0) {\n      return false;\n    }" (statement_identifier "joined_r0x00111f61") (: ":") (if_statement "if (lVar8 == 0) {\n      return false;\n    }" (if "if") (parenthesized_expression "(lVar8 == 0)" (( "(") (binary_expression "lVar8 == 0" (identifier "lVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return false;\n    }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}")))) (} "}"))) (goto_statement "goto LAB_00111df8;" (goto "goto") (statement_identifier "LAB_00111df8") (; ";")) (labeled_statement "code_r0x00111cf8:\n  switch(cVar1) {\n  case '\0':\n  case '_':\n    FUN_00110480(pcVar16);\n    goto LAB_00111df8;\n  default:\n    goto switchD_00111d06_caseD_1;\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    goto switchD_00111d06_caseD_30;\n  case 'G':\n    *param_2 = (long)(pcVar10 + 1);\n    if ((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;\n  case 'b':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }\n    break;\n  case 'c':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'd':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'f':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'i':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'l':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }\n    break;\n  case 'r':\n    pcVar16 = "long double";\n    if (param_3 != (long *)0x0) goto LAB_00111fc0;\n    break;\n  case 's':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 't':\n    if (param_3 == (long *)0x0) {\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }\n    iVar5 = FUN_001122d0(param_1,param_2,local_40);\n    pcVar16 = local_40[0];\n    if (iVar5 == 0) {\n      return false;\n    }\n    sVar7 = strlen(local_40[0]);\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9);\n    *param_3 = lVar8;\n    free(local_40[0]);\n    lVar8 = *param_3;\n    goto joined_r0x00111f61;\n  case 'v':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'w':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'x':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n  }" (statement_identifier "code_r0x00111cf8") (: ":") (switch_statement "switch(cVar1) {\n  case '\0':\n  case '_':\n    FUN_00110480(pcVar16);\n    goto LAB_00111df8;\n  default:\n    goto switchD_00111d06_caseD_1;\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    goto switchD_00111d06_caseD_30;\n  case 'G':\n    *param_2 = (long)(pcVar10 + 1);\n    if ((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;\n  case 'b':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }\n    break;\n  case 'c':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'd':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'f':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'i':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'l':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }\n    break;\n  case 'r':\n    pcVar16 = "long double";\n    if (param_3 != (long *)0x0) goto LAB_00111fc0;\n    break;\n  case 's':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 't':\n    if (param_3 == (long *)0x0) {\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }\n    iVar5 = FUN_001122d0(param_1,param_2,local_40);\n    pcVar16 = local_40[0];\n    if (iVar5 == 0) {\n      return false;\n    }\n    sVar7 = strlen(local_40[0]);\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9);\n    *param_3 = lVar8;\n    free(local_40[0]);\n    lVar8 = *param_3;\n    goto joined_r0x00111f61;\n  case 'v':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'w':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'x':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n  }" (switch "switch") (parenthesized_expression "(cVar1)" (( "(") (identifier "cVar1") () ")")) (compound_statement "{\n  case '\0':\n  case '_':\n    FUN_00110480(pcVar16);\n    goto LAB_00111df8;\n  default:\n    goto switchD_00111d06_caseD_1;\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    goto switchD_00111d06_caseD_30;\n  case 'G':\n    *param_2 = (long)(pcVar10 + 1);\n    if ((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;\n  case 'b':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }\n    break;\n  case 'c':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'd':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'f':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'i':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'l':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }\n    break;\n  case 'r':\n    pcVar16 = "long double";\n    if (param_3 != (long *)0x0) goto LAB_00111fc0;\n    break;\n  case 's':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 't':\n    if (param_3 == (long *)0x0) {\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }\n    iVar5 = FUN_001122d0(param_1,param_2,local_40);\n    pcVar16 = local_40[0];\n    if (iVar5 == 0) {\n      return false;\n    }\n    sVar7 = strlen(local_40[0]);\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9);\n    *param_3 = lVar8;\n    free(local_40[0]);\n    lVar8 = *param_3;\n    goto joined_r0x00111f61;\n  case 'v':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'w':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;\n  case 'x':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n  }" ({ "{") (case_statement "case '\0':" (case "case") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'")) (: ":")) (case_statement "case '_':\n    FUN_00110480(pcVar16);\n    goto LAB_00111df8;" (case "case") (char_literal "'_'" (' "'") (character "_") (' "'")) (: ":") (expression_statement "FUN_00110480(pcVar16);" (call_expression "FUN_00110480(pcVar16)" (identifier "FUN_00110480") (argument_list "(pcVar16)" (( "(") (identifier "pcVar16") () ")"))) (; ";")) (goto_statement "goto LAB_00111df8;" (goto "goto") (statement_identifier "LAB_00111df8") (; ";"))) (case_statement "default:\n    goto switchD_00111d06_caseD_1;" (default "default") (: ":") (goto_statement "goto switchD_00111d06_caseD_1;" (goto "goto") (statement_identifier "switchD_00111d06_caseD_1") (; ";"))) (case_statement "case '0':" (case "case") (char_literal "'0'" (' "'") (character "0") (' "'")) (: ":")) (case_statement "case '1':" (case "case") (char_literal "'1'" (' "'") (character "1") (' "'")) (: ":")) (case_statement "case '2':" (case "case") (char_literal "'2'" (' "'") (character "2") (' "'")) (: ":")) (case_statement "case '3':" (case "case") (char_literal "'3'" (' "'") (character "3") (' "'")) (: ":")) (case_statement "case '4':" (case "case") (char_literal "'4'" (' "'") (character "4") (' "'")) (: ":")) (case_statement "case '5':" (case "case") (char_literal "'5'" (' "'") (character "5") (' "'")) (: ":")) (case_statement "case '6':" (case "case") (char_literal "'6'" (' "'") (character "6") (' "'")) (: ":")) (case_statement "case '7':" (case "case") (char_literal "'7'" (' "'") (character "7") (' "'")) (: ":")) (case_statement "case '8':" (case "case") (char_literal "'8'" (' "'") (character "8") (' "'")) (: ":")) (case_statement "case '9':\n    goto switchD_00111d06_caseD_30;" (case "case") (char_literal "'9'" (' "'") (character "9") (' "'")) (: ":") (goto_statement "goto switchD_00111d06_caseD_30;" (goto "goto") (statement_identifier "switchD_00111d06_caseD_30") (; ";"))) (case_statement "case 'G':\n    *param_2 = (long)(pcVar10 + 1);\n    if ((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0) goto switchD_00111d06_caseD_1;\n    goto switchD_00111d06_caseD_30;" (case "case") (char_literal "'G'" (' "'") (character "G") (' "'")) (: ":") (expression_statement "*param_2 = (long)(pcVar10 + 1);" (assignment_expression "*param_2 = (long)(pcVar10 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(long)(pcVar10 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(pcVar10 + 1)" (( "(") (binary_expression "pcVar10 + 1" (identifier "pcVar10") (+ "+") (number_literal "1")) () ")")))) (; ";")) (if_statement "if ((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0) goto switchD_00111d06_caseD_1;" (if "if") (parenthesized_expression "((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0)" (( "(") (binary_expression "(_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0" (parenthesized_expression "(_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4)" (( "(") (binary_expression "_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4" (subscript_expression "_sch_istable[(ulong)(byte)pcVar10[1] * 2]" (identifier "_sch_istable") ([ "[") (binary_expression "(ulong)(byte)pcVar10[1] * 2" (cast_expression "(ulong)(byte)pcVar10[1]" (( "(") (type_descriptor "ulong" (type_identifier "ulong")) () ")") (cast_expression "(byte)pcVar10[1]" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (subscript_expression "pcVar10[1]" (identifier "pcVar10") ([ "[") (number_literal "1") (] "]")))) (* "*") (number_literal "2")) (] "]")) (& "&") (number_literal "4")) () ")")) (== "==") (number_literal "0")) () ")")) (goto_statement "goto switchD_00111d06_caseD_1;" (goto "goto") (statement_identifier "switchD_00111d06_caseD_1") (; ";"))) (goto_statement "goto switchD_00111d06_caseD_30;" (goto "goto") (statement_identifier "switchD_00111d06_caseD_30") (; ";"))) (case_statement "case 'b':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }\n    break;" (case "case") (char_literal "'b'" (' "'") (character "b") (' "'")) (: ":") (if_statement "if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }" (if "if") (parenthesized_expression "(param_3 != (long *)0x0)" (( "(") (binary_expression "param_3 != (long *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }\nLAB_00111e80:\n      pcVar10 = (char *)*param_2;\n    }" ({ "{") (expression_statement "lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b)" (identifier "lVar8") (= "=") (call_expression "FUN_0010fe00(*param_1,&DAT_0012307b)" (identifier "FUN_0010fe00") (argument_list "(*param_1,&DAT_0012307b)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (pointer_expression "&DAT_0012307b" (& "&") (identifier "DAT_0012307b")) () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (if_statement "if (lVar8 == 0) {\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }" (if "if") (parenthesized_expression "(lVar8 == 0)" (( "(") (binary_expression "lVar8 == 0" (identifier "lVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        lVar8 = FUN_0010f4d0(*param_1,4);\n        *param_3 = lVar8;\n      }" ({ "{") (expression_statement "lVar8 = FUN_0010f4d0(*param_1,4);" (assignment_expression "lVar8 = FUN_0010f4d0(*param_1,4)" (identifier "lVar8") (= "=") (call_expression "FUN_0010f4d0(*param_1,4)" (identifier "FUN_0010f4d0") (argument_list "(*param_1,4)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (} "}"))) (labeled_statement "LAB_00111e80:\n      pcVar10 = (char *)*param_2;" (statement_identifier "LAB_00111e80") (: ":") (expression_statement "pcVar10 = (char *)*param_2;" (assignment_expression "pcVar10 = (char *)*param_2" (identifier "pcVar10") (= "=") (cast_expression "(char *)*param_2" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (pointer_expression "*param_2" (* "*") (identifier "param_2")))) (; ";"))) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'c':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;" (case "case") (char_literal "'c'" (' "'") (character "c") (' "'")) (: ":") (if_statement "if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" (if "if") (parenthesized_expression "(param_3 != (long *)0x0)" (( "(") (binary_expression "param_3 != (long *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pcVar16 = "unsigned char";\n      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" ({ "{") (expression_statement "pcVar16 = "unsigned char";" (assignment_expression "pcVar16 = "unsigned char"" (identifier "pcVar16") (= "=") (string_literal ""unsigned char"" (" """) (string_content "unsigned char") (" """))) (; ";")) (if_statement "if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {\n        pcVar16 = "char";\n      }" (if "if") (parenthesized_expression "((iVar5 == 0) && (pcVar16 = "signed char", !bVar3))" (( "(") (binary_expression "(iVar5 == 0) && (pcVar16 = "signed char", !bVar3)" (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(pcVar16 = "signed char", !bVar3)" (( "(") (comma_expression "pcVar16 = "signed char", !bVar3" (assignment_expression "pcVar16 = "signed char"" (identifier "pcVar16") (= "=") (string_literal ""signed char"" (" """) (string_content "signed char") (" """))) (, ",") (unary_expression "!bVar3" (! "!") (identifier "bVar3"))) () ")"))) () ")")) (compound_statement "{\n        pcVar16 = "char";\n      }" ({ "{") (expression_statement "pcVar16 = "char";" (assignment_expression "pcVar16 = "char"" (identifier "pcVar16") (= "=") (string_literal ""char"" (" """) (string_content "char") (" """))) (; ";")) (} "}"))) (expression_statement "lVar8 = FUN_0010fe00(*param_1,pcVar16);" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,pcVar16)" (identifier "lVar8") (= "=") (call_expression "FUN_0010fe00(*param_1,pcVar16)" (identifier "FUN_0010fe00") (argument_list "(*param_1,pcVar16)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (identifier "pcVar16") () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (if_statement "if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }" (if "if") (parenthesized_expression "(lVar8 == 0)" (( "(") (binary_expression "lVar8 == 0" (identifier "lVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);\n        *param_3 = lVar8;\n      }" ({ "{") (expression_statement "lVar8 = FUN_0010f4a0(*param_1,1,iVar5);" (assignment_expression "lVar8 = FUN_0010f4a0(*param_1,1,iVar5)" (identifier "lVar8") (= "=") (call_expression "FUN_0010f4a0(*param_1,1,iVar5)" (identifier "FUN_0010f4a0") (argument_list "(*param_1,1,iVar5)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (number_literal "1") (, ",") (identifier "iVar5") () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (} "}"))) (goto_statement "goto LAB_00111e80;" (goto "goto") (statement_identifier "LAB_00111e80") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'd':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;" (case "case") (char_literal "'d'" (' "'") (character "d") (' "'")) (: ":") (if_statement "if (param_3 != (long *)0x0) {\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" (if "if") (parenthesized_expression "(param_3 != (long *)0x0)" (( "(") (binary_expression "param_3 != (long *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pcVar16 = "double";\nLAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" ({ "{") (expression_statement "pcVar16 = "double";" (assignment_expression "pcVar16 = "double"" (identifier "pcVar16") (= "=") (string_literal ""double"" (" """) (string_content "double") (" """))) (; ";")) (labeled_statement "LAB_00111fc0:\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);" (statement_identifier "LAB_00111fc0") (: ":") (expression_statement "lVar8 = FUN_0010fe00(*param_1,pcVar16);" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,pcVar16)" (identifier "lVar8") (= "=") (call_expression "FUN_0010fe00(*param_1,pcVar16)" (identifier "FUN_0010fe00") (argument_list "(*param_1,pcVar16)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (identifier "pcVar16") () ")")))) (; ";"))) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (if_statement "if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }" (if "if") (parenthesized_expression "(lVar8 == 0)" (( "(") (binary_expression "lVar8 == 0" (identifier "lVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        lVar8 = FUN_0010f4c0(*param_1,8);\n        *param_3 = lVar8;\n      }" ({ "{") (expression_statement "lVar8 = FUN_0010f4c0(*param_1,8);" (assignment_expression "lVar8 = FUN_0010f4c0(*param_1,8)" (identifier "lVar8") (= "=") (call_expression "FUN_0010f4c0(*param_1,8)" (identifier "FUN_0010f4c0") (argument_list "(*param_1,8)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (number_literal "8") () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (} "}"))) (goto_statement "goto LAB_00111e80;" (goto "goto") (statement_identifier "LAB_00111e80") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'f':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;" (case "case") (char_literal "'f'" (' "'") (character "f") (' "'")) (: ":") (if_statement "if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" (if "if") (parenthesized_expression "(param_3 != (long *)0x0)" (( "(") (binary_expression "param_3 != (long *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      lVar8 = FUN_0010fe00(*param_1,"float");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" ({ "{") (expression_statement "lVar8 = FUN_0010fe00(*param_1,"float");" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,"float")" (identifier "lVar8") (= "=") (call_expression "FUN_0010fe00(*param_1,"float")" (identifier "FUN_0010fe00") (argument_list "(*param_1,"float")" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (string_literal ""float"" (" """) (string_content "float") (" """)) () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (if_statement "if (lVar8 == 0) {\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }" (if "if") (parenthesized_expression "(lVar8 == 0)" (( "(") (binary_expression "lVar8 == 0" (identifier "lVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        lVar8 = FUN_0010f4c0(*param_1,4);\n        *param_3 = lVar8;\n      }" ({ "{") (expression_statement "lVar8 = FUN_0010f4c0(*param_1,4);" (assignment_expression "lVar8 = FUN_0010f4c0(*param_1,4)" (identifier "lVar8") (= "=") (call_expression "FUN_0010f4c0(*param_1,4)" (identifier "FUN_0010f4c0") (argument_list "(*param_1,4)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (number_literal "4") () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (} "}"))) (goto_statement "goto LAB_00111e80;" (goto "goto") (statement_identifier "LAB_00111e80") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'i':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;" (case "case") (char_literal "'i'" (' "'") (character "i") (' "'")) (: ":") (if_statement "if (param_3 != (long *)0x0) {\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" (if "if") (parenthesized_expression "(param_3 != (long *)0x0)" (( "(") (binary_expression "param_3 != (long *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pcVar16 = "unsigned int";\n      pcVar10 = "int";\nLAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" ({ "{") (expression_statement "pcVar16 = "unsigned int";" (assignment_expression "pcVar16 = "unsigned int"" (identifier "pcVar16") (= "=") (string_literal ""unsigned int"" (" """) (string_content "unsigned int") (" """))) (; ";")) (expression_statement "pcVar10 = "int";" (assignment_expression "pcVar10 = "int"" (identifier "pcVar10") (= "=") (string_literal ""int"" (" """) (string_content "int") (" """))) (; ";")) (labeled_statement "LAB_0011200d:\n      if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }" (statement_identifier "LAB_0011200d") (: ":") (if_statement "if (iVar5 == 0) {\n        pcVar16 = pcVar10;\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar16 = pcVar10;\n      }" ({ "{") (expression_statement "pcVar16 = pcVar10;" (assignment_expression "pcVar16 = pcVar10" (identifier "pcVar16") (= "=") (identifier "pcVar10")) (; ";")) (} "}")))) (expression_statement "lVar8 = FUN_0010fe00(*param_1,pcVar16);" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,pcVar16)" (identifier "lVar8") (= "=") (call_expression "FUN_0010fe00(*param_1,pcVar16)" (identifier "FUN_0010fe00") (argument_list "(*param_1,pcVar16)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (identifier "pcVar16") () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (if_statement "if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }" (if "if") (parenthesized_expression "(lVar8 == 0)" (( "(") (binary_expression "lVar8 == 0" (identifier "lVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);\n        *param_3 = lVar8;\n      }" ({ "{") (expression_statement "lVar8 = FUN_0010f4a0(*param_1,4,iVar5);" (assignment_expression "lVar8 = FUN_0010f4a0(*param_1,4,iVar5)" (identifier "lVar8") (= "=") (call_expression "FUN_0010f4a0(*param_1,4,iVar5)" (identifier "FUN_0010f4a0") (argument_list "(*param_1,4,iVar5)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (number_literal "4") (, ",") (identifier "iVar5") () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (} "}"))) (goto_statement "goto LAB_00111e80;" (goto "goto") (statement_identifier "LAB_00111e80") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'l':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }\n    break;" (case "case") (char_literal "'l'" (' "'") (character "l") (' "'")) (: ":") (if_statement "if (param_3 != (long *)0x0) {\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }" (if "if") (parenthesized_expression "(param_3 != (long *)0x0)" (( "(") (binary_expression "param_3 != (long *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pcVar16 = "long unsigned int";\n      pcVar10 = "long int";\n      goto LAB_0011200d;\n    }" ({ "{") (expression_statement "pcVar16 = "long unsigned int";" (assignment_expression "pcVar16 = "long unsigned int"" (identifier "pcVar16") (= "=") (string_literal ""long unsigned int"" (" """) (string_content "long unsigned int") (" """))) (; ";")) (expression_statement "pcVar10 = "long int";" (assignment_expression "pcVar10 = "long int"" (identifier "pcVar10") (= "=") (string_literal ""long int"" (" """) (string_content "long int") (" """))) (; ";")) (goto_statement "goto LAB_0011200d;" (goto "goto") (statement_identifier "LAB_0011200d") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'r':\n    pcVar16 = "long double";\n    if (param_3 != (long *)0x0) goto LAB_00111fc0;\n    break;" (case "case") (char_literal "'r'" (' "'") (character "r") (' "'")) (: ":") (expression_statement "pcVar16 = "long double";" (assignment_expression "pcVar16 = "long double"" (identifier "pcVar16") (= "=") (string_literal ""long double"" (" """) (string_content "long double") (" """))) (; ";")) (if_statement "if (param_3 != (long *)0x0) goto LAB_00111fc0;" (if "if") (parenthesized_expression "(param_3 != (long *)0x0)" (( "(") (binary_expression "param_3 != (long *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_00111fc0;" (goto "goto") (statement_identifier "LAB_00111fc0") (; ";"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 's':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;" (case "case") (char_literal "'s'" (' "'") (character "s") (' "'")) (: ":") (if_statement "if (param_3 != (long *)0x0) {\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" (if "if") (parenthesized_expression "(param_3 != (long *)0x0)" (( "(") (binary_expression "param_3 != (long *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pcVar16 = "short unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" ({ "{") (expression_statement "pcVar16 = "short unsigned int";" (assignment_expression "pcVar16 = "short unsigned int"" (identifier "pcVar16") (= "=") (string_literal ""short unsigned int"" (" """) (string_content "short unsigned int") (" """))) (; ";")) (if_statement "if (iVar5 == 0) {\n        pcVar16 = "short int";\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar16 = "short int";\n      }" ({ "{") (expression_statement "pcVar16 = "short int";" (assignment_expression "pcVar16 = "short int"" (identifier "pcVar16") (= "=") (string_literal ""short int"" (" """) (string_content "short int") (" """))) (; ";")) (} "}"))) (expression_statement "lVar8 = FUN_0010fe00(*param_1,pcVar16);" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,pcVar16)" (identifier "lVar8") (= "=") (call_expression "FUN_0010fe00(*param_1,pcVar16)" (identifier "FUN_0010fe00") (argument_list "(*param_1,pcVar16)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (identifier "pcVar16") () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (if_statement "if (lVar8 == 0) {\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }" (if "if") (parenthesized_expression "(lVar8 == 0)" (( "(") (binary_expression "lVar8 == 0" (identifier "lVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\nLAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);\n        *param_3 = lVar8;\n      }" ({ "{") (labeled_statement "LAB_00111eb3:\n        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);" (statement_identifier "LAB_00111eb3") (: ":") (expression_statement "lVar8 = FUN_0010f4a0(*param_1,2,iVar5);" (assignment_expression "lVar8 = FUN_0010f4a0(*param_1,2,iVar5)" (identifier "lVar8") (= "=") (call_expression "FUN_0010f4a0(*param_1,2,iVar5)" (identifier "FUN_0010f4a0") (argument_list "(*param_1,2,iVar5)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (number_literal "2") (, ",") (identifier "iVar5") () ")")))) (; ";"))) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (} "}"))) (goto_statement "goto LAB_00111e80;" (goto "goto") (statement_identifier "LAB_00111e80") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 't':\n    if (param_3 == (long *)0x0) {\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }\n    iVar5 = FUN_001122d0(param_1,param_2,local_40);\n    pcVar16 = local_40[0];\n    if (iVar5 == 0) {\n      return false;\n    }\n    sVar7 = strlen(local_40[0]);\n    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9);\n    *param_3 = lVar8;\n    free(local_40[0]);\n    lVar8 = *param_3;\n    goto joined_r0x00111f61;" (case "case") (char_literal "'t'" (' "'") (character "t") (' "'")) (: ":") (if_statement "if (param_3 == (long *)0x0) {\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }" (if "if") (parenthesized_expression "(param_3 == (long *)0x0)" (( "(") (binary_expression "param_3 == (long *)0x0" (identifier "param_3") (== "==") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      iVar5 = FUN_001122d0(param_1,param_2,0);\njoined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }\n      return false;\n    }" ({ "{") (expression_statement "iVar5 = FUN_001122d0(param_1,param_2,0);" (assignment_expression "iVar5 = FUN_001122d0(param_1,param_2,0)" (identifier "iVar5") (= "=") (call_expression "FUN_001122d0(param_1,param_2,0)" (identifier "FUN_001122d0") (argument_list "(param_1,param_2,0)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (number_literal "0") () ")")))) (; ";")) (labeled_statement "joined_r0x0011192e:\n      if (iVar5 != 0) {\n        return true;\n      }" (statement_identifier "joined_r0x0011192e") (: ":") (if_statement "if (iVar5 != 0) {\n        return true;\n      }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        return true;\n      }" ({ "{") (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}")))) (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (expression_statement "iVar5 = FUN_001122d0(param_1,param_2,local_40);" (assignment_expression "iVar5 = FUN_001122d0(param_1,param_2,local_40)" (identifier "iVar5") (= "=") (call_expression "FUN_001122d0(param_1,param_2,local_40)" (identifier "FUN_001122d0") (argument_list "(param_1,param_2,local_40)" (( "(") (identifier "param_1") (, ",") (identifier "param_2") (, ",") (identifier "local_40") () ")")))) (; ";")) (expression_statement "pcVar16 = local_40[0];" (assignment_expression "pcVar16 = local_40[0]" (identifier "pcVar16") (= "=") (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]"))) (; ";")) (if_statement "if (iVar5 == 0) {\n      return false;\n    }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n      return false;\n    }" ({ "{") (return_statement "return false;" (return "return") (false "false") (; ";")) (} "}"))) (expression_statement "sVar7 = strlen(local_40[0]);" (assignment_expression "sVar7 = strlen(local_40[0])" (identifier "sVar7") (= "=") (call_expression "strlen(local_40[0])" (identifier "strlen") (argument_list "(local_40[0])" (( "(") (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) () ")")))) (; ";")) (expression_statement "lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9);" (assignment_expression "lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9)" (identifier "lVar8") (= "=") (call_expression "FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9)" (identifier "FUN_00110e80") (argument_list "(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (binary_expression "param_1[1] + 0x1a0" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0x1a0")) (, ",") (identifier "pcVar16") (, ",") (binary_expression "sVar7 & 0xffffffff" (identifier "sVar7") (& "&") (number_literal "0xffffffff")) (, ",") (number_literal "9") () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (expression_statement "free(local_40[0]);" (call_expression "free(local_40[0])" (identifier "free") (argument_list "(local_40[0])" (( "(") (subscript_expression "local_40[0]" (identifier "local_40") ([ "[") (number_literal "0") (] "]")) () ")"))) (; ";")) (expression_statement "lVar8 = *param_3;" (assignment_expression "lVar8 = *param_3" (identifier "lVar8") (= "=") (pointer_expression "*param_3" (* "*") (identifier "param_3"))) (; ";")) (goto_statement "goto joined_r0x00111f61;" (goto "goto") (statement_identifier "joined_r0x00111f61") (; ";"))) (case_statement "case 'v':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }\n    break;" (case "case") (char_literal "'v'" (' "'") (character "v") (' "'")) (: ":") (if_statement "if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" (if "if") (parenthesized_expression "(param_3 != (long *)0x0)" (( "(") (binary_expression "param_3 != (long *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" ({ "{") (expression_statement "lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3)" (identifier "lVar8") (= "=") (call_expression "FUN_0010fe00(*param_1,&DAT_00122fa3)" (identifier "FUN_0010fe00") (argument_list "(*param_1,&DAT_00122fa3)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (pointer_expression "&DAT_00122fa3" (& "&") (identifier "DAT_00122fa3")) () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (if_statement "if (lVar8 == 0) {\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }" (if "if") (parenthesized_expression "(lVar8 == 0)" (( "(") (binary_expression "lVar8 == 0" (identifier "lVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        lVar8 = FUN_0010f490(*param_1);\n        *param_3 = lVar8;\n      }" ({ "{") (expression_statement "lVar8 = FUN_0010f490(*param_1);" (assignment_expression "lVar8 = FUN_0010f490(*param_1)" (identifier "lVar8") (= "=") (call_expression "FUN_0010f490(*param_1)" (identifier "FUN_0010f490") (argument_list "(*param_1)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (} "}"))) (goto_statement "goto LAB_00111e80;" (goto "goto") (statement_identifier "LAB_00111e80") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'w':\n    if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }\n    break;" (case "case") (char_literal "'w'" (' "'") (character "w") (' "'")) (: ":") (if_statement "if (param_3 != (long *)0x0) {\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }" (if "if") (parenthesized_expression "(param_3 != (long *)0x0)" (( "(") (binary_expression "param_3 != (long *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }\n      goto LAB_00111e80;\n    }" ({ "{") (expression_statement "lVar8 = FUN_0010fe00(*param_1,"__wchar_t");" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,"__wchar_t")" (identifier "lVar8") (= "=") (call_expression "FUN_0010fe00(*param_1,"__wchar_t")" (identifier "FUN_0010fe00") (argument_list "(*param_1,"__wchar_t")" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (string_literal ""__wchar_t"" (" """) (string_content "__wchar_t") (" """)) () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (if_statement "if (lVar8 == 0) {\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }" (if "if") (parenthesized_expression "(lVar8 == 0)" (( "(") (binary_expression "lVar8 == 0" (identifier "lVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        iVar5 = 1;\n        goto LAB_00111eb3;\n      }" ({ "{") (expression_statement "iVar5 = 1;" (assignment_expression "iVar5 = 1" (identifier "iVar5") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00111eb3;" (goto "goto") (statement_identifier "LAB_00111eb3") (; ";")) (} "}"))) (goto_statement "goto LAB_00111e80;" (goto "goto") (statement_identifier "LAB_00111e80") (; ";")) (} "}"))) (break_statement "break;" (break "break") (; ";"))) (case_statement "case 'x':\n    if (param_3 != (long *)0x0) {\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" (case "case") (char_literal "'x'" (' "'") (character "x") (' "'")) (: ":") (if_statement "if (param_3 != (long *)0x0) {\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" (if "if") (parenthesized_expression "(param_3 != (long *)0x0)" (( "(") (binary_expression "param_3 != (long *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      pcVar16 = "long long unsigned int";\n      if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }\n      lVar8 = FUN_0010fe00(*param_1,pcVar16);\n      *param_3 = lVar8;\n      if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }\n      goto LAB_00111e80;\n    }" ({ "{") (expression_statement "pcVar16 = "long long unsigned int";" (assignment_expression "pcVar16 = "long long unsigned int"" (identifier "pcVar16") (= "=") (string_literal ""long long unsigned int"" (" """) (string_content "long long unsigned int") (" """))) (; ";")) (if_statement "if (iVar5 == 0) {\n        pcVar16 = "long long int";\n      }" (if "if") (parenthesized_expression "(iVar5 == 0)" (( "(") (binary_expression "iVar5 == 0" (identifier "iVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        pcVar16 = "long long int";\n      }" ({ "{") (expression_statement "pcVar16 = "long long int";" (assignment_expression "pcVar16 = "long long int"" (identifier "pcVar16") (= "=") (string_literal ""long long int"" (" """) (string_content "long long int") (" """))) (; ";")) (} "}"))) (expression_statement "lVar8 = FUN_0010fe00(*param_1,pcVar16);" (assignment_expression "lVar8 = FUN_0010fe00(*param_1,pcVar16)" (identifier "lVar8") (= "=") (call_expression "FUN_0010fe00(*param_1,pcVar16)" (identifier "FUN_0010fe00") (argument_list "(*param_1,pcVar16)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (identifier "pcVar16") () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (if_statement "if (lVar8 == 0) {\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }" (if "if") (parenthesized_expression "(lVar8 == 0)" (( "(") (binary_expression "lVar8 == 0" (identifier "lVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);\n        *param_3 = lVar8;\n      }" ({ "{") (expression_statement "lVar8 = FUN_0010f4a0(*param_1,8,iVar5);" (assignment_expression "lVar8 = FUN_0010f4a0(*param_1,8,iVar5)" (identifier "lVar8") (= "=") (call_expression "FUN_0010f4a0(*param_1,8,iVar5)" (identifier "FUN_0010f4a0") (argument_list "(*param_1,8,iVar5)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (number_literal "8") (, ",") (identifier "iVar5") () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (} "}"))) (goto_statement "goto LAB_00111e80;" (goto "goto") (statement_identifier "LAB_00111e80") (; ";")) (} "}")))) (} "}")))) (expression_statement "*param_2 = (long)(pcVar10 + 1);" (assignment_expression "*param_2 = (long)(pcVar10 + 1)" (pointer_expression "*param_2" (* "*") (identifier "param_2")) (= "=") (cast_expression "(long)(pcVar10 + 1)" (( "(") (type_descriptor "long" (sized_type_specifier "long" (long "long"))) () ")") (parenthesized_expression "(pcVar10 + 1)" (( "(") (binary_expression "pcVar10 + 1" (identifier "pcVar10") (+ "+") (number_literal "1")) () ")")))) (; ";")) (labeled_statement "LAB_00111df8:\n  if (param_3 != (long *)0x0) {\n    if (bVar2) {\n      lVar8 = FUN_0010f8f0(*param_1,*param_3);\n      *param_3 = lVar8;\n    }\n    if (bVar17 != false) {\n      lVar8 = FUN_0010f920(*param_1,*param_3);\n      *param_3 = lVar8;\n      return bVar17;\n    }\n  }" (statement_identifier "LAB_00111df8") (: ":") (if_statement "if (param_3 != (long *)0x0) {\n    if (bVar2) {\n      lVar8 = FUN_0010f8f0(*param_1,*param_3);\n      *param_3 = lVar8;\n    }\n    if (bVar17 != false) {\n      lVar8 = FUN_0010f920(*param_1,*param_3);\n      *param_3 = lVar8;\n      return bVar17;\n    }\n  }" (if "if") (parenthesized_expression "(param_3 != (long *)0x0)" (( "(") (binary_expression "param_3 != (long *)0x0" (identifier "param_3") (!= "!=") (cast_expression "(long *)0x0" (( "(") (type_descriptor "long *" (sized_type_specifier "long" (long "long")) (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    if (bVar2) {\n      lVar8 = FUN_0010f8f0(*param_1,*param_3);\n      *param_3 = lVar8;\n    }\n    if (bVar17 != false) {\n      lVar8 = FUN_0010f920(*param_1,*param_3);\n      *param_3 = lVar8;\n      return bVar17;\n    }\n  }" ({ "{") (if_statement "if (bVar2) {\n      lVar8 = FUN_0010f8f0(*param_1,*param_3);\n      *param_3 = lVar8;\n    }" (if "if") (parenthesized_expression "(bVar2)" (( "(") (identifier "bVar2") () ")")) (compound_statement "{\n      lVar8 = FUN_0010f8f0(*param_1,*param_3);\n      *param_3 = lVar8;\n    }" ({ "{") (expression_statement "lVar8 = FUN_0010f8f0(*param_1,*param_3);" (assignment_expression "lVar8 = FUN_0010f8f0(*param_1,*param_3)" (identifier "lVar8") (= "=") (call_expression "FUN_0010f8f0(*param_1,*param_3)" (identifier "FUN_0010f8f0") (argument_list "(*param_1,*param_3)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (pointer_expression "*param_3" (* "*") (identifier "param_3")) () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (} "}"))) (if_statement "if (bVar17 != false) {\n      lVar8 = FUN_0010f920(*param_1,*param_3);\n      *param_3 = lVar8;\n      return bVar17;\n    }" (if "if") (parenthesized_expression "(bVar17 != false)" (( "(") (binary_expression "bVar17 != false" (identifier "bVar17") (!= "!=") (false "false")) () ")")) (compound_statement "{\n      lVar8 = FUN_0010f920(*param_1,*param_3);\n      *param_3 = lVar8;\n      return bVar17;\n    }" ({ "{") (expression_statement "lVar8 = FUN_0010f920(*param_1,*param_3);" (assignment_expression "lVar8 = FUN_0010f920(*param_1,*param_3)" (identifier "lVar8") (= "=") (call_expression "FUN_0010f920(*param_1,*param_3)" (identifier "FUN_0010f920") (argument_list "(*param_1,*param_3)" (( "(") (pointer_expression "*param_1" (* "*") (identifier "param_1")) (, ",") (pointer_expression "*param_3" (* "*") (identifier "param_3")) () ")")))) (; ";")) (expression_statement "*param_3 = lVar8;" (assignment_expression "*param_3 = lVar8" (pointer_expression "*param_3" (* "*") (identifier "param_3")) (= "=") (identifier "lVar8")) (; ";")) (return_statement "return bVar17;" (return "return") (identifier "bVar17") (; ";")) (} "}"))) (} "}")))) (return_statement "return true;" (return "return") (true "true") (; ";")) (} "}")))

/* WARNING: Type propagation algorithm not settling */

type_1 function_1(type_2 *minfo,char **pp,type_3 *var_5)

{
  char var_11;
  bool bVar2;
  bool bVar3;
  type_4 var_2;
  int var_37;
  type_1 var_4;
  type_5 uVar7;
  size_t var_20;
  type_3 var_7;
  type_6 var_33;
  char *var_12;
  type_4 *var_18;
  type_4 *var_3;
  type_7 *pvarargs;
  type_1 *pvarargs_00;
  type_3 **pppdVar14;
  char **pstart;
  type_3 *ptype_00;
  char *var_1;
  long var_10;
  type_7 var_17;
  type_1 varargs_1;
  type_7 var_28;
  char *p;
  
  var_1 = *pp;
  var_11 = *var_1;
  switch(var_11) {
  case 'A':
    var_3 = (type_4 *)(var_1 + 1);
    *pp = (char *)var_3;
    var_2 = var_1[1];
    if ((var_2 == 0) || (var_2 == 0x5f)) {
      var_10 = 0;
LAB_00111d10:
      if (var_2 == 0x5f) {
        *pp = (char *)(var_3 + 1);
        var_4 = function_1(minfo,pp,var_5);
        if (var_4 == 0) {
          return 0;
        }
        if (var_5 == (type_3 *)0x0) {
          return 1;
        }
        var_7 = var_6(minfo->dhandle,"int");
        if (var_7 == (type_3)0x0) {
          var_7 = var_8(minfo->dhandle,4,0);
        }
        var_7 = var_9(minfo->dhandle,*var_5,var_7,0,var_10,0);
        *var_5 = var_7;
        return 1;
      }
    }
    else if ((_sch_istable[(type_5)var_2 * 2] & 4) != 0) {
      var_3 = (type_4 *)(var_1 + 2);
      var_10 = 0;
      do {
        *pp = (char *)var_3;
        var_10 = (long)((char)var_2 + -0x30) + var_10 * 10;
        var_2 = *var_3;
        if ((var_2 == 0) || (var_2 == 0x5f)) goto LAB_00111d10;
        var_3 = var_3 + 1;
      } while ((_sch_istable[(type_5)var_2 * 2] & 4) != 0);
    }
    break;
  default:
    bVar3 = false;
    pstart = (char **)0x0;
    var_37 = 0;
    bVar2 = false;
    var_12 = var_1;
    do {
      if (var_11 == 'S') {
        bVar3 = true;
        *pp = var_12 + 1;
      }
      else if (var_11 < 'T') {
        if (var_11 != 'C') goto code_r0x00111cf8;
        bVar2 = true;
        *pp = var_12 + 1;
      }
      else if (var_11 == 'U') {
        pstart = (char **)0x1;
        *pp = var_12 + 1;
      }
      else {
        if (var_11 != 'V') goto code_r0x00111cf8;
        var_37 = 1;
        *pp = var_12 + 1;
      }
      var_11 = var_12[1];
      var_12 = *pp;
    } while( true );
  case 'C':
    *pp = var_1 + 1;
    var_4 = function_1(minfo,pp,var_5);
    if (var_4 == 0) {
      return 0;
    }
    if (var_5 == (type_3 *)0x0) {
      return 1;
    }
    var_7 = var_13(minfo->dhandle,*var_5);
    *var_5 = var_7;
    return 1;
  case 'F':
    pvarargs = (type_7 *)0x0;
    pppdVar14 = (type_3 **)0x0;
    *pp = var_1 + 1;
    if (var_5 != (type_3 *)0x0) {
      pvarargs = &var_28;
      pppdVar14 = (type_3 **)&p;
    }
    var_4 = var_14(minfo,pp,pppdVar14,(type_1 *)pvarargs);
    if (var_4 == 0) {
      return 0;
    }
    if (**pp == '_') {
      *pp = *pp + 1;
      var_4 = function_1(minfo,pp,var_5);
      if (var_4 == 0) {
        return 0;
      }
      if (var_5 == (type_3 *)0x0) {
        return 1;
      }
      var_7 = var_15(minfo->dhandle,*var_5,(type_3 *)p,var_28);
      *var_5 = var_7;
      return 1;
    }
    break;
  case 'G':
    *pp = var_1 + 1;
    var_4 = function_1(minfo,pp,var_5);
    return (type_7)(var_4 != 0);
  case 'M':
  case 'O':
    var_22 = (type_6)0x0;
    var_11 = *var_1;
    *pp = var_1 + 1;
    p = (char *)0x0;
    varargs_1 = 0;
    var_2 = var_1[1];
    if ((_sch_istable[(type_5)var_2 * 2] & 4) == 0) {
      if (var_2 != 0x51) break;
      ptype_00 = (type_3 *)&var_28;
      if (var_5 == (type_3 *)0x0) {
        ptype_00 = (type_3 *)0x0;
      }
      var_4 = var_16(minfo,pp,ptype_00);
      if (var_4 == 0) {
        return 0;
      }
LAB_00111b38:
      var_3 = (type_4 *)*pp;
    }
    else {
      var_17 = 0;
      uVar7 = (type_5)var_2;
      var_3 = (type_4 *)(var_1 + 2);
      do {
        var_18 = var_3;
        *pp = (char *)var_18;
        var_17 = (char)uVar7 + -0x30 + var_17 * 10;
        uVar7 = (type_5)*var_18;
        var_3 = var_18 + 1;
      } while ((_sch_istable[(type_5)*var_18 * 2] & 4) != 0);
      var_20 = var_19((char *)var_18);
      if (var_20 < var_17) break;
      var_3 = var_18 + var_17;
      *pp = (char *)var_3;
      if (var_5 != (type_3 *)0x0) {
        var_22 = var_21
                       (minfo->dhandle,(type_8 *)&minfo->info->tags,(char *)var_18,var_17,
                        DEBUG_KIND_CLASS);
        if (var_22 == (type_6)0x0) {
          return 0;
        }
        goto LAB_00111b38;
      }
    }
    var_2 = *var_3;
    if (var_11 == 'M') {
      if ((var_2 == 0x43) || (var_18 = var_3, var_2 == 0x56)) {
        var_18 = var_3 + 1;
        *pp = (char *)var_18;
        var_2 = var_3[1];
      }
      if (var_2 != 0x46) break;
      *pp = (char *)(var_18 + 1);
      if (var_5 == (type_3 *)0x0) {
        pvarargs_00 = (type_1 *)0x0;
        pppdVar14 = (type_3 **)0x0;
      }
      else {
        pvarargs_00 = &varargs_1;
        pppdVar14 = (type_3 **)&p;
      }
      var_4 = var_14(minfo,pp,pppdVar14,pvarargs_00);
      if (var_4 == 0) {
        return 0;
      }
      var_3 = (type_4 *)*pp;
      var_2 = *var_3;
    }
    if (var_2 == 0x5f) {
      *pp = (char *)(var_3 + 1);
      var_4 = function_1(minfo,pp,var_5);
      if (var_4 == 0) {
        return 0;
      }
      if (var_5 == (type_3 *)0x0) {
        return 1;
      }
      if (var_11 != 'M') {
        var_7 = var_23(minfo->dhandle,var_22,*var_5);
        *var_5 = var_7;
        return 1;
      }
      var_7 = var_24(minfo->dhandle,*var_5,var_22,(type_3 *)p,varargs_1);
      *var_5 = var_7;
      return 1;
    }
    break;
  case 'P':
  case 'p':
    *pp = var_1 + 1;
    var_4 = function_1(minfo,pp,var_5);
    if (var_4 == 0) {
      return 0;
    }
    if (var_5 == (type_3 *)0x0) {
      return 1;
    }
    var_7 = var_25(minfo->dhandle,*var_5);
    *var_5 = var_7;
    return 1;
  case 'Q':
    var_4 = var_16(minfo,pp,var_5);
    return (type_7)(var_4 != 0);
  case 'R':
    *pp = var_1 + 1;
    var_4 = function_1(minfo,pp,var_5);
    if (var_4 == 0) {
      return 0;
    }
    if (var_5 == (type_3 *)0x0) {
      return 1;
    }
    var_7 = var_26(minfo->dhandle,*var_5);
    *var_5 = var_7;
    return 1;
  case 'T':
    *pp = var_1 + 1;
    var_4 = var_27(pp,&var_28);
    if (var_4 != 0) {
      if (var_28 < minfo->typestring_count) {
        p = minfo->typestrings[(type_5)var_22 & 0xffffffff].typestring;
        var_37 = function_1(minfo,&p,var_5);
        goto joined_r0x0011192e;
      }
    }
  }
switchD_00111d06_caseD_1:
  var_29(var_1);
  return 0;
switchD_00111d06_caseD_30:
  var_4 = var_30((type_2 *)pp,&p,pstart);
  if (var_4 == 0) {
    return 0;
  }
  if (var_5 == (type_3 *)0x0) {
    return 1;
  }
  var_1 = var_31(p,(int)*pp - (int)p);
  var_7 = var_6(minfo->dhandle,var_1);
  *var_5 = var_7;
  var_32(var_1);
  if (*var_5 == (type_3)0x0) {
    var_33 = var_21
                        (minfo->dhandle,(type_8 *)&minfo->info->tags,p,(int)*pp - (int)p,
                         DEBUG_KIND_ILLEGAL);
    *var_5 = var_33;
joined_r0x00111f61:
    if (var_33 == (type_6)0x0) {
      return 0;
    }
  }
  goto LAB_00111df8;
code_r0x00111cf8:
  var_4 = (type_1)pstart;
  switch(var_11) {
  case '\0':
  case '_':
    var_29(var_1);
    goto LAB_00111df8;
  default:
    goto switchD_00111d06_caseD_1;
  case '0':
  case '1':
  case '2':
  case '3':
  case '4':
  case '5':
  case '6':
  case '7':
  case '8':
  case '9':
    goto switchD_00111d06_caseD_30;
  case 'G':
    *pp = var_12 + 1;
    pstart = (char **)(type_5)(type_4)var_12[1];
    if ((_sch_istable[(long)pstart * 2] & 4) == 0) goto switchD_00111d06_caseD_1;
    goto switchD_00111d06_caseD_30;
  case 'b':
    if (var_5 != (type_3 *)0x0) {
      var_7 = var_6(minfo->dhandle,"bool");
      *var_5 = var_7;
      if (var_7 == (type_3)0x0) {
        var_7 = var_34(minfo->dhandle,4);
        *var_5 = var_7;
      }
LAB_00111e80:
      var_12 = *pp;
    }
    break;
  case 'c':
    if (var_5 != (type_3 *)0x0) {
      var_1 = "unsigned char";
      if ((var_4 == 0) && (var_1 = "signed char", !bVar3)) {
        var_1 = "char";
      }
      var_7 = var_6(minfo->dhandle,var_1);
      *var_5 = var_7;
      if (var_7 == (type_3)0x0) {
        var_7 = var_8(minfo->dhandle,1,var_4);
        *var_5 = var_7;
      }
      goto LAB_00111e80;
    }
    break;
  case 'd':
    if (var_5 != (type_3 *)0x0) {
      var_1 = "double";
LAB_00111fc0:
      var_7 = var_6(minfo->dhandle,var_1);
      *var_5 = var_7;
      if (var_7 == (type_3)0x0) {
        var_7 = var_35(minfo->dhandle,8);
        *var_5 = var_7;
      }
      goto LAB_00111e80;
    }
    break;
  case 'f':
    if (var_5 != (type_3 *)0x0) {
      var_7 = var_6(minfo->dhandle,"float");
      *var_5 = var_7;
      if (var_7 == (type_3)0x0) {
        var_7 = var_35(minfo->dhandle,4);
        *var_5 = var_7;
      }
      goto LAB_00111e80;
    }
    break;
  case 'i':
    if (var_5 != (type_3 *)0x0) {
      var_1 = "unsigned int";
      var_12 = "int";
LAB_0011200d:
      if (var_4 == 0) {
        var_1 = var_12;
      }
      var_7 = var_6(minfo->dhandle,var_1);
      *var_5 = var_7;
      if (var_7 == (type_3)0x0) {
        var_7 = var_8(minfo->dhandle,4,var_4);
        *var_5 = var_7;
      }
      goto LAB_00111e80;
    }
    break;
  case 'l':
    if (var_5 != (type_3 *)0x0) {
      var_1 = "long unsigned int";
      var_12 = "long int";
      goto LAB_0011200d;
    }
    break;
  case 'r':
    var_1 = "long double";
    if (var_5 != (type_3 *)0x0) goto LAB_00111fc0;
    break;
  case 's':
    if (var_5 != (type_3 *)0x0) {
      var_1 = "short unsigned int";
      if (var_4 == 0) {
        var_1 = "short int";
      }
      var_7 = var_6(minfo->dhandle,var_1);
      *var_5 = var_7;
      if (var_7 == (type_3)0x0) {
LAB_00111eb3:
        var_7 = var_8(minfo->dhandle,2,var_4);
        *var_5 = var_7;
      }
      goto LAB_00111e80;
    }
    break;
  case 't':
    if (var_5 == (type_3 *)0x0) {
      var_37 = var_36(minfo,pp,(char **)0x0);
joined_r0x0011192e:
      if (var_37 != 0) {
        return 1;
      }
      return 0;
    }
    var_4 = var_36(minfo,pp,&p);
    var_1 = p;
    if (var_4 == 0) {
      return 0;
    }
    var_20 = var_19(p);
    var_33 = var_21
                        (minfo->dhandle,(type_8 *)&minfo->info->tags,var_1,(int)var_20,
                         DEBUG_KIND_CLASS);
    *var_5 = var_33;
    var_32(p);
    var_33 = *var_5;
    goto joined_r0x00111f61;
  case 'v':
    if (var_5 != (type_3 *)0x0) {
      var_7 = var_6(minfo->dhandle,"void");
      *var_5 = var_7;
      if (var_7 == (type_3)0x0) {
        var_7 = var_38(minfo->dhandle);
        *var_5 = var_7;
      }
      goto LAB_00111e80;
    }
    break;
  case 'w':
    if (var_5 != (type_3 *)0x0) {
      var_7 = var_6(minfo->dhandle,"__wchar_t");
      *var_5 = var_7;
      if (var_7 == (type_3)0x0) {
        var_4 = 1;
        goto LAB_00111eb3;
      }
      goto LAB_00111e80;
    }
    break;
  case 'x':
    if (var_5 != (type_3 *)0x0) {
      var_1 = "long long unsigned int";
      if (var_4 == 0) {
        var_1 = "long long int";
      }
      var_7 = var_6(minfo->dhandle,var_1);
      *var_5 = var_7;
      if (var_7 == (type_3)0x0) {
        var_7 = var_8(minfo->dhandle,8,var_4);
        *var_5 = var_7;
      }
      goto LAB_00111e80;
    }
  }
  *pp = var_12 + 1;
LAB_00111df8:
  if (var_5 != (type_3 *)0x0) {
    if (bVar2) {
      var_7 = var_13(minfo->dhandle,*var_5);
      *var_5 = var_7;
    }
    if (var_37 != 0) {
      var_7 = var_39(minfo->dhandle,*var_5);
      *var_5 = var_7;
      return var_37;
    }
  }
  return 1;
}


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

/* WARNING: Type propagation algorithm not settling */

bool MASKED(undefined8 *param_1,long *param_2,long *param_3)

{
  char cVar1;
  bool bVar2;
  bool bVar3;
  byte bVar4;
  int iVar5;
  ulong uVar6;
  size_t sVar7;
  long lVar8;
  long lVar9;
  void *__ptr;
  char *pcVar10;
  byte *pbVar11;
  byte *pbVar12;
  undefined4 *puVar13;
  char **ppcVar14;
  ulong *puVar15;
  char *pcVar16;
  bool bVar17;
  uint uVar18;
  undefined4 local_4c;
  ulong local_48;
  char *local_40 [2];
  
  pcVar16 = (char *)*param_2;
  cVar1 = *pcVar16;
  switch(cVar1) {
  case 'A':
    pbVar12 = (byte *)(pcVar16 + 1);
    *param_2 = (long)pbVar12;
    bVar4 = pcVar16[1];
    if ((bVar4 == 0) || (bVar4 == 0x5f)) {
      lVar8 = 0;
LAB_00111d10:
      if (bVar4 == 0x5f) {
        *param_2 = (long)(pbVar12 + 1);
        iVar5 = MASKED(param_1,param_2,param_3);
        if (iVar5 == 0) {
          return false;
        }
        if (param_3 == (long *)0x0) {
          return true;
        }
        lVar9 = FUN_0010fe00(*param_1,"int");
        if (lVar9 == 0) {
          lVar9 = FUN_0010f4a0(*param_1,4,0);
        }
        lVar8 = FUN_0010f740(*param_1,*param_3,lVar9,0,lVar8,0);
        *param_3 = lVar8;
        return true;
      }
    }
    else if ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0) {
      pbVar12 = (byte *)(pcVar16 + 2);
      lVar8 = 0;
      do {
        *param_2 = (long)pbVar12;
        lVar8 = (long)((char)bVar4 + -0x30) + lVar8 * 10;
        bVar4 = *pbVar12;
        if ((bVar4 == 0) || (bVar4 == 0x5f)) goto LAB_00111d10;
        pbVar12 = pbVar12 + 1;
      } while ((_sch_istable[(ulong)bVar4 * 2] & 4) != 0);
    }
    break;
  default:
    bVar3 = false;
    iVar5 = 0;
    bVar17 = false;
    bVar2 = false;
    pcVar10 = pcVar16;
    do {
      if (cVar1 == 'S') {
        bVar3 = true;
        *param_2 = (long)(pcVar10 + 1);
      }
      else if (cVar1 < 'T') {
        if (cVar1 != 'C') goto code_r0x00111cf8;
        bVar2 = true;
        *param_2 = (long)(pcVar10 + 1);
      }
      else if (cVar1 == 'U') {
        iVar5 = 1;
        *param_2 = (long)(pcVar10 + 1);
      }
      else {
        if (cVar1 != 'V') goto code_r0x00111cf8;
        bVar17 = true;
        *param_2 = (long)(pcVar10 + 1);
      }
      cVar1 = pcVar10[1];
      pcVar10 = (char *)*param_2;
    } while( true );
  case 'C':
    *param_2 = (long)(pcVar16 + 1);
    iVar5 = MASKED(param_1,param_2,param_3);
    if (iVar5 == 0) {
      return false;
    }
    if (param_3 == (long *)0x0) {
      return true;
    }
    lVar8 = FUN_0010f8f0(*param_1,*param_3);
    *param_3 = lVar8;
    return true;
  case 'F':
    puVar15 = (ulong *)0x0;
    ppcVar14 = (char **)0x0;
    *param_2 = (long)(pcVar16 + 1);
    if (param_3 != (long *)0x0) {
      puVar15 = &local_48;
      ppcVar14 = local_40;
    }
    iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar15);
    if (iVar5 == 0) {
      return false;
    }
    if (*(char *)*param_2 == '_') {
      *param_2 = (long)((char *)*param_2 + 1);
      iVar5 = MASKED(param_1,param_2,param_3);
      if (iVar5 == 0) {
        return false;
      }
      if (param_3 == (long *)0x0) {
        return true;
      }
      lVar8 = FUN_0010f630(*param_1,*param_3,local_40[0],local_48 & 0xffffffff);
      *param_3 = lVar8;
      return true;
    }
    break;
  case 'G':
    *param_2 = (long)(pcVar16 + 1);
    iVar5 = MASKED(param_1,param_2,param_3);
    return iVar5 != 0;
  case 'M':
  case 'O':
    local_48 = 0;
    cVar1 = *pcVar16;
    *param_2 = (long)(pcVar16 + 1);
    local_40[0] = (char *)0x0;
    local_4c = 0;
    bVar4 = pcVar16[1];
    if ((_sch_istable[(ulong)bVar4 * 2] & 4) == 0) {
      if (bVar4 != 0x51) break;
      puVar15 = &local_48;
      if (param_3 == (long *)0x0) {
        puVar15 = (ulong *)0x0;
      }
      iVar5 = FUN_00112870(param_1,param_2,puVar15);
      if (iVar5 == 0) {
        return false;
      }
LAB_00111b38:
      pbVar12 = (byte *)*param_2;
    }
    else {
      uVar18 = 0;
      uVar6 = (ulong)bVar4;
      pbVar12 = (byte *)(pcVar16 + 2);
      do {
        pbVar11 = pbVar12;
        *param_2 = (long)pbVar11;
        uVar18 = (char)uVar6 + -0x30 + uVar18 * 10;
        uVar6 = (ulong)*pbVar11;
        pbVar12 = pbVar11 + 1;
      } while ((_sch_istable[(ulong)*pbVar11 * 2] & 4) != 0);
      sVar7 = strlen((char *)pbVar11);
      if (sVar7 < uVar18) break;
      pbVar12 = pbVar11 + uVar18;
      *param_2 = (long)pbVar12;
      if (param_3 != (long *)0x0) {
        local_48 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pbVar11,uVar18,9);
        if (local_48 == 0) {
          return false;
        }
        goto LAB_00111b38;
      }
    }
    bVar4 = *pbVar12;
    if (cVar1 == 'M') {
      if ((bVar4 == 0x43) || (pbVar11 = pbVar12, bVar4 == 0x56)) {
        pbVar11 = pbVar12 + 1;
        *param_2 = (long)pbVar11;
        bVar4 = pbVar12[1];
      }
      if (bVar4 != 0x46) break;
      *param_2 = (long)(pbVar11 + 1);
      if (param_3 == (long *)0x0) {
        puVar13 = (undefined4 *)0x0;
        ppcVar14 = (char **)0x0;
      }
      else {
        puVar13 = &local_4c;
        ppcVar14 = local_40;
      }
      iVar5 = FUN_00112ce0(param_1,param_2,ppcVar14,puVar13);
      if (iVar5 == 0) {
        return false;
      }
      pbVar12 = (byte *)*param_2;
      bVar4 = *pbVar12;
    }
    if (bVar4 == 0x5f) {
      *param_2 = (long)(pbVar12 + 1);
      iVar5 = MASKED(param_1,param_2,param_3);
      if (iVar5 == 0) {
        return false;
      }
      if (param_3 == (long *)0x0) {
        return true;
      }
      if (cVar1 != 'M') {
        lVar8 = FUN_0010f820(*param_1,local_48,*param_3);
        *param_3 = lVar8;
        return true;
      }
      lVar8 = FUN_0010f880(*param_1,*param_3,local_48,local_40[0],local_4c);
      *param_3 = lVar8;
      return true;
    }
    break;
  case 'P':
  case 'p':
    *param_2 = (long)(pcVar16 + 1);
    iVar5 = MASKED(param_1,param_2,param_3);
    if (iVar5 == 0) {
      return false;
    }
    if (param_3 == (long *)0x0) {
      return true;
    }
    lVar8 = FUN_0010f5f0(*param_1,*param_3);
    *param_3 = lVar8;
    return true;
  case 'Q':
    iVar5 = FUN_00112870(param_1,param_2,param_3);
    return iVar5 != 0;
  case 'R':
    *param_2 = (long)(pcVar16 + 1);
    iVar5 = MASKED(param_1,param_2,param_3);
    if (iVar5 == 0) {
      return false;
    }
    if (param_3 == (long *)0x0) {
      return true;
    }
    lVar8 = FUN_0010f6a0(*param_1,*param_3);
    *param_3 = lVar8;
    return true;
  case 'T':
    *param_2 = (long)(pcVar16 + 1);
    iVar5 = FUN_001103c0(param_2,&local_48);
    if (iVar5 != 0) {
      if ((uint)local_48 < *(uint *)(param_1 + 5)) {
        local_40[0] = *(char **)((local_48 & 0xffffffff) * 0x10 + param_1[4]);
        iVar5 = MASKED(param_1,local_40,param_3);
        goto joined_r0x0011192e;
      }
    }
  }
switchD_00111d06_caseD_1:
  FUN_00110480(pcVar16);
  return false;
switchD_00111d06_caseD_30:
  iVar5 = FUN_00110de0(param_2,local_40);
  if (iVar5 == 0) {
    return false;
  }
  if (param_3 == (long *)0x0) {
    return true;
  }
  __ptr = (void *)FUN_00110540(local_40[0],*param_2 - (long)local_40[0]);
  lVar8 = FUN_0010fe00(*param_1,__ptr);
  *param_3 = lVar8;
  free(__ptr);
  if (*param_3 == 0) {
    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,local_40[0],*param_2 - (long)local_40[0],0);
    *param_3 = lVar8;
joined_r0x00111f61:
    if (lVar8 == 0) {
      return false;
    }
  }
  goto LAB_00111df8;
code_r0x00111cf8:
  switch(cVar1) {
  case '\0':
  case '_':
    FUN_00110480(pcVar16);
    goto LAB_00111df8;
  default:
    goto switchD_00111d06_caseD_1;
  case '0':
  case '1':
  case '2':
  case '3':
  case '4':
  case '5':
  case '6':
  case '7':
  case '8':
  case '9':
    goto switchD_00111d06_caseD_30;
  case 'G':
    *param_2 = (long)(pcVar10 + 1);
    if ((_sch_istable[(ulong)(byte)pcVar10[1] * 2] & 4) == 0) goto switchD_00111d06_caseD_1;
    goto switchD_00111d06_caseD_30;
  case 'b':
    if (param_3 != (long *)0x0) {
      lVar8 = FUN_0010fe00(*param_1,&DAT_0012307b);
      *param_3 = lVar8;
      if (lVar8 == 0) {
        lVar8 = FUN_0010f4d0(*param_1,4);
        *param_3 = lVar8;
      }
LAB_00111e80:
      pcVar10 = (char *)*param_2;
    }
    break;
  case 'c':
    if (param_3 != (long *)0x0) {
      pcVar16 = "unsigned char";
      if ((iVar5 == 0) && (pcVar16 = "signed char", !bVar3)) {
        pcVar16 = "char";
      }
      lVar8 = FUN_0010fe00(*param_1,pcVar16);
      *param_3 = lVar8;
      if (lVar8 == 0) {
        lVar8 = FUN_0010f4a0(*param_1,1,iVar5);
        *param_3 = lVar8;
      }
      goto LAB_00111e80;
    }
    break;
  case 'd':
    if (param_3 != (long *)0x0) {
      pcVar16 = "double";
LAB_00111fc0:
      lVar8 = FUN_0010fe00(*param_1,pcVar16);
      *param_3 = lVar8;
      if (lVar8 == 0) {
        lVar8 = FUN_0010f4c0(*param_1,8);
        *param_3 = lVar8;
      }
      goto LAB_00111e80;
    }
    break;
  case 'f':
    if (param_3 != (long *)0x0) {
      lVar8 = FUN_0010fe00(*param_1,"float");
      *param_3 = lVar8;
      if (lVar8 == 0) {
        lVar8 = FUN_0010f4c0(*param_1,4);
        *param_3 = lVar8;
      }
      goto LAB_00111e80;
    }
    break;
  case 'i':
    if (param_3 != (long *)0x0) {
      pcVar16 = "unsigned int";
      pcVar10 = "int";
LAB_0011200d:
      if (iVar5 == 0) {
        pcVar16 = pcVar10;
      }
      lVar8 = FUN_0010fe00(*param_1,pcVar16);
      *param_3 = lVar8;
      if (lVar8 == 0) {
        lVar8 = FUN_0010f4a0(*param_1,4,iVar5);
        *param_3 = lVar8;
      }
      goto LAB_00111e80;
    }
    break;
  case 'l':
    if (param_3 != (long *)0x0) {
      pcVar16 = "long unsigned int";
      pcVar10 = "long int";
      goto LAB_0011200d;
    }
    break;
  case 'r':
    pcVar16 = "long double";
    if (param_3 != (long *)0x0) goto LAB_00111fc0;
    break;
  case 's':
    if (param_3 != (long *)0x0) {
      pcVar16 = "short unsigned int";
      if (iVar5 == 0) {
        pcVar16 = "short int";
      }
      lVar8 = FUN_0010fe00(*param_1,pcVar16);
      *param_3 = lVar8;
      if (lVar8 == 0) {
LAB_00111eb3:
        lVar8 = FUN_0010f4a0(*param_1,2,iVar5);
        *param_3 = lVar8;
      }
      goto LAB_00111e80;
    }
    break;
  case 't':
    if (param_3 == (long *)0x0) {
      iVar5 = FUN_001122d0(param_1,param_2,0);
joined_r0x0011192e:
      if (iVar5 != 0) {
        return true;
      }
      return false;
    }
    iVar5 = FUN_001122d0(param_1,param_2,local_40);
    pcVar16 = local_40[0];
    if (iVar5 == 0) {
      return false;
    }
    sVar7 = strlen(local_40[0]);
    lVar8 = FUN_00110e80(*param_1,param_1[1] + 0x1a0,pcVar16,sVar7 & 0xffffffff,9);
    *param_3 = lVar8;
    free(local_40[0]);
    lVar8 = *param_3;
    goto joined_r0x00111f61;
  case 'v':
    if (param_3 != (long *)0x0) {
      lVar8 = FUN_0010fe00(*param_1,&DAT_00122fa3);
      *param_3 = lVar8;
      if (lVar8 == 0) {
        lVar8 = FUN_0010f490(*param_1);
        *param_3 = lVar8;
      }
      goto LAB_00111e80;
    }
    break;
  case 'w':
    if (param_3 != (long *)0x0) {
      lVar8 = FUN_0010fe00(*param_1,"__wchar_t");
      *param_3 = lVar8;
      if (lVar8 == 0) {
        iVar5 = 1;
        goto LAB_00111eb3;
      }
      goto LAB_00111e80;
    }
    break;
  case 'x':
    if (param_3 != (long *)0x0) {
      pcVar16 = "long long unsigned int";
      if (iVar5 == 0) {
        pcVar16 = "long long int";
      }
      lVar8 = FUN_0010fe00(*param_1,pcVar16);
      *param_3 = lVar8;
      if (lVar8 == 0) {
        lVar8 = FUN_0010f4a0(*param_1,8,iVar5);
        *param_3 = lVar8;
      }
      goto LAB_00111e80;
    }
  }
  *param_2 = (long)(pcVar10 + 1);
LAB_00111df8:
  if (param_3 != (long *)0x0) {
    if (bVar2) {
      lVar8 = FUN_0010f8f0(*param_1,*param_3);
      *param_3 = lVar8;
    }
    if (bVar17 != false) {
      lVar8 = FUN_0010f920(*param_1,*param_3);
      *param_3 = lVar8;
      return bVar17;
    }
  }
  return true;
}

