IovpCompleteRequest3

VOID **__fastcall IovpCompleteRequest3(INT64 a1, INT64 a2, INT64 a3){
  VOID **result; 
  char v4; 
  __int64 v8; 
  char v9; 
  _BYTE *v10; 
  void *retaddr; 
  result = &retaddr;
  v4 = 0;
  if( *(_QWORD *)a3 )
  {
    v8 = *(_QWORD *)(a3 + 8);
    KeAcquireSpinLockRaiseToDpc((UINT64 *)(v8 + 8), a2);
    *(_BYTE *)(v8 + 16) = v9;
    if( *(_BYTE *)(a1 + 67) <= *(_BYTE *)(a1 + 66) )
    {
      v10 = *(_BYTE **)(a1 + 184);
      if( *v10 == 27 && v10[1] == 2 )
        v4 = 1;
    }
    *(_BYTE *)(a3 + 16) = v4;
    *(_QWORD *)(a3 + 24) = a2;
    return(VOID **)VfIrpDatabaseEntryReleaseLock((_QWORD *)v8);
  }
  return result;
}

Referenced by:

IovpLocalCompletionRoutine