IopCheckDeviceFlags

char __fastcall IopCheckDeviceFlags(__int64 a1, int a2){
  _DWORD *v2; 
  char v4; 
  _DWORD *LowerDeviceObjectWithTag; 
  v2 = *(_DWORD **)(a1 + 48);
  v4 = 0;
  ObfReferenceObjectWithTag(v2, 0x70506F50u);
  if( v2 )
  {
    while( (a2 & v2[12]) == 0 )
    {
      LowerDeviceObjectWithTag = IoGetLowerDeviceObjectWithTag((INT64)v2, 0x70506F50ui64);
      ObfDereferenceObjectWithTag(v2, 0x70506F50ui64);
      v2 = LowerDeviceObjectWithTag;
      if( !LowerDeviceObjectWithTag )
        return v4;
    }
    v4 = 1;
    ObfDereferenceObjectWithTag(v2, 0x70506F50ui64);
  }
  return v4;
}

Referenced by:

IoBuildPoDeviceNotifyList