CmpPerformKeyBodyDeletionCheck
int __fastcall CmpPerformKeyBodyDeletionCheck(__int64 a1, __int64 a2){
LIST_ENTRY *v3;
int v4;
__int64 v5;
__int64 v6;
__int64 v7;
LIST_ENTRY *v8;
__int64 v9;
int v10;
LIST_ENTRY *ListIterator;
ListIterator = 0i64;
v3 = *(LIST_ENTRY **)(a1 + 8);
v4 = *(_DWORD *)(a1 + 48);
if( (v4 & 9) == 0 )
{
if( !a2 )
goto LABEL_3;
LODWORD(v6) = CmListGetNextElement(v3 + 13, &ListIterator, 32i64);
v9 = v6;
if( !v6 )
goto LABEL_3;
while( 1 )
{
v10 = *(_DWORD *)(v9 + 68);
if( v10 == 2 || v10 == 11 )
break;
LODWORD(v5) = CmListGetNextElement(v8, &ListIterator, 32i64);
v9 = v5;
if( !v5 )
return v5;
}
if( !CmEqualTrans(*(_QWORD *)(v9 + 56), v7) )
{
LABEL_3:
LODWORD(v5) = 0;
return v5;
}
v4 = *(_DWORD *)(a1 + 48);
}
if( (v4 & 1) != 0 )
LODWORD(v5) = -1073740763;
else
LODWORD(v5) = -1073741444;
return v5;
}Referenced by:
CmDumpKey
CmEnumerateKey
CmEnumerateValueKey
CmKeyBodyRemapToVirtual
CmKeyBodyRemapToVirtualForEnum
CmKeyBodyReplicateToVirtual
CmLockKeyForWrite
CmQueryLayeredKey
CmQueryMultipleValueForLayeredKey
CmRenameKey
CmSaveKey
CmSetKeyFlags
CmSetLastWriteTimeKey
CmpAcquireSystemDriverHiveContext
CmpAssignKeySecurity
CmpDoQueryKeyName
CmpEnumerateLayeredKey
CmpLoadKeyCommon
CmpPerformUnloadKey
CmpQueryKeySecurity
CmpRefreshHive
CmpSaveBootControlSet
CmpSetKeySecurity
NtCompactKeys
NtCompressKey
NtFlushKey
NtQueryOpenSubKeys
NtQueryOpenSubKeysEx