PopFxFreeUniqueId

void __fastcall PopFxFreeUniqueId(__int64 a1){
  __int64 v1; 
  signed __int32 v3; 
  signed __int32 v4; 
  v1 = *(_QWORD *)(a1 + 136);
  if( *(_QWORD *)(a1 + 48) != v1 )
  {
    if( v1 )
    {
      _m_prefetchw((const void *)(a1 + 296));
      v3 = *(_DWORD *)(a1 + 296);
      do
      {
        v4 = v3;
        v3 = _InterlockedCompareExchange((volatile signed __int32 *)(a1 + 296), v3, v3);
      }
      while( v4 != v3 );
      if( (v3 & 0x2000) == 0 )
        ExFreePoolWithTag(*(PVOID *)(a1 + 136), 0x4D584650u);
    }
  }
  *(_OWORD *)(a1 + 128) = 0i64;
}

Referenced by:

PoFxAbandonDevice