IovpCompleteRequest3

VOID **__fastcall IovpCompleteRequest3(INT64 a1, INT64 a2, INT64 a3){
  VOID **result; 
  char v4; 
  __int64 v8; 
  _BYTE *v9; 
  void *retaddr; 

  result = &retaddr;
  v4 = 0;
  if( *(_QWORD *)a3 )
  {
    v8 = *(_QWORD *)(a3 + 8);
    *(_BYTE *)(v8 + 16) = KeAcquireSpinLockRaiseToDpc((UINT64 *)(v8 + 8));
    if( *(_BYTE *)(a1 + 67) <= *(_BYTE *)(a1 + 66) )
    {
      v9 = *(_BYTE **)(a1 + 184);
      if( *v9 == 27 && v9[1] == 2 )
        v4 = 1;
    }
    *(_BYTE *)(a3 + 16) = v4;
    *(_QWORD *)(a3 + 24) = a2;
    VfIrpDatabaseEntryReleaseLock((_IOV_DATABASE_HEADER *)v8);
  }
  return result;
}

Referenced by:

IovpLocalCompletionRoutine