KiInitSystem

VOID __stdcall KiInitSystem(){
  __int64 v0; 
  _QWORD *v1; 

  if( *(&KiSwapEvent + 118) )
    KiForceSymbolReferences();
  v0 = 1024i64;
  LODWORD(xmmword_140E018F0) = 0;
  *(&KiSwapEvent + 43) = (char *)&KiSwapEvent + 336;
  *(&KiSwapEvent + 42) = (char *)&KiSwapEvent + 336;
  *(&KiSwapEvent + 47) = (char *)&KiSwapEvent + 368;
  *(&KiSwapEvent + 46) = (char *)&KiSwapEvent + 368;
  *(&KiSwapEvent + 45) = (char *)&KiSwapEvent + 352;
  *(&KiSwapEvent + 44) = (char *)&KiSwapEvent + 352;
  *(&KiSwapEvent + 49) = (char *)&KiSwapEvent + 384;
  *(&KiSwapEvent + 48) = (char *)&KiSwapEvent + 384;
  KiProfileListHead.Blink = &KiProfileListHead;
  KiProfileListHead.Flink = &KiProfileListHead;
  qword_140C31D18 = (__int64)&KiProfileSourceListHead;
  KiProfileSourceListHead = (__int64)&KiProfileSourceListHead;
  *(&KiSwapEvent + 2) = (char *)&KiSwapEvent + 8;
  *(&KiSwapEvent + 1) = (char *)&KiSwapEvent + 8;
  *(_QWORD *)&KeServiceDescriptorTable = KiServiceTable;
  LODWORD(xmmword_140E018D0) = KiServiceLimit;
  *((_QWORD *)&xmmword_140E018D0 + 1) = KiArgumentTable;
  *(&KiSwapEvent + 35) = KiBalanceSetManagerDeferredRoutine;
  *(&KiSwapEvent + 36) = (char *)&KiSwapEvent + 32;
  *(&KiSwapEvent + 6) = (char *)&KiSwapEvent + 40;
  *(&KiSwapEvent + 5) = (char *)&KiSwapEvent + 40;
  *(&KiSwapEvent + 10) = (char *)&KiSwapEvent + 72;
  *(&KiSwapEvent + 9) = (char *)&KiSwapEvent + 72;
  v1 = (_QWORD *)((char *)&WheapErrorSourceTable + 3112);
  KeBugCheckCallbackLock = 0i64;
  KiSwapEvent = 1;
  *(&KiSwapEvent + 2) = 6;
  *(&KiSwapEvent + 1) = 0;
  *(&KiSwapEvent + 3) = 0i64;
  KiProcessOutSwapListHead = 0i64;
  KiStackInSwapListHead = 0i64;
  KeServiceDescriptorTableShadow = KeServiceDescriptorTable;
  xmmword_140CFBA50 = xmmword_140E018D0;
  xmmword_140CFBA60 = xmmword_140E018E0;
  xmmword_140CFBA70 = xmmword_140E018F0;
  KeServiceDescriptorTableFilter[0] = KeServiceDescriptorTable;
  xmmword_140CFBC10 = xmmword_140E018D0;
  xmmword_140CFBC20 = xmmword_140E018E0;
  xmmword_140CFBC30 = xmmword_140E018F0;
  *(&KiSwapEvent + 64) = 275;
  *(&KiSwapEvent + 39) = 0i64;
  *(&KiSwapEvent + 34) = 0i64;
  *(&KiSwapEvent + 16) = 1;
  *(&KiSwapEvent + 34) = 6;
  *(&KiSwapEvent + 9) = 0;
  *(&KiSwapEvent + 32) = 0;
  *(&KiSwapEvent + 66) = 6;
  *(&KiSwapEvent + 17) = 0;
  do
  {
    *v1 = 0i64;
    v1[1] = 0i64;
    v1[2] = 0i64;
    v1 += 8;
    --v0;
  }
  while( v0 );
  KiDynamicProcessorLock.Count = 1;
  *(_QWORD *)&KiDynamicProcessorLock.gap14[20] = &KiDynamicProcessorLock.gap14[12];
  *(_QWORD *)&KiDynamicProcessorLock.gap14[12] = &KiDynamicProcessorLock.gap14[12];
  *(&KiSwapEvent + 15) = KiSetVirtualHeteroClockIntervalRequestDpcRoutine;
  KiDynamicProcessorLock.Owner = 0i64;
  KiDynamicProcessorLock.Contention = 0;
  *(_WORD *)&KiDynamicProcessorLock.gap14[4] = 1;
  KiDynamicProcessorLock.gap14[6] = 6;
  *(_DWORD *)&KiDynamicProcessorLock.gap14[8] = 0;
  *(&KiSwapEvent + 24) = 531;
  *(&KiSwapEvent + 16) = 0i64;
  *(&KiSwapEvent + 19) = 0i64;
  *(&KiSwapEvent + 14) = 0i64;
}

Referenced by:

KiInitializeKernel