MiLoadUserSymbols

VOID __stdcall MiLoadUserSymbols(_CONTROL_AREA *ControlArea, PVOID StartingAddress, _EPROCESS *Process){
  _FILE_OBJECT *v6; 
  unsigned __int64 v7; 
  __int64 v8; 
  unsigned int v9; 
  int v10; 
  int v11; 
  UINT64 CapturedCheckSum; 
  struct _UNICODE_STRING UnicodeString; 
  UnicodeString = 0i64;
  v6 = MiReferenceControlAreaFile(ControlArea);
  v7 = (unsigned __int64)v6;
  if( v6->FileName.Length )
  {
    v8 = *(_QWORD *)(*(_QWORD *)ControlArea + 56i64);
    v9 = *(_DWORD *)(v8 + 68);
    v10 = *(_DWORD *)(v8 + 60);
    v11 = DbgUnicodeStringToAnsiString((STRING *)&UnicodeString, &v6->FileName);
    MiDereferenceControlAreaFile((__int64)ControlArea, v7);
    if( v11 == 1 )
    {
      LODWORD(CapturedCheckSum) = v10;
      DbgLoadUserImageSymbols((STRING *)&UnicodeString, StartingAddress, (UINT64)Process, v9, CapturedCheckSum);
      RtlFreeAnsiString(&UnicodeString);
    }
  }
  else
  {
    MiDereferenceControlAreaFile((__int64)ControlArea, (unsigned __int64)v6);
  }
}

Referenced by:

MiMapViewOfImageSection