ObDereferenceDeviceMap

VOID __stdcall ObDereferenceDeviceMap(_EPROCESS *Process){
  __int64 ProcessServerSilo; 
  __int64 *ServerSiloGlobals; 
  _ETHREAD *CurrentThread; 
  UINT64 v5; 
  _DEVICE_MAP *v6; 
  ProcessServerSilo = PsGetProcessServerSilo((__int64)Process);
  ServerSiloGlobals = PsGetServerSiloGlobals(ProcessServerSilo);
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  --*((_WORD *)CurrentThread + 243);
  v5 = (UINT64)(ServerSiloGlobals + 15);
  ExAcquirePushLockExclusiveEx((UINT64)(ServerSiloGlobals + 15), 0i64);
  v6 = (_DEVICE_MAP *)*((_QWORD *)Process + 177);
  *((_QWORD *)Process + 177) = 0i64;
  ExReleasePushLockEx(v5, 0i64);
  KiLeaveGuardedRegionUnsafe((__int64)KeGetCurrentThread());
  if( v6 )
    ObfDereferenceDeviceMap(v6);
}

Referenced by:

PspAssignPrimaryToken