{
  "kind": "hwanse-hud-menu-top-sequence-context-review",
  "source": "tools/build_hud_menu_top_sequence_context_review.py",
  "status": "top-menu-sequence-grounded-opener-unproven",
  "summary": {
    "topMenuObjectSequenceVaHex": "0x004ddc6c",
    "topMenuSequenceAllRefCount": 1,
    "topMenuSequenceAllRefsHex": [
      "0x0047e6b0"
    ],
    "topMenuSequenceTextRefCount": 0,
    "topMenuWrapperVaHex": "0x0047e6a0",
    "topMenuWrapperDirectRefCount": 0,
    "topMenuWrapperDirectRefsHex": [],
    "topMenuPreWrapperGateVaHex": "0x0047e688",
    "topMenuPreWrapperGateDirectRefCount": 1,
    "topMenuPreWrapperGateDirectRefsHex": [
      "0x0047e678"
    ],
    "topMenuRejectLoopVaHex": "0x0047e67c",
    "topMenuRejectLoopDirectRefCount": 6,
    "topMenuRejectLoopDirectRefsHex": [
      "0x0047e68c",
      "0x0047e694",
      "0x0047e69c",
      "0x0047e6d8",
      "0x0047e6f4",
      "0x0047e700"
    ],
    "topMenuParentContextVaHex": "0x0047e624",
    "topMenuParentDirectRefCount": 0,
    "topMenuParentDirectRefsHex": [],
    "wrapperCallCommandVaHex": "0x0047e6ac",
    "wrapperCallOperandVaHex": "0x004ddc6c",
    "wrapperCallsTopMenuSequence": true,
    "topSequenceRefIsWrapperOperandOnly": true,
    "statusRegion6ChildScriptRefCount": 1,
    "rightPanelRegion3ChildScriptRefCount": 1,
    "rightPanelRegion4ChildScriptRefCount": 3,
    "rightPanelPageScriptRefCount": 0,
    "introTitleResourceListVaHex": "0x004a2cb0",
    "introTitleResourceListPreview": [
      "middata.mlk",
      "compile.cns",
      "aaa.cns",
      "logo_00.cns",
      "title.cns",
      "map_k1.cns",
      "map_k2.cns",
      "btl_k1.cns",
      "btl_k2.cns"
    ],
    "parentContextClassification": "intro/title-resource-context",
    "normalFieldEscOpenerProven": false,
    "decision": "0x004ddc6c top-menu sequence is grounded as the #6/#3/#4 menu construction stream, but its only direct reference is the inline operand of the 0x04 call command at 0x0047e6ac. The immediate pre-wrapper gate at 0x0047e688 is now decoded as two 0x6e active group-key branches and one 0xe6 active-descriptor-count branch, all targeting the stop/jump loop at 0x0047e67c when the gate fails. The nearby parent resource list contains intro/title assets such as compile.cns, aaa.cns, logo_00.cns, title.cns, and btl_k*.  The wrapper 0x0047e6a0 and parent context 0x0047e624 have no direct pointer refs, so this pass does not prove the normal-field ESC/X opener."
  },
  "contexts": {
    "parentContext": {
      "startVa": 4711972,
      "startVaHex": "0x0047e624",
      "decodedCommandCount": 15,
      "commands": [
        {
          "vaHex": "0x0047e624",
          "opcodeHex": "0x40",
          "opcodeName": "bind/input-base",
          "length": 4,
          "summary": null,
          "rawHex": "40 00 00 00"
        },
        {
          "vaHex": "0x0047e628",
          "opcodeHex": "0x60",
          "opcodeName": "runtime-index-queue-reset",
          "length": 4,
          "summary": "reset runtime descriptor index queue at 0x004576e8; handler advances +0x04",
          "rawHex": "60 00 00 00"
        },
        {
          "vaHex": "0x0047e62c",
          "opcodeHex": "0x07",
          "opcodeName": "create-child-object",
          "length": 8,
          "summary": "create child object kind=0x00 script=0x0047e720; handler advances +0x08",
          "rawHex": "07 00 00 00 20 e7 47 00"
        },
        {
          "vaHex": "0x0047e634",
          "opcodeHex": "0x28",
          "opcodeName": "runtime-object-slot",
          "length": 4,
          "summary": "store current child object slot=1 through 0x0059dd70[1]; handler advances +0x04",
          "rawHex": "28 00 01 00"
        },
        {
          "vaHex": "0x0047e638",
          "opcodeHex": "0x07",
          "opcodeName": "create-child-object",
          "length": 8,
          "summary": "create child object kind=0x00 script=0x004ded88; handler advances +0x08",
          "rawHex": "07 00 00 00 88 ed 4d 00"
        },
        {
          "vaHex": "0x0047e640",
          "opcodeHex": "0x28",
          "opcodeName": "runtime-object-slot",
          "length": 4,
          "summary": "store current child object slot=6 through 0x0059dd70[6]; handler advances +0x04",
          "rawHex": "28 00 06 00"
        },
        {
          "vaHex": "0x0047e644",
          "opcodeHex": "0x07",
          "opcodeName": "create-child-object",
          "length": 8,
          "summary": "create child object kind=0x00 script=0x004dedd4; handler advances +0x08",
          "rawHex": "07 00 00 00 d4 ed 4d 00"
        },
        {
          "vaHex": "0x0047e64c",
          "opcodeHex": "0x28",
          "opcodeName": "runtime-object-slot",
          "length": 4,
          "summary": "store current child object slot=10 through 0x0059dd70[10]; handler advances +0x04",
          "rawHex": "28 00 0a 00"
        },
        {
          "vaHex": "0x0047e650",
          "opcodeHex": "0x07",
          "opcodeName": "create-child-object",
          "length": 8,
          "summary": "create child object kind=0x00 script=0x0047e75c; handler advances +0x08",
          "rawHex": "07 00 00 00 5c e7 47 00"
        },
        {
          "vaHex": "0x0047e658",
          "opcodeHex": "0x28",
          "opcodeName": "runtime-object-slot",
          "length": 4,
          "summary": "store current child object slot=2 through 0x0059dd70[2]; handler advances +0x04",
          "rawHex": "28 00 02 00"
        },
        {
          "vaHex": "0x0047e65c",
          "opcodeHex": "0x07",
          "opcodeName": "create-child-object",
          "length": 8,
          "summary": "create child object kind=0x00 script=0x0047e704; handler advances +0x08",
          "rawHex": "07 00 00 00 04 e7 47 00"
        },
        {
          "vaHex": "0x0047e664",
          "opcodeHex": "0x81",
          "opcodeName": "selected-root-store",
          "length": 8,
          "summary": "store selected root from inline pointer table into 0x0059de30; slot=0x00 table=0x004a2cb0; handler advances +0x08",
          "rawHex": "81 00 00 00 b0 2c 4a 00"
        },
        {
          "vaHex": "0x0047e66c",
          "opcodeHex": "0x82",
          "opcodeName": "selected-root-call",
          "length": 4,
          "summary": "call selected root if 0x0059de30 is set; handler first advances +0x04, pushes that continuation, then jumps to 0x0059de30",
          "rawHex": "82 00 00 00"
        },
        {
          "vaHex": "0x0047e670",
          "opcodeHex": "0x14",
          "opcodeName": "unknown",
          "length": 4,
          "summary": null,
          "rawHex": "14 c6 02 00"
        },
        {
          "vaHex": "0x0047e674",
          "opcodeHex": "0x00",
          "opcodeName": "destroy/stop",
          "length": 4,
          "summary": null,
          "rawHex": "00 02 00 00"
        }
      ]
    },
    "preWrapperGate": {
      "startVa": 4712072,
      "startVaHex": "0x0047e688",
      "decodedCommandCount": 8,
      "commands": [
        {
          "vaHex": "0x0047e688",
          "opcodeHex": "0x6e",
          "opcodeName": "active-group-key-branch",
          "length": 8,
          "summary": "branch if active script group key equals (0x01,0x00) -> 0x0047e67c; else advances +0x08",
          "rawHex": "6e 01 00 00 7c e6 47 00"
        },
        {
          "vaHex": "0x0047e690",
          "opcodeHex": "0x6e",
          "opcodeName": "active-group-key-branch",
          "length": 8,
          "summary": "branch if active script group key equals (0x01,0x01) -> 0x0047e67c; else advances +0x08",
          "rawHex": "6e 01 01 00 7c e6 47 00"
        },
        {
          "vaHex": "0x0047e698",
          "opcodeHex": "0xe6",
          "opcodeName": "active-descriptor-count-branch",
          "length": 8,
          "summary": "branch on active descriptor count 0x004576e8; if count is zero -> 0x0047e67c, otherwise advances +0x08",
          "rawHex": "e6 00 00 00 7c e6 47 00"
        },
        {
          "vaHex": "0x0047e6a0",
          "opcodeHex": "0x4a",
          "opcodeName": "active-object-flag-mask",
          "length": 8,
          "summary": "active-object flag set; filter object+0x14 mask=0x0001; flags=0x80000000",
          "rawHex": "4a 01 01 00 00 00 00 80"
        },
        {
          "vaHex": "0x0047e6a8",
          "opcodeHex": "0x10",
          "opcodeName": "byte-store/expression",
          "length": 4,
          "summary": null,
          "rawHex": "10 c0 3d 02"
        },
        {
          "vaHex": "0x0047e6ac",
          "opcodeHex": "0x04",
          "opcodeName": "call/push-continuation",
          "length": 8,
          "summary": "call/push-continuation -> 0x004ddc6c; pushes return address 0x0047e6b4 to object return stack object+0x44[object+0x5c], increments object+0x5c, then jumps to target",
          "rawHex": "04 00 00 00 6c dc 4d 00"
        },
        {
          "vaHex": "0x0047e6b4",
          "opcodeHex": "0x11",
          "opcodeName": "resource/sprite-command",
          "length": 12,
          "summary": "field arithmetic/write command; group=0xc0 field=+0x0002 literal=0 args=0x2f46,0x0001",
          "rawHex": "11 c0 02 00 00 00 00 00 46 2f 01 00"
        },
        {
          "vaHex": "0x0047e6c0",
          "opcodeHex": "0x18",
          "opcodeName": "dword-store/expression",
          "length": 8,
          "summary": null,
          "rawHex": "18 00 08 00 68 02 58 01"
        }
      ]
    },
    "rejectLoop": {
      "startVa": 4712060,
      "startVaHex": "0x0047e67c",
      "decodedCommandCount": 2,
      "commands": [
        {
          "vaHex": "0x0047e67c",
          "opcodeHex": "0x01",
          "opcodeName": "stop-tick",
          "length": 4,
          "summary": null,
          "rawHex": "01 00 00 00"
        },
        {
          "vaHex": "0x0047e680",
          "opcodeHex": "0x03",
          "opcodeName": "jump",
          "length": 8,
          "summary": "jump -> 0x0047e66c",
          "rawHex": "03 00 00 00 6c e6 47 00"
        }
      ]
    },
    "wrapper": {
      "startVa": 4712096,
      "startVaHex": "0x0047e6a0",
      "decodedCommandCount": 8,
      "commands": [
        {
          "vaHex": "0x0047e6a0",
          "opcodeHex": "0x4a",
          "opcodeName": "active-object-flag-mask",
          "length": 8,
          "summary": "active-object flag set; filter object+0x14 mask=0x0001; flags=0x80000000",
          "rawHex": "4a 01 01 00 00 00 00 80"
        },
        {
          "vaHex": "0x0047e6a8",
          "opcodeHex": "0x10",
          "opcodeName": "byte-store/expression",
          "length": 4,
          "summary": null,
          "rawHex": "10 c0 3d 02"
        },
        {
          "vaHex": "0x0047e6ac",
          "opcodeHex": "0x04",
          "opcodeName": "call/push-continuation",
          "length": 8,
          "summary": "call/push-continuation -> 0x004ddc6c; pushes return address 0x0047e6b4 to object return stack object+0x44[object+0x5c], increments object+0x5c, then jumps to target",
          "rawHex": "04 00 00 00 6c dc 4d 00"
        },
        {
          "vaHex": "0x0047e6b4",
          "opcodeHex": "0x11",
          "opcodeName": "resource/sprite-command",
          "length": 12,
          "summary": "field arithmetic/write command; group=0xc0 field=+0x0002 literal=0 args=0x2f46,0x0001",
          "rawHex": "11 c0 02 00 00 00 00 00 46 2f 01 00"
        },
        {
          "vaHex": "0x0047e6c0",
          "opcodeHex": "0x18",
          "opcodeName": "dword-store/expression",
          "length": 8,
          "summary": null,
          "rawHex": "18 00 08 00 68 02 58 01"
        },
        {
          "vaHex": "0x0047e6c8",
          "opcodeHex": "0x10",
          "opcodeName": "byte-store/expression",
          "length": 4,
          "summary": null,
          "rawHex": "10 c0 3d 00"
        },
        {
          "vaHex": "0x0047e6cc",
          "opcodeHex": "0x4a",
          "opcodeName": "active-object-flag-mask",
          "length": 8,
          "summary": "active-object flag clear; filter object+0x14 mask=0x0001; flags=0x80000000",
          "rawHex": "4a 00 01 00 00 00 00 80"
        },
        {
          "vaHex": "0x0047e6d4",
          "opcodeHex": "0x03",
          "opcodeName": "jump",
          "length": 8,
          "summary": "jump -> 0x0047e67c",
          "rawHex": "03 00 00 00 7c e6 47 00"
        }
      ]
    },
    "topMenuSequence": {
      "startVa": 5102700,
      "startVaHex": "0x004ddc6c",
      "decodedCommandCount": 22,
      "commands": [
        {
          "vaHex": "0x004ddc6c",
          "opcodeHex": "0x40",
          "opcodeName": "bind/input-base",
          "length": 4,
          "summary": null,
          "rawHex": "40 00 00 00"
        },
        {
          "vaHex": "0x004ddc70",
          "opcodeHex": "0x10",
          "opcodeName": "byte-store/expression",
          "length": 4,
          "summary": null,
          "rawHex": "10 c0 2e 00"
        },
        {
          "vaHex": "0x004ddc74",
          "opcodeHex": "0x2f",
          "opcodeName": "prompt/text-command",
          "length": 8,
          "summary": "prompt/text command mode=0x02 payload=0x004e842e; handler advances +0x08; text payload: ^껷 뒆N 텇N",
          "rawHex": "2f 02 00 00 2e 84 4e 00"
        },
        {
          "vaHex": "0x004ddc7c",
          "opcodeHex": "0x2f",
          "opcodeName": "prompt/text-command",
          "length": 8,
          "summary": "prompt/text command mode=0x02 payload=0x004e8120; handler advances +0x08; text payload: 갢 쟼N 픹N 긏 $긏 F긏",
          "rawHex": "2f 02 00 00 20 81 4e 00"
        },
        {
          "vaHex": "0x004ddc84",
          "opcodeHex": "0x07",
          "opcodeName": "create-child-object",
          "length": 8,
          "summary": "create child object kind=0x00 script=0x004dee18; handler advances +0x08",
          "rawHex": "07 00 00 00 18 ee 4d 00"
        },
        {
          "vaHex": "0x004ddc8c",
          "opcodeHex": "0x28",
          "opcodeName": "runtime-object-slot",
          "length": 4,
          "summary": "store current child object slot=7 through 0x0059dd70[7]; handler advances +0x04",
          "rawHex": "28 00 07 00"
        },
        {
          "vaHex": "0x004ddc90",
          "opcodeHex": "0x07",
          "opcodeName": "create-child-object",
          "length": 8,
          "summary": "create child object kind=0x00 script=0x004dee58; handler advances +0x08",
          "rawHex": "07 00 00 00 58 ee 4d 00"
        },
        {
          "vaHex": "0x004ddc98",
          "opcodeHex": "0x28",
          "opcodeName": "runtime-object-slot",
          "length": 4,
          "summary": "store current child object slot=8 through 0x0059dd70[8]; handler advances +0x04",
          "rawHex": "28 00 08 00"
        },
        {
          "vaHex": "0x004ddc9c",
          "opcodeHex": "0x07",
          "opcodeName": "create-child-object",
          "length": 8,
          "summary": "create child object kind=0x00 script=0x004dee98; handler advances +0x08",
          "rawHex": "07 00 00 00 98 ee 4d 00"
        },
        {
          "vaHex": "0x004ddca4",
          "opcodeHex": "0x28",
          "opcodeName": "runtime-object-slot",
          "length": 4,
          "summary": "store current child object slot=9 through 0x0059dd70[9]; handler advances +0x04",
          "rawHex": "28 00 09 00"
        },
        {
          "vaHex": "0x004ddca8",
          "opcodeHex": "0x07",
          "opcodeName": "create-child-object",
          "length": 8,
          "summary": "create child object kind=0x00 script=0x004deed8; handler advances +0x08",
          "rawHex": "07 00 00 00 d8 ee 4d 00"
        },
        {
          "vaHex": "0x004ddcb0",
          "opcodeHex": "0x28",
          "opcodeName": "runtime-object-slot",
          "length": 4,
          "summary": "store current child object slot=11 through 0x0059dd70[11]; handler advances +0x04",
          "rawHex": "28 00 0b 00"
        },
        {
          "vaHex": "0x004ddcb4",
          "opcodeHex": "0x07",
          "opcodeName": "create-child-object",
          "length": 8,
          "summary": "create child object kind=0x00 script=0x004def0c; handler advances +0x08",
          "rawHex": "07 00 00 00 0c ef 4d 00"
        },
        {
          "vaHex": "0x004ddcbc",
          "opcodeHex": "0x28",
          "opcodeName": "runtime-object-slot",
          "length": 4,
          "summary": "store current child object slot=12 through 0x0059dd70[12]; handler advances +0x04",
          "rawHex": "28 00 0c 00"
        },
        {
          "vaHex": "0x004ddcc0",
          "opcodeHex": "0x2f",
          "opcodeName": "prompt/text-command",
          "length": 8,
          "summary": "prompt/text command mode=0x02 payload=0x004e8190; handler advances +0x08; text payload: 갢 쟼N 픹N 긏 $긏 F긏",
          "rawHex": "2f 02 00 00 90 81 4e 00"
        },
        {
          "vaHex": "0x004ddcc8",
          "opcodeHex": "0x12",
          "opcodeName": "state-compare-or-store",
          "length": 8,
          "summary": "dword field arithmetic/write command; group=0x80 field=+0x0000 literal=0",
          "rawHex": "12 80 00 00 00 00 00 00"
        },
        {
          "vaHex": "0x004ddcd0",
          "opcodeHex": "0x8a",
          "opcodeName": "unknown",
          "length": 4,
          "summary": null,
          "rawHex": "8a 01 03 00"
        },
        {
          "vaHex": "0x004ddcd4",
          "opcodeHex": "0x8a",
          "opcodeName": "unknown",
          "length": 4,
          "summary": null,
          "rawHex": "8a 00 04 00"
        },
        {
          "vaHex": "0x004ddcd8",
          "opcodeHex": "0xd5",
          "opcodeName": "unknown",
          "length": 4,
          "summary": null,
          "rawHex": "d5 03 2e 00"
        },
        {
          "vaHex": "0x004ddcdc",
          "opcodeHex": "0x86",
          "opcodeName": "unknown",
          "length": 4,
          "summary": null,
          "rawHex": "86 00 07 00"
        },
        {
          "vaHex": "0x004ddce0",
          "opcodeHex": "0x86",
          "opcodeName": "unknown",
          "length": 4,
          "summary": null,
          "rawHex": "86 00 08 00"
        },
        {
          "vaHex": "0x004ddce4",
          "opcodeHex": "0x86",
          "opcodeName": "unknown",
          "length": 4,
          "summary": null,
          "rawHex": "86 00 09 00"
        }
      ]
    }
  },
  "referenceSurfaces": [
    {
      "label": "top menu object sequence",
      "vaHex": "0x004ddc6c",
      "refsHex": [
        "0x0047e6b0"
      ],
      "classification": "grounded sequence; only ref is wrapper operand"
    },
    {
      "label": "pre-wrapper gate",
      "vaHex": "0x0047e688",
      "refsHex": [
        "0x0047e678"
      ],
      "classification": "active group-key / active-descriptor-count gate; target refs point to reject loop"
    },
    {
      "label": "pre-wrapper reject loop",
      "vaHex": "0x0047e67c",
      "refsHex": [
        "0x0047e68c",
        "0x0047e694",
        "0x0047e69c",
        "0x0047e6d8",
        "0x0047e6f4",
        "0x0047e700"
      ],
      "classification": "stop-tick then jump back toward selected-root call"
    },
    {
      "label": "top menu wrapper",
      "vaHex": "0x0047e6a0",
      "refsHex": [],
      "classification": "unreferenced wrapper; not opener proof"
    },
    {
      "label": "top menu parent context",
      "vaHex": "0x0047e624",
      "refsHex": [],
      "classification": "unreferenced parent context; adjacent resource list is intro/title-oriented"
    },
    {
      "label": "intro/title resource list",
      "vaHex": "0x004a2cb0",
      "refsHex": [
        "0x0047e668"
      ],
      "classification": "middata.mlk, compile.cns, aaa.cns, logo_00.cns, title.cns, map_k1.cns, map_k2.cns, btl_k1.cns, btl_k2.cns"
    },
    {
      "label": "region #6 child script",
      "vaHex": "0x004dee18",
      "refsHex": [
        "0x004ddc88"
      ],
      "classification": "referenced by top-menu sequence"
    },
    {
      "label": "region #3 child script",
      "vaHex": "0x004dee58",
      "refsHex": [
        "0x004ddc94"
      ],
      "classification": "referenced by top-menu sequence"
    },
    {
      "label": "region #4 child script",
      "vaHex": "0x004dee98",
      "refsHex": [
        "0x004ddca0",
        "0x004de83c",
        "0x004de990"
      ],
      "classification": "referenced by top-menu sequence"
    },
    {
      "label": "shifted/right-panel page script",
      "vaHex": "0x004de468",
      "refsHex": [],
      "classification": "secondary page/menu payload context; not normal opener"
    }
  ],
  "negativeEvidence": [
    "No direct pointer refs to the wrapper stream at 0x0047e6a0.",
    "No direct pointer refs to the parent context stream at 0x0047e624.",
    "The sole 0x004ddc6c ref is 0x0047e6b0, an operand address inside the 0x04 command beginning at 0x0047e6ac.",
    "The repeated 7c e6 47 00 bytes before the wrapper are not opcode 0x7c commands; they are little-endian target pointers to 0x0047e67c.",
    "The adjacent resource list at 0x004a2cb0 is intro/title-oriented, not a normal-field HUD menu context.",
    "This review does not find an input-edge, field-mode, or descriptor-add producer that schedules the wrapper from normal field state."
  ],
  "nextFrontier": [
    "Find the upstream selector/descriptor producer that schedules 0x0047e6a0 or its parent context without relying on direct pointer refs.",
    "Prioritize field mode/state transitions after ESC/X edge handling, not menu-internal cursor handlers.",
    "Do not promote 0x004ddc6c itself as the opener; it is the menu construction callee."
  ]
}
