PopCalculateHiberFileSize
VOID __stdcall PopCalculateHiberFileSize(UINT64 *HiberFileSize, UINT8 *HiberFileType){
UINT8 v4;
__int64 v5;
unsigned int v6;
unsigned int v7;
unsigned __int64 *v8;
__int128 v9;
unsigned __int64 v10;
__int128 v11;
unsigned __int64 v12;
v4 = 2;
v5 = *(_QWORD *)(**(&stru_140C4DB30 + 267) + 6928i64);
v6 = 100;
if( (unsigned int)PopHiberFileSizePercent >= 0x28 )
{
v6 = PopHiberFileSizePercent;
}
else
{
v4 = 2;
if( (unsigned int)(PopHiberFileType - 1) <= 1 )
v4 = PopHiberFileType;
v7 = 0;
v8 = (unsigned __int64 *)&PopHiberFileBucket;
while( 1 )
{
v9 = *(_OWORD *)v8;
v10 = *v8;
v12 = v8[2];
*((_QWORD *)&v11 + 1) = *((_QWORD *)&v9 + 1);
if( v5 << 12 <= v10 )
break;
++v7;
v8 += 3;
if( v7 >= 7 )
goto LABEL_10;
}
if( *((_DWORD *)&v11 + v4 + 2) < 0x64u )
v6 = *((_DWORD *)&v11 + v4 + 2);
}
LABEL_10:
*HiberFileSize = (v5 * (unsigned __int64)v6 / 0x64) << 12;
if( HiberFileType )
*HiberFileType = v4;
}Referenced by:
PopEnableHiberFile
PopHiberInitializeResources
PopSetHiberFileSize
PopSetHiberFileType