CmpCopySyncTree

CHAR __fastcall CmpCopySyncTree(UINT64 a1, INT64 a2, UINT64 a3, INT64 a4, INT16 a5, INT64 a6){
  int v7; 
  int v9; 
  _DWORD *PoolWithTag; 
  void *v11; 
  CHAR v12; 
  INT64 v14; 
  v7 = a2;
  v9 = a4;
  PoolWithTag = ExAllocatePoolWithTag(PagedPool, 0x2800ui64, 0x20204D43ui64);
  v11 = PoolWithTag;
  if( PoolWithTag )
  {
    PoolWithTag[2] = 0;
    PoolWithTag[3] &= 0xFFFFFFF8;
    *((_BYTE *)PoolWithTag + 16) &= 0xFCu;
    *PoolWithTag = v7;
    PoolWithTag[1] = v9;
    LODWORD(v14) = a6;
    v12 = CmpCopySyncTree2((INT64)PoolWithTag, 512i64, 0i64, a1, a3, a5, v14);
    ExFreePoolWithTag(v11, 0);
    LOBYTE(PoolWithTag) = v12;
  }
  return(char)PoolWithTag;
}

Referenced by:

CmRestoreKey
CmSaveMergedKeys
CmpCloneHwProfile
CmpLoadHiveVolatile
CmpPreserveSystemHiveData
CmpReorganizeHive
CmpSaveBootControlSet