PnpCompareInterruptInformation
VOID __stdcall PnpCompareInterruptInformation(_DEVICE_OBJECT *Pdo, PVOID Buffer, UINT64 Size){
__int64 v3;
int v4;
_DWORD *v5;
__int64 v6;
__int64 v7;
char *v8;
int v9;
__int64 v10;
int *v11;
int *v12;
int v13;
__int64 v14;
ULONG v15;
int v16;
int v17[3];
struct _EVENT_DATA_DESCRIPTOR v18;
const char *v19;
int v20;
int v21;
__int64 *v22;
__int64 v23;
int *v24;
__int64 v25[4];
int v26[2];
v3 = *((_QWORD *)Pdo + 39);
v4 = Size;
v5 = *(_DWORD **)(v3 + 88);
v6 = *(_QWORD *)(v3 + 40);
if( v5 )
{
if( *v5 == (_DWORD)Size )
{
if( RtlCompareMemory(v5 + 1, Buffer, (unsigned int)Size) != (unsigned int)Size
&& (unsigned int)dword_140C02DC0 > 5
&& tlgKeywordOn((__int64)&dword_140C02DC0, 0x400000000000i64) )
{
v14 = -1i64;
do
++v14;
while( aCompareFailed[v14] );
v19 = "Compare Failed";
v20 = v14 + 1;
v11 = &v16;
v12 = v17;
v17[0] = v13;
v16 = v4;
v8 = (char *)word_14002417A;
LABEL_20:
v22 = (__int64 *)v12;
v25[1] = (__int64)v26;
v25[3] = *(_QWORD *)(v6 + 48);
v26[0] = *(unsigned __int16 *)(v6 + 40);
v15 = 7;
v26[1] = 0;
v25[2] = 2i64;
v25[0] = 4i64;
v24 = v11;
v23 = 4i64;
LABEL_21:
v21 = 0;
tlgWriteTransfer_EtwWriteTransfer((__int64)&dword_140C02DC0, (unsigned __int8 *)v8, 0i64, 0i64, v15, &v18);
}
}
else if( (unsigned int)dword_140C02DC0 > 5 && tlgKeywordOn((__int64)&dword_140C02DC0, 0x400000000000i64) )
{
v10 = -1i64;
do
++v10;
while( aSizeMismatch[v10] );
v19 = "Size Mismatch";
v20 = v10 + 1;
v11 = v17;
v12 = &v16;
v16 = v9;
v17[0] = v4;
v8 = byte_1400241D1;
goto LABEL_20;
}
}
else if( (unsigned int)dword_140C02DC0 > 5 && tlgKeywordOn((__int64)&dword_140C02DC0, 0x400000000000i64) )
{
v7 = -1i64;
do
++v7;
while( aNotFound_0[v7] );
v19 = "Not Found";
v20 = v7 + 1;
v8 = byte_140024131;
v23 = 2i64;
v22 = v25;
v24 = *(int **)(v6 + 48);
v25[0] = *(unsigned __int16 *)(v6 + 40);
v15 = 5;
goto LABEL_21;
}
}Referenced by:
PnpGetDevicePropertyData