IovCompleteRequest

VOID __fastcall IovCompleteRequest(_IRP *Irp, CHAR PriorityBoost){
  UINT64 v4; 
  UINT64 v5; 
  bool v6; 
  __int64 v7; 
  char v8; 
  UINT64 v9; 
  __int64 v10; 
  __int128 v11; 
  __int64 v12; 
  __int64 v13; 
  __int64 v14[3]; 
  __int64 v15; 
  __int128 v16; 
  __int128 v17; 
  __int128 v18; 
  __int128 v19; 
  __int64 v20; 
  __int64 retaddr; 
  v10 = 0i64;
  v12 = 0i64;
  v11 = 0i64;
  IovpLogStackTrace(Irp);
  if( (MmVerifierData & 0x10) != 0 && !IovpDisabledWithoutReboot )
  {
    if( *((char *)Irp + 67) > (char)(*((_BYTE *)Irp + 66) + 1) || *(_WORD *)Irp != 6 )
      VerifierBugCheckIfAppropriate(0x44ui64, (UINT64)Irp, 0x486ui64, 0i64, 0i64, v9);
    v4 = *((_QWORD *)Irp + 13);
    if( v4 )
      VerifierBugCheckIfAppropriate(0xC9ui64, 7ui64, v4, (UINT64)Irp, 0i64, v9);
    v5 = *((int *)Irp + 12);
    if( (_DWORD)v5 == 259 || (_DWORD)v5 == -1 )
      VerifierBugCheckIfAppropriate(0xC9ui64, 6ui64, v5, (UINT64)Irp, 0i64, v9);
    if( KeGetCurrentIrql() > 2u )
      VerifierBugCheckIfAppropriate(0xC9ui64, 0xEui64, KeGetCurrentIrql(), (UINT64)Irp, 0i64, v9);
  }
  v13 = retaddr;
  IovpCompleteRequest1((unsigned __int64)Irp, PriorityBoost, (__int64)&v10);
  if( (!IovpDisabledWithoutReboot || v10) && *((_BYTE *)Irp + 67) <= *((_BYTE *)Irp + 66) )
  {
    v6 = *((int *)Irp + 12) < 0;
    v7 = *((_QWORD *)Irp + 23);
    v14[2] = (__int64)&v10;
    v14[1] = *(_QWORD *)(v7 + 64);
    v14[0] = v7;
    v16 = *(_OWORD *)v7;
    v17 = *(_OWORD *)(v7 + 16);
    v18 = *(_OWORD *)(v7 + 32);
    v19 = *(_OWORD *)(v7 + 48);
    v20 = *(_QWORD *)(v7 + 64);
    v8 = *(_BYTE *)(v7 + 3);
    if( v6 )
    {
      if( v8 < 0 )
        goto LABEL_18;
    }
    else if( (v8 & 0x40) != 0 )
    {
      goto LABEL_18;
    }
    if( !*((_BYTE *)Irp + 68) || (v8 & 0x20) == 0 )
    {
      v15 = 0i64;
      *(_BYTE *)(v7 + 3) |= 0xE0u;
      goto LABEL_19;
    }
LABEL_18:
    v15 = *(_QWORD *)(v7 + 56);
LABEL_19:
    *(_QWORD *)(v7 + 56) = IovpLocalCompletionRoutine;
    *(_QWORD *)(v7 + 64) = v14;
  }
  if( (IopFunctionPointerMask & 2) != 0 )
    IopPerfCompleteRequest(Irp, PriorityBoost);
  else
    IopfCompleteRequest(Irp, PriorityBoost);
}

Referenced by:

IofCompleteRequest