PiUEventCacheObjectProperties

__int64 __fastcall PiUEventCacheObjectProperties(__int64 a1){
  int v1; 
  INT64 v2; 
  PVOID *v3; 
  void *v4; 
  int v5; 
  int v6; 
  int v7; 
  __int64 v8; 
  int v9; 
  unsigned int v10; 
  NTSTATUS v11; 
  int v13; 
  int v14; 
  int v15; 
  int ObjectProperty; 
  INT64 v17; 
  __int64 v18; 
  __int64 v19; 

  v1 = *(_DWORD *)(a1 + 88);
  v2 = a1 + 60;
  *(_DWORD *)(a1 + 60) = -1;
  v3 = (PVOID *)(a1 + 48);
  LODWORD(v17) = 0;
  v4 = 0i64;
  LODWORD(v18) = 0;
  v19 = 0i64;
  *(_QWORD *)(a1 + 48) = 0i64;
  v5 = v1 - 1;
  if( !v5 )
  {
LABEL_4:
    v8 = a1 + 120;
    goto LABEL_5;
  }
  v6 = v5 - 1;
  if( v6 )
  {
    v7 = v6 - 1;
    if( v7 )
    {
      v13 = v7 - 1;
      if( v13 )
      {
        v14 = v13 - 5;
        if( v14 )
        {
          v15 = v14 - 1;
          if( v15 )
          {
            if( v15 != 1 )
              return 0;
          }
        }
      }
    }
    goto LABEL_4;
  }
  ObjectProperty = PnpGetObjectProperty(
                     0x59706E50u,
                     0xC8ui64,
                     a1 + 136,
                     3u,
                     0i64,
                     0i64,
                     (INT64)&DEVPKEY_Device_InstanceId,
                     (INT64)&v17,
                     (__int64)&v19,
                     (__int64)&v18);
  v4 = (void *)v19;
  v10 = ObjectProperty;
  if( ObjectProperty < 0 )
    goto LABEL_9;
  v8 = v19;
LABEL_5:
  v9 = PnpGetObjectProperty(
         0x59706E50u,
         0x200ui64,
         v8,
         1u,
         0i64,
         0i64,
         (INT64)&DEVPKEY_Device_RestrictedSD,
         (INT64)&v17,
         (__int64)v3,
         (__int64)&v18);
  v10 = v9;
  if( v9 >= 0 )
  {
    if( (_DWORD)v17 != 19 )
    {
      ExFreePoolWithTag(*v3, 0x59706E50u);
      *v3 = 0i64;
    }
    goto LABEL_7;
  }
  if( v9 == -1073741772 || v9 == -1073741275 )
  {
LABEL_7:
    v11 = PnpGetObjectProperty(
            *(&stru_140CF2E80 + 1214),
            v8,
            1i64,
            0i64,
            0i64,
            (INT64)&DEVPKEY_Device_SessionId,
            (INT64)&v17,
            v2);
    v10 = v11;
    if( v11 == -1073741772 || v11 == -1073741275 )
      v10 = 0;
  }
LABEL_9:
  if( v4 )
    ExFreePoolWithTag(v4, 0x59706E50u);
  return v10;
}

Referenced by:

PiUEventNotifyUserMode