MiLogStrongCodeDriverLoadFailure
void __fastcall MiLogStrongCodeDriverLoadFailure(void *Src, __int64 a2){
__int64 v4;
__int64 v5;
__int64 v6;
__int64 v7;
__int64 v8;
UINT8 *v9;
__int64 *v10;
int v11;
int v12;
int v13;
int v14;
__int64 v15;
__int64 v16[4];
char v17[16];
int *v18;
int v19;
int v20;
__int64 v21;
int v22[2];
int *v23;
int v24;
int v25;
int *v26;
int v27;
int v28;
__int64 *v29;
int v30;
int v31;
if( *(_QWORD *)&qword_140C4EC20 )
{
if( **(_DWORD **)&qword_140C4EC20 > 5u )
{
if( tlgKeywordOn(*(__int64 *)&qword_140C4EC20, 0x400000000000i64) )
{
tlgCreate1Sz_char((__int64)v17, (const CHAR *)Src);
v20 = 0;
v22[1] = 0;
v25 = 0;
v28 = 0;
v31 = 0;
v18 = v22;
v21 = *(_QWORD *)(a2 + 96);
v22[0] = *(unsigned __int16 *)(a2 + 88);
v13 = *(_DWORD *)(a2 + 120);
v23 = &v13;
v14 = *(_DWORD *)(a2 + 156);
v26 = &v14;
v15 = 2164260864i64;
v24 = 4;
v27 = 4;
v29 = &v15;
v30 = 8;
v19 = 2;
tlgWriteEx_EtwWriteEx(v5, (unsigned __int8 *)&word_140024CF6, v4, 1u, v11, v12, 8u, (__int64)v16);
}
}
}
else
{
v6 = -1i64;
do
++v6;
while( *((_BYTE *)Src + v6) );
LODWORD(v7) = MiAllocatePool((struct _SLIST_ENTRY *)0x100);
v8 = v7;
if( v7 )
{
*(_QWORD *)(v7 + 16) = v7 + 48;
memmove((UINT8 *)(v7 + 48), (UINT8 *)Src, v6 + 1);
v9 = (UINT8 *)(v8 + v6 + 49);
*(_QWORD *)(v8 + 32) = v9;
memmove(v9, *(UINT8 **)(a2 + 96), *(unsigned __int16 *)(a2 + 88));
*(_WORD *)(v8 + 24) = *(_WORD *)(a2 + 88);
*(_WORD *)(v8 + 26) = *(_WORD *)(a2 + 88);
*(_DWORD *)(v8 + 40) = *(_DWORD *)(a2 + 120);
*(_DWORD *)(v8 + 44) = *(_DWORD *)(a2 + 156);
v10 = (__int64 *)qword_140C4CA50;
if( *(PVOID **)qword_140C4CA50 != &qword_140C4CA48 )
__fastfail(3u);
*(_QWORD *)v8 = &qword_140C4CA48;
*(_QWORD *)(v8 + 8) = v10;
*v10 = v8;
qword_140C4CA50 = v8;
}
}
}Referenced by:
MiProcessKernelCfgImageLoadConfig
MiResolveImageImports
MmLoadSystemImageEx