"""ADVERSARIAL VERIFY Dimension 2: gate-byte writers + readers. Attacks (priority = claims that change what we send): D2.6 Objectives deser cases 0xfd/0xfe are CLEAR-ONLY (value==0 => field=0, no set). -> action "DO NOT send enableObjectives:0". If it also SETs, action is wrong. D2.5 Draft: FUN_1800b2680 reads slot 0x2c8 (0x1fd3d) / 0x2d0 (0x1fd3e) and gates the tile GOTO_DRAFT_*; the byte ACTUALLY gates (a cmp/test on the model slot result). D2.3 Seasons: FUN_1800b2680 season tiles drawn UNCONDITIONALLY (no cVar gate). D2.2 Applier FUN_18011dc50 writes byte = (field==1); one MOV per byte. D2.1 Publisher FUN_18006cc60 IS_* names. Control: draft slot 0x2c8 must decode to disp 0x1fd3d via the accessor stub; if not the whole slot->disp table is unreliable. """ import traceback try: PUB = 0x18006cc60 DESER = 0x18013c6d0 APPLY = 0x18011dc50 HUB = 0x1800b2680 SEASONPANEL = 0x1800b0e20 print("=== PUBLISHER FUN_18006cc60 ===") print(dec(PUB, 240)) print("\n=== APPLIER FUN_18011dc50 ===") print(dec(APPLY, 240)) print("\n=== HUB-TILE BUILDER FUN_1800b2680 ===") print(dec(HUB, 300)) # deser: only print the arms for the mode atoms we care about print("\n=== DESER FUN_18013c6d0 (full) ===") ds = dec(DESER, 300) print("len=%d" % len(ds)) print(ds) except Exception: traceback.print_exc()