RtlpVerCompare
bool __fastcall RtlpVerCompare(int Condition, int Value1, int Value2, unsigned __int8 *Equal, int Flags){
int v8;
int v9;
int v10;
INT8 *v12;
signed __int64 v13;
INT8 v14;
int v15;
INT8 v16[24];
char pszDest[24];
if( (Flags & 1) != 0 )
{
RtlStringCbPrintfA(pszDest, 0x14ui64, (INT8 *)"%d");
RtlStringCbPrintfA(v16, 0x14ui64, (INT8 *)"%d");
Value1 = 0;
v12 = v16;
v13 = pszDest - v16;
while( 1 )
{
v14 = *v12;
if( *v12 != v12[v13] )
break;
++v12;
if( !v14 )
{
Value2 = 0;
goto LABEL_2;
}
}
Value2 = (unsigned __int8)*v12 < (unsigned __int8)v12[v13] ? -1 : 1;
}
LABEL_2:
*Equal = Value1 == Value2;
v8 = Condition - 1;
if( !v8 )
return Value2 == Value1;
v9 = v8 - 1;
if( !v9 )
return Value2 > Value1;
v10 = v9 - 1;
if( !v10 )
return Value2 >= Value1;
v15 = v10 - 1;
if( !v15 )
return Value2 < Value1;
if( v15 == 1 )
return Value2 <= Value1;
return 0;
}Referenced by:
RtlVerifyVersionInfo