MiLogPinDriverAddress

VOID __fastcall MiLogPinDriverAddress(_QWORD *a1){
  _ETHREAD *CurrentThread; 
  unsigned __int64 v3; 
  __int64 v4; 
  WCHAR v5; 
  int v6; 
  struct _UNICODE_STRING *p_DestinationString_8; 
  int v8; 
  __int64 v9; 
  __int64 v10; 
  unsigned int v11; 
  unsigned int v12; 
  unsigned int v13; 
  unsigned int v14; 
  unsigned int v15; 
  unsigned int v16; 
  int v17; 
  unsigned int v18; 
  unsigned int v19; 
  int v20; 
  int v21; 
  __int64 v22; 
  __int64 DestinationString; 
  struct _UNICODE_STRING DestinationString_8; 
  struct _EVENT_DATA_DESCRIPTOR v25; 
  __int64 *v26; 
  __int64 v27; 
  int *v28; 
  __int64 v29; 
  int *v30; 
  __int64 v31; 
  int *v32; 
  __int64 v33; 
  int *v34; 
  __int64 v35; 
  int *v36; 
  __int64 v37; 
  int *v38; 
  __int64 v39; 
  int *v40; 
  __int64 v41; 
  int *v42; 
  __int64 v43; 
  int *v44; 
  __int64 v45; 
  wchar_t *Buffer; 
  int v47[2]; 
  int *v48; 
  __int64 v49; 
  int *v50; 
  __int64 v51; 
  __int64 *p_DestinationString; 
  __int64 v53; 
  CurrentThread = (_ETHREAD *)KeGetCurrentThread();
  v3 = *a1 & 0xFFFFFFFFFFFFF000ui64;
  DestinationString_8 = 0i64;
  --*((_WORD *)CurrentThread + 242);
  ExAcquireResourceSharedLite(&PsLoadedModuleResource, 1);
  v4 = MiLookupDataTableEntry(v3, 0);
  if( v4 )
  {
    v6 = *(_DWORD *)(v4 + 120);
    p_DestinationString_8 = (struct _UNICODE_STRING *)(v4 + 88);
    v8 = *(_DWORD *)(v4 + 156);
  }
  else
  {
    v6 = 0;
    v8 = 0;
    p_DestinationString_8 = &DestinationString_8;
    RtlInitUnicodeString(&DestinationString_8, L"Image not found", v5);
  }
  if( **(_DWORD **)&qword_140C4EC20 > 5u && tlgKeywordOn(*(__int64 *)&qword_140C4EC20, 0x400000000000i64) )
  {
    v11 = *(_DWORD *)a1;
    v26 = &v22;
    v22 = 1i64;
    v12 = (v11 >> 1) & 1;
    v28 = (int *)&v12;
    v27 = 8i64;
    v13 = (v11 >> 2) & 1;
    v30 = (int *)&v13;
    v29 = 4i64;
    v14 = (v11 >> 3) & 1;
    v32 = (int *)&v14;
    v31 = 4i64;
    v15 = (v11 >> 4) & 1;
    v34 = (int *)&v15;
    v33 = 4i64;
    v16 = (v11 >> 5) & 1;
    v36 = (int *)&v16;
    v35 = 4i64;
    v17 = (unsigned __int8)v11 >> 6;
    v38 = &v17;
    v18 = (v11 >> 10) & 3;
    v37 = 4i64;
    v40 = (int *)&v18;
    v42 = (int *)&v19;
    v44 = v47;
    Buffer = p_DestinationString_8->Buffer;
    v47[0] = p_DestinationString_8->Length;
    v48 = &v20;
    v50 = &v21;
    DestinationString = 2164260864i64;
    p_DestinationString = &DestinationString;
    v39 = 4i64;
    v41 = 4i64;
    v19 = (v11 >> 8) & 3;
    v43 = 4i64;
    v45 = 2i64;
    v47[1] = 0;
    v20 = v6;
    v49 = 4i64;
    v21 = v8;
    v51 = 4i64;
    v53 = 8i64;
    tlgWriteAgg(v10, (unsigned __int8 *)&byte_1400259F0, v9, 0x10u, &v25);
  }
  ExReleaseResourceLite(&PsLoadedModuleResource);
  KeLeaveCriticalRegionThread((__int64)CurrentThread);
}

Referenced by:

MiLogPinDriverAddressesWorker