IopIsBitlockerOn

BOOL __fastcall IopIsBitlockerOn(INT64 a1, INT64 a2, WCHAR a3){
  int v3; 
  BOOL result; 
  UNICODE_STRING KeyName; 
  HANDLE Handle; 
  PVOID P; 
  P = 0i64;
  Handle = 0i64;
  v3 = 1;
  KeyName = 0i64;
  RtlInitUnicodeString(&KeyName, L"\\REGISTRY\\MACHINE\\SYSTEM\\CurrentControlSet\\Control\\BitlockerStatus", a3);
  result = IopOpenRegistryKey(&Handle, 0i64, &KeyName, 0x20019ui64, 0);
  if( result >= 0 )
  {
    if( IopGetRegistryValue(Handle, (PWCHAR)L"BootStatus", 0i64, (KEY_VALUE_FULL_INFORMATION **)&P) >= 0 )
    {
      if( *((_DWORD *)P + 3) )
        v3 = *(_DWORD *)((char *)P + *((unsigned int *)P + 2));
      ExFreePoolWithTag(P, 0);
    }
    result = ObCloseHandle(Handle, 0);
  }
  LOBYTE(result) = v3 == 1;
  return result;
}

Referenced by:

IopInitDumpCapsuleSupport