IopIncrementCompletionContextUsageCountAndReadData

NTSTATUS __stdcall IopIncrementCompletionContextUsageCountAndReadData(PVOID BugCheckParameter1){
  UINT64 v1; 
  _QWORD *v2; 
  _QWORD *v3; 
  UINT64 *v4; 
  _QWORD *v6; 
  _QWORD *v7; 
  _BYTE *v8; 
  signed __int64 BugCheckParameter4; 
  UINT8 v10; 
  _QWORD *v11; 
  __int64 v12; 
  v4 = (UINT64 *)((char *)BugCheckParameter1 + 184);
  v6 = v3;
  v7 = v2;
  v8 = (_BYTE *)v1;
  BugCheckParameter4 = -1i64;
  KeAcquireSpinLockRaiseToDpc((UINT64 *)BugCheckParameter1 + 23, v1);
  v11 = (_QWORD *)*((_QWORD *)BugCheckParameter1 + 22);
  if( v11 )
  {
    BugCheckParameter4 = v11[2];
    v11[2] = BugCheckParameter4 + 1;
  }
  KeReleaseSpinLock(v4, v10);
  if( v11 )
  {
    *v8 = 1;
    *v7 = *v11;
    v12 = v11[1];
    *v6 = v12;
    if( BugCheckParameter4 < 0 )
      KeBugCheckEx(
        0x18u,
        (ULONG_PTR)BugCheckParameter1,
        *((_QWORD *)BugCheckParameter1 + 22),
        0x81ui64,
        BugCheckParameter4);
  }
  else
  {
    *v8 = 0;
    *v7 = 0i64;
    *v6 = 0i64;
  }
  return v12;
}

Referenced by:

IopCompleteRequest
IopXxxControlFile
NtLockFile