ExpWnfAcquireSubscriptionNameInstance

INT64 __fastcall ExpWnfAcquireSubscriptionNameInstance(INT64 a1, INT64 a2){
  INT64 v3; 
  void *v4; 
  _BYTE *v5; 
  _BYTE *v6; 
  struct _EX_RUNDOWN_REF *v7; 
  v3 = 0i64;
  v4 = (void *)(*((_QWORD *)PsInitialSystemProcess + 269) + 80i64);
  LODWORD(v5) = KeAbPreAcquire(v4, 0i64, 0i64);
  v6 = v5;
  if( _InterlockedCompareExchange64((volatile signed __int64 *)v4, 17i64, 0i64) )
    ExfAcquirePushLockSharedEx((UINT64 *)v4, v5, v4);
  if( v6 )
    v6[26] |= 1u;
  v7 = *(struct _EX_RUNDOWN_REF **)(a2 + 48);
  if( v7 && ExAcquireRundownProtection(v7 + 1) )
    v3 = *(_QWORD *)(a2 + 48);
  if( _InterlockedCompareExchange64((volatile signed __int64 *)v4, 0i64, 17i64) != 17 )
    ExfReleasePushLockShared((INT64 *)v4);
  KeAbPostRelease(v4);
  return v3;
}

Referenced by:

ExQueryWnfStateData