PspReferenceTokenForNewProcess

NTSTATUS __fastcall PspReferenceTokenForNewProcess(_EPROCESS *a1, void *a2, KPROCESSOR_MODE a3, _QWORD *a4){
  PACCESS_TOKEN v5; 
  NTSTATUS result; 
  PVOID Object; 
  if( !a2 )
  {
    if( a1 )
    {
      v5 = PsReferencePrimaryToken((PEPROCESS)a1);
    }
    else
    {
      v5 = PspBootAccessToken;
      ObfReferenceObject(PspBootAccessToken);
    }
    goto LABEL_4;
  }
  Object = 0i64;
  result = ObReferenceObjectByHandle(a2, 1u, (POBJECT_TYPE)SeTokenObjectType, a3, &Object, 0i64);
  v5 = Object;
  if( result >= 0 )
  {
LABEL_4:
    *a4 = v5;
    return 0;
  }
  return result;
}

Referenced by:

NtCreateUserProcess
PspCreateProcess