Save Selector Dispatch Table Context

Route map1_01a -> map2_02d; general table 0x00440538; save-selector table 0x00440720; slice offset 0x7a; generic dispatcher 0x00402321 indexed call 0x0040234c uses u8.

save-selector slice anchored: True; save-selector direct runtime dispatch proof found: False; proof found: False; failed dispatch table gates: save-selector-slice-runtime-dispatch, descriptor-boundary-runtime-bridge, dynamic-save-selector-table-base-candidate, route-relevant-slice-table-base-switch; missing evidence count: 4; evidence refs: 3; descriptor boundary depends on save-selector slice model: True; route-relevant table-base switch rows: 6; data descriptors byte-reachable through generic dispatcher: 0; dynamic indexed dispatch rows: 3; dynamic dispatch classifications: {"seh-registration-scope-table-callback":1,"seh-scope-table-callback":2}; dynamic SEH scope-table callback count: 3; dynamic SEH scope-table callback sites: 0x00438456, 0x004390b7, 0x004390f3; dynamic save-selector table-base immediate candidates: 0; dynamic save-selector table-base static candidates: 0; save-selector table-base arithmetic scan rows/candidates: 116/0; dynamic save-selector table-base candidate sites: -; selected-root execution dispatch ref found: False; promotion status: blocked.

The current save-selector decoder is anchored to the 0x00440720 table slice, which starts 0x7a entries after the generic 0x00440538 dispatch table. The EXE contains one direct indexed dispatch immediate for the generic table at 0x0040234c and no direct indexed dispatch or dword reference to 0x00440720 itself. Relative save-selector opcodes still map consistently to the expected handlers through that slice, including byte-reachable selected-pointer handlers 0x07/0x08/0x09 and branch-state handlers 0x10..0x13, but this is static decoder anchoring only. Route-relevant low bytes that become data descriptors under the slice do not resolve the same way through the raw generic table, and the descriptor-stop rows require a save-selector table-base switch rather than the observed u8 generic indexed dispatcher. A .text scan finds only a small set of dynamic register-base indexed call sites; all three match an SEH scope-table callback pattern and none has a nearby immediate reference to 0x00440720. A separate table-base arithmetic scan covers direct absolute indexed dispatches plus those dynamic sites and finds no nearby general-table+0x1e8 or direct save-selector-table base candidate, so there is still no static table-base switch candidate for the save-selector slice. The descriptor boundary classification therefore depends on the static save-selector slice model until runtime proves that control is dispatching the current stream through that slice. It does not prove that selector root 2:0 executes on the normal route.

Table References

tableroledword refs.text refsindexed dispatches
0x00440538general111
0x00440720save-selector000
0x0047f1d8event-object111

Relative Opcode Rows

relative opcodesave entrysave handlergeneral raw handlergeneral absolute opcodebyte reachablematch
0x070x0044073c0x0040ad9b0x004025490x81TrueTrue
0x080x004407400x0040adc90x004025900x82TrueTrue
0x090x004407440x0040ae0e0x004026810x83TrueTrue
0x100x004407600x0040b49e0x00402d2e0x8aTrueTrue
0x110x004407640x0040b4e60x0040308c0x8bTrueTrue
0x120x004407680x0040b55f0x004032f00x8cTrueTrue
0x130x0044076c0x0040b6960x0040353e0x8dTrueTrue
0x160x004407780x0040ba3f0x00403c4d0x90TrueTrue
0x260x004407b80x0040c9480x00404a2f0xa0TrueTrue
0x2c0x004407d00x0040d0800x004058fb0xa6TrueTrue
0x380x004408000x0040de770x004060db0xb2TrueTrue
0x3f0x0044081c0x0040239f0x004063d80xb9TrueTrue
0x480x004408400x0040eedf0x004066230xc2TrueTrue
0x500x004408600x0040239f0x00406eae0xcaTrueTrue
0x630x004408ac0x0041004f0x00407ce50xddTrueTrue

Route-Relevant Raw vs Slice Rows

rolesitelow byteslice handlerslice sectionraw general handlerraw sectionabsolute opcodebyte reachablerequires table baseraw defaultdiffers
route-dispatch-stop0x005428f40xe80x00440c28.data0x0040239f.text0x162FalseTrueTrueTrue
wrapper-child-pointer0x00542a080xe80x00440c28.data0x0040239f.text0x162FalseTrueTrueTrue
direct-leaf-entry-00x005429f40xc00x00440c5c.data0x0040ec00.text0x13aFalseTrueFalseTrue
direct-leaf-entry-10x005429fc0xd40x00080365-0x0040f57c.text0x14eFalseTrueFalseTrue
predecessor-root-entry-stop0x004783e00xd00x00440a9c.data0x0040f02a.text0x14aFalseTrueFalseTrue
predecessor-fill-fragment-stop0x004844dc0xc00x00440c5c.data0x0040ec00.text0x13aFalseTrueFalseTrue

Dynamic Indexed Dispatch Rows

sitekindbaseindexscaledisplacementclassificationsave-selector candidatenearby table immediates
0x00438456callebxesi4+0x8seh-registration-scope-table-callbackFalse-
0x004390b7callediecx4+0x4seh-scope-table-callbackFalse-
0x004390f3callediecx4+0x8seh-scope-table-callbackFalse-

Dynamic SEH Scope-Table Callback Rows

sitekindbaseindexdisplacementclassificationreasonsave-selector candidate
0x00438456callebxesi+0x8seh-registration-scope-table-callbacknearby fs:0 SEH registration plus state==-1 sentinel and index*3 triplet table walkFalse
0x004390b7callediecx+0x4seh-scope-table-callbackstate==-1 sentinel and index*3 triplet table walkFalse
0x004390f3callediecx+0x8seh-scope-table-callbackstate==-1 sentinel and index*3 triplet table walk; helper calls the SEH registration walkerFalse

Dynamic Save-Selector Table-Base Candidate Rows

sitekindbaseindexdisplacementclassificationnearby table immediates
none

Save-Selector Table-Base Arithmetic Rows

sitekindtable baseclassificationgeneral refssave-selector refsslice-delta refsarithmetic candidate
0x00402257jmp0x0040225eno-table-base-arithmetic-immediates000False
0x0040234ccall0x00440538generic-table-immediate-only100False
0x0040284bjmp0x00402852no-table-base-arithmetic-immediates000False
0x00402c65jmp0x00402c6cno-table-base-arithmetic-immediates000False
0x00402dd6jmp0x00402dddno-table-base-arithmetic-immediates000False
0x00403044jmp0x0040304bno-table-base-arithmetic-immediates000False
0x00403137jmp0x0040313eno-table-base-arithmetic-immediates000False
0x00403392jmp0x00403399no-table-base-arithmetic-immediates000False
0x0040367cjmp0x00403683no-table-base-arithmetic-immediates000False
0x0040385cjmp0x00403863no-table-base-arithmetic-immediates000False
0x004039efjmp0x004039f6no-table-base-arithmetic-immediates000False
0x00403bc6jmp0x00403bcdno-table-base-arithmetic-immediates000False
0x00404710jmp0x00404717no-table-base-arithmetic-immediates000False
0x00404912jmp0x00404919no-table-base-arithmetic-immediates000False
0x00404db7jmp0x00404dbeno-table-base-arithmetic-immediates000False
0x00404ee8jmp0x00404eefno-table-base-arithmetic-immediates000False
0x0040562cjmp0x00405633no-table-base-arithmetic-immediates000False
0x00405d50jmp0x00405d57no-table-base-arithmetic-immediates000False
0x00406098jmp0x0040609fno-table-base-arithmetic-immediates000False
0x004062b8jmp0x004062bfno-table-base-arithmetic-immediates000False
0x00406d71jmp0x00406d78no-table-base-arithmetic-immediates000False
0x00406e8bjmp0x00406e92no-table-base-arithmetic-immediates000False
0x004070f2jmp0x004070f9no-table-base-arithmetic-immediates000False
0x0040721djmp0x00407224no-table-base-arithmetic-immediates000False
0x00407523jmp0x0040752ano-table-base-arithmetic-immediates000False
0x00407c77jmp0x00407c7eno-table-base-arithmetic-immediates000False
0x0040807cjmp0x00408083no-table-base-arithmetic-immediates000False
0x00408328jmp0x0040832fno-table-base-arithmetic-immediates000False
0x00408bd0jmp0x00408bd7no-table-base-arithmetic-immediates000False
0x00409438jmp0x0040943fno-table-base-arithmetic-immediates000False
0x00409630jmp0x00409637no-table-base-arithmetic-immediates000False
0x0040976cjmp0x00409773no-table-base-arithmetic-immediates000False
0x00409845jmp0x0040984cno-table-base-arithmetic-immediates000False
0x00409c22jmp0x00409c29no-table-base-arithmetic-immediates000False
0x00409c54jmp0x00409c5bno-table-base-arithmetic-immediates000False
0x0040ba14jmp0x0040ba1bno-table-base-arithmetic-immediates000False
0x0040c645jmp0x0040c64cno-table-base-arithmetic-immediates000False
0x0040e2b2jmp0x0040e2b9no-table-base-arithmetic-immediates000False
0x0040e5fajmp0x0040e601no-table-base-arithmetic-immediates000False
0x0040e8b5jmp0x0040e8bcno-table-base-arithmetic-immediates000False
0x0040f2dcjmp0x0040f2e3no-table-base-arithmetic-immediates000False
0x0040f3f5jmp0x0040f3fcno-table-base-arithmetic-immediates000False
0x0040f54bjmp0x0040f552no-table-base-arithmetic-immediates000False
0x0040f767jmp0x0040f76eno-table-base-arithmetic-immediates000False
0x0040fa42jmp0x0040fa49no-table-base-arithmetic-immediates000False
0x0040fe82jmp0x0040fe89no-table-base-arithmetic-immediates000False
0x0040ffe5jmp0x0040ffecno-table-base-arithmetic-immediates000False
0x00410b03jmp0x00410b0ano-table-base-arithmetic-immediates000False
0x00410da9jmp0x00410db0no-table-base-arithmetic-immediates000False
0x00411745call0x00454c10no-table-base-arithmetic-immediates000False
0x00411763call0x00454c10no-table-base-arithmetic-immediates000False
0x00414332jmp0x00414339no-table-base-arithmetic-immediates000False
0x0041710ejmp0x00417115no-table-base-arithmetic-immediates000False
0x00417369jmp0x00417370no-table-base-arithmetic-immediates000False
0x00418ea8jmp0x00418eafno-table-base-arithmetic-immediates000False
0x0041b6cdcall0x0047f1d8no-table-base-arithmetic-immediates000False
0x0041c114jmp0x0041c11bno-table-base-arithmetic-immediates000False
0x0041c3bfjmp0x0041c3c6no-table-base-arithmetic-immediates000False
0x0041c6b8jmp0x0041c6bfno-table-base-arithmetic-immediates000False
0x0041ca5fjmp0x0041ca66no-table-base-arithmetic-immediates000False
0x0041cd93jmp0x0041cd9ano-table-base-arithmetic-immediates000False
0x0041d10fjmp0x0041d116no-table-base-arithmetic-immediates000False
0x0041d93cjmp0x0041d943no-table-base-arithmetic-immediates000False
0x0041e843jmp0x0041e84ano-table-base-arithmetic-immediates000False
0x0041ec2fjmp0x0041ec36no-table-base-arithmetic-immediates000False
0x0041ef51jmp0x0041ef58no-table-base-arithmetic-immediates000False
0x0041f416jmp0x0041f41dno-table-base-arithmetic-immediates000False
0x0041f673jmp0x0041f67ano-table-base-arithmetic-immediates000False
0x0041fa04jmp0x0041fa0bno-table-base-arithmetic-immediates000False
0x0041fc56jmp0x0041fc5dno-table-base-arithmetic-immediates000False
0x0041fddbjmp0x0041fde2no-table-base-arithmetic-immediates000False
0x00421315jmp0x0042131cno-table-base-arithmetic-immediates000False
0x00421df1jmp0x00421df8no-table-base-arithmetic-immediates000False
0x004223f0jmp0x004223f7no-table-base-arithmetic-immediates000False
0x0042293bjmp0x00422942no-table-base-arithmetic-immediates000False
0x00423a7ecall0x0048aca8no-table-base-arithmetic-immediates000False
0x00423d46jmp0x00423d4dno-table-base-arithmetic-immediates000False
0x0042426ajmp0x00424271no-table-base-arithmetic-immediates000False
0x0042488bjmp0x00424892no-table-base-arithmetic-immediates000False
0x004279eajmp0x004279f1no-table-base-arithmetic-immediates000False
0x00427cf4jmp0x00427cfbno-table-base-arithmetic-immediates000False
0x00427fdfjmp0x00427fe6no-table-base-arithmetic-immediates000False
0x004300f9jmp0x00430100no-table-base-arithmetic-immediates000False
0x0043032cjmp0x00430333no-table-base-arithmetic-immediates000False
0x00430af9jmp0x00430b00no-table-base-arithmetic-immediates000False
0x00430d5ajmp0x00430d61no-table-base-arithmetic-immediates000False
0x00430fcajmp0x00430fd1no-table-base-arithmetic-immediates000False
0x0043142cjmp0x00431433no-table-base-arithmetic-immediates000False
0x0043176ejmp0x00431775no-table-base-arithmetic-immediates000False
0x0043197ejmp0x00431985no-table-base-arithmetic-immediates000False
0x00431c8fjmp0x00431c96no-table-base-arithmetic-immediates000False
0x00431f94jmp0x00431f9bno-table-base-arithmetic-immediates000False
0x004333d2jmp0x004333d9no-table-base-arithmetic-immediates000False
0x00433517jmp0x0043351eno-table-base-arithmetic-immediates000False
0x00433f69call0x00546a38no-table-base-arithmetic-immediates000False
0x0043409fcall0x00546970no-table-base-arithmetic-immediates000False
0x00434b12jmp0x00434b19no-table-base-arithmetic-immediates000False
0x00435112jmp0x00435119no-table-base-arithmetic-immediates000False
0x004356d5call0x00546970no-table-base-arithmetic-immediates000False
0x00435727call0x00546a38no-table-base-arithmetic-immediates000False
0x00436e90jmp0x00436e98no-table-base-arithmetic-immediates000False
0x00436ef6jmp0x00436e98no-table-base-arithmetic-immediates000False
0x00436f29jmp0x00436f30no-table-base-arithmetic-immediates000False
0x00436f9cjmp0x00436f30no-table-base-arithmetic-immediates000False
0x004377a1jmp0x00437ff0no-table-base-arithmetic-immediates000False
0x004377f2jmp0x00438010no-table-base-arithmetic-immediates000False
0x004378d3jmp0x0043803cno-table-base-arithmetic-immediates000False
0x004379afjmp0x00438080no-table-base-arithmetic-immediates000False
0x00438de6jmp0x00438e08no-table-base-arithmetic-immediates000False
0x00439fc0jmp0x00439fc8no-table-base-arithmetic-immediates000False
0x0043a026jmp0x00439fc8no-table-base-arithmetic-immediates000False
0x0043a059jmp0x0043a060no-table-base-arithmetic-immediates000False
0x0043a0ccjmp0x0043a060no-table-base-arithmetic-immediates000False
0x00438456callebxno-table-base-arithmetic-immediates000False
0x004390b7calledino-table-base-arithmetic-immediates000False
0x004390f3calledino-table-base-arithmetic-immediates000False

Remaining Proofs