WmipInitializeDataStructs
INT64 __fastcall WmipInitializeDataStructs(){
INT64 v0;
INT64 v1;
__int64 v2;
__int64 *i;
char a5[8];
__int128 v5;
WMIREGINFOW result;
int v7;
int v8;
int v9;
int v10;
__int128 v11;
*(_QWORD *)&v5 = 0x11D23915E3DFF7BDi64;
WmipDSHeadPtr = (__int64)&WmipDSHead;
qword_140C19E88 = (__int64)&WmipDSHead;
WmipDSHead = (__int64)&WmipDSHead;
WmipGEHeadPtr = (__int64)&WmipGEHead;
qword_140C19E98 = (__int64)&WmipGEHead;
WmipGEHead = (__int64)&WmipGEHead;
WmipMRHeadPtr = (__int64)&WmipMRHead;
qword_140C19EB8 = (__int64)&WmipMRHead;
WmipMRHead = (__int64)&WmipMRHead;
*((_QWORD *)&v5 + 1) = 0xA298B94FC0000391ui64;
a5[0] = 0;
v0 = WmipAllocRegEntry(-1i64, 1342177280i64);
if( !v0 )
return 3221225626i64;
memset((INT64)&result, 0i64);
result.BufferSize = 88;
result.GuidCount = 2;
v7 = -943770160;
v8 = 298953435;
v11 = v5;
v9 = -1610593601;
v10 = 271124169;
v1 = WmipAddDataSource(v0, &result, 0x58ui64, 0i64, 0i64);
if( (int)v1 >= 0 )
{
v2 = WmipGEHeadPtr;
for( i = *(__int64 **)WmipGEHeadPtr; i != (__int64 *)v2; i = (__int64 *)*i )
*((_DWORD *)i + 4) |= 1u;
v1 = WmipAddMofResource(*(_QWORD *)(v0 + 32), L"kernelbase.dll", 1, L"MofResourceName", a5);
if( (int)v1 >= 0 )
return 0i64;
}
return v1;
}Referenced by:
WmipDriverEntry