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