EtwpInitializeAutoLoggers
VOID __stdcall EtwpInitializeAutoLoggers(){
__int128 v0;
__int128 v1;
__int128 v2;
__int128 v3;
__int128 v4;
__int128 v5;
int v6;
__int128 v7;
__int128 v8;
__int128 v9;
__int128 v10;
__int128 v11;
__int128 v12;
__int128 v13;
__int64 v14;
RTL_AVL_TABLE *v15;
void *PoolWithTag;
void *v17;
UINT64 v18;
UINT64 v19;
UINT64 v20[2];
struct _RTL_AVL_TABLE Table;
WCHAR SourceString[16];
__int128 Path[8];
int v24;
WCHAR LoggerKeyName[8];
__int128 v26;
__int128 v27;
__int128 v28;
__int128 v29;
__int128 v30;
__int128 v31;
__int128 v32;
__int64 v33;
v0 = *(_OWORD *)L"y\\Machine\\System\\CurrentControlSet\\Control\\WMI\\AutoLogger";
Path[0] = *(_OWORD *)L"\\Registry\\Machine\\System\\CurrentControlSet\\Control\\WMI\\AutoLogger";
v1 = *(_OWORD *)L"e\\System\\CurrentControlSet\\Control\\WMI\\AutoLogger";
Path[1] = v0;
v2 = *(_OWORD *)L"\\CurrentControlSet\\Control\\WMI\\AutoLogger";
Path[2] = v1;
v3 = *(_OWORD *)L"ControlSet\\Control\\WMI\\AutoLogger";
Path[3] = v2;
v4 = *(_OWORD *)L"et\\Control\\WMI\\AutoLogger";
Path[4] = v3;
v5 = *(_OWORD *)L"ol\\WMI\\AutoLogger";
Path[5] = v4;
Path[6] = v5;
v6 = *(_DWORD *)L"r";
Path[7] = *(_OWORD *)L"utoLogger";
v24 = v6;
v7 = *(_OWORD *)L"y\\Machine\\System\\CurrentControlSet\\Control\\WMI\\GlobalLogger";
*(_OWORD *)LoggerKeyName = *(_OWORD *)L"\\Registry\\Machine\\System\\CurrentControlSet\\Control\\WMI\\GlobalLogger";
v8 = *(_OWORD *)L"e\\System\\CurrentControlSet\\Control\\WMI\\GlobalLogger";
v26 = v7;
v9 = *(_OWORD *)L"\\CurrentControlSet\\Control\\WMI\\GlobalLogger";
v27 = v8;
v10 = *(_OWORD *)L"ControlSet\\Control\\WMI\\GlobalLogger";
v28 = v9;
v11 = *(_OWORD *)L"et\\Control\\WMI\\GlobalLogger";
v29 = v10;
v12 = *(_OWORD *)L"ol\\WMI\\GlobalLogger";
v30 = v11;
v13 = *(_OWORD *)L"lobalLogger";
v14 = *(_QWORD *)L"ger";
v31 = v12;
v32 = v13;
v33 = v14;
wcscpy(SourceString, L"GlobalLogger");
memset((INT64)&Table, 0i64);
RtlInitializeGenericTableAvl(
&Table,
(PRTL_AVL_COMPARE_ROUTINE)EtwpAvlCompareKeyNames,
EtwpAllocateKeyNameEntry,
EtwpFreeKeyNameEntry,
0i64);
PoolWithTag = ExAllocatePoolWithTag(PagedPool, 0x1FEui64, 0x74777445ui64);
if( !PoolWithTag )
goto LABEL_10;
LODWORD(v18) = 510;
if( (unsigned int)RtlGetPersistedStateLocation(
(WCHAR *)L"ETWAutoLoggerPath",
0i64,
0i64,
0i64,
PoolWithTag,
v18,
v20) )
{
ExFreePoolWithTag(PoolWithTag, 0x74777445u);
PoolWithTag = 0i64;
}
v17 = ExAllocatePoolWithTag(PagedPool, 0x1FEui64, 0x74777445ui64);
if( v17 )
{
LODWORD(v19) = 510;
if( (unsigned int)RtlGetPersistedStateLocation((WCHAR *)L"ETWGlobalLoggerPath", 0i64, 0i64, 0i64, v17, v19, v20) )
{
ExFreePoolWithTag(v17, 0x74777445u);
v17 = 0i64;
}
EtwStartAutoLogger(SourceString, LoggerKeyName, (UINT64 *)v17);
EtwpEnumerateAutologgerPath((PCWSTR)Path);
if( !PoolWithTag )
goto LABEL_8;
EtwpEnumerateAutologgerPath((PCWSTR)PoolWithTag);
}
if( PoolWithTag )
ExFreePoolWithTag(PoolWithTag, 0x74777445u);
LABEL_8:
if( v17 )
ExFreePoolWithTag(v17, 0x74777445u);
LABEL_10:
EtwpFreeKeyNameList(&Table, v15);
}Referenced by:
EtwInitializeSiloState