SmGlobalsInitialize

__int64 __fastcall SmGlobalsInitialize(__int64 a1){
  __int64 result; 
  __int128 v3; 
  memset(a1, 0i64);
  *(_QWORD *)&v3 = 59i64;
  *((_QWORD *)&v3 + 1) = HalSystemVectorDispatchEntry;
  SMKM_STORE_MGR::SmInitialize(a1, &v3);
  *(_QWORD *)(a1 + 1952) = 0i64;
  SmKmGlobals = PsInitialSystemProcess;
  *(_QWORD *)(a1 + 2016) = 0i64;
  *(_QWORD *)(a1 + 2024) = 0i64;
  *(_QWORD *)(a1 + 1992) = 0i64;
  *(_QWORD *)(a1 + 2000) = 0i64;
  *(_QWORD *)(a1 + 2008) = 0i64;
  *(_DWORD *)(a1 + 2032) = -1;
  *(_QWORD *)(a1 + 2040) = 0i64;
  *(_BYTE *)(a1 + 1960) = 5;
  SmcCacheManagerInitialize((struct EX_RUNDOWN_REF *)(a1 + 2048));
  SmRegistrationCtxInitialize((_QWORD *)(a1 + 2608));
  *(_QWORD *)(a1 + 2624) = 0i64;
  *(_QWORD *)(a1 + 2632) = 0i64;
  *(_QWORD *)(a1 + 2616) = 0i64;
  memset(a1 + 2640, 0i64);
  *(_WORD *)(a1 + 2648) = 1;
  *(_BYTE *)(a1 + 2650) = 6;
  *(_DWORD *)(a1 + 2652) = 0;
  *(_QWORD *)(a1 + 2664) = a1 + 2656;
  *(_QWORD *)(a1 + 2656) = a1 + 2656;
  memset(a1 + 2752, 0i64);
  result = a1 + 2768;
  *(_DWORD *)(a1 + 2764) = 0;
  *(_WORD *)(a1 + 2760) = 1;
  *(_BYTE *)(a1 + 2762) = 6;
  *(_QWORD *)(a1 + 2776) = a1 + 2768;
  *(_QWORD *)(a1 + 2768) = a1 + 2768;
  *(_DWORD *)(a1 + 2896) = 3;
  return result;
}

Referenced by:

SmInitSystem