WmipInitializeDataStructs

NTSTATUS __stdcall WmipInitializeDataStructs(){
  __int64 v0; 
  NTSTATUS result; 
  __int64 *v2; 
  __int64 *i; 
  char NewMofResource[8]; 
  __int128 v5; 
  _BYTE v6[88]; 

  *(_QWORD *)&v5 = 0x11D23915E3DFF7BDi64;
  *(&ExBootDevicesRemovedEvent + 404) = (char *)&ExBootDevicesRemovedEvent + 3200;
  *(&ExBootDevicesRemovedEvent + 401) = (char *)&ExBootDevicesRemovedEvent + 3200;
  *(&ExBootDevicesRemovedEvent + 400) = (char *)&ExBootDevicesRemovedEvent + 3200;
  *(&ExBootDevicesRemovedEvent + 408) = (char *)&ExBootDevicesRemovedEvent + 3216;
  *(&ExBootDevicesRemovedEvent + 403) = (char *)&ExBootDevicesRemovedEvent + 3216;
  *(&ExBootDevicesRemovedEvent + 402) = (char *)&ExBootDevicesRemovedEvent + 3216;
  *(&ExBootDevicesRemovedEvent + 398) = (char *)&ExBootDevicesRemovedEvent + 3248;
  *(&ExBootDevicesRemovedEvent + 407) = (char *)&ExBootDevicesRemovedEvent + 3248;
  *(&ExBootDevicesRemovedEvent + 406) = (char *)&ExBootDevicesRemovedEvent + 3248;
  *((_QWORD *)&v5 + 1) = 0xA298B94FC0000391ui64;
  NewMofResource[0] = 0;
  v0 = WmipAllocRegEntry(-1i64, 1342177280i64);
  if( !v0 )
    return -1073741670;
  memset(v6, 0i64, sizeof(v6));
  *(_DWORD *)v6 = 88;
  *(_DWORD *)&v6[16] = 2;
  *(_DWORD *)&v6[24] = -943770160;
  *(_DWORD *)&v6[28] = 298953435;
  *(_OWORD *)&v6[56] = v5;
  *(_DWORD *)&v6[32] = -1610593601;
  *(_DWORD *)&v6[36] = 271124169;
  result = WmipAddDataSource((_REGENTRY *)v0, (WMIREGINFOW *)v6, 0x58ui64, 0i64, 0i64);
  if( result >= 0 )
  {
    v2 = (__int64 *)*(&ExBootDevicesRemovedEvent + 408);
    for( i = (__int64 *)**(&ExBootDevicesRemovedEvent + 408); i != v2; i = (__int64 *)*i )
      *((_DWORD *)i + 4) |= 1u;
    result = WmipAddMofResource(
               *(tagDATASOURCE **)(v0 + 32),
               (WCHAR *)L"kernelbase.dll",
               1u,
               (WCHAR *)L"MofResourceName",
               (UINT8 *)NewMofResource);
    if( result >= 0 )
      return 0;
  }
  return result;
}

Referenced by:

WmipDriverEntry