HvpApplyLogEntryDataToFileBackedHive
NTSTATUS __stdcall HvpApplyLogEntryDataToFileBackedHive(ULONG_PTR BugCheckParameter2, INT64 a2, INT64 a3){
UINT8 *v3;
int v4;
__int64 v5;
UINT8 *v6;
_HHIVE *v9;
UINT64 v10;
ULONG_PTR v11;
NTSTATUS result;
_DWORD *v13;
v4 = 0;
v5 = 0i64;
v6 = v3;
v9 = *(_HHIVE **)&BugCheckParameter2;
*(_DWORD *)(*(_QWORD *)(*(_QWORD *)&BugCheckParameter2 + 64i64) + 40i64) = *(_DWORD *)(a2 + 16);
if( *(_DWORD *)(a2 + 20) )
{
while( 1 )
{
v10 = *(unsigned int *)(a3 + 8 * v5 + 4);
v11 = *(_DWORD *)(a3 + 8 * v5);
if( !HvpSetRangeProtection((ULONG_PTR)v9, v11, v10, 4ui64) )
return -1073741670;
HvpCopyModifiedData(v9, v11, v6, (unsigned int)v10);
v6 += v10;
v4 += v10;
v5 = (unsigned int)(v5 + 1);
if( (unsigned int)v5 >= *(_DWORD *)(a2 + 20) )
goto LABEL_4;
}
}
else
{
LABEL_4:
result = 1073741833;
*v13 = v4;
}
return result;
}Referenced by:
HvpApplyIncrementalLogFile
HvpApplyLegacyLogFile