MiSectionInitialization

INT64 __fastcall MiSectionInitialization(){
  _QWORD *v0; 
  _QWORD *v1; 
  _QWORD *v2; 
  UNICODE_STRING v4; 
  __int64 v5[2]; 
  int v6[2]; 
  __int64 v7; 
  __int64 *v8; 
  int v9; 
  int v10; 
  __int128 v11; 
  __int16 result; 
  char result_2; 
  int result_4; 
  int v15; 
  __int128 v16; 
  int v17; 
  int v18; 
  int v19; 
  NTSTATUS(__stdcall *v20)(_OB_OPEN_REASON, CHAR, _EPROCESS *, PVOID, UINT64 *, UINT64); 
  VOID(__fastcall *v21)(INT64, CHAR); 
  VOID(__stdcall *v22)(PVOID); 
  PVOID Object; 
  HANDLE Handle; 
  v6[1] = 0;
  v10 = 0;
  Object = 0i64;
  Handle = 0i64;
  dword_140C4EA90 = -1;
  qword_140C4C6C8 = 0i64;
  v4.Buffer = L"Section";
  v5[1] = (__int64)L"\\Device\\PhysicalMemory";
  *(_QWORD *)&v4.Length = 1048590i64;
  v5[0] = 3014700i64;
  memset((INT64)&result, 0i64);
  result_2 |= 4u;
  v20 = MiSectionOpen;
  result = 120;
  v21 = MiSectionClose;
  v18 = 1;
  v22 = MiSectionDelete;
  v15 = 256;
  v19 = 64;
  v17 = 983071;
  v16 = MiSectionMapping;
  result_4 = 128;
  if( (int)ObCreateObjectType(&v4, (__int64)&result, 0i64, (__int64)&MmSectionObjectType) >= 0 )
  {
    LODWORD(v0) = MiAllocatePool((struct _SLIST_ENTRY *)0x100);
    v1 = v0;
    if( v0 )
    {
      memset((INT64)&qword_140C4C6F0, 0i64);
      v1[5] = 0i64;
      dword_140C4C7B8 |= 0x400u;
      v7 = 0i64;
      v8 = v5;
      qword_140C4C6F0 = (INT64)&qword_140C4C780;
      qword_140C4C780 = (__int64)v1;
      qword_140C4C798 = 1i64;
      *v1 = &qword_140C4C780;
      v6[0] = 48;
      v9 = 65552;
      v11 = 0i64;
      if( (int)ObCreateObject(0, MmSectionObjectType, (__int64)v6, 0, 0, 64, 64, 0, &Object) < 0 )
      {
        ExFreePoolWithTag(v1, 0);
      }
      else
      {
        v2 = Object;
        *((_QWORD *)Object + 5) = &qword_140C4C780;
        v2[6] = 0xFFFFFFFFFFFFi64;
        *((_DWORD *)v2 + 14) = 0;
        *((_DWORD *)v2 + 15) = *((_DWORD *)v2 + 15) & 0xFFFFF000 | 0x40;
        if( ObInsertObject(v2, 0i64, 4ui64, 0i64, 0i64, &Handle) >= 0 )
        {
          ObCloseHandle(Handle, 0);
          return 1i64;
        }
      }
    }
  }
  return 0i64;
}

Referenced by:

MiInitSystem