{"version":1,"kind":"battle-result-helper-label-review","source":["Hwanse2.exe","out/battle_result_display_branch_review.json","helper dispatch table 0x00454c10","child script table pointer 0x00442da1"],"status":"result-helper-special-branch-visuals-grounded","summary":{"reviewedHelpers":3,"helperOperands":["0x02","0x05","0x16"],"helperDecimalIds":[2,5,22],"promotedFrameScripts":1},"conclusions":["Helper operands are script bytes. `0x16` is dispatch-table index decimal 22, so browser code should store both the hex operand and the decimal index.","The 0x20 branch helper operand 0x05 is grounded. Its child VM contains motion/wait operations, while the helper function body directly pushes selector 0x00100051 and calls the render primitive, binding it to btl_etc frame 81 MISS.","The 0x08 branch helper operand 0x16 is grounded and its child VM points at frameScript 0x004b4bf8, which emits sprite 0x1a frames 56,57,58,59 with gate 2. User observation matches this as a no-label guard/glancing chip-damage presentation over the normal target frame.","Sprite 0x1a is bound to btl_efc. Frames 56..59 resolve to four 32x48 rects at y=16, so this is a small effect-sheet animation, not a btl_etc MISS/HIT label."],"rows":[{"case":"normal hit","flag":"neither 0x20 nor 0x08","scriptVaHex":"0x00454588","helperOperandHex":"0x02","wlkNo":null,"targetFrame":4,"meaning":"normal target hit display path","helperIdDecimal":2,"functionVaHex":"0x004117f0","functionClass":"timed child visual/motion setup","featureSummary":{"allocationCount":2,"targetRangeLoop":false,"usesHelperIdAsScriptTableIndex":false,"scriptTableOffsets":["0x08","0x40"],"knownCalls":["allocate display object","child display motion/timer setup","prepare/copy visual buffer"],"writesDisplayXy":false,"writesVisualIndex0x28":true},"childScriptVaHex":"0x004b3620","childScriptHeadBytes":"12 80 14 00 02 01 00 00 12 a0 a8 a0 12 b0 1c 1c 12 b0 80 1c 11 80 92 00 08 00 00 00 11 81 8c 00 00 90 00 00 2d 09 00 00 12 e0 1c 1c 01 00 00 00","childDecoded":{"startVaHex":"0x004b3620","stopReason":"destroy/end at 0x004b3658","instructionCount":11,"opcodeCounts":{"0x00":1,"0x01":1,"0x06":1,"0x11":2,"0x12":5,"0x2d":1},"frameSequence":[],"initFrameSequence":[],"frameScriptTargets":[],"randomRanges":[],"waits":[{"vaHex":"0x004b364c","category":"yield","waitFrames":null,"summary":"yield one VM tick and advance"}],"parentActorLinks":[],"rows":[{"va":4929056,"vaHex":"0x004b3620","opcode":"0x12","length":8,"bytes":"12 80 14 00 02 01 00 00","category":"write","summary":"set display/actor field +0x14, imm=0x00000102 (0.00393677px)","nextMode":"fallthrough","targetVa":null,"targetVaHex":"","mode":128,"modeHex":"0x80","opKind":0,"opName":"set","dest":20,"destHex":"0x14","source":0,"sourceHex":"0x00","immediate":true,"imm":258,"immHex":"0x00000102","immSigned":258,"immFixed":0.003936767578125},{"va":4929064,"vaHex":"0x004b3628","opcode":"0x12","length":4,"bytes":"12 a0 a8 a0","category":"write","summary":"set display/actor field +0xa8, source +0xa0, mode=0xa0","nextMode":"fallthrough","targetVa":null,"targetVaHex":"","mode":160,"modeHex":"0xa0","opKind":0,"opName":"set","dest":168,"destHex":"0xa8","source":160,"sourceHex":"0xa0","immediate":false},{"va":4929068,"vaHex":"0x004b362c","opcode":"0x12","length":4,"bytes":"12 b0 1c 1c","category":"write","summary":"set display/actor field +0x1c, source +0x1c, mode=0xb0","nextMode":"fallthrough","targetVa":null,"targetVaHex":"","mode":176,"modeHex":"0xb0","opKind":0,"opName":"set","dest":28,"destHex":"0x1c","source":28,"sourceHex":"0x1c","immediate":false},{"va":4929072,"vaHex":"0x004b3630","opcode":"0x12","length":4,"bytes":"12 b0 80 1c","category":"write","summary":"set display/actor field +0x80, source +0x1c, mode=0xb0","nextMode":"fallthrough","targetVa":null,"targetVaHex":"","mode":176,"modeHex":"0xb0","opKind":0,"opName":"set","dest":128,"destHex":"0x80","source":28,"sourceHex":"0x1c","immediate":false},{"va":4929076,"vaHex":"0x004b3634","opcode":"0x11","length":8,"bytes":"11 80 92 00 08 00 00 00","category":"child-write","summary":"display/child field +0x92, imm=0x00000008 (0.00012207px), mode=0x80","nextMode":"fallthrough","targetVa":null,"targetVaHex":"","mode":128,"modeHex":"0x80","dest":146,"destHex":"0x92","source":0,"sourceHex":"0x00","immediate":true,"imm":8,"immHex":"0x00000008","immSigned":8,"immFixed":0.0001220703125},{"va":4929084,"vaHex":"0x004b363c","opcode":"0x11","length":8,"bytes":"11 81 8c 00 00 90 00 00","category":"child-write","summary":"display/child field +0x8c, imm=0x00009000 (0.5625px), mode=0x81","nextMode":"fallthrough","targetVa":null,"targetVaHex":"","mode":129,"modeHex":"0x81","dest":140,"destHex":"0x8c","source":0,"sourceHex":"0x00","immediate":true,"imm":36864,"immHex":"0x00009000","immSigned":36864,"immFixed":0.5625},{"va":4929092,"vaHex":"0x004b3644","opcode":"0x2d","length":4,"bytes":"2d 09 00 00","category":"motion-step","summary":"absolute base + trig motion step mode=0x09 axes=x","nextMode":"fallthrough","mode":9,"modeHex":"0x09","modeGroup":8,"modeGroupHex":"0x08","axes":["x"]},{"va":4929096,"vaHex":"0x004b3648","opcode":"0x12","length":4,"bytes":"12 e0 1c 1c","category":"write","summary":"set display/actor field +0x1c, source +0x1c, mode=0xe0","nextMode":"fallthrough","targetVa":null,"targetVaHex":"","mode":224,"modeHex":"0xe0","opKind":0,"opName":"set","dest":28,"destHex":"0x1c","source":28,"sourceHex":"0x1c","immediate":false},{"va":4929100,"vaHex":"0x004b364c","opcode":"0x01","length":4,"bytes":"01 00 00 00","category":"yield","summary":"yield one VM tick and advance","nextMode":"fallthrough"},{"va":4929104,"vaHex":"0x004b3650","opcode":"0x06","length":8,"bytes":"06 00 08 00 3c 36 4b 00","category":"repeat-loop","summary":"repeat/control count=8, target=0x004b363c; static walk records it but does not expand loop body","nextMode":"fallthrough","targetVa":4929084,"targetVaHex":"0x004b363c","repeatCount":8},{"va":4929112,"vaHex":"0x004b3658","opcode":"0x00","length":4,"bytes":"00 00 00 00","category":"destroy/end","summary":"destroy/free display object candidate","nextMode":"stop"}]},"frameScriptDecodes":[],"directVisualFrames":[],"visualConclusion":"normal hit helper produces target-relative motion but no separate label frameScript","disasmExcerpt":"  4117f0:\t55                   \tpush   ebp\n  4117f1:\t8b ec                \tmov    ebp,esp\n  4117f3:\t83 ec 08             \tsub    esp,0x8\n  4117f6:\t53                   \tpush   ebx\n  4117f7:\t56                   \tpush   esi\n  4117f8:\t57                   \tpush   edi\n  4117f9:\t8b 45 08             \tmov    eax,DWORD PTR [ebp+0x8]\n  4117fc:\t33 c9                \txor    ecx,ecx\n  4117fe:\t8a 88 f2 00 00 00    \tmov    cl,BYTE PTR [eax+0xf2]\n  411804:\t8b 04 8d 30 db 59 00 \tmov    eax,DWORD PTR [ecx*4+0x59db30]\n  41180b:\t89 45 f8             \tmov    DWORD PTR [ebp-0x8],eax\n  41180e:\t6a 02                \tpush   0x2\n  411810:\t68 21 23 40 00       \tpush   0x402321\n  411815:\te8 41 43 02 00       \tcall   0x435b5b\n  41181a:\t83 c4 08             \tadd    esp,0x8\n  41181d:\t89 45 fc             \tmov    DWORD PTR [ebp-0x4],eax\n  411820:\t8b 45 08             \tmov    eax,DWORD PTR [ebp+0x8]\n  411823:\t8b 4d fc             \tmov    ecx,DWORD PTR [ebp-0x4]\n  411826:\t89 81 a0 00 00 00    \tmov    DWORD PTR [ecx+0xa0],eax\n  41182c:\ta1 a1 2d 44 00       \tmov    eax,ds:0x442da1\n  411831:\t8b 40 08             \tmov    eax,DWORD PTR [eax+0x8]\n  411834:\t8b 4d fc             \tmov    ecx,DWORD PTR [ebp-0x4]\n  411837:\t89 41 40             \tmov    DWORD PTR [ecx+0x40],eax\n  41183a:\t6a 02                \tpush   0x2\n  41183c:\t68 21 23 40 00       \tpush   0x402321\n  411841:\te8 15 43 02 00       \tcall   0x435b5b\n  411846:\t83 c4 08             \tadd    esp,0x8\n  411849:\t89 45 fc             \tmov    DWORD PTR [ebp-0x4],eax"},{"case":"0x20 full miss / HP apply skip","flag":"target +0x62 & 0x20","scriptVaHex":"0x0045459c","helperOperandHex":"0x05","wlkNo":13,"targetFrame":0,"meaning":"full miss / no HP apply target result path","helperIdDecimal":5,"functionVaHex":"0x004118fd","functionClass":"positioned visual primitive spawner","featureSummary":{"allocationCount":2,"targetRangeLoop":false,"usesHelperIdAsScriptTableIndex":false,"scriptTableOffsets":["0x40"],"knownCalls":["allocate display object","prepare/copy visual buffer","spawn positioned visual primitive"],"writesDisplayXy":false,"writesVisualIndex0x28":true},"childScriptVaHex":"0x004b37b4","childScriptHeadBytes":"12 a0 a8 a0 12 b0 80 1c 11 80 92 00 1e 00 00 00 11 82 8c 00 00 08 00 00 2d 09 00 00 12 e0 1c 1c 01 00 00 00 06 00 03 00 c4 37 4b 00 02 00 02 00","childDecoded":{"startVaHex":"0x004b37b4","stopReason":"destroy/end at 0x004b3800","instructionCount":15,"opcodeCounts":{"0x00":1,"0x01":2,"0x02":1,"0x06":2,"0x11":3,"0x12":4,"0x2d":2},"frameSequence":[],"initFrameSequence":[],"frameScriptTargets":[],"randomRanges":[],"waits":[{"vaHex":"0x004b37d4","category":"yield","waitFrames":null,"summary":"yield one VM tick and advance"},{"vaHex":"0x004b37e0","category":"countdown-wait","waitFrames":2,"summary":"countdown wait frames=2"},{"vaHex":"0x004b37f4","category":"yield","waitFrames":null,"summary":"yield one VM tick and advance"}],"parentActorLinks":[],"rows":[{"va":4929460,"vaHex":"0x004b37b4","opcode":"0x12","length":4,"bytes":"12 a0 a8 a0","category":"write","summary":"set display/actor field +0xa8, source +0xa0, mode=0xa0","nextMode":"fallthrough","targetVa":null,"targetVaHex":"","mode":160,"modeHex":"0xa0","opKind":0,"opName":"set","dest":168,"destHex":"0xa8","source":160,"sourceHex":"0xa0","immediate":false},{"va":4929464,"vaHex":"0x004b37b8","opcode":"0x12","length":4,"bytes":"12 b0 80 1c","category":"write","summary":"set display/actor field +0x80, source +0x1c, mode=0xb0","nextMode":"fallthrough","targetVa":null,"targetVaHex":"","mode":176,"modeHex":"0xb0","opKind":0,"opName":"set","dest":128,"destHex":"0x80","source":28,"sourceHex":"0x1c","immediate":false},{"va":4929468,"vaHex":"0x004b37bc","opcode":"0x11","length":8,"bytes":"11 80 92 00 1e 00 00 00","category":"child-write","summary":"display/child field +0x92, imm=0x0000001e (0.000457764px), mode=0x80","nextMode":"fallthrough","targetVa":null,"targetVaHex":"","mode":128,"modeHex":"0x80","dest":146,"destHex":"0x92","source":0,"sourceHex":"0x00","immediate":true,"imm":30,"immHex":"0x0000001e","immSigned":30,"immFixed":0.000457763671875},{"va":4929476,"vaHex":"0x004b37c4","opcode":"0x11","length":8,"bytes":"11 82 8c 00 00 08 00 00","category":"child-write","summary":"display/child field +0x8c, imm=0x00000800 (0.03125px), mode=0x82","nextMode":"fallthrough","targetVa":null,"targetVaHex":"","mode":130,"modeHex":"0x82","dest":140,"destHex":"0x8c","source":0,"sourceHex":"0x00","immediate":true,"imm":2048,"immHex":"0x00000800","immSigned":2048,"immFixed":0.03125},{"va":4929484,"vaHex":"0x004b37cc","opcode":"0x2d","length":4,"bytes":"2d 09 00 00","category":"motion-step","summary":"absolute base + trig motion step mode=0x09 axes=x","nextMode":"fallthrough","mode":9,"modeHex":"0x09","modeGroup":8,"modeGroupHex":"0x08","axes":["x"]},{"va":4929488,"vaHex":"0x004b37d0","opcode":"0x12","length":4,"bytes":"12 e0 1c 1c","category":"write","summary":"set display/actor field +0x1c, source +0x1c, mode=0xe0","nextMode":"fallthrough","targetVa":null,"targetVaHex":"","mode":224,"modeHex":"0xe0","opKind":0,"opName":"set","dest":28,"destHex":"0x1c","source":28,"sourceHex":"0x1c","immediate":false},{"va":4929492,"vaHex":"0x004b37d4","opcode":"0x01","length":4,"bytes":"01 00 00 00","category":"yield","summary":"yield one VM tick and advance","nextMode":"fallthrough"},{"va":4929496,"vaHex":"0x004b37d8","opcode":"0x06","length":8,"bytes":"06 00 03 00 c4 37 4b 00","category":"repeat-loop","summary":"repeat/control count=3, target=0x004b37c4; static walk records it but does not expand loop body","nextMode":"fallthrough","targetVa":4929476,"targetVaHex":"0x004b37c4","repeatCount":3},{"va":4929504,"vaHex":"0x004b37e0","opcode":"0x02","length":4,"bytes":"02 00 02 00","category":"countdown-wait","summary":"countdown wait frames=2","nextMode":"fallthrough","waitFrames":2},{"va":4929508,"vaHex":"0x004b37e4","opcode":"0x11","length":8,"bytes":"11 81 8c 00 00 08 00 00","category":"child-write","summary":"display/child field +0x8c, imm=0x00000800 (0.03125px), mode=0x81","nextMode":"fallthrough","targetVa":null,"targetVaHex":"","mode":129,"modeHex":"0x81","dest":140,"destHex":"0x8c","source":0,"sourceHex":"0x00","immediate":true,"imm":2048,"immHex":"0x00000800","immSigned":2048,"immFixed":0.03125},{"va":4929516,"vaHex":"0x004b37ec","opcode":"0x2d","length":4,"bytes":"2d 09 00 00","category":"motion-step","summary":"absolute base + trig motion step mode=0x09 axes=x","nextMode":"fallthrough","mode":9,"modeHex":"0x09","modeGroup":8,"modeGroupHex":"0x08","axes":["x"]},{"va":4929520,"vaHex":"0x004b37f0","opcode":"0x12","length":4,"bytes":"12 e0 1c 1c","category":"write","summary":"set display/actor field +0x1c, source +0x1c, mode=0xe0","nextMode":"fallthrough","targetVa":null,"targetVaHex":"","mode":224,"modeHex":"0xe0","opKind":0,"opName":"set","dest":28,"destHex":"0x1c","source":28,"sourceHex":"0x1c","immediate":false},{"va":4929524,"vaHex":"0x004b37f4","opcode":"0x01","length":4,"bytes":"01 00 00 00","category":"yield","summary":"yield one VM tick and advance","nextMode":"fallthrough"},{"va":4929528,"vaHex":"0x004b37f8","opcode":"0x06","length":8,"bytes":"06 00 03 00 e4 37 4b 00","category":"repeat-loop","summary":"repeat/control count=3, target=0x004b37e4; static walk records it but does not expand loop body","nextMode":"fallthrough","targetVa":4929508,"targetVaHex":"0x004b37e4","repeatCount":3},{"va":4929536,"vaHex":"0x004b3800","opcode":"0x00","length":4,"bytes":"00 00 00 00","category":"destroy/end","summary":"destroy/free display object candidate","nextMode":"stop"}]},"frameScriptDecodes":[],"directVisualFrames":[{"label":"MISS","selectorHex":"0x00100051","sourceVaHex":"0x00411a0b","pushOpcodeVaHex":"0x00411a0a","spriteHex":"0x10","asset":"btl_etc","frame":81,"rect":{"x":272,"y":80,"w":32,"h":16,"label":"MISS","manualAnnotation":"EXE rect #81 is the bottom-row MISS text."},"evidence":"function-body immediate selector"}],"visualConclusion":"helper body directly renders btl_etc MISS selector 0x00100051; no child frameScript is needed","disasmExcerpt":"  4118fd:\t55                   \tpush   ebp\n  4118fe:\t8b ec                \tmov    ebp,esp\n  411900:\t83 ec 08             \tsub    esp,0x8\n  411903:\t53                   \tpush   ebx\n  411904:\t56                   \tpush   esi\n  411905:\t57                   \tpush   edi\n  411906:\t6a 02                \tpush   0x2\n  411908:\t68 21 23 40 00       \tpush   0x402321\n  41190d:\te8 49 42 02 00       \tcall   0x435b5b\n  411912:\t83 c4 08             \tadd    esp,0x8\n  411915:\t89 45 fc             \tmov    DWORD PTR [ebp-0x4],eax\n  411918:\t8b 45 08             \tmov    eax,DWORD PTR [ebp+0x8]\n  41191b:\t8b 4d fc             \tmov    ecx,DWORD PTR [ebp-0x4]\n  41191e:\t89 81 a0 00 00 00    \tmov    DWORD PTR [ecx+0xa0],eax\n  411924:\t8b 45 08             \tmov    eax,DWORD PTR [ebp+0x8]\n  411927:\t33 c9                \txor    ecx,ecx\n  411929:\t8a 88 f2 00 00 00    \tmov    cl,BYTE PTR [eax+0xf2]\n  41192f:\t33 c0                \txor    eax,eax\n  411931:\t83 f9 03             \tcmp    ecx,0x3\n  411934:\t0f 9d c0             \tsetge  al\n  411937:\t8b 0d a1 2d 44 00    \tmov    ecx,DWORD PTR ds:0x442da1\n  41193d:\t8b 44 81 14          \tmov    eax,DWORD PTR [ecx+eax*4+0x14]\n  411941:\t8b 4d fc             \tmov    ecx,DWORD PTR [ebp-0x4]\n  411944:\t89 41 40             \tmov    DWORD PTR [ecx+0x40],eax\n  411947:\t6a 02                \tpush   0x2\n  411949:\t68 21 23 40 00       \tpush   0x402321\n  41194e:\te8 08 42 02 00       \tcall   0x435b5b\n  411953:\t83 c4 08             \tadd    esp,0x8"},{"case":"0x08 guard/glancing chip damage","flag":"target +0x62 & 0x08","scriptVaHex":"0x004545b4","helperOperandHex":"0x16","wlkNo":12,"targetFrame":0,"meaning":"guard/glancing chip-damage target result path","helperIdDecimal":22,"functionVaHex":"0x0041254a","functionClass":"timed child visual/motion setup","featureSummary":{"allocationCount":2,"targetRangeLoop":false,"usesHelperIdAsScriptTableIndex":false,"scriptTableOffsets":["0x40","0x58"],"knownCalls":["allocate display object","child display motion/timer setup","prepare/copy visual buffer"],"writesDisplayXy":true,"writesVisualIndex0x28":true},"childScriptVaHex":"0x004b4bac","childScriptHeadBytes":"08 00 00 00 03 00 00 00 00 00 00 10 02 14 02 01 03 2c 00 00 01 00 00 00 ff 00 00 00 42 00 00 00 13 c1 04 02 e4 4b 4b 00 20 00 00 00 f8 4b 4b 00","childDecoded":{"startVaHex":"0x004b4bac","stopReason":"loop at 0x004b4bec","instructionCount":7,"opcodeCounts":{"0x01":1,"0x03":2,"0x08":1,"0x13":1,"0x20":1,"0x42":1},"frameSequence":[],"initFrameSequence":[],"frameScriptTargets":[{"vaHex":"0x004b4bd4","targetVaHex":"0x004b4bf8"}],"randomRanges":[],"waits":[{"vaHex":"0x004b4bec","category":"yield","waitFrames":null,"summary":"yield one VM tick and advance"}],"parentActorLinks":[{"vaHex":"0x004b4bc8","mode":0,"targetSlot":0,"summary":"set parent actor pointer from this display object's actor slot"}],"rows":[{"va":4934572,"vaHex":"0x004b4bac","opcode":"0x08","length":28,"bytes":"08 00 00 00 03 00 00 00 00 00 00 10 02 14 02 01 03 2c 00 00 01 00 00 00 ff 00 00 00","category":"init-block","summary":"variable init block writes=4 stop=terminator","nextMode":"fallthrough","initWrites":[{"subop":"0x03","offset":4,"length":8,"category":"dword-write","dest":0,"destHex":"0x00","destLabel":"display.flags +0x00","value":268435456,"valueHex":"0x10000000","valueFixed":4096.0,"summary":"dword display.flags +0x00 = 0x10000000"},{"subop":"0x02","offset":12,"length":4,"category":"word-write","dest":20,"destHex":"0x14","destLabel":"display.kind/priority +0x14","value":258,"valueHex":"0x0102","summary":"word display.kind/priority +0x14 = 0x0102"},{"subop":"0x03","offset":16,"length":8,"category":"dword-write","dest":44,"destHex":"0x2c","destLabel":"display.timerOrCounter +0x2c","value":1,"valueHex":"0x00000001","valueFixed":1.52587890625e-05,"summary":"dword display.timerOrCounter +0x2c = 0x00000001"},{"subop":"0xff","offset":24,"length":4,"category":"init-end","summary":"0x08 init terminator"}],"initStop":"terminator","initFrames":[]},{"va":4934600,"vaHex":"0x004b4bc8","opcode":"0x42","length":4,"bytes":"42 00 00 00","category":"parent-actor","summary":"set parent actor pointer from this display object's actor slot","nextMode":"fallthrough","mode":0,"targetSlot":0},{"va":4934604,"vaHex":"0x004b4bcc","opcode":"0x13","length":8,"bytes":"13 c1 04 02 e4 4b 4b 00","category":"branch","summary":"branch unresolved if mode=0xc1 lhs=+0x04 rhs=0x02 -> 0x004b4be4","nextMode":"branch-unresolved","targetVa":4934628,"targetVaHex":"0x004b4be4"},{"va":4934612,"vaHex":"0x004b4bd4","opcode":"0x20","length":8,"bytes":"20 00 00 00 f8 4b 4b 00","category":"frame-script-pointer","summary":"set display.frameScript(+0x64) = 0x004b4bf8","nextMode":"fallthrough","targetVa":4934648,"targetVaHex":"0x004b4bf8"},{"va":4934620,"vaHex":"0x004b4bdc","opcode":"0x03","length":8,"bytes":"03 00 00 00 ec 4b 4b 00","category":"jump","summary":"jump 0x004b4bec","nextMode":"jump","targetVa":4934636,"targetVaHex":"0x004b4bec"},{"va":4934636,"vaHex":"0x004b4bec","opcode":"0x01","length":4,"bytes":"01 00 00 00","category":"yield","summary":"yield one VM tick and advance","nextMode":"fallthrough"},{"va":4934640,"vaHex":"0x004b4bf0","opcode":"0x03","length":8,"bytes":"03 00 00 00 ec 4b 4b 00","category":"jump","summary":"jump 0x004b4bec","nextMode":"jump","targetVa":4934636,"targetVaHex":"0x004b4bec"}]},"frameScriptDecodes":[{"sourceVaHex":"0x004b4bd4","targetVaHex":"0x004b4bf8","decoded":{"startVaHex":"0x004b4bf8","stopReason":"destroy/end at 0x004b4c18","instructionCount":5,"opcodeCounts":{"0x00":1,"0x21":4},"frameSequence":[56,57,58,59],"initFrameSequence":[],"frameScriptTargets":[],"randomRanges":[],"waits":[],"parentActorLinks":[],"rows":[{"va":4934648,"vaHex":"0x004b4bf8","opcode":"0x21","length":8,"bytes":"21 00 02 00 38 00 1a 00","category":"frame","summary":"set sprite=0x1a, frame=56, gate=2, mode=0","nextMode":"fallthrough","targetVa":null,"targetVaHex":"","sprite":26,"spriteHex":"0x1a","frame":56,"gate":2,"mode":0},{"va":4934656,"vaHex":"0x004b4c00","opcode":"0x21","length":8,"bytes":"21 00 02 00 39 00 1a 00","category":"frame","summary":"set sprite=0x1a, frame=57, gate=2, mode=0","nextMode":"fallthrough","targetVa":null,"targetVaHex":"","sprite":26,"spriteHex":"0x1a","frame":57,"gate":2,"mode":0},{"va":4934664,"vaHex":"0x004b4c08","opcode":"0x21","length":8,"bytes":"21 00 02 00 3a 00 1a 00","category":"frame","summary":"set sprite=0x1a, frame=58, gate=2, mode=0","nextMode":"fallthrough","targetVa":null,"targetVaHex":"","sprite":26,"spriteHex":"0x1a","frame":58,"gate":2,"mode":0},{"va":4934672,"vaHex":"0x004b4c10","opcode":"0x21","length":8,"bytes":"21 00 02 00 3b 00 1a 00","category":"frame","summary":"set sprite=0x1a, frame=59, gate=2, mode=0","nextMode":"fallthrough","targetVa":null,"targetVaHex":"","sprite":26,"spriteHex":"0x1a","frame":59,"gate":2,"mode":0},{"va":4934680,"vaHex":"0x004b4c18","opcode":"0x00","length":4,"bytes":"00 00 00 00","category":"destroy/end","summary":"destroy/free display object candidate","nextMode":"stop"}]},"visualFrames":[{"sourceVaHex":"0x004b4bf8","spriteHex":"0x1a","asset":"btl_efc","frame":56,"gate":2,"rect":{"x":512,"y":16,"w":32,"h":48}},{"sourceVaHex":"0x004b4c00","spriteHex":"0x1a","asset":"btl_efc","frame":57,"gate":2,"rect":{"x":544,"y":16,"w":32,"h":48}},{"sourceVaHex":"0x004b4c08","spriteHex":"0x1a","asset":"btl_efc","frame":58,"gate":2,"rect":{"x":576,"y":16,"w":32,"h":48}},{"sourceVaHex":"0x004b4c10","spriteHex":"0x1a","asset":"btl_efc","frame":59,"gate":2,"rect":{"x":608,"y":16,"w":32,"h":48}}]}],"directVisualFrames":[],"visualConclusion":"child VM sets frameScript 0x004b4bf8 with sprite 0x1a frames 56..59 gate 2, bound to btl_efc rects","disasmExcerpt":"  41254a:\t55                   \tpush   ebp\n  41254b:\t8b ec                \tmov    ebp,esp\n  41254d:\t83 ec 08             \tsub    esp,0x8\n  412550:\t53                   \tpush   ebx\n  412551:\t56                   \tpush   esi\n  412552:\t57                   \tpush   edi\n  412553:\t8b 45 08             \tmov    eax,DWORD PTR [ebp+0x8]\n  412556:\t33 c9                \txor    ecx,ecx\n  412558:\t8a 88 f2 00 00 00    \tmov    cl,BYTE PTR [eax+0xf2]\n  41255e:\t8b 04 8d 30 db 59 00 \tmov    eax,DWORD PTR [ecx*4+0x59db30]\n  412565:\t89 45 f8             \tmov    DWORD PTR [ebp-0x8],eax\n  412568:\t6a 02                \tpush   0x2\n  41256a:\t68 21 23 40 00       \tpush   0x402321\n  41256f:\te8 e7 35 02 00       \tcall   0x435b5b\n  412574:\t83 c4 08             \tadd    esp,0x8\n  412577:\t89 45 fc             \tmov    DWORD PTR [ebp-0x4],eax\n  41257a:\t8b 45 08             \tmov    eax,DWORD PTR [ebp+0x8]\n  41257d:\t8b 4d fc             \tmov    ecx,DWORD PTR [ebp-0x4]\n  412580:\t89 81 a0 00 00 00    \tmov    DWORD PTR [ecx+0xa0],eax\n  412586:\ta1 a1 2d 44 00       \tmov    eax,ds:0x442da1\n  41258b:\t8b 40 58             \tmov    eax,DWORD PTR [eax+0x58]\n  41258e:\t8b 4d fc             \tmov    ecx,DWORD PTR [ebp-0x4]\n  412591:\t89 41 40             \tmov    DWORD PTR [ecx+0x40],eax\n  412594:\t8b 45 08             \tmov    eax,DWORD PTR [ebp+0x8]\n  412597:\t8a 80 f2 00 00 00    \tmov    al,BYTE PTR [eax+0xf2]\n  41259d:\t8b 4d fc             \tmov    ecx,DWORD PTR [ebp-0x4]\n  4125a0:\t88 81 f2 00 00 00    \tmov    BYTE PTR [ecx+0xf2],al\n  4125a6:\t8b 45 08             \tmov    eax,DWORD PTR [ebp+0x8]"}]}