RtlFileMapInitializeByNtPath

NTSTATUS __stdcall RtlFileMapInitializeByNtPath(_RTL_FILE_MAP *FileMapOut, _UNICODE_STRING *NtPath){
  int v3; 
  VOID *v4; 
  UINT64 v6; 
  UINT64 v7; 
  UINT64 v8; 
  UINT64 v9; 
  UINT64 v10; 
  _IO_STATUS_BLOCK IoStatusBlock; 
  _OBJECT_ATTRIBUTES ObjectAttributes; 
  VOID *FileHandle; 

  LODWORD(v10) = 0;
  *(&ObjectAttributes.Length + 1) = 0;
  memset(&ObjectAttributes.Attributes + 1, 0, 20);
  FileHandle = 0i64;
  ObjectAttributes.RootDirectory = 0i64;
  LODWORD(v9) = 96;
  LODWORD(v8) = 1;
  LODWORD(v7) = 5;
  ObjectAttributes.ObjectName = NtPath;
  LODWORD(v6) = 128;
  IoStatusBlock = 0i64;
  ObjectAttributes.Length = 48;
  ObjectAttributes.Attributes = 576;
  v3 = ZwCreateFile(&FileHandle, 0x80100080ui64, &ObjectAttributes, &IoStatusBlock, 0i64, v6, v7, v8, v9, 0i64, v10);
  if( v3 < 0 )
  {
    v4 = FileHandle;
  }
  else
  {
    v4 = 0i64;
    *(_QWORD *)FileMapOut = FileHandle;
    v3 = 0;
    FileHandle = 0i64;
    *((_BYTE *)FileMapOut + 48) = 1;
  }
  if( v4 )
    ZwClose((_HANDLE)v4);
  return v3;
}

Referenced by:

AslFileMappingCreate