You can use enigma:
Code:
Engine en = Engine.Create();
UIReference msgListRef = en.UIReferences.FirstOrDefault(q => q.x008_Name == "Root.NormalLayer.chatoutput_dialog_backgroundScreen.chat_content.MessageListContainer.chat_messagelist");
UXChatMessageList msgList = UXHelper.GetControl<UXChatMessageList>(msgListRef);
int i = 0;
foreach(Enigma.D3.UI.Controls.UXChatMessageList.Struct001 x in msgList.x0A68_StructStart_Min52Bytes_ArrayEx_)
{
Console.WriteLine("Tab_" + (i++).ToString());
int j = 0;
foreach(Enigma.D3.UI.Controls.UXChatMessageList.ChatMessage y in x.x80_Array)
{
WriteLine("Message " + (++j).ToString() + ": \"" + y.x00_RefString.x04_PtrText + "\"");
}
WriteLine("====================================");
}