HvpCopyDataToOffsetArray
VOID __stdcall HvpCopyDataToOffsetArray(INT64 a1, UINT64 a2, INT64 a3, INT64 a4, UINT64 *a5, UINT64 *a6){
UINT64 *v6;
UINT64 *v8;
size_t v9;
unsigned int v10;
unsigned int v11;
unsigned int v12;
size_t v14;
size_t v15;
v6 = a6;
v8 = a5;
v9 = a2;
v10 = *(_DWORD *)a6;
v11 = *(_DWORD *)a5;
if( (_DWORD)a2 )
{
v12 = 0;
while( 1 )
{
v14 = v9;
if( v10 + v9 > *(_DWORD *)(a3 + 24i64 * v11 + 16) )
v14 = *(_DWORD *)(a3 + 24i64 * v11 + 16) - v10;
v15 = v14;
memmove((VOID *)(*(_QWORD *)(a3 + 24i64 * v11 + 8) + v10), (const VOID *)(a1 + v12), v14);
v12 += v15;
v10 += v15;
v9 -= v15;
if( v10 == *(_DWORD *)(a3 + 24i64 * v11 + 16) )
{
if( !v9 )
{
LABEL_7:
v6 = a6;
v8 = a5;
break;
}
++v11;
v10 = 0;
}
if( !v9 )
goto LABEL_7;
}
}
*(_DWORD *)v8 = v11;
*(_DWORD *)v6 = v10;
}Referenced by:
HvpGenerateLogEntryDirtyData
HvpGenerateLogEntryHeader
HvpGenerateLogEntryMetadata