PopGetIoLocation
__int64 __fastcall PopGetIoLocation(__int64 a1, unsigned __int64 a2, _QWORD *a3){
unsigned __int64 v3;
_QWORD *v5;
__int64 v6;
__int64 v7;
unsigned __int64 v8;
_QWORD *v10;
unsigned __int64 v11;
unsigned __int64 v12;
v3 = *(_QWORD *)(a1 + 16);
v5 = *(_QWORD **)(a1 + 8);
if( a2 < v3 || (v6 = *v5, a2 >= *v5 + v3) )
{
v10 = *(_QWORD **)(a1 + 8);
v5 = v10;
v11 = *(_QWORD *)(a1 + 16);
if( a2 < v3 )
{
v5 = *(_QWORD **)a1;
v11 = 0i64;
*(_QWORD *)(a1 + 8) = *(_QWORD *)a1;
v3 = 0i64;
*(_QWORD *)(a1 + 16) = 0i64;
v10 = v5;
}
v6 = *v5;
v12 = v3;
v3 = v11;
if( a2 >= *v5 + v11 )
{
v6 = *v10;
v3 = v12;
do
{
v3 += v6;
v5 = v10 + 2;
*(_QWORD *)(a1 + 16) = v3;
v10 = v5;
*(_QWORD *)(a1 + 8) = v5;
v6 = *v5;
}
while( a2 >= *v5 + v3 );
}
}
v7 = v5[1];
v8 = a2 - v3;
*a3 = v6 - v8;
return v8 + v7;
}Referenced by:
PopHiberReadChecksums
PopRequestRead
PopRequestWrite
PopWriteHiberPages