SleepstudyHelperDestroyBlockerBuilder

INT64 __fastcall SleepstudyHelperDestroyBlockerBuilder(PVOID P){
  unsigned int v1; 
  __int64 v3; 
  void *v4; 
  unsigned int v5; 
  _QWORD *v6; 
  v1 = 0;
  if( P )
  {
    v3 = *(_QWORD *)P;
    v4 = (void *)*((_QWORD *)P + 7);
    v5 = *(_DWORD *)(v3 + 24);
    if( v4 )
    {
      *((_DWORD *)P + 12) = 0;
      CmpFreeTransientPoolWithTag(v4, v5);
      *((_QWORD *)P + 7) = 0i64;
    }
    v6 = (_QWORD *)*((_QWORD *)P + 8);
    if( v6 )
      SshpDereferenceBlocker(v6);
    CmpFreeTransientPoolWithTag(P, v5);
  }
  else
  {
    return(unsigned int)-1073741811;
  }
  return v1;
}

Referenced by:

SleepstudyHelperBuildBlocker
SleepstudyHelperCreateBlockerFromComponent
SleepstudyHelperCreateBlockerFromDevice
SleepstudyHelperCreateBlockerFromGuid
SleepstudyHelper_RegisterComponentEx
SleepstudyHelper_RegisterPdoWithParentGuid
SleepstudyHelper_RegisterPdoWithParentHandle
SleepstudyHelper_RegisterPdoWithParentPdo