EmCpuMatchCallback
__int64 __fastcall EmCpuMatchCallback(__int64 a1, __int64 a2, _BYTE **a3, int a4, unsigned int *a5, int a6){
unsigned int v6;
struct _KPRCB *CurrentPrcb;
unsigned __int8 *VendorString;
_BYTE *v10;
int v11;
int v12;
v6 = 0;
if( !a3 || !a5 || a6 != 4 || a4 != 4 )
return 1i64;
CurrentPrcb = KeGetCurrentPrcb();
if( **a3 == 42 )
goto LABEL_17;
VendorString = CurrentPrcb->VendorString;
v10 = (_BYTE *)(*a3 - CurrentPrcb->VendorString);
do
{
v11 = (unsigned __int8)v10[(_QWORD)VendorString];
v12 = *VendorString - v11;
if( v12 )
break;
++VendorString;
}
while( v11 );
if( !v12 )
{
LABEL_17:
if( (unsigned int)EmpCheckOperator(a3[1], (unsigned int)CurrentPrcb->CpuType, a5[1]) )
{
if( (unsigned int)EmpCheckOperator(a3[2], CurrentPrcb->CpuModel, a5[2]) )
return(unsigned int)EmpCheckOperator(a3[3], CurrentPrcb->CpuStepping, a5[3]) != 0 ? 2 : 0;
}
}
return v6;
}Referenced by:
No references.