PopWriteChecksumPages

UINT64 __fastcall PopWriteChecksumPages(_QWORD *a1){
  __int64 v1; 
  unsigned __int64 v2; 
  unsigned __int64 v3; 
  UINT64 result; 
  unsigned __int64 v5; 
  unsigned __int64 v6; 
  v1 = a1[52];
  v2 = (unsigned __int64)(2 * v1 + 4095) >> 12;
  if( v2 )
  {
    v3 = (unsigned __int64)(a1[47] + 4095i64) >> 12;
    result = (v3 + v2) << 12;
    if( result <= qword_140C23450 )
    {
      v5 = __rdtsc();
      *(_QWORD *)(a1[25] + 128i64) = v1;
      *(_QWORD *)(a1[25] + 120i64) = v3;
      PopWriteHiberPages((_POP_HIBER_CONTEXT *)a1, (VOID *)a1[54], v2, v3);
      v6 = __rdtsc();
      result = (((unsigned __int64)HIDWORD(v6) << 32) | (unsigned int)v6) - v5;
      qword_140C237F0 += result;
    }
  }
  return result;
}

Referenced by:

PopSaveHiberContext