KeAbMarkCrossThreadReleasable

UINT8 __stdcall KeAbMarkCrossThreadReleasable(INT64 a1, _KLOCK_ENTRY *a2){
  _KLOCK_ENTRY *v2; 
  UINT8 result; 

  v2 = a2;
  if( ((unsigned __int8)a2 & 1) != 0 )
    v2 = &KeGetCurrentThread()->LockEntries[(unsigned __int8)((unsigned __int64)a2 >> 1)];
  if( v2->LockState.$E8276A2CF8B819ED32D1B6FEB35D730A::_bf_0 >= 0 )
    KiAbForceProcessLockEntry(v2);
  result = v2->CrossThreadReleasableAndBusyByte | 1;
  v2->CrossThreadReleasableAndBusyByte = result;
  return result;
}

Referenced by:

ExDisownFastResource
KeAbCrossThreadDeleteDpcRoutine