ExReleaseDisownedFastResourceExclusive

NTSTATUS __stdcall ExReleaseDisownedFastResourceExclusive(PVOID BugCheckParameter2, PVOID a2){
  unsigned __int8 CurrentIrql; 
  _ETHREAD *CurrentThread; 
  char v4; 
  if( (*((_BYTE *)BugCheckParameter2 + 26) & 1) == 0 )
    KeBugCheckEx(0x1C6u, 3ui64, (ULONG_PTR)BugCheckParameter2, 0i64, 0i64);
  CurrentIrql = KeGetCurrentIrql();
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  if( CurrentIrql > 2u )
    KeBugCheckEx(0x1C6u, 0i64, CurrentIrql, 2ui64, 0i64);
  if( !CurrentIrql && (*((_DWORD *)CurrentThread + 29) & 0x400) == 0 && !*((_DWORD *)CurrentThread + 121) )
    KeBugCheckEx(0x1C6u, 7ui64, 0i64, 0i64, 0i64);
  v4 = *((_BYTE *)a2 + 17);
  if( (v4 & 4) == 0 )
    KeBugCheckEx(0x1C6u, 0xBui64, (ULONG_PTR)a2, ((unsigned __int64)(v4 & 4) << 14) | 1, 0i64);
  if( *((PVOID *)a2 + 3) != BugCheckParameter2 )
    KeBugCheckEx(0x1C6u, 0xCui64, (ULONG_PTR)BugCheckParameter2, (ULONG_PTR)a2, *((_QWORD *)a2 + 3));
  if( (v4 & 1) == 0 )
    KeBugCheckEx(0x1C6u, 0xDui64, (ULONG_PTR)a2, 0i64, 0i64);
  return ExpReleaseDisownedFastResourceExclusive((UINT64 *)BugCheckParameter2, (INT64)a2);
}

Referenced by:

No references.