EmpProviderDeregisterEntry
VOID __stdcall EmpProviderDeregisterEntry(PVOID EntryHandle){
char *v1;
__int64 v3;
char **v4;
PVOID *v5;
PVOID *v6;
_QWORD *i;
if( EntryHandle )
{
v1 = (char *)EntryHandle + 24;
v3 = *((_QWORD *)EntryHandle + 3);
if( *(char **)(v3 + 8) != v1
|| (v4 = (char **)*((_QWORD *)v1 + 1), *v4 != v1)
|| (*v4 = (char *)v3,
*(_QWORD *)(v3 + 8) = v4,
v5 = (PVOID *)*((_QWORD *)EntryHandle + 5),
v5[1] != (char *)EntryHandle + 40)
|| (v6 = (PVOID *)*((_QWORD *)EntryHandle + 6), *v6 != (char *)EntryHandle + 40) )
{
__fastfail(3u);
}
*v6 = v5;
v5[1] = v6;
for( i = *(_QWORD **)(*(_QWORD *)EntryHandle + 72i64); i; i = (_QWORD *)*i )
EmpQueueRuleUpdateState(*(i - 1), 0i64);
ExFreePoolWithTag(EntryHandle, 0x72704D45u);
}
}Referenced by:
EmProviderDeregister
EmProviderDeregisterEntry