IopIncrementCompletionContextUsageCountAndReadData

NTSTATUS __stdcall IopIncrementCompletionContextUsageCountAndReadData(PVOID BugCheckParameter1){
  _BYTE *v1; 
  _QWORD *v2; 
  _QWORD *v3; 
  unsigned __int64 *v4; 
  _QWORD *v6; 
  _QWORD *v7; 
  _BYTE *v8; 
  __int64 BugCheckParameter4; 
  char v10; 
  _KIRQL v11; 
  _QWORD *v12; 
  __int64 v13; 

  v4 = (unsigned __int64 *)((char *)BugCheckParameter1 + 184);
  v6 = v3;
  v7 = v2;
  v8 = v1;
  BugCheckParameter4 = -1i64;
  v10 = KeAcquireSpinLockRaiseToDpc((UINT64 *)BugCheckParameter1 + 23);
  v12 = (_QWORD *)*((_QWORD *)BugCheckParameter1 + 22);
  if( v12 )
  {
    BugCheckParameter4 = v12[2];
    v11 = BugCheckParameter4 + 1;
    v12[2] = BugCheckParameter4 + 1;
  }
  LOBYTE(v11) = v10;
  LODWORD(v13) = (unsigned int)KeReleaseSpinLock(v4, v11);
  if( v12 )
  {
    *v8 = 1;
    *v7 = *v12;
    v13 = v12[1];
    *v6 = v13;
    if( BugCheckParameter4 < 0 )
      KeBugCheckEx(
        0x18u,
        BugCheckParameter1,
        *((PVOID *)BugCheckParameter1 + 22),
        (PVOID)0x81,
        (PVOID)BugCheckParameter4);
  }
  else
  {
    *v8 = 0;
    *v7 = 0i64;
    *v6 = 0i64;
  }
  return v13;
}

Referenced by:

IopCompleteRequest
IopXxxControlFile
NtLockFile