SleepstudyHelperCreateBlockerFromDevice

__int64 __fastcall SleepstudyHelperCreateBlockerFromDevice(__int64 a1, __int128 *a2, _DEVICE_OBJECT *a3, _QWORD *a4){
  VOID **v4; 
  VOID **PoolWithTag; 
  NTSTATUS DeviceFriendlyName; 
  __int128 v11; 

  v4 = 0i64;
  if( a1 && a2 && a3 && a4 )
  {
    PoolWithTag = ExAllocatePoolWithTag(1ui64, 0x50ui64, *(unsigned int *)(a1 + 24));
    v4 = PoolWithTag;
    if( !PoolWithTag )
      return(unsigned int)-1073741670;
    memset(PoolWithTag, 0i64, 0x50u);
    *v4 = (VOID *)a1;
    v11 = *a2;
    v4[4] = a3;
    *((_BYTE *)v4 + 72) = 1;
    *((_OWORD *)v4 + 1) = v11;
    DeviceFriendlyName = SshpGenerateDeviceFriendlyName(a3);
    if( DeviceFriendlyName >= 0 )
    {
      *a4 = v4;
      return 0;
    }
  }
  else
  {
    DeviceFriendlyName = -1073741811;
  }
  if( v4 )
    SleepstudyHelperDestroyBlockerBuilder(v4);
  return(unsigned int)DeviceFriendlyName;
}

Referenced by:

SleepstudyHelper_RegisterPdoWithParentGuid
SleepstudyHelper_RegisterPdoWithParentHandle
SleepstudyHelper_RegisterPdoWithParentPdo