HvpGenerateLogEntryHeader
INT64 __fastcall HvpGenerateLogEntryHeader(
INT64 a1,
INT64 a2,
INT64 a3,
UINT64 *a4,
UINT64 *a5,
INT64 a6,
INT64 a7,
CHAR a8){
int v8;
INT64 v11;
int v12;
bool v13;
INT64 result;
_DWORD *v15;
__int64 v16;
_OWORD *v17;
_OWORD *v18;
__int128 v19;
int v20;
UINT64 v21;
int v22;
int v23;
int v24;
int v25;
int v26;
int v27;
__int128 v28;
v8 = 0;
v11 = a1;
v12 = *(_DWORD *)a5;
LODWORD(v21) = *(_DWORD *)a5;
if( a8 )
{
v15 = *(_DWORD **)(a2 + 8);
v16 = 4i64;
v17 = *(_OWORD **)(a1 + 64);
v18 = v15;
do
{
*v18 = *v17;
v18[1] = v17[1];
v18[2] = v17[2];
v18[3] = v17[3];
v18[4] = v17[4];
v18[5] = v17[5];
v18[6] = v17[6];
v18 += 8;
v19 = v17[7];
v17 += 8;
*(v18 - 1) = v19;
--v16;
}
while( v16 );
v15[1] = *(_DWORD *)(v11 + 168);
v15[2] = *(_DWORD *)(v11 + 168);
v15[7] = 6;
v15[10] = *(_DWORD *)(v11 + 272);
v15[11] = 1;
v20 = HvpHeaderCheckSum(v15);
*((_DWORD *)a4 + 127) = v20;
LODWORD(v21) = v12 + 512;
}
v28 = 0i64;
v22 = 1162638920;
v23 = a6;
if( a8 != (_BYTE)v8 )
v23 = a6 - 512;
v25 = *(_DWORD *)(v11 + 168);
v13 = (*(_BYTE *)(*(_QWORD *)(v11 + 64) + 144i64) & 1) == 0;
v26 = *(_DWORD *)(v11 + 272);
if( !v13 )
v8 = 1;
v27 = a7;
v24 = v8;
HvpCopyDataToOffsetArray((INT64)&v22, 0x28ui64, a2, (INT64)a4, a4, &v21);
result = (unsigned int)v21;
*(_DWORD *)a5 = v21;
return result;
}Referenced by:
HvpGenerateLogEntry