VfReportIssueWithOptions

VOID __stdcall VfReportIssueWithOptions(
        UINT64 Code,
        ULONG_PTR Param1,
        ULONG_PTR Param2,
        ULONG_PTR Param3,
        ULONG_PTR Param4,
        UINT64 *Action){
  UINT64 v6; 
  UINT64 v7; 
  UINT64 v8; 
  UINT64 v9; 
  int v10; 
  UINT64 v11; 

  v6 = *(_QWORD *)&Param3;
  v7 = *(_QWORD *)&Param2;
  v8 = (unsigned int)Code;
  v9 = *(_QWORD *)&Param1;
  v10 = *(_DWORD *)Action;
  if( *(_DWORD *)Action && (v10 & 2) == 0 )
  {
    if( (((v10 & 8) == 0) & !_bittest(&VfOptionFlags, 9u)) != 0 && (_BYTE)KdDebuggerEnabled )
    {
      if( (v10 & 4) != 0 )
      {
        while( 1 )
        {
          VfUtilDbgPrint((INT8 *)"\n*** Verifier assertion failed ***\n");
          DbgPrompt((INT64)"(B)reak, (I)gnore, (W)arn only, (R)emove assert? ");
          switch( (_BYTE)Action )
          {
            case 'B':
              goto LABEL_15;
            case 'I':
              return;
            case 'R':
              goto LABEL_16;
            case 'W':
              goto LABEL_14;
            case 'b':
LABEL_15:
              VfErrorStoreTriageInformation(v8, v9, v7, v6, *(UINT64 *)&Param4);
              __debugbreak();
            case 'i':
              return;
          }
          if( (_BYTE)Action == 114 )
            break;
          if( (_BYTE)Action == 119 )
          {
LABEL_14:
            *(_DWORD *)Action = 2;
            return;
          }
        }
LABEL_16:
        *(_DWORD *)Action = 0;
      }
    }
    else
    {
      VerifierBugCheckIfAppropriate((unsigned int)Code, Param1, Param2, Param3, Param4, v11);
    }
  }
}

Referenced by:

ADD_MAP_REGISTERS
DECREMENT_ADAPTER_CHANNELS
DECREMENT_COMMON_BUFFERS
DECREMENT_SCATTER_GATHER_LISTS
INCREASE_MAPPED_TRANSFER_BYTE_COUNT
INCREMENT_ADAPTER_CHANNELS
SUBTRACT_MAP_REGISTERS
VERIFY_BUFFER_LOCKED
VF_ASSERT_IRQL
VF_ASSERT_MAX_IRQL
VfBuildScatterGatherList
VfBuildScatterGatherListEx
VfCheckImageCompliance
VfCheckPagePriority
VfCheckPageProtection
VfCheckPoolType
VfDeadlockAcquireResource
VfDeadlockReleaseResource
VfFlushAdapterBuffers
VfGetScatterGatherList
VfGetScatterGatherListEx
VfMapTransfer
VfMapTransferEx
VfPutDmaAdapter
ViAllocateMapRegistersFromFile
ViCheckPadding
ViCheckTag
ViCopyDeviceDescription
ViDeadlockAddResource
ViDeadlockAnalyze
ViDeadlockRemoveResource
ViDeadlockRemoveThread
ViFlushDoubleBuffer
ViGetAdapterInformationInternal
ViGetMdlBufferSa
ViGetRealDmaOperation
ViMapDoubleBuffer
ViReleaseDmaAdapter