KiTraceLogNmiCallback
VOID __fastcall KiTraceLogNmiCallback(UINT64 a1, INT64 a2, WCHAR a3){
BOOL v4;
__int64 v5;
int v6;
int v7;
int v8;
PVOID *i;
UINT64 v10;
int v11;
int v12;
int DestinationString;
struct _UNICODE_STRING DestinationString_8;
__int64 v15;
UINT64 v16;
struct _EVENT_DATA_DESCRIPTOR v17;
int *v18;
int v19;
int v20;
wchar_t *Buffer;
int v22[2];
__int64 *v23;
int v24;
int v25;
int *v26;
int v27;
int v28;
int *v29;
int v30;
int v31;
int *p_DestinationString;
int v33;
int v34;
UINT64 *v35;
int v36;
int v37;
struct _UNICODE_STRING *p_DestinationString_8;
int v39;
int v40;
DestinationString_8 = 0i64;
RtlInitUnicodeString(&DestinationString_8, (PCWSTR)&stru_1407D2340.Xmm13, a3);
v5 = -1i64;
v6 = 0;
v7 = 0;
v8 = 0;
if( (a1 < PsNtosImageBase || a1 >= PsNtosImageEnd) && (a1 < (unsigned __int64)PsHalImageBase || a1 >= PsHalImageEnd) )
{
LOBYTE(v4) = 1;
ExAcquireResourceSharedLite(&PsLoadedModuleResource, v4);
for( i = (PVOID *)PsLoadedModuleList; i != &PsLoadedModuleList; i = (PVOID *)*i )
{
v10 = (UINT64)i[6];
if( a1 >= v10 && a1 < v10 + *((unsigned int *)i + 16) )
{
v7 = *((_DWORD *)i + 30);
v5 = (__int64)i[6];
v8 = *((_DWORD *)i + 39);
v6 = *((_DWORD *)i + 16);
DestinationString_8 = *(struct _UNICODE_STRING *)(i + 9);
break;
}
}
if( (unsigned int)dword_140C01A70 > 5 )
{
if( tlgKeywordOn((__int64)&dword_140C01A70, 0x400000000000i64) )
{
v20 = 0;
v22[1] = 0;
v25 = 0;
v28 = 0;
v31 = 0;
v34 = 0;
v37 = 0;
v40 = 0;
v18 = v22;
Buffer = DestinationString_8.Buffer;
v22[0] = DestinationString_8.Length;
v23 = &v15;
v26 = &v11;
v29 = &v12;
p_DestinationString = &DestinationString;
v35 = &v16;
p_DestinationString_8 = &DestinationString_8;
v24 = 8;
v27 = 4;
v30 = 4;
v33 = 4;
v36 = 8;
v39 = 8;
v19 = 2;
v15 = v5;
v11 = v6;
v12 = v7;
DestinationString = v8;
v16 = a1;
*(_QWORD *)&DestinationString_8.Length = 0x1000000i64;
tlgWriteTransfer_EtwWriteTransfer(
(__int64)&dword_140C01A70,
(unsigned __int8 *)&word_140024926,
0i64,
0i64,
0xAu,
&v17);
}
}
ExReleaseResourceLite(&PsLoadedModuleResource);
}
}Referenced by:
KeRegisterNmiCallback