SepBuildCapPolicyTable

NTSTATUS __stdcall SepBuildCapPolicyTable(
        UINT64 MaxDataLengthHint,
        _SEP_CENTRALIZED_ACCESS_POLICIES_TABLE **CapPoliciesTable){
  NTSTATUS v2; 
  _HANDLE KeyHandle[2]; 
  VOID *pHandle; 
  VOID *Handle; 

  *CapPoliciesTable = 0i64;
  pHandle = 0i64;
  *(_QWORD *)KeyHandle = 0i64;
  Handle = 0i64;
  if( SepRegOpenKey(
         (WCHAR *)L"\\Registry\\Machine\\System\\CurrentControlSet\\Control\\Lsa\\CentralizedAccessPolicies",
         0x201ui64,
         &pHandle) < 0
    || SepRegOpenKey(
         (WCHAR *)L"\\Registry\\Machine\\System\\CurrentControlSet\\Control\\Lsa\\CentralizedAccessPolicies\\CAPEs",
         0x201ui64,
         (VOID **)KeyHandle) < 0
    || SepRegOpenKey(
         (WCHAR *)L"\\Registry\\Machine\\System\\CurrentControlSet\\Control\\Lsa\\CentralizedAccessPolicies\\CAPs",
         0x201ui64,
         &Handle) < 0 )
  {
    v2 = 0;
  }
  else
  {
    v2 = SepReadAndPopulateCapes(KeyHandle[0]);
  }
  if( Handle )
    ZwClose((_HANDLE)Handle);
  if( *(_QWORD *)KeyHandle )
    ZwClose(KeyHandle[0]);
  if( pHandle )
    ZwClose((_HANDLE)pHandle);
  return v2;
}

Referenced by:

SepRmCapUpdateWrkr