ExpParseSuiteMask

UINT64 __stdcall ExpParseSuiteMask(WCHAR *SuiteBuffer){
  WCHAR *v1; 
  UINT64 result; 
  WCHAR *v3; 
  int v4; 
  int v5; 
  WCHAR *v6; 
  int v7; 
  int v8; 
  WCHAR *v9; 
  int v10; 
  int v11; 
  WCHAR *v12; 
  int v13; 
  int v14; 
  WCHAR *v15; 
  int v16; 
  int v17; 
  WCHAR *v18; 
  int v19; 
  int v20; 
  __int64 v21; 
  WCHAR *v22; 
  int v23; 
  int v24; 
  WCHAR *v25; 
  int v26; 
  int v27; 
  WCHAR *v28; 
  int v29; 
  int v30; 
  WCHAR *v31; 
  int v32; 
  int v33; 
  WCHAR *v34; 
  int v35; 
  int v36; 
  WCHAR *v37; 
  int v38; 
  int v39; 
  WCHAR *v40; 
  int v41; 
  int v42; 
  WCHAR *v43; 
  int v44; 
  int v45; 
  WCHAR *v46; 
  int v47; 
  int v48; 
  WCHAR *v49; 
  int v50; 
  int v51; 

  v1 = SuiteBuffer;
  for( result = 0i64; *v1; v1 += v21 + 1 )
  {
    v3 = v1;
    do
    {
      v4 = *(WCHAR *)((char *)v3 + (char *)L"Small Business" - (char *)v1);
      v5 = *v3 - v4;
      if( v5 )
        break;
      ++v3;
    }
    while( v4 );
    if( v5 )
    {
      v6 = v1;
      do
      {
        v7 = *(WCHAR *)((char *)v6 + (char *)L"Small Business(Restricted)" - (char *)v1);
        v8 = *v6 - v7;
        if( v8 )
          break;
        ++v6;
      }
      while( v7 );
      if( v8 )
      {
        v9 = v1;
        do
        {
          v10 = *(WCHAR *)((char *)v9 + (char *)L"Enterprise" - (char *)v1);
          v11 = *v9 - v10;
          if( v11 )
            break;
          ++v9;
        }
        while( v10 );
        if( v11 )
        {
          v12 = v1;
          do
          {
            v13 = *(WCHAR *)((char *)v12 + (char *)L"CommunicationServer" - (char *)v1);
            v14 = *v12 - v13;
            if( v14 )
              break;
            ++v12;
          }
          while( v13 );
          if( v14 )
          {
            v15 = v1;
            do
            {
              v16 = *(WCHAR *)((char *)v15 + (char *)L"BackOffice" - (char *)v1);
              v17 = *v15 - v16;
              if( v17 )
                break;
              ++v15;
            }
            while( v16 );
            if( v17 )
            {
              v18 = v1;
              do
              {
                v19 = *(WCHAR *)((char *)v18 + (char *)L"Terminal Server" - (char *)v1);
                v20 = *v18 - v19;
                if( v20 )
                  break;
                ++v18;
              }
              while( v19 );
              if( v20 )
              {
                v22 = v1;
                do
                {
                  v23 = *(WCHAR *)((char *)v22 + (char *)L"EmbeddedNT" - (char *)v1);
                  v24 = *v22 - v23;
                  if( v24 )
                    break;
                  ++v22;
                }
                while( v23 );
                if( v24 )
                {
                  v25 = v1;
                  do
                  {
                    v26 = *(WCHAR *)((char *)v25 + (char *)L"DataCenter" - (char *)v1);
                    v27 = *v25 - v26;
                    if( v27 )
                      break;
                    ++v25;
                  }
                  while( v26 );
                  if( v27 )
                  {
                    v28 = v1;
                    do
                    {
                      v29 = *(WCHAR *)((char *)v28 + (char *)L"Personal" - (char *)v1);
                      v30 = *v28 - v29;
                      if( v30 )
                        break;
                      ++v28;
                    }
                    while( v29 );
                    if( v30 )
                    {
                      v31 = v1;
                      do
                      {
                        v32 = *(WCHAR *)((char *)v31 + (char *)L"Blade" - (char *)v1);
                        v33 = *v31 - v32;
                        if( v33 )
                          break;
                        ++v31;
                      }
                      while( v32 );
                      if( v33 )
                      {
                        v34 = v1;
                        do
                        {
                          v35 = *(WCHAR *)((char *)v34 + (char *)L"Embedded(Restricted)" - (char *)v1);
                          v36 = *v34 - v35;
                          if( v36 )
                            break;
                          ++v34;
                        }
                        while( v35 );
                        if( v36 )
                        {
                          v37 = v1;
                          do
                          {
                            v38 = *(WCHAR *)((char *)v37 + (char *)L"Security Appliance" - (char *)v1);
                            v39 = *v37 - v38;
                            if( v39 )
                              break;
                            ++v37;
                          }
                          while( v38 );
                          if( v39 )
                          {
                            v40 = v1;
                            do
                            {
                              v41 = *(WCHAR *)((char *)v40 + (char *)L"Storage Server" - (char *)v1);
                              v42 = *v40 - v41;
                              if( v42 )
                                break;
                              ++v40;
                            }
                            while( v41 );
                            if( v42 )
                            {
                              v43 = v1;
                              do
                              {
                                v44 = *(WCHAR *)((char *)v43 + (char *)L"Compute Server" - (char *)v1);
                                v45 = *v43 - v44;
                                if( v45 )
                                  break;
                                ++v43;
                              }
                              while( v44 );
                              if( v45 )
                              {
                                v46 = v1;
                                do
                                {
                                  v47 = *(WCHAR *)((char *)v46 + (char *)L"WH Server" - (char *)v1);
                                  v48 = *v46 - v47;
                                  if( v48 )
                                    break;
                                  ++v46;
                                }
                                while( v47 );
                                if( v48 )
                                {
                                  v49 = v1;
                                  do
                                  {
                                    v50 = *(WCHAR *)((char *)v49 + (char *)L"PhoneNT" - (char *)v1);
                                    v51 = *v49 - v50;
                                    if( v51 )
                                      break;
                                    ++v49;
                                  }
                                  while( v50 );
                                  if( !v51 )
                                    LODWORD(result) = result | 0x10000;
                                }
                                else
                                {
                                  LODWORD(result) = result | 0x8000;
                                }
                              }
                              else
                              {
                                LODWORD(result) = result | 0x4000;
                              }
                            }
                            else
                            {
                              LODWORD(result) = result | 0x2000;
                            }
                          }
                          else
                          {
                            LODWORD(result) = result | 0x1000;
                          }
                        }
                        else
                        {
                          LODWORD(result) = result | 0x800;
                        }
                      }
                      else
                      {
                        LODWORD(result) = result | 0x400;
                      }
                    }
                    else
                    {
                      LODWORD(result) = result | 0x200;
                    }
                  }
                  else
                  {
                    LODWORD(result) = result | 0x80;
                  }
                }
                else
                {
                  result = (unsigned int)result | 0x40;
                }
              }
              else
              {
                result = (unsigned int)result | 0x10;
              }
            }
            else
            {
              result = (unsigned int)result | 4;
            }
          }
          else
          {
            result = (unsigned int)result | 8;
          }
        }
        else
        {
          result = (unsigned int)result | 2;
        }
      }
      else
      {
        result = (unsigned int)result | 0x20;
      }
    }
    else
    {
      result = (unsigned int)result | 1;
    }
    v21 = -1i64;
    do
      ++v21;
    while( v1[v21] );
  }
  return result;
}

Referenced by:

ExGetSuiteMask