PopDirectedDripsUmDirectedFxRemoveTestDevice

INT64 __fastcall PopDirectedDripsUmDirectedFxRemoveTestDevice(UINT64 a1, INT64 a2){
  int v2; 
  unsigned int v3; 
  unsigned __int64 v4; 
  unsigned int v5; 
  int Buffer[2]; 
  INT64 v8; 
  v2 = a1;
  if( (unsigned int)a1 < 0xC )
    return(unsigned int)-1073741811;
  v3 = *(_DWORD *)(a2 + 8);
  v4 = 2i64 * v3;
  if( v4 > 0xFFFFFFFF || (unsigned int)v4 > v2 - 12 )
  {
    return(unsigned int)-1073741811;
  }
  else
  {
    Buffer[0] = 1;
    v8 = a2 + 12;
    Buffer[1] = v3;
    PopAcquireRwLockExclusive((_POP_RW_LOCK *)&PopDirectedDripsUmLock);
    v5 = 0;
    if( (unsigned __int8)RtlDeleteElementGenericTableAvl(&PopDirectedDripsUmTestDeviceTable, Buffer) )
      _InterlockedDecrement(&PopDirectedDripsUmTestDeviceCount);
    else
      v5 = -1073741275;
    PopReleaseRwLock((UINT64)&PopDirectedDripsUmLock);
  }
  return v5;
}

Referenced by:

PopDirectedDripsUmPowerInformationInternal