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;
}