# DO NOT EDIT -- generated from vm-map/opcodes.toml by tools/opcodes_build.py --build """AGE opcode framing and operand metadata (generated canonical view).""" from __future__ import annotations # opcode -> (historical/canonical label, argument count) OPCODES: dict[int, tuple[str, int]] = { 0x0001: ('throw-exit-request', 0), 0x0002: ('exit', 0), 0x0003: ('call-script', 1), 0x0004: ('u00417E30', 2), 0x0005: ('ret', 0), 0x0006: ('preload-script-slot', 2), 0x0007: ('u00417F90', 1), 0x0008: ('call-preloaded-script-slot', 1), 0x0009: ('exit-script', 0), 0x000a: ('u00424170', 2), 0x000b: ('u00418090', 11), 0x000c: ('u004149E0', 0), 0x000d: ('u004181A0', 4), 0x000e: ('u00418200', 12), 0x000f: ('u00418300', 1), 0x0010: ('u00414A00', 4), 0x0011: ('u00418330', 9), 0x0012: ('u004183F0', 1), 0x0013: ('u00418420', 4), 0x0014: ('u00414A20', 0), 0x0015: ('u00418490', 5), 0x0016: ('u00418520', 2), 0x0017: ('u00418560', 2), 0x001e: ('u004185B0', 8), 0x001f: ('u00418690', 12), 0x0020: ('u004187C0', 6), 0x0021: ('u00418860', 2), 0x0022: ('u00418920', 2), 0x0023: ('u004189D0', 2), 0x0024: ('u00418A90', 2), 0x0025: ('u00418B40', 3), 0x0026: ('u00418C00', 4), 0x0027: ('u00418CC0', 4), 0x0028: ('u00418D90', 4), 0x002a: ('u00418E60', 4), 0x002b: ('u00418F30', 5), 0x002c: ('u00419010', 5), 0x002d: ('u004190A0', 12), 0x002e: ('u004194B0', 5), 0x002f: ('u004195A0', 4), 0x0030: ('u00419670', 5), 0x0031: ('u00419750', 4), 0x0032: ('u004197C0', 10), 0x0033: ('u00419900', 6), 0x0034: ('u004199C0', 12), 0x0035: ('u00419AF0', 11), 0x0036: ('u00419C00', 3), 0x0037: ('u00419C90', 11), 0x0038: ('u00419DA0', 12), 0x0050: ('add', 3), 0x0051: ('sub', 3), 0x0052: ('mul', 3), 0x0053: ('div', 3), 0x0054: ('mod', 3), 0x0055: ('mov', 2), 0x0056: ('and', 3), 0x0057: ('or', 3), 0x0058: ('sar', 3), 0x0059: ('shl', 3), 0x005a: ('eq', 3), 0x005b: ('ne', 3), 0x005c: ('lt', 3), 0x005d: ('lte', 3), 0x005e: ('gr', 3), 0x005f: ('gre', 3), 0x0060: ('u0041A270', 2), 0x0061: ('lookup-array', 3), 0x0062: ('u0041A360', 3), 0x0063: ('take-address', 2), 0x0064: ('copy-inline-int-array', 2), 0x0065: ('u00414AA0', 2), 0x0066: ('u00414AE0', 3), 0x0067: ('u00414B20', 3), 0x0068: ('u00414B60', 3), 0x0069: ('u00414BA0', 3), 0x006a: ('u00414BE0', 3), 0x006b: ('u00414C20', 3), 0x006c: ('copy-to-global', 2), 0x006d: ('u00416960', 0), 0x006e: ('show-text', 2), 0x006f: ('end-text-line', 1), 0x0070: ('define-adv-text-layout', 5), 0x0071: ('reset-adv-text-layout', 1), 0x0072: ('wait-for-input', 1), 0x0073: ('configure-adv-wait-indicator', 10), 0x0074: ('u0041AC00', 1), 0x0075: ('set-font-size', 1), 0x0076: ('set-text-color', 1), 0x0077: ('set-text-effect-color', 1), 0x0078: ('set-text-render-mode', 1), 0x0079: ('set-adv-text-reset-cursor', 3), 0x007a: ('set-adv-text-cursor', 3), 0x007b: ('u0041ADB0', 2), 0x007c: ('u00416A90', 0), 0x007d: ('u0041AE00', 2), 0x007e: ('u0041AEA0', 1), 0x007f: ('u00414C60', 1), 0x0080: ('u0041AF00', 1), 0x0081: ('u0041AF30', 1), 0x0082: ('u0041AF80', 5), 0x0083: ('u00414C90', 3), 0x0084: ('u0041AFE0', 1), 0x0085: ('clear-text-history', 0), 0x0086: ('u0041B210', 1), 0x0087: ('u00414D10', 0), 0x0088: ('u0041B290', 1), 0x0089: ('u0041B2E0', 4), 0x008a: ('u0041B330', 6), 0x008b: ('u0041B3D0', 1), 0x008c: ('jmp', 1), 0x008d: ('u0041BCE0', 2), 0x008e: ('u0041BD60', 1), 0x008f: ('call', 1), 0x0090: ('u0041BEB0', 7), 0x0091: ('u0041BFB0', 1), 0x0092: ('u0041C030', 2), 0x0093: ('u00415040', 0), 0x0094: ('u00415090', 0), 0x0095: ('u0041C0C0', 2), 0x0096: ('u004150C0', 0), 0x0097: ('u0041C150', 5), 0x00a0: ('jcc', 3), 0x00a1: ('begin-value-switch', 0), 0x00a2: ('add-value-switch-case', 2), 0x00a3: ('value-switch-jump', 2), 0x00aa: ('u0041C270', 2), 0x00ab: ('u0041C330', 2), 0x00ac: ('u0041C3E0', 9), 0x00ad: ('u00415110', 0), 0x00ae: ('continue-save-load-stack-restore', 0), 0x00af: ('u00415480', 0), 0x00b0: ('u0041C530', 1), 0x00b1: ('u0041C560', 1), 0x00b2: ('u0041C590', 2), 0x00b3: ('u004154B0', 0), 0x00b4: ('play-sound-effect', 2), 0x00b5: ('u0041D050', 1), 0x00b6: ('u0041D080', 1), 0x00b7: ('restart-bgm-loop', 1), 0x00b8: ('stop-bgm', 0), 0x00b9: ('restart-bgm-once', 1), 0x00ba: ('sfx-start-loop', 1), 0x00bb: ('u0041D250', 1), 0x00bc: ('u0041D280', 1), 0x00bd: ('u00415570', 1), 0x00be: ('u004155E0', 1), 0x00bf: ('play-bgm', 1), 0x00c0: ('get-current-bgm-track', 1), 0x00c1: ('u00415650', 0), 0x00c2: ('u0041D2B0', 2), 0x00c3: ('u0041D390', 1), 0x00c4: ('play-voice', 1), 0x00c5: ('get-audio-volume', 2), 0x00c6: ('set-audio-volume', 2), 0x00c7: ('get-audio-route-enabled', 2), 0x00c8: ('sleep', 1), 0x00c9: ('u00415770', 0), 0x00ca: ('u004157A0', 0), 0x00cb: ('u00415800', 1), 0x00cc: ('mouse_callback', 2), 0x00cd: ('get-input-type', 0), 0x00ce: ('u0041E0B0', 3), 0x00cf: ('u00416D40', 0), 0x00d0: ('get-monotonic-time-ms', 1), 0x00d1: ('u00415860', 0), 0x00d2: ('u0041E110', 1), 0x00d3: ('u00425960', 0), 0x00d4: ('u004266F0', 4), 0x00d5: ('u004262C0', 1), 0x00d6: ('u004267D0', 6), 0x00d7: ('u0041E1A0', 1), 0x00d8: ('u0041E150', 2), 0x00d9: ('u00415880', 0), 0x00da: ('u004158B0', 6), 0x00fa: ('u00415940', 0), 0x00fb: ('joy_callback', 2), 0x00fc: ('u004159F0', 0), 0x00fd: ('u0041E2D0', 2), 0x00fe: ('u0041E360', 1), 0x00ff: ('u00415A10', 0), 0x0100: ('u00415A60', 0), 0x0101: ('u00415BF0', 0), 0x0102: ('u0041E3C0', 3), 0x0103: ('u0041E4A0', 1), 0x0104: ('u00415C50', 0), 0x0105: ('u0041E4D0', 1), 0x0106: ('u00415E40', 1), 0x0107: ('u0041E500', 2), 0x0108: ('u00415E70', 1), 0x0109: ('u00415EC0', 2), 0x010a: ('u0041E540', 2), 0x010b: ('u0041E5A0', 2), 0x010c: ('u0041E5E0', 2), 0x010d: ('u00415F10', 1), 0x010e: ('u0041E650', 2), 0x010f: ('u0041E690', 1), 0x012c: ('lookup-array-2d', 5), 0x012d: ('u0041E720', 7), 0x012e: ('find-hit-rectangle', 8), 0x012f: ('sort-indices-by-key-sum', 4), 0x0130: ('get-initial-root-run', 1), 0x0131: ('get-message-window-alpha', 1), 0x0132: ('reset-int-queue', 1), 0x0133: ('enqueue-int', 2), 0x0134: ('try-dequeue-int', 3), 0x0135: ('bit-set', 2), 0x0136: ('bit-reset', 2), 0x0137: ('reset-int-stack', 1), 0x0138: ('push-int-stack', 2), 0x0139: ('try-pop-int-stack', 3), 0x013a: ('u0041F3A0', 6), 0x013b: ('u0041F440', 7), 0x013c: ('u0041F7E0', 1), 0x013d: ('u0041F840', 3), 0x013e: ('u0041F8D0', 2), 0x013f: ('check-bit', 3), 0x0140: ('u0041F9C0', 4), 0x0141: ('set-message-window-alpha', 1), 0x0142: ('set-system-menu-enabled', 1), 0x0143: ('u00415FB0', 0), 0x0144: ('edit-fullwidth-string-dialog', 2), 0x0145: ('u00416040', 1), 0x0146: ('u0041FB40', 1), 0x0147: ('u0041FB80', 6), 0x0148: ('get-system-menu-show-delay', 1), 0x0149: ('set-system-menu-show-delay', 1), 0x014a: ('u0041FD10', 7), 0x014b: ('u0041FF50', 1), 0x014c: ('set-agerc-export', 2), 0x014d: ('call-agerc-export', 6), 0x0190: ('u0041C5E0', 2), 0x0191: ('absolute-value', 2), 0x0192: ('set-string', 2), 0x0193: ('concat', 3), 0x0194: ('string-equals', 3), 0x0195: ('string-not-equals', 3), 0x0196: ('display-furigana', 3), 0x0197: ('set-ruby-font-size', 1), 0x0198: ('set-adv-text-layout-origin', 3), 0x0199: ('u00414D50', 0), 0x019a: ('u00414E50', 1), 0x019b: ('u00414E80', 0), 0x019c: ('u00414EC0', 0), 0x019d: ('is-catalog-resource-unlocked', 2), 0x019e: ('save-numbered-slot', 2), 0x019f: ('load-numbered-slot-data-only', 2), 0x01a0: ('query-numbered-save-metadata', 9), 0x01a1: ('load-numbered-slot-and-resume', 2), 0x01a2: ('store-shared-profile-int', 1), 0x01a3: ('load-shared-profile-int', 1), 0x01a4: ('set-text-effect-offset', 2), 0x01a5: ('set-font', 1), 0x01a6: ('halve-strlen', 2), 0x01a7: ('comment', 1), 0x01a8: ('dev_ukn', 0), 0x01a9: ('store-shared-profile-string', 1), 0x01aa: ('load-shared-profile-string', 1), 0x01ab: ('delete-numbered-save', 2), 0x01ac: ('copy-numbered-save', 3), 0x01ad: ('mark-save-resume-frame', 0), 0x01ae: ('write-numbered-save-thumbnail', 3), 0x01af: ('load-numbered-save-thumbnail', 3), 0x01b0: ('copy-dwords', 3), 0x01b1: ('u0041B5C0', 1), 0x01b2: ('u00425790', 1), 0x01b3: ('u004257D0', 0), 0x01b4: ('u004237C0', 0), 0x01b5: ('u0041B5F0', 1), 0x01b6: ('u00414F60', 1), 0x01b7: ('u0041B640', 1), 0x01b8: ('u0041B670', 2), 0x01b9: ('u0041B710', 2), 0x01ba: ('set-audio-route-enabled', 2), 0x01bb: ('set-text-history-recording', 1), 0x01bc: ('u00415670', 0), 0x01bd: ('u0041D910', 1), 0x01be: ('u0041D9D0', 2), 0x01bf: ('u004156C0', 0), 0x01c0: ('u0041DB70', 1), 0x01c1: ('set-adv-text-bounds', 3), 0x01c2: ('u0041B860', 2), 0x01c3: ('u0041B8A0', 2), 0x01c4: ('u00415720', 1), 0x01c5: ('u00425800', 4), 0x01c6: ('u0041DD80', 2), 0x01c7: ('get-message-skip', 1), 0x01c8: ('toString', 2), 0x01c9: ('u0041B8E0', 3), 0x01ca: ('u0041B9B0', 1), 0x01cb: ('u00414FD0', 1), 0x01cc: ('get-adv-read-skip-state', 1), 0x01cd: ('u0041A560', 2), 0x01ce: ('u0041B9F0', 1), 0x01cf: ('set-voice-bgm-duck-control', 1), 0x01d0: ('step-text-history', 3), 0x01d1: ('u0041BAE0', 5), 0x01d2: ('append-text-history-metadata', 2), 0x01d3: ('find-text-history-value', 5), 0x01d4: ('find-text-history-pair', 4), 0x01d5: ('u00415700', 0), 0x01d6: ('u0041DA40', 2), 0x01d7: ('u0041DA80', 2), 0x01d8: ('u0041DAD0', 3), 0x01d9: ('u0041DB20', 2), 0x01f4: ('u004160D0', 0), 0x01f5: ('u00416120', 0), 0x01f6: ('clear-retained-gfx-objects', 0), 0x01f7: ('gfx-elem-erase', 2), 0x01f8: ('create-texture', 4), 0x01f9: ('set-texture', 3), 0x01fa: ('gfx-elem-release', 1), 0x01fb: ('draw-texture', 8), 0x01fc: ('u004205F0', 1), 0x01fd: ('u00420620', 4), 0x01fe: ('set-current-rotation-axis-angle', 5), 0x01ff: ('set-gfx-geom3-c', 4), 0x0200: ('u00420800', 1), 0x0201: ('u00416190', 1), 0x0202: ('gfx-blit-color', 5), 0x0203: ('gfx-draw-color', 4), 0x0204: ('draw-string', 4), 0x0205: ('u00420A60', 6), 0x0206: ('u004161C0', 7), 0x0207: ('copy-surface-rect', 8), 0x0208: ('get-texture-size', 3), 0x0209: ('u00420C50', 5), 0x020a: ('u00420CE0', 1), 0x020b: ('fill-surface-rect', 7), 0x020c: ('present-frame', 0), 0x020d: ('select-render-target', 1), 0x020e: ('clear-render-target', 0), 0x020f: ('play-modal-movie-to-surface', 3), 0x0210: ('u00420FF0', 1), 0x0211: ('u00421060', 1), 0x0212: ('set-adv-wait-indicator-handle', 2), 0x0213: ('set-adv-text-object-range', 3), 0x0214: ('u00421120', 2), 0x0215: ('query-gfx-object?', 2), 0x0216: ('query-gfx-field?', 2), 0x0217: ('set-gfx-geom3', 4), 0x0218: ('get-gfx-geom3?', 4), 0x0219: ('set-gfx-geom3-b', 4), 0x021a: ('get-gfx-geom3-b?', 4), 0x021b: ('u004213E0', 1), 0x021c: ('mark-frame-yield', 0), 0x021d: ('clone-gfx-object', 2), 0x021e: ('set-anim-transform-norm', 6), 0x021f: ('set-anim-rotation-axis-angle', 7), 0x0220: ('set-anim-transform-abs', 6), 0x0221: ('u00421670', 4), 0x0222: ('present-gfx-object-range', 2), 0x0223: ('queue-surface-alpha-transition', 8), 0x0224: ('clear-gfx-command-queue', 0), 0x0225: ('u00421780', 2), 0x0226: ('u004217D0', 5), 0x0227: ('u00421880', 6), 0x0228: ('u00421940', 5), 0x0229: ('set-gfx-range-transform', 5), 0x022a: ('set-gfx-range-scale-current', 3), 0x022b: ('u00421B30', 4), 0x022c: ('set-gfx-range-translation-current', 3), 0x022d: ('set-gfx-range-scale-target', 5), 0x022e: ('u00421D10', 6), 0x022f: ('u00421DD0', 5), 0x0230: ('u00421E70', 1), 0x0231: ('u00421EA0', 4), 0x0232: ('u00421EF0', 4), 0x0233: ('set-scale-cycle', 5), 0x0234: ('anim-start', 5), 0x0235: ('u00422100', 5), 0x0236: ('play-movie-to-surface', 4), 0x0237: ('u00422350', 2), 0x0238: ('set-anim-clock', 1), 0x0239: ('u004223C0', 6), 0x023a: ('query-movie-surface-active', 2), 0x023b: ('u00422460', 7), 0x023c: ('sample-frame-time', 0), 0x023d: ('release-transient-surfaces', 0), 0x023e: ('u004228C0', 2), 0x023f: ('u00422930', 2), 0x0240: ('u004229A0', 4), 0x0241: ('play-movie-to-surface-at-position', 5), 0x0242: ('set-object-animation-detached', 2), 0x0243: ('reset-anim-clock', 0), 0x0244: ('u00416360', 0), 0x0245: ('u00422DA0', 2), 0x0246: ('u00422E10', 2), 0x0247: ('u00416390', 1), 0x0248: ('set-tiled-surface-edge-length', 1), 0x0249: ('load-raw-texture-surface', 3), 0x024a: ('u004163C0', 3), 0x024d: ('play-movie-mask-transition', 12), 0x024e: ('set-gfx-animation-service-flags', 1), 0x024f: ('u00422ED0', 10), 0x0250: ('u00422F60', 10), 0x0251: ('u00422FF0', 12), 0x0252: ('u00423000', 1), 0x0253: ('u00423019', 2), 0x0254: ('u00423049', 5), 0x0256: ('u00423050', 5), 0x0257: ('257', 5), 0x0258: ('set-surface-persistence-flags', 2), 0x0259: ('script-entry', 0), 0x025a: ('u00423120', 1), 0x025b: ('25B', 1), 0x025c: ('u00423122', 8), 0x025d: ('u00423123', 3), 0x025e: ('u00423124', 5), 0x025f: ('u00423125', 4), 0x0260: ('u00423126', 4), 0x0261: ('u00423127', 1), 0x0262: ('262', 1), 0x0263: ('263', 1), 0x0264: ('264', 5), 0x02bc: ('u00423020', 11), 0x02bd: ('set-font-bold', 1), 0x02be: ('u00423140', 1), 0x02bf: ('schedule-sfx-start', 3), 0x02c0: ('schedule-voice-playback', 3), 0x02c1: ('u00425BC0', 1), 0x02c2: ('u00425CD0', 6), 0x02c3: ('u00423200', 2), 0x02c4: ('u00416450', 0), 0x02c5: ('strlen', 2), 0x02c6: ('cp932-character-length', 2), 0x02c7: ('u0042B5F0', 4), 0x02c8: ('cp932-substring', 4), 0x02c9: ('2C9', 3), 0x02cc: ('2CC', 1), 0x02cd: ('2CD', 1), 0x02ce: ('u0042B616', 1), 0x02cf: ('u0042B617', 1), 0x02d0: ('u0042B940', 3), 0x02d1: ('u0042B950', 3), 0x02d2: ('u0042B960', 3), 0x02d3: ('u0042B970', 3), 0x02d5: ('u0042B990', 2), 0x02d7: ('u0042B9B0', 2), 0x02d8: ('set-array-to', 3), 0x02d9: ('u0042BA30', 2), 0x02da: ('u004234E0', 8), 0x02db: ('u004235C0', 1), 0x02dc: ('u0042BA80', 1), 0x02dd: ('u0042D880', 2), 0x02de: ('u0042BAC0', 2), 0x02df: ('u0042BAC1', 3), 0x02e0: ('u0042CE0F', 3), 0x02e1: ('u0042CE10', 3), 0x02e2: ('u0042CE11', 3), 0x02e3: ('u0042CE30', 3), 0x02e4: ('u0042CE31', 3), 0x02e5: ('u0042CE50', 1), 0x02e6: ('u0042CE60', 2), 0x02e7: ('u0042CE70', 2), 0x02e8: ('u0042CE80', 1), 0x02e9: ('u0042CE90', 1), 0x02ea: ('u0042CEA0', 1), 0x02eb: ('u0042CEB0', 1), 0x02ec: ('u0042CEC0', 2), 0x02ee: ('u0042CEC2', 1), 0x02ef: ('u0042CEC3', 11), 0x02f0: ('u0042CEC4', 9), 0x02f1: ('u0042CEC5', 7), 0x02f2: ('u0042CEC6', 6), 0x02f3: ('2F3', 6), 0x02f4: ('2F4', 3), 0x02f5: ('2F5', 4), 0x02f6: ('2F6', 1), 0x02f7: ('2F7', 1), 0x02f8: ('2F8', 2), 0x02f9: ('2F9', 7), 0x02fa: ('2FA', 1), 0x02fb: ('2FB', 1), 0x02fc: ('2FC', 5), 0x02fd: ('2FD', 6), 0x02fe: ('2FE', 1), 0x02ff: ('2FF', 2), 0x0300: ('300', 3), 0x0301: ('301', 1), 0x0302: ('302', 2), 0x0303: ('303', 3), 0x0304: ('304', 0), 0x0305: ('305', 0), 0x0306: ('306', 1), 0x0307: ('307', 1), 0x0308: ('308', 1), 0x030a: ('30A', 2), 0x030c: ('30C', 1), 0x0320: ('u0043AA20', 10), 0x0321: ('u0043AA30', 3), 0x0322: ('u0043AA40', 4), 0x0323: ('u0043AA50', 5), 0x0324: ('u0043AA60', 0), 0x0325: ('u0043AA70', 2), 0x0326: ('u0043AA80', 4), 0x0327: ('u0043AA90', 1), 0x0328: ('u0043AAA0', 3), 0x0329: ('u0043AAB0', 2), 0x032a: ('32A', 1), 0x032b: ('u0043AAD0', 0), 0x032c: ('u0043AAE0', 6), 0x032d: ('u0043AAF0', 2), 0x032e: ('u0043AB10', 11), 0x032f: ('u0043AB11', 1), 0x0330: ('u0043AB12', 2), 0x0332: ('u0043AB14', 4), 0x0334: ('u0043AB16', 1), 0x0335: ('u0043AB17', 4), 0x0337: ('u0043AB19', 4), 0x033b: ('u0043AB1D', 4), 0x033d: ('u0043AB1E', 3), 0x033e: ('u0043AB1F', 5), 0x033f: ('u0043AB20', 3), 0x0340: ('340', 1), 0x0341: ('341', 2), 0x0342: ('342', 1), 0x0344: ('344', 2), 0x0345: ('345', 3), 0x0349: ('349', 4), 0x034d: ('34D', 6), 0x034e: ('34E', 4), 0x0352: ('352', 3), 0x0353: ('353', 2), 0x0354: ('354', 2), 0x0358: ('358', 5), 0x035a: ('35A', 5), 0x035b: ('35B', 2), 0x035c: ('35C', 2), 0x035d: ('35D', 3), 0x035f: ('35F', 3), 0x0360: ('360', 3), 0x0361: ('361', 2), 0x0363: ('363', 3), 0x0364: ('364', 3), 0x0384: ('384', 3), 0x0386: ('386', 11), 0x0387: ('387', 8), 0x0388: ('388', 3), 0x0389: ('389', 6), 0x038f: ('38F', 6), 0x0390: ('390', 7), 0x0391: ('391', 2), 0x0392: ('392', 1), 0x0393: ('393', 6), 0x0396: ('396', 5), 0x0398: ('398', 3), 0x0399: ('399', 7), 0x039b: ('39B', 5), } # argument type tag -> disassembly label ARG_TYPES: dict[int, str] = { 0x0000: 'imm', 0x0001: 'float', 0x0002: 'string', 0x0003: 'global-int', 0x0004: 'global-float', 0x0005: 'global-string', 0x0006: 'global-ptr', 0x0008: 'global-string-ptr', 0x0009: 'local-int', 0x000a: 'local-float', 0x000b: 'local-string', 0x000c: 'local-ptr', 0x000d: 'local-float-ptr', 0x000e: 'local-string-ptr', 0x8003: 'type-0x8003', 0x8005: 'type-0x8005', 0x8009: 'type-0x8009', 0x800b: 'type-0x800B', } # One-based operand indices whose raw values are code offsets. CODE_TARGET_ARGS: dict[int, frozenset[int]] = { 0x007b: frozenset((1, 2)), 0x008c: frozenset((1,)), 0x008f: frozenset((1,)), 0x0090: frozenset((5, 6, 7)), 0x00a0: frozenset((2, 3)), 0x00cc: frozenset((2,)), 0x00d4: frozenset((3, 4)), 0x00fb: frozenset((2,)), } CONTROL_FLOW = frozenset(CODE_TARGET_ARGS) ARRAY_OPCODE = 0x64 def is_label_argument(op: int, arg_index: int, raw_value: int) -> bool: """Return whether a zero-based operand is a non-fallthrough code target.""" return (raw_value != 0xFFFFFFFF and arg_index + 1 in CODE_TARGET_ARGS.get(op, ()))