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