Save Selector Opcode 0x20 Nested Base Modes

route map1_01a -> map2_02d; current row 0x005428a8 value 0x00200020; stream+1 mode 0x00; nested runner 0x00402360; handler table 0x00440538; gate offset proof status blocked; runtime pointer mode still required: True; proofFound False; promotion status blocked.

The current activation row at 0x005428a8 is save-selector opcode 0x20 with mode 0. Mode 0 does not directly choose map1_01a -> map2_02d; it iterates runtime save/object slots, calls nested runner 0x00402360 with descriptor+4 script pointers, and those nested scripts dispatch through general handler table 0x00440538. Several general handlers can replace context+0xa8 with different selection-buffer bases. Because the actual runtime object scripts and selected base before the 0xe8/0xea gates are still not proven, this narrows the blocker but does not promote the route.

Failed Gates

Missing Evidence

Evidence Refs

Opcode 0x20 Modes

modecurrentslot countslot basenested streamcallmeaning
0x00True0x004576e80x00457750 + slot * 0xd8dword[dword[slotBase] + 4]0x0040c447runs each active save/object slot's secondary script pointer stored at descriptor+4.
0x01False0x004576e80x00457750 + slot * 0xd8 plus dword[0x00442da1]dword[dword[0x00442da1] + 4], then dword[dword[slotBase] + 0]0x0040c466, 0x0040c4a4runs a party/runtime script first, then each slot's primary script pointer stored at descriptor+0.

Nested General Handlers

opcodehandlerwrites context+0xa8base expressionevidencemeaning
0x280x0040570cTruedword[0x0059dd70 + stream[2]*4]0x0040575amode 1 restores context+0xa8 from the saved pointer table; mode 0 stores context+0x58 into that table.
0x3f0x004063d8False--passes dword [stream+4] to 0x00423a2f; this handler is adjacent to the base-mode group but does not directly write context+0xa8.
0x400x004063fcTrue0x0059e3100x00406405sets context+0xa8 to the global selection buffer.
0x410x0040641bTrue0x00457750 + stream[1] * 0xd80x0040643dcomputes a save/runtime block slot base from stream+1.
0x420x0040644fTruedword[0x0059db30 + context[0xf2]*4] or dword[0x0059db30 + stream[2]*4]0x00406480, 0x004064a0selects an object pointer table entry either from context+0xf2 or stream+2.
0x430x004064d5True0x004576d80x004064desets context+0xa8 to the save/runtime block base.
0x440x004064f4False--calls 0x00421509 and may call 0x0041b579; it does not directly write context+0xa8 in this handler body.

Gate Rows

gateoffsetroot writers before gateglobal writerssource
0x005428c40xe800no opcode 0x12/0x13 script writer; inherited/runtime selection-buffer byte
0x005428cc0xea00no opcode 0x12/0x13 script writer; inherited/runtime selection-buffer byte

Signatures

signaturefound
reads stream+1 modeTrue
loops save slot count 0x004576e8True
loads slot descriptor pointer from 0x00457750 + slot*0xd8True
mode 0 uses descriptor+4 nested streamTrue
calls nested runner 0x00402360True
mode 1 uses descriptor+0 nested streamTrue
advances save-selector stream by 4True