Here's an example on how to convert hex code to pseudo-code.
// m_kHeader.txtCash.strLabel = GetResourceLabel(0)
0F // token: operator = (let)
35 // token: struct member access
EC F8 FF FF // import object reference
9D F9 FF FF // import object reference
00 00 // unknown separator
35 // token: struct member access
65 40 00 00 // export object reference
67 40 00 00 // export object reference
00 01 // unknown separator
01 // token: class variable
6B 40 00 00 // export object reference
1B // token: virtual function
25 13 00 00 00 00 00 00 // name reference
25 // token: zero const
16 // token: end of function
//Now replacing all the references in hex with pseudo-code references:
0F
35
<XComGame.XGTacticalScreenMgr.TLabeledText.strLabel>
<XComGame.XGTacticalScreenMgr.TLabeledText>
00 00
35
<XGHeadquartersUI.THQHeader.txtCash>
<XGHeadquartersUI.THQHeader>
00 01
01
<@m_kHeader>
1B
<GetResourceLabel>
25
16
Use ExtractNameLists utility which is a part of UPKUtils package to extract name, import and export tables from the package. You can then use that list to quickly find the right reference:
0xFFFFF8EC (-1812) ( EC F8 FF FF ): StrProperty'XComGame.XGTacticalScreenMgr.TLabeledText.strLabel'
UE Explorer has a Disassembled Tokens view, which can help with understanding the parts of hex code and matching them with decompiled code:
(0-6;000/000) [0F 35 EC F8 FF FF 9D F9 FF FF 00 00 35 65 40 00 00 67 40 00 00 00 01 01 6B 40 00 00 1B 25 13 00 00 00 00 00 00 25 16]
LetToken(59/39)
m_kHeader.txtCash.strLabel = GetResourceLabel(0)
(1-3;001/001) [35 EC F8 FF FF 9D F9 FF FF 00 00 35 65 40 00 00 67 40 00 00 00 01 01 6B 40 00 00]
StructMemberToken(47/27)
m_kHeader.txtCash.strLabel
(2-3;014/00C) [35 65 40 00 00 67 40 00 00 00 01 01 6B 40 00 00]
StructMemberToken(28/16)
m_kHeader.txtCash
(3-3;027/017) [01 6B 40 00 00]
InstanceVariableToken(9/5)
m_kHeader
(4-6;030/01C) [1B 25 13 00 00 00 00 00 00 25 16]
VirtualFunctionToken(11/11)
GetResourceLabel(0)
(5-5;039/025) [25]
IntZeroToken(1/1)
0
(6-6;03A/026) [16]
EndFunctionParmsToken(1/1)
)