PopCapabilityCheck

NTSTATUS __fastcall PopCapabilityCheck(
        const WCHAR *CapabilityId,
        INT64 a2,
        INT64 a3,
        INT64 a4,
        INT64 a5,
        INT64 a6,
        INT64 a7,
        INT64 a8){
  __int64 v8; 
  char v9; 
  const WCHAR *v11; 
  __int64 v12; 
  __int64 v13; 
  char v14; 
  _UNICODE_STRING CapabilityName; 
  char HasCapability; 

  v9 = 0;
  HasCapability = 0;
  if( CapabilityId )
  {
    v11 = CapabilityId;
    CapabilityName = 0i64;
    v12 = 0x7FFFi64;
    do
    {
      if( !*v11 )
        break;
      ++v11;
      --v12;
    }
    while( v12 );
    v8 = -v12;
    v13 = (0x7FFF - v12) & -(__int64)(v12 != 0);
    if( v12 )
    {
      CapabilityName.Buffer = (wchar_t *)CapabilityId;
      CapabilityName.Length = 2 * v13;
      CapabilityName.MaximumLength = 2 * v13 + 2;
      LODWORD(v8) = RtlCapabilityCheck(0i64, &CapabilityName, (UINT8 *)&HasCapability);
      v14 = HasCapability;
      if( (int)v8 < 0 )
        v14 = 0;
      v9 = v14;
    }
  }
  LOBYTE(v8) = v9;
  return v8;
}

Referenced by:

NtPowerInformation