SmKmSqmAddToStream
VOID __stdcall SmKmSqmAddToStream(UINT64 EtwHandle, _SQM_STREAM_ENTRY *StreamEntries){
_DWORD *v2;
char *v3;
char *v5;
__int64 v6;
int v7;
int *v8;
const wchar_t *v9;
__int64 v10;
int v11;
int v12;
int v13;
int v14;
_EVENT_DATA_DESCRIPTOR UserData;
void *v16;
__int64 v17;
int *v18;
__int64 v19;
int *v20;
__int64 v21;
char v22;
char v23;
v13 = 2;
UserData.Ptr = (unsigned __int64)&v11;
v3 = &v22;
v12 = 6839;
v16 = &unk_140C12C60;
v11 = 11;
v18 = &v12;
v14 = 0;
v20 = &v13;
v5 = &v23;
*(_QWORD *)&UserData.Size = 4i64;
v6 = 2i64;
v17 = 16i64;
v19 = 4i64;
v21 = 4i64;
do
{
v7 = *v2;
v8 = v2 + 2;
*(_QWORD *)v3 = v2;
*(_QWORD *)(v5 - 20) = 4i64;
if( v7 != 1 )
v8 = &v14;
*(_QWORD *)(v5 - 12) = v8;
*(_QWORD *)(v5 - 4) = 4i64;
if( v7 == 2 )
v9 = (const wchar_t *)*((_QWORD *)v2 + 1);
else
v9 = L"0";
v10 = -1i64;
do
++v10;
while( v9[v10] );
*(_QWORD *)(v5 + 4) = v9;
*((_DWORD *)v5 + 3) = 2 * v10 + 2;
v2 += 4;
*((_DWORD *)v5 + 4) = 0;
v3 += 48;
v5 += 48;
--v6;
}
while( v6 );
EtwWriteEx(EtwHandle, &SmEventSQMStreamRow, 0i64, 0, 0, 0, (v3 - (char *)&UserData) >> 4, &UserData);
}Referenced by:
SmKmStoreTerminateWorker