думаю понятно.
	delphi Код:
	var
  i : integer;
  P : Pointer;
  OtherI1 : ^Integer;
  OtherI2 : integer;
begin
  i := 123123;
  p := @i;
  OtherI1 := p; //"ссылко"
  OtherI2 := integer(P^); //"копия"
  ShowMessage(inttostr(integer(p^))); //123123
  ShowMessage(inttostr(OtherI1^)); //123123
  ShowMessage(inttostr(OtherI2)); //123123
  i := 321321;
  ShowMessage(inttostr(integer(p^))); //321321
  ShowMessage(inttostr(OtherI1^)); //321321
  ShowMessage(inttostr(OtherI2)); //123123
end;
 
Добавлено через 3 минуты
в данном случае ему нужно
1. прочитать значение с off_40A798 - это базовый адрес по которому лежит экземпляр класса.
2. добавить к этому значение смещение переменной (на сколько там от базового адреса далеко нужная переменная)
3. загнать полученое значение в var value: ^НужныйТип;
4. юзать value^