SshpFreeDataEntry

VOID __stdcall SshpFreeDataEntry(PVOID P){
  _QWORD *v2; 
  PVOID *v3; 
  unsigned int i; 

  ExAcquirePushLockExclusiveEx((_EX_PUSH_LOCK *)(*((_QWORD *)P + 2) + 16i64), 0i64);
  v2 = *(_QWORD **)P;
  if( *(PVOID *)(*(_QWORD *)P + 8i64) != P || (v3 = (PVOID *)*((_QWORD *)P + 1), *v3 != P) )
    __fastfail(3u);
  *v3 = v2;
  v2[1] = v3;
  SSHSupportReleasePushLockExclusive(*((_QWORD *)P + 2) + 16);
  for( i = 0; i < *((_DWORD *)P + 10); ++i )
    CmpFreeTransientPoolWithTag(*((VOID **)P + 4 * i + 7), *(unsigned int *)(*((_QWORD *)P + 2) + 24i64));
  CmpFreeTransientPoolWithTag(P, *(unsigned int *)(*((_QWORD *)P + 2) + 24i64));
}

Referenced by:

SleepstudyHelperCreateBlockerData
SleepstudyHelperDestroyBlockerData
SleepstudyHelperDestroyLibrary