RtlpCtContextInit

NTSTATUS __stdcall RtlpCtContextInit(INT64 *a1, INT64 a2){
  unsigned int v2; 
  VOID **PoolWithTag; 
  INT8 **v5; 
  int v6; 

  *a1 = 0i64;
  v2 = a2;
  PoolWithTag = ExAllocatePoolWithTag(1ui64, 0x18ui64, 1735672676i64);
  v5 = (INT8 **)PoolWithTag;
  if( !PoolWithTag )
    return -1073741670;
  *(_OWORD *)PoolWithTag = 0i64;
  PoolWithTag[2] = 0i64;
  v6 = RtlpCtInitializeNotificationEvent((_KEVENT **)PoolWithTag + 2);
  if( v6 < 0
    || (v6 = RtlpCtInitializeWorkItem(v5, (INT64)v5), v6 < 0)
    || (v6 = ExSubscribeWnfStateChange(
               v5 + 1,
               (INT64 *)&WNF_SEB_DEV_MNF_CUSTOM_NOTIFICATION_RECEIVED,
               8i64,
               v2,
               (INT64)RtlpRtlpCtSelfSubscribeCallback,
               (INT64)v5),
        v6 < 0) )
  {
    RtlpCtContextFree(v5);
  }
  else
  {
    *a1 = (INT64)v5;
  }
  return v6;
}

Referenced by:

RtlRaiseCustomSystemEventTrigger