CmpSearchForOpenSubKeys
__int64 __fastcall CmpSearchForOpenSubKeys(_QWORD *a1, int a2, __int64 a3){
char v3;
int v5;
__int64(__fastcall *v6)(__int64, __int64);
_QWORD *v8;
__int64 Count[4];
v3 = 0;
v8 = a1;
Count[0] = 0i64;
Count[1] = a3;
if( a2 )
{
v5 = a2 - 1;
if( v5 )
{
if( v5 != 1 )
__fastfail(5u);
v6 = (__int64(__fastcall *)(__int64, __int64))CmpSearchAndTagNoDelayCloseWorker;
}
else
{
v6 = CmpSearchAndRehashWorker;
}
}
else
{
v3 = 1;
v6 = (__int64(__fastcall *)(__int64, __int64))CmpSearchAndCountWorker;
CmpDumpKeyBodyList((_CM_KEY_CONTROL_BLOCK *)a1, (UINT64 *)Count, (VOID *)a3);
}
CmpEnumerateAllOpenSubKeys((__int64)a1, v3, v6, (__int64)&v8);
return LODWORD(Count[0]);
}Referenced by:
CmRenameKey
CmpCommitRenameKeyUoW
CmpFreezeHive
CmpLightWeightCommitRenameKeyUoW
NtQueryOpenSubKeys
NtQueryOpenSubKeysEx