CmpIsKeyDeletedForKeyBody

UINT8 __stdcall CmpIsKeyDeletedForKeyBody(CM_KEY_BODY *KeyBody, CM_TRANS *CmTrans){
  int v2; 
  _CM_KEY_CONTROL_BLOCK *KeyControlBlock; 
  __int64 v5; 
  __int64 v6; 
  LIST_ENTRY *v7; 
  int v8; 
  LIST_ENTRY *ListIterator; 

  v2 = *((_DWORD *)KeyBody + 12);
  KeyControlBlock = KeyBody->KeyControlBlock;
  ListIterator = 0i64;
  if( (v2 & 9) != 0 )
    goto LABEL_9;
  if( !CmTrans )
    goto LABEL_3;
  LODWORD(v5) = CmListGetNextElement(KeyControlBlock->KCBUoWListHead, &ListIterator, 32i64);
  if( !v5 )
    goto LABEL_3;
  do
  {
    v8 = *(_DWORD *)(v5 + 68);
    if( v8 == 2 || v8 == 11 )
      break;
    LODWORD(v5) = CmListGetNextElement(v7, &ListIterator, 32i64);
  }
  while( v5 );
  if( CmEqualTrans(*(_QWORD *)(v5 + 56), v6) )
LABEL_9:
    LOBYTE(v5) = 1;
  else
LABEL_3:
    LOBYTE(v5) = 0;
  return v5;
}

Referenced by:

CmDeleteLayeredKey
CmDeleteValueKey
CmEnumerateValueFromLayeredKey
CmEnumerateValueKey
CmEnumerateValueKeyFromMergedView
CmKeyBodyNeedsVirtualImage
CmQueryKey
CmQueryLayeredKey
CmQueryMultipleValueKey
CmRestoreKey
CmSaveMergedKeys
CmSetValueKey
CmpCheckKeyBodyAccess
CmpCloseKeyObject
CmpDoParseKey
CmpIsHiveAlreadyLoaded
CmpLoadHiveVolatile
CmpLoadKeyCommon
CmpResolveHiveLoadConflict
NtNotifyChangeMultipleKeys