PopFxAcpiUnregisterDevice

NTSTATUS __stdcall PopFxAcpiUnregisterDevice(VOID *FxDevice, ULONG_PTR Data){
  _IO_REMOVE_LOCK *v2; 
  VOID *v3; 
  _POP_FX_DEVICE *v5; 
  NTSTATUS v6; 
  UINT64 v8; 

  v2 = (_IO_REMOVE_LOCK *)((char *)FxDevice + 272);
  LODWORD(v8) = 32;
  v3 = *(VOID **)&Data;
  v6 = IoAcquireRemoveLockEx((_IO_REMOVE_LOCK *)((char *)FxDevice + 272), (VOID *)0x72466F50, (CHAR *)&File, 1ui64, v8);
  if( *((VOID **)FxDevice + 25) != (char *)FxDevice + 200 )
    PopFxRemoveAcpiDevice(v5);
  IoReleaseRemoveLockAndWaitEx(v2, (PVOID)0x72466F50, 0x20u);
  PopPluginAcpiNotificationStrict(*((_POP_FX_PLUGIN **)FxDevice + 10), 4ui64, v3);
  _InterlockedAnd((volatile signed __int32 *)FxDevice + 206, 0xFFFFFFFB);
  *((_QWORD *)FxDevice + 10) = 0i64;
  *((_QWORD *)FxDevice + 11) = 0i64;
  PopFxDestroyDeviceCommon((_POP_FX_DEVICE *)FxDevice);
  return v6;
}

Referenced by:

PopFxAcpiDispatchNotification