"""DIM4 final. (a) FutGetSuggestedPricing deser 0x180163ee0 top-level shape -- the loop terminates on 0xd (END_ARRAY) at the outer level, so it may be a BARE top-level ARRAY rather than a keyed object; that is a freeze-risk decision and must be read, not guessed. (b) The auction-limit publisher literals NUM_MAX_AUCTIONS / NUM_CURRENT_AUCTIONS / IS_MAX_AUCTIONS / TRADE_DATA_AVAILABLE -- which model fields back the "can I list another card" gate. (c) where the numeric error code fed to the error mappers comes from. CONTROL for (b): TRADE_PILE_SIZE 0x1801eafe8 is ALREADY PROVEN (previous run) to be published by FUN_18000d550 reading model vt+0xa58 -> model+0x1fd1c. If the same lea-then-call-slot shape shows up for the AUCTION literals, the reading is the same form that was already validated; if it does not, I report nothing for (b). """ import traceback try: print("########## SuggestedPricing deser 0x180163ee0 (FULL) ##########") s = dec(0x180163ee0) print("len(src)=%d" % len(s)); print(s) print("\n########## auction-limit publisher literals ##########") for nm, a in [("NUM_CURRENT_AUCTIONS", 0x1801f3658), ("NUM_MAX_AUCTIONS", 0x1801f3670), ("IS_MAX_AUCTIONS", 0x1801f3688), ("TRADE_DATA_AVAILABLE", 0x180239190), ("TRADE_PILE_SIZE(CONTROL)", 0x1801eafe8), ("FUT_TOTAL_AUCTIONS", 0x18020a080)]: print("\n -- %s @ %#x" % (nm, a)) xs = xrefs_to(a) for frm, typ, fn, ent in xs: print(" from %#x %s in %s @ %#x" % (frm, typ, fn, ent)) if not xs: print(" (no xrefs)") print("\n########## publisher FUN_180163600 / count-object accessors ##########") for a in (0x180163600, 0x1801635a0): print("\n---- %#x ----" % a) s = dec(a); print("len(src)=%d" % len(s)); print(s) print("\n########## callers of the error mappers ##########") for a in (0x180165050, 0x1801844c0): print("\n -- callers of %#x" % a) for c in callers(a): print(" %s" % (c,)) except Exception: traceback.print_exc()