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