CmpStartKcbStackForTopLayerKcb
INT64 __fastcall CmpStartKcbStackForTopLayerKcb(INT64 a1, INT64 a2){
int v2;
VOID *v3;
__int16 v6;
__int64 i;
__int64 v9;
__int16 v10;
VOID *TransientPoolWithTag;
v2 = *(__int16 *)(a2 + 66);
v3 = 0i64;
if( v2 >= 2 )
{
TransientPoolWithTag = CmpAllocateTransientPoolWithTag(1ui64, 8i64 * (unsigned int)(v2 - 1));
v3 = TransientPoolWithTag;
if( !TransientPoolWithTag )
return 3221225626i64;
memset(TransientPoolWithTag, 0i64, 8 * (v2 - 1));
}
*(_WORD *)a1 = v2;
*(_WORD *)(a1 + 2) = -1;
*(_QWORD *)(a1 + 24) = v3;
*(_WORD *)(a1 + 2) = *(_WORD *)(a2 + 66);
v6 = *(_WORD *)(a2 + 66);
if( v6 )
{
for( i = *(_QWORD *)(a2 + 192); i; v6 = v10 - 1 )
{
CmpSetKcbAtLayerHeight(a1, v6, *(_QWORD *)(i + 16));
i = *(_QWORD *)(v9 + 24);
}
}
else
{
*(_QWORD *)(a1 + 8) = a2;
}
return 0i64;
}Referenced by:
CmCallbackGetKeyObjectID
CmCallbackGetKeyObjectIDEx
CmDeleteLayeredKey
CmDeleteValueKey
CmEnumerateValueFromLayeredKey
CmQueryLayeredKey
CmQueryMultipleValueForLayeredKey
CmRenameKey
CmSaveKey
CmSetKeyFlags
CmSetLastWriteTimeKey
CmSetValueKey
CmpAssignKeySecurity
CmpCheckKeyBodyAccess
CmpCheckOpenAccessOnKeyBody
CmpDoBuildVirtualStack
CmpDoParseKey
CmpDoWritethroughReparse
CmpEnumerateLayeredKey
CmpGetSymbolicLinkTarget
CmpPerformUnloadKey
CmpQueryKeySecurity
CmpReportNotify
CmpSetKeySecurity
CmpStartSiloRegistryNamespace