PopDirectedDripsInitializePhase3

INT64 __fastcall PopDirectedDripsInitializePhase3(INT64 a1, INT64 a2, WCHAR a3){
  INT64 v3; 
  EVENT_DESCRIPTOR *v4; 
  NTSTATUS v5; 
  struct _OBJECT_ATTRIBUTES ObjectAttributes; 
  void *ThreadHandle; 
  *(&ObjectAttributes.Length + 1) = 0;
  *(&ObjectAttributes.Attributes + 1) = 0;
  ThreadHandle = 0i64;
  PopDirectedDripsDiagInitialize(3i64, a2, a3);
  PopDirectedDripsQueryEnabledMitigations();
  if( (dword_140C24A10 & 3) != 0 )
  {
    ObjectAttributes.RootDirectory = 0i64;
    ObjectAttributes.ObjectName = 0i64;
    ObjectAttributes.Length = 48;
    ObjectAttributes.Attributes = 512;
    *(_OWORD *)&ObjectAttributes.SecurityDescriptor = 0i64;
    v5 = PsCreateSystemThread(
           &ThreadHandle,
           0,
           &ObjectAttributes,
           0i64,
           0i64,
           PopDirectedDripsWorkerRoutine,
           &PopDirectedDripsState);
    if( v5 >= 0 )
    {
      v5 = ObReferenceObjectByHandleWithTag(
             ThreadHandle,
             0x1FFFFFu,
             (POBJECT_TYPE)PsThreadType,
             0,
             0x67446F50u,
             &qword_140C249F0,
             0i64);
      ZwClose(ThreadHandle);
      if( v5 >= 0 )
      {
        if( (unsigned int)PopDirectedDripsDfxEnforcementPolicy >= 3 )
          PopDirectedDripsDfxEnforcementPolicy = 1;
        LODWORD(PopDirectedDripsState) = PopDirectedDripsState | 1;
        v5 = 0;
      }
    }
  }
  else
  {
    v5 = -1073741637;
  }
  PopDiagTraceDirectedDripsInitialization((unsigned int)v5, v3, v4);
  return(unsigned int)v5;
}

Referenced by:

PopInitializeDirectedDrips