KeRemoveSystemServiceTable
VOID __fastcall KeRemoveSystemServiceTable(UINT64 Index, INT64 a2, INT64 a3, INT64 a4){
int v4;
__int64 v5;
v4 = Index;
if( !(unsigned int)MmGetSessionIdEx(*((_QWORD *)KeGetCurrentThread() + 23))
&& (unsigned int)(v4 - 1) <= 1
&& ((_QWORD)xmmword_140E018E0 || (_QWORD)xmmword_140CFBA60 || (_QWORD)xmmword_140CFBC20) )
{
if( v4 == 1 )
{
*(_QWORD *)&xmmword_140CFBA60 = 0i64;
LODWORD(xmmword_140CFBA70) = 0;
*((_QWORD *)&xmmword_140CFBA70 + 1) = 0i64;
}
else
{
v5 = 2i64 * (unsigned int)(v4 - 1);
*(_QWORD *)&KeServiceDescriptorTableFilter[v5] = 0i64;
LODWORD(KeServiceDescriptorTableFilter[v5 + 1]) = 0;
*((_QWORD *)&KeServiceDescriptorTableFilter[v5 + 1] + 1) = 0i64;
}
}
}Referenced by:
No references.