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