ExDeleteFastResource

NTSTATUS __stdcall ExDeleteFastResource(PVOID BugCheckParameter2){
  __int16 v2; 
  unsigned __int8 CurrentIrql; 
  KIRQL v4; 
  PVOID *v5; 
  unsigned __int64 v6; 
  _QWORD *v7; 
  NTSTATUS result; 
  v2 = *((_WORD *)BugCheckParameter2 + 13);
  if( (v2 & 1) == 0 )
    KeBugCheckEx(0x1C6u, 3ui64, (ULONG_PTR)BugCheckParameter2, 0i64, 0i64);
  CurrentIrql = KeGetCurrentIrql();
  if( CurrentIrql > 1u )
    KeBugCheckEx(0x1C6u, 0i64, CurrentIrql, 1ui64, 0i64);
  if( *((_DWORD *)BugCheckParameter2 + 16) )
    KeBugCheckEx(0x1C6u, 4ui64, (ULONG_PTR)BugCheckParameter2, 0i64, 0i64);
  *((_WORD *)BugCheckParameter2 + 13) = v2 & 0xFFBE;
  v4 = ExAcquireSpinLockExclusive(&ExpResourceSpinLock);
  v5 = (PVOID *)*((_QWORD *)BugCheckParameter2 + 1);
  v6 = v4;
  v7 = *(_QWORD **)BugCheckParameter2;
  if( *(PVOID *)(*(_QWORD *)BugCheckParameter2 + 8i64) != BugCheckParameter2 || *v5 != BugCheckParameter2 )
    __fastfail(3u);
  *v5 = v7;
  v7[1] = v5;
  ExReleaseSpinLockExclusiveFromDpcLevel((INT64 *)&ExpResourceSpinLock);
  result = KiIrqlFlags;
  __writecr8(v6);
  *(_QWORD *)BugCheckParameter2 = 0i64;
  *((_QWORD *)BugCheckParameter2 + 1) = 0i64;
  return result;
}

Referenced by:

No references.