ST_STORE::StDmInitialize

unsigned __int64 __fastcall ST_STORE::StDmInitialize(__int64 a1, __int64 a2){
  __int64 v4; 
  __int64 v5; 
  _DWORD *v6; 
  __int64 v7; 
  unsigned int v8; 
  unsigned __int64 result; 
  int v10; 
  int v11; 
  union _LARGE_INTEGER PerformanceFrequency; 
  PerformanceFrequency.QuadPart = 0i64;
  memset(a1 + 192, 0i64);
  v10 = 12;
  *(_OWORD *)a1 = 0i64;
  v11 = 4;
  *(_QWORD *)(a1 + 16) = 0i64;
  *(_OWORD *)(a1 + 24) = 0i64;
  *(_OWORD *)(a1 + 40) = 0i64;
  *(_QWORD *)(a1 + 56) = 0i64;
  *(_OWORD *)(a1 + 64) = 0i64;
  *(_QWORD *)(a1 + 80) = 0i64;
  *(_OWORD *)(a1 + 88) = 0i64;
  *(_OWORD *)(a1 + 104) = 0i64;
  *(_QWORD *)(a1 + 120) = 0i64;
  *(_OWORD *)(a1 + 128) = 0i64;
  *(_QWORD *)(a1 + 144) = 0i64;
  *(_OWORD *)(a1 + 152) = 0i64;
  *(_OWORD *)(a1 + 168) = 0i64;
  *(_QWORD *)(a1 + 184) = 0i64;
  SmHpChunkHeapInitialize(a1 + 192, (INT64)&v10);
  memset(a1 + 1376, 0i64);
  *(_QWORD *)(a1 + 1448) = a1 + 1440;
  *(_QWORD *)(a1 + 1440) = 0i64;
  *(_DWORD *)(a1 + 1428) = (__int64)(KeMaximumIncrement
                                   * (unsigned __int64)(unsigned int)((__int64)KUSER_SHARED_DATA.TickCountQuad >> 12)) >> 17;
  *(_DWORD *)(a1 + 1472) = 0;
  *(_QWORD *)(a1 + 1504) = a2;
  memset(a1 + 1512, 0i64);
  *(_QWORD *)(a1 + 1584) = a1 + 1576;
  *(_QWORD *)(a1 + 1576) = 0i64;
  *(_DWORD *)(a1 + 1564) = (__int64)(KeMaximumIncrement
                                   * (unsigned __int64)(unsigned int)((__int64)KUSER_SHARED_DATA.TickCountQuad >> 12)) >> 17;
  *(_DWORD *)(a1 + 1608) = 1;
  *(_QWORD *)(a1 + 1640) = a2;
  memset(a1 + 1648, 0i64);
  *(_QWORD *)(a1 + 1720) = a1 + 1712;
  *(_QWORD *)(a1 + 1712) = 0i64;
  *(_DWORD *)(a1 + 1700) = (__int64)(KeMaximumIncrement
                                   * (unsigned __int64)(unsigned int)((__int64)KUSER_SHARED_DATA.TickCountQuad >> 12)) >> 17;
  *(_DWORD *)(a1 + 1608) = 2;
  *(_QWORD *)(a1 + 1760) = 0i64;
  *(_QWORD *)(a1 + 1768) = 0i64;
  v4 = 6i64;
  *(_QWORD *)(a1 + 1752) = 0i64;
  *(_QWORD *)(a1 + 1624) = 0x20000000i64;
  *(_QWORD *)(a1 + 1616) = 0x20000000i64;
  v5 = a1 + 1104;
  *(_QWORD *)(a1 + 1640) = a2;
  *(_QWORD *)(a1 + 1488) = 1i64;
  *(_QWORD *)(a1 + 1496) = 0x1FFFFFFFi64;
  *(_QWORD *)(a1 + 1480) = 1i64;
  *(_QWORD *)(a1 + 1632) = 0x3FFFFFFFi64;
  *(_QWORD *)(a1 + 16) = a1 + 1376;
  *(_QWORD *)(a1 + 80) = a1 + 1512;
  *(_QWORD *)(a1 + 144) = a1 + 1648;
  do
  {
    *(_OWORD *)v5 = 0i64;
    *(_QWORD *)(v5 + 16) = 0i64;
    *(_DWORD *)v5 = -1;
    v5 += 24i64;
    --v4;
  }
  while( v4 );
  v6 = (_DWORD *)(a1 + 1248);
  v7 = 8i64;
  do
  {
    *v6 = -1;
    v6 += 4;
    --v7;
  }
  while( v7 );
  v8 = *(_DWORD *)(a1 + 864) & 0xFFFFFFFE;
  *(_DWORD *)(a1 + 872) = 4;
  *(_BYTE *)(a1 + 776) = 2;
  *(_DWORD *)(a1 + 864) = v8 | 6;
  *(_DWORD *)(a1 + 1024) = -10001;
  KeQueryPerformanceCounter(&PerformanceFrequency);
  result = (unsigned __int64)((unsigned __int128)(10000 * PerformanceFrequency.QuadPart * (__int128)0x431BDE82D7B634DBi64) >> 64) >> 63;
  *(_DWORD *)(a1 + 1008) = 10000 * PerformanceFrequency.QuadPart / 1000000;
  return result;
}

Referenced by:

No references.