HvpGenerateLogEntryHeader
NTSTATUS __stdcall 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;
NTSTATUS result;
_HBASE_BLOCK *v15;
__int64 v16;
_OWORD *v17;
_HBASE_BLOCK *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 = *(_HBASE_BLOCK **)(a2 + 8);
v16 = 4i64;
v17 = *(_OWORD **)(a1 + 64);
v18 = v15;
do
{
*(_OWORD *)&v18->Signature = *v17;
*(_OWORD *)((char *)&v18->TimeStamp.QuadPart + 4) = v17[1];
*(_OWORD *)&v18->Format = v17[2];
*(_OWORD *)v18->FileName = v17[3];
*(_OWORD *)&v18->FileName[16] = v17[4];
*(_OWORD *)&v18->FileName[32] = v17[5];
*(_OWORD *)&v18->FileName[48] = v17[6];
v18 = (_HBASE_BLOCK *)((char *)v18 + 128);
v19 = v17[7];
v17 += 8;
*(_OWORD *)v18[-1].ThawLogId.Data4 = v19;
--v16;
}
while( v16 );
v15->Sequence1 = *(_DWORD *)(v11 + 168);
v15->Sequence2 = *(_DWORD *)(v11 + 168);
v15->Type = 6;
v15->Length = *(_DWORD *)(v11 + 272);
v15->Cluster = 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 = v21;
*(_DWORD *)a5 = v21;
return result;
}Referenced by:
HvpGenerateLogEntry