"""Q3/Q4. Two jobs. (1) callers() returned NOTHING for the market request builder FUN_180162c90 and the seasons builder FUN_180175bd0. That is the absence trap again: these are almost certainly virtual. So search for ABSOLUTE 8-byte pointers to them anywhere in the image (vtable membership) as well as rel32 direct calls. CONTROL: FUN_18011dc50 is KNOWN (prior run) to have zero rel32 callers and exactly one absolute-pointer site at 0x18021cc28 = model vtable +0x988. If my scanner does not reproduce that exact result, the scanner is wrong and every other row is void. (2) Enumerate the FUT UI surface names: every "*viewmodel" literal and every "data/ui/layout/fut/*" literal, so the transfer-market screen's provider can be named. """ import struct, re, traceback try: blocks = {} for b in mem.getBlocks(): blocks[str(b.getName())] = (int(b.getStart().getOffset()), int(b.getEnd().getOffset())) def blk(name): s, e = blocks[name] out = b"" a = s while a <= e: n = min(1 << 20, e - a + 1) out += read_bytes(a, n) a += n return s, out ts, text = blk(".text") rs, rdata = blk(".rdata") ds, data = blk(".data") print("len text=%d rdata=%d data=%d" % (len(text), len(rdata), len(data))) def abs_ptr_sites(va): pat = struct.pack("