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