"""DIMENSION 5 SBC/Objectives -- query 2. Q1 established so far: enableSquadBuildingSetsFeature literal @0x180230eb8 has EXACTLY ONE xref, a DATA ref from 0x1802d2f60. Test that 0x1802d2f60 is the atom-dictionary slot for atom 0x100 (dict base 0x1802d2760 + 0x100*8 = 0x1802d2f60). If so, the flag is a PURE dictionary entry: never read as a named input, never emitted -- so CardsDLL does not gate SBC on it, and a Blaze-config delivery of it can only reach the packed script layer, never CardsDLL. Also: - callers of 0x180154990 (the SBC stub loader) -> where the SBC menu/data path enters. - FUN_180007c30/FUN_180007c40 -> is 'FUT/SBC_USE_STUBS' a client tunable (not server)? - publisher FUN_18006cc60 full body -> is there ANY SBC/objectives enable name emitted? - scan for any published string mentioning SBC / SQUAD_BUILD / CHALLENGE enable. """ import traceback try: dictbase = 0x1802d2760 for atom in (0x100, 0xfd, 0xfe): slot = dictbase + atom * 8 ptr = qword(slot) print("atom %#x -> dict slot %#x -> ptr %#x = %r" % (atom, slot, ptr, rd_str(ptr, 50) if 0x180000000 <= ptr < 0x181000000 else "?")) print("\n=== callers of 0x180154990 (SBC stub loader) ===") for ent, nm in callers(0x180154990): print(" %#x %s" % (ent, nm)) print("\n=== FUN_180007c30 (config store getter?) ===") print(dec(0x180007c30)[:1500]) print("\n=== FUN_180007c40 (named-config lookup?) ===") print(dec(0x180007c40)[:2500]) print("\n=== publisher FUN_18006cc60 full ===") d = dec(0x18006cc60) print("LEN", len(d)) print(d) except Exception: traceback.print_exc()