import pymem, re

pm = pymem.Pymem(43084)
base = 0x7ff6afc20000

# Search for "Lord of the Pit" in strings or pointers
# We can search in InGameState or AreaInstance
igs = pm.read_ulonglong(base + 0x4430108)
print(f"InGameState: {hex(igs)}")

# Scan InGameState memory (0x2000 bytes)
igs_bytes = pm.read_bytes(igs, 0x1000)
for off in range(0, 0x1000, 8):
    ptr = int.from_bytes(igs_bytes[off:off+8], 'little')
    if 0x100000000 <= ptr <= 0x7fffffffffff:
        # Check if ptr has pointers
        try:
            raw = pm.read_bytes(ptr, 64)
            s = raw.split(b'\x00')[0].decode('ascii', errors='ignore')
            if len(s) >= 4 and s.isprintable() and any(k in s.lower() for k in ["quest", "map", "area", "objective", "content"]):
                print(f"InGameState +0x{off:x} -> {hex(ptr)}: \"{s}\"")
        except: pass
