CmpFindSubKeyByNumber
INT64 __fastcall CmpFindSubKeyByNumber(_HHIVE *Hive, _CM_KEY_NODE *Node, UINT64 Number, UINT *ChildCell){
unsigned int v5;
unsigned int v6;
__int64 v8;
_CELL_DATA *v9;
_CELL_DATA *v10;
int v12;
int v13;
v12 = -1;
v13 = 0;
v5 = Node->SubKeyCounts[0];
v6 = Number;
*ChildCell = -1;
if( (unsigned int)Number >= v5 )
{
if( Hive->StorageTypeCount <= 1 )
return 0i64;
v6 = Number - v5;
if( (unsigned int)Number - v5 >= Node->SubKeyCounts[1] )
return 0i64;
v8 = Node->SubKeyLists[1];
}
else
{
v8 = Node->SubKeyLists[0];
}
v9 = Hive->GetCellRoutine(Hive, v8, &v12);
v10 = v9;
if( v9 )
{
*ChildCell = CmpDoFindSubKeyByNumber((INT64)Hive, (INT16 *)v9, v6);
if( v10 )
Hive->ReleaseCellRoutine(Hive, (_HV_GET_CELL_CONTEXT *)&v12);
return 0i64;
}
return 3221225626i64;
}Referenced by:
CmDeleteLayeredKey
CmSelectQualifiedInstallLanguage
CmpClearKeyAccessBits
CmpCopySyncTree2
CmpDeleteTree
CmpDoAccessCheckOnSubtree
CmpEnumerateLayeredKey
CmpFindDrivers
CmpFindSubKeyByNumberEx
CmpMarkAllChildrenDirty
CmpPreserveSystemHiveData
CmpSyncSubKeysAfterDelete
CmpUpdateParentForEachSon