ViPnpVerifyMinorWasProcessedProperly
void __fastcall ViPnpVerifyMinorWasProcessedProperly(__int64 a1, __int64 a2, int a3, int a4, const void *a5, int a6){
unsigned __int8 v6;
INT64 v9;
_DWORD *v10;
__int64 i;
void *v12;
void *v13;
void *v14;
INT64 v15;
v6 = *(_BYTE *)(a2 + 1);
if( v6 > 0xCu )
{
if( v6 < 0xFu )
return;
if( v6 > 0x12u )
{
if( v6 == 19 )
{
if( *(_DWORD *)(a2 + 8) > 3u )
return;
}
else if( v6 != 21 )
{
return;
}
}
goto LABEL_41;
}
if( v6 >= 0xAu )
{
LABEL_41:
if( !a3 || a4 != 2 )
return;
v15 = 536i64;
LABEL_44:
VfErrorReport1(v15, a5, (const void *)a1);
return;
}
if( v6 <= 1u )
goto LABEL_32;
if( v6 == 2 )
{
if( a6 || a4 == 2 )
return;
v15 = 774i64;
goto LABEL_44;
}
if( v6 <= 6u )
{
LABEL_32:
if( a6 || a4 )
return;
v15 = 535i64;
goto LABEL_44;
}
if( v6 != 7 )
return;
if( *(_DWORD *)(a2 + 8) != 4 )
goto LABEL_17;
if( a3 )
{
if( a4 == 2 )
{
v9 = 536i64;
LABEL_16:
VfErrorReport1(v9, a5, (const void *)a1);
}
}
else
{
if( !a4 )
{
v9 = 554i64;
goto LABEL_16;
}
if( *(int *)(a1 + 48) >= 0 && !*(_QWORD *)(a1 + 56) )
{
v9 = 555i64;
goto LABEL_16;
}
}
LABEL_17:
if( !VfIoDisabled && *(_DWORD *)(a1 + 48) >= VfIoDisabled )
{
v10 = *(_DWORD **)(a1 + 56);
if( v10 )
{
if( *(_DWORD *)(a2 + 8) <= 4u )
{
if( MmIsNonPagedSystemAddressValid(*(PVOID *)(a1 + 56)) )
{
for( i = 0i64; (unsigned int)i < *v10; i = (unsigned int)(i + 1) )
{
v12 = *(void **)&v10[2 * i + 2];
if( !(unsigned int)IovUtilIsDeviceObjectMarked((__int64)v12, 5) )
{
LODWORD(v13) = IovUtilGetBottomDeviceObjectWithTag(v12);
v14 = v13;
if( v13 != v12 )
ViErrorReport10(584i64, a5, (const VOID *)a1, v12);
IovUtilMarkDeviceObject((__int64)v12, 5);
ObfDereferenceObjectWithTag(v14, 0x49667256ui64);
}
}
}
}
}
}
}Referenced by:
VfPnpVerifyIrpStackDownward
VfPnpVerifyIrpStackUpward