{"sourceExe":"Hwanse2.exe","summary":["actor +0x2a는 전투 자세와 상태이상을 모두 담는 확정 필드다.","1..5는 플레이어가 전투 중 PgUp/PgDn으로 순환시키는 자세다.","6..20은 공격 부가효과가 아니라 아타호 술취함, 스마슈 눈요기, 린샹 도발 전용 루틴이 직접 쓰는 캐릭터 고유 상태다.","21..27은 일반 상태이상/행동불가 계열이다. 이 중 21..26은 +0x6c 공격 부가효과에서 올 수 있고, 27 기절은 HP 0 경로에서 온다.","payload가 넣은 +0x6c 상태 효과값은 성공 gate를 거쳐 0x434e84에서 실제 상태 id로 변환된다.","+0x6c는 actor +0x2a 전체를 뜻하지 않는다. 공격 hit-unit의 부가 상태 효과값 1..6만 담는 별도 result byte다.","+0x66은 상태 진입 전 +0x2a 백업, +0x64는 timed 상태 timer, +0x68은 상태 표시 갱신 flag로 확정됐다.","+0x67은 mode/status table +0x16/+0x17이 아니라 액션 대상 범위 selector로 확정됐다.","hit-unit byte[4]는 0x433649가 payload에서 읽고 0x433545/0x4335c6이 actor +0x67에 쓰는 target scope id다.","0x0059e347은 selected target latch다. 0x5c/0x0040fa6d가 선택 필요 여부를 가르고, 0x40f57c action setup이 이 latch를 actor +0x61에 복사한다.","0x0059e347의 direct producer는 0x0040fb1c/0x0040fb21 하나다. 이 경로는 0x0059e33e current actor/object index를 e347에 복사하는 기본 대상 경로이며, target-scope bit 0x08 선택 UI 경로에서는 e347을 직접 쓰지 않는다.","0x57/0x58/0x59는 선택 후보의 등록/제거/존재 분기 opcode다. helper 0x421ef7/0x422093/0x42234e와 paired removal helper를 통해 actor/action, item, skill-family 후보 목록을 갱신한다.","0x5e/0x0040fc41, 0x60/0x0040fcee, 0x61/0x0040fed4는 0x5c가 넘기는 nested target-selection script의 핵심 UI opcode다. 각각 후보 목록 setup, 표시 범위/커서 보정, 선택 entry resolver로 분리된다. 단 0x61은 object +0x58 결과를 쓰며 0x0059e347 latch를 직접 쓰지는 않는다.","0x41fbaa interactive confirm helper는 cursor entry id를 object +0x58에, entry class를 0x0059e33f에 남긴다. 0x41e72d는 0x0059e33f 기준으로 선택 결과를 다시 object +0x58로 읽는 표시/조회 helper다.","0x40c513 selection-mode target apply는 0x0059e34d==1일 때 actor +0x67 selector를 보고 actor +0x61을 세팅한다. mode 1은 공용 opcode24 source인 0x0059e348+3, mode 2는 전투 selected-target latch인 0x0059e347을 source로 쓴다.","+0x61은 단일 대상 actor index이며 0x433402/0x433c99/0x433dc0와 0x435538 target loop에서 선택 대상 fallback으로 쓰인다.","mode/status table의 +0x16/+0x17 꼬리 byte는 전투 계산 계수가 아니다. 0x48bcaa code path와 record direct-ref scan상 계산 소비자는 없으므로 전투 런타임 미확정이 아니라 비소비 정적 분류 메타데이터로 남긴다.","actor +0x65/+0x69는 화면 표시값이 아니라 아타호 술취함 전용 내부 제어값이다. +0x65는 전투 중 취기, +0x69는 곤드레만드레 hazard check pending flag이며 화면 상태명은 +0x2a 상태 id가 담당한다.","actor +0x18/+0x1a는 아타호 술 관련 영속값이다. +0x1a 주량 경험치가 100을 넘으면 +0x18 주량이 최대 100까지 증가하고, 곤드레만드레 판정 random(100)+주량 < 취기에서 주량이 높을수록 부작용 확률이 낮아진다.","전투 종료 정리 루틴은 +0x18/+0x1a를 player row로 복사하지만 +0x65는 복사하지 않는다. 따라서 +0x65 취기는 전투별 임시값, +0x18 주량과 +0x1a 주량 경험치는 전투를 넘어 유지되는 값으로 분리한다.","critical WLK id 14 결과음과 palette flash/fade child script는 result presentation 쪽에서 확정됐다. 상태 전이 루틴의 남은 항목으로 보지 않는다."],"statusIds":[{"id":1,"name":"보통","group":"player stance"},{"id":2,"name":"돌격","group":"player stance"},{"id":3,"name":"방어","group":"player stance"},{"id":4,"name":"선제","group":"player stance"},{"id":5,"name":"반격","group":"player stance"},{"id":6,"name":"얼근히 취함","group":"아타호 술취함"},{"id":7,"name":"만취함","group":"아타호 술취함"},{"id":8,"name":"정신없이 취함","group":"아타호 술취함"},{"id":9,"name":"대호","group":"아타호 술취함"},{"id":10,"name":"곤드레만드레","group":"아타호 술취함"},{"id":11,"name":"흥분","group":"스마슈 눈요기"},{"id":12,"name":"분노","group":"스마슈 눈요기"},{"id":13,"name":"폭발직전","group":"스마슈 눈요기"},{"id":14,"name":"대폭발","group":"스마슈 눈요기"},{"id":15,"name":"푸쉬","group":"스마슈 눈요기"},{"id":16,"name":"위압적인 자세","group":"린샹 도발"},{"id":17,"name":"노발충천","group":"린샹 도발"},{"id":18,"name":"무뚝뚝한 표정","group":"린샹 도발"},{"id":19,"name":"여왕님","group":"린샹 도발"},{"id":20,"name":"피곤함","group":"린샹 도발"},{"id":21,"name":"졸림","group":"상태이상/행동불가"},{"id":22,"name":"행동정지","group":"상태이상/행동불가"},{"id":23,"name":"넘어짐","group":"상태이상/행동불가"},{"id":24,"name":"휙 날아감","group":"상태이상/행동불가"},{"id":25,"name":"독","group":"상태이상/행동불가"},{"id":26,"name":"마비","group":"상태이상/행동불가"},{"id":27,"name":"기절","group":"상태이상/행동불가"}],"statusProducerGroups":[{"idRange":"1..5","group":"전투 자세","ids":"보통, 돌격, 방어, 선제, 반격","producer":"플레이어 PgUp/PgDn 자세 변경 루틴","relationToEffect":"+0x6c 상태 효과값과 무관하게 actor +0x2a를 직접 갱신한다."},{"idRange":"6..10","group":"아타호 술취함","ids":"얼근히 취함, 만취함, 정신없이 취함, 대호, 곤드레만드레","producer":"술 마시기/취호권 전용 루틴 0x00434a4a 및 부작용 검사 0x0043512e","relationToEffect":"+0x6c 없이 actor +0x2a를 직접 갱신한다. 곤드레만드레는 부작용 경로에서 졸림으로 전환될 수 있다."},{"idRange":"11..15","group":"스마슈 눈요기","ids":"흥분, 분노, 폭발직전, 대폭발, 푸쉬","producer":"눈요기 전용 루틴 0x00434cbb","relationToEffect":"+0x6c 없이 actor +0x2a를 직접 갱신한다."},{"idRange":"16..20","group":"린샹 도발","ids":"위압적인 자세, 노발충천, 무뚝뚝한 표정, 여왕님, 피곤함","producer":"도발 전용 루틴 0x00434d8d","relationToEffect":"+0x6c 없이 actor +0x2a를 직접 갱신한다."},{"idRange":"21..27","group":"일반 상태이상/행동불가","ids":"졸림, 행동정지, 넘어짐, 휙 날아감, 독, 마비, 기절","producer":"공격 부가효과 +0x6c 변환 루틴 0x00434e84, HP 0 처리, 일부 캐릭터 고유 부작용","relationToEffect":"+0x6c는 이 그룹 중 21..26만 생산한다. 기절 27은 HP 0 경로, 졸림 21은 아타호 술취함 부작용 경로에서도 생산된다."}],"actorFields":[{"offset":"+0x58","name":"action target mode","status":"고신뢰","meaning":"타겟 selector 초기화 방식. 0이면 payload hit-unit byte[4]를 +0x67로 복사하고, 1이면 +0x67=0x09, 2이면 +0x67=0x00으로 강제한다."},{"offset":"+0x59","name":"current skill/action id","status":"확정","meaning":"현재 시전 중인 skill/action id. 플레이어는 character skill table, 적/공용은 shared action table의 8-byte record를 고르는 인덱스다."},{"offset":"+0x61","name":"selected target actor index","status":"확정","meaning":"단일 대상 인덱스. action setup에서 selected target latch 0x0059e347이 복사되고, +0x67 selector가 전체 범위가 아니거나 0x09/0x0a 선택 대상 계열일 때 이 값을 기본 target range로 쓴다."},{"offset":"+0x2a","name":"mode/status id","status":"확정","meaning":"0x0048bcaa 자세/상태 테이블 index. 자세, 아타호 술취함, 스마슈 눈요기, 린샹 도발, 일반 상태이상이 모두 합쳐진 unified id다."},{"offset":"+0x18","name":"주량","status":"확정","meaning":"아타호 술취함 부작용을 낮추는 영속 누적값. 0x434a4a에서 주량 경험치 +0x1a가 100을 넘을 때 최대 100까지 1씩 증가하고, 0x43522b의 곤드레만드레 판정 random(100)+주량(+0x18) < 취기(+0x65)에 쓰인다."},{"offset":"+0x1a","name":"주량 경험치","status":"확정","meaning":"정식 UI 명칭이 없는 숨은 성장 게이지. 술/취호권 계열 result의 취기 증가량이 누적되고, 100을 넘으면 주량 +0x18을 1 올린 뒤 0으로 리셋된다. 전투 종료 정리에서 +0x18과 함께 player row로 복사되므로 전투를 넘어 유지된다."},{"offset":"+0x62 bit 0x01","name":"one-turn action/display latch","status":"확정","meaning":"넘어짐/휙 날아감/행동정지와 마비 해제 직후에 세워지는 1턴 latch. 다음 battle-order cleanup 0x40d95b에서 +0x2a를 +0x66에서 복원하고 +0x64/+0x66을 비운 뒤 bit 0x01만 지운다. UI 상태명은 이 bit가 아니라 +0x2a 상태 id가 결정한다."},{"offset":"+0x62 bit 0x02","name":"timed command/action lock","status":"확정","meaning":"마비/졸림/푸쉬/곤드레만드레처럼 timer +0x64로 유지되는 상태에서 세워지는 command/action lock. 0x43512e가 timer/random recovery를 검사한 뒤 +0x2a를 +0x66에서 복원하고 bit 0x02만 해제한다. UI 상태명은 이 bit가 아니라 +0x2a 상태 id가 결정한다."},{"offset":"+0x62 bit 0x40","name":"HP zero / knockout","status":"확정","meaning":"HP damage apply 후 current HP가 0이면 세워지고, 0x434e84가 +0x2a를 27 기절로 전환한다."},{"offset":"+0x64","name":"temporary status timer","status":"확정","meaning":"마비/졸림/독/푸쉬 같은 timed 상태의 남은 tick. 랜덤으로 2..6 근처 값이 들어간다."},{"offset":"+0x65","name":"취기","status":"확정","meaning":"아타호 술취함 전투 중 누적치. 0x434a4a가 기술/무기 계열 result로 증가시키고 0xff에서 포화한다. 0/0x21/0x42/0x64 임계값으로 +0x2a를 6/7/8/9 술취함 상태로 승급하며, 곤드레만드레 판정에서는 random(100)+주량(+0x18) < 취기(+0x65)로 소비된다. 전투 종료 정리에서 player row로 복사되는 값은 +0x18/+0x1a이고 +0x65는 복사되지 않으므로 전투별 임시값으로 본다."},{"offset":"+0x66","name":"saved prior mode/status","status":"확정","meaning":"상태이상/캐릭터 고유 모드 진입 전에 기존 +0x2a를 저장하고, 회복 시 +0x2a로 복원한다."},{"offset":"+0x67","name":"target selector/range code","status":"확정","meaning":"런타임 target scope selector. payload hit-unit byte[4]에서 오거나 +0x58 mode로 강제되며, 0x433c99/0x433dc0이 low nibble로 대상 시작/끝을 계산한다."},{"offset":"+0x68","name":"status display dirty flag","status":"고신뢰","meaning":"상태/자세가 바뀔 때 1로 세워진다. 기절은 적 actor에서는 0, player actor에서는 1로 처리된다."},{"offset":"+0x69","name":"drunk hazard pending flag","status":"확정","meaning":"술취함 상태 갱신 후 1로 세워지는 1회성 pending flag. 0x43522b가 random(100)+주량(+0x18) < 취기(+0x65)이면 +0x2a=10 곤드레만드레와 +0x62 bit 0x02 lock을 세우고, 검사 후 항상 0으로 지운다. 화면에는 직접 표시되지 않고 +0x2a 상태 변화만 보인다."},{"offset":"+0x6c","name":"status effect/result id","status":"확정","meaning":"payload status byte가 들어가는 상태 효과 id. 상태 성공 gate를 통과하면 0x434e84가 1..6을 실제 상태로 매핑하고, 실패하면 0으로 지운다."}],"statusEffects":[{"effectValue":1,"statusId":23,"statusName":"넘어짐","timer":"0","flag":"+0x62 bit 0x01","evidence":"0x43504c set +0x2a=0x17"},{"effectValue":2,"statusId":24,"statusName":"휙 날아감","timer":"0","flag":"+0x62 bit 0x01","evidence":"0x435077 set +0x2a=0x18"},{"effectValue":3,"statusId":22,"statusName":"행동정지","timer":"0","flag":"+0x62 bit 0x01","evidence":"0x4350a2 set +0x2a=0x16"},{"effectValue":4,"statusId":25,"statusName":"독","timer":"current + rand(3)+4","flag":"timer only","evidence":"0x4350cd set +0x2a=0x19"},{"effectValue":5,"statusId":26,"statusName":"마비","timer":"rand(3)+4","flag":"+0x62 bit 0x02","evidence":"0x434f8a set +0x2a=0x1a"},{"effectValue":6,"statusId":21,"statusName":"졸림","timer":"current + rand(3)+4","flag":"+0x62 bit 0x02","evidence":"0x434fc4 set +0x2a=0x15"}],"targetScopes":[{"value":"0x00","scope":"default selected target","source":"runtime forced by +0x58 == 2","meaning":"+0x67 helper에서는 특수 전체 범위가 아니므로 +0x61 단일 target index로 fallback한다."},{"value":"0x01","scope":"self/setup/current actor","source":"payload byte[4]","meaning":"마시기, 술/장비 기술의 준비 hit-unit처럼 자기 자신 또는 시전 준비 효과에 쓰인다."},{"value":"0x05","scope":"all allies","source":"payload byte[4]","meaning":"기공대회복처럼 아군 전체 범위. actor +0x04가 어느 편인지에 따라 0..playerCount 또는 3..enemyEnd 범위로 바뀐다."},{"value":"0x06","scope":"all enemies","source":"payload byte[4]","meaning":"전체공격기 범위. actor +0x04가 어느 편인지에 따라 반대편 actor range를 반환한다."},{"value":"0x09","scope":"one ally / selected ally","source":"payload byte[4] or runtime forced by +0x58 == 1","meaning":"기공회복/기공독치료처럼 선택한 아군 하나. range helper에서는 +0x61 단일 target index로 fallback한다."},{"value":"0x0a","scope":"one enemy / selected enemy","source":"payload byte[4]","meaning":"일반 단일 공격기. range helper에서는 +0x61 단일 target index로 fallback한다."}],"targetScopeFlow":[{"va":4258413,"name":"selected-target gate opcode 0x5c","summary":"handler-table opcode 0x5c가 현재 actor/skill의 payload target scope byte[4]를 0x433649로 미리 읽어 bit 0x08을 검사한다. 선택 대상 계열이면 stream +4의 nested target-selection script로 들어가고, 아니면 현재 actor index 0x0059e33e를 0x0059e347 selected target latch에 저장한다.","result":"0x5c/0x0040fa6d는 UI 본체가 아니라 선택 필요 여부 gate이자 기본 selected target latch 생산자다. 0x0040fb1c/0x0040fb21이 0x0059e33e -> 0x0059e347을 직접 수행하는 유일한 direct writer다.","vaHex":"0x0040fa6d"},{"va":4256244,"name":"selection/register opcode 0x57","summary":"stream byte[1]의 entry type으로 class를 나눈 뒤 class 0은 0x421ef7, class 1은 0x422093, class 2는 0x42234e를 호출한다. 반환값은 현재 script object +0x58에 저장된다.","result":"선택/소지/기술 후보 등록 또는 검증 opcode로 승격. 최종 전투 대상 latch를 직접 쓰지는 않는다.","vaHex":"0x0040f1f4"},{"va":4256525,"name":"selection/remove opcode 0x58","summary":"0x57과 같은 entry class 해석을 사용하지만 paired removal helper를 호출한다. class 0은 0x42267e, class 1은 0x4226e9, class 2는 0x422899로 이어진다.","result":"선택/소지/기술 후보 제거 opcode로 승격","vaHex":"0x0040f30d"},{"va":4256806,"name":"selection/check branch opcode 0x59","summary":"entry class별 helper로 후보 존재/상태를 확인하고 조건이 맞으면 stream +4 nested pointer로 분기하며, 아니면 stream +8로 진행한다.","result":"선택 후보 존재 여부에 따른 branch opcode로 승격","vaHex":"0x0040f426"},{"va":4258881,"name":"selection-list setup opcode 0x5e","summary":"stream +8을 후보 entry 배열로 0x0059e2a8에 저장하고, stream +4 pointer table을 0x0059db50에 저장한다. stream byte[1]을 후보 수 0x0059e2d8로 두고, 현재 stream은 8 + count*4만큼 넘긴다. 이후 0x0059e337을 세우고 공통 선택 루프 0x004dc51c로 점프한다.","result":"단일 대상 선택 UI의 후보 목록 setup opcode로 승격","vaHex":"0x0040fc41"},{"va":4259054,"name":"selection-page/window opcode 0x60","summary":"현재 선택 cursor 0x0059e34a로 0x0059e2a8 후보 entry를 읽고, entry type별로 0x0059e339/0x0059e33a/0x0059e33b를 계산한다. 이 값들은 선택 목록의 시작/표시 범위/스크롤 보정 계열로 보이며 전투 damage/result 값은 아니다.","result":"단일 대상 선택 UI의 표시 범위/커서 보정 opcode로 승격","vaHex":"0x0040fcee"},{"va":4324266,"name":"interactive cursor-entry confirm helper","summary":"0x0059e34a cursor로 0x0059e2a8의 현재 후보 entry를 읽고, entry id(byte[1])를 script object +0x58에 저장한다. entry class에 따라 0x0059e33f를 0/1/2로 세운 뒤 object +0xb0을 4만큼 진행한다.","result":"선택 UI에서 사용자가 고른 항목값과 항목 종류를 생산하는 confirm/helper 경로로 승격. 단 이 지점은 0x0059e347 selected target latch를 직접 쓰지는 않는다.","vaHex":"0x0041fbaa"},{"va":4319021,"name":"selection result reader by 0x0059e33f","summary":"0x0059e33f dispatch로 actor/action/item/skill-family 후보 테이블을 읽어 object +0x58에 반영한다. case 4/5는 cursor 0x0059e34a 자체를 object +0x58에 쓴다.","result":"선택 결과 표시/조회 helper로 승격. 최종 target latch가 아니라 후보 결과 조회 계층이다.","vaHex":"0x0041e72d"},{"va":4259540,"name":"selection-entry resolver opcode 0x61","summary":"0x0059e34a cursor로 선택된 4-byte entry를 0x0059e2a8에서 읽고 entry type을 dispatch한다. class 0은 actor/action table 0x457750과 0x421ef7, class 1은 0x422093, class 2는 0x42234e를 호출한 뒤 결과를 script object +0x58에 저장한다.","result":"선택 cursor entry를 검증/등록 결과로 변환하는 resolver opcode로 승격. object +0x58을 쓰지만 0x0059e347 selected target latch를 직접 쓰는 경로는 아니다.","vaHex":"0x0040fed4"},{"va":4259919,"name":"selection pointer-table activation opcode 0x63","summary":"0x0059db50 pointer table에서 stream byte[1] index 항목을 읽어 script object +0xb0에 저장하고, object routine 0x41b66d를 호출한다. 0x5e가 세팅한 pointer table을 실제 선택 후속 동작으로 소비하는 경로다.","result":"선택 UI 후속 script/object pointer 소비 경로","vaHex":"0x0041004f"},{"va":4257148,"name":"manual/menu action setup","summary":"action case 0에서 actor +0x59 skill id를 채운 뒤 0x433649로 initial target scope를 +0x67에 쓰고, 0x0059e347 selected target latch를 actor +0x61로 복사한다. 이어 0x435538이 같은 latch actor를 인자로 받아 target-side setup을 수행한다.","result":"0x0059e347 selected target latch 소비 경로 확정. 실제 기술 실행 actor에는 actor +0x61 단일 대상 index로 들어간다.","vaHex":"0x0040f57c"},{"va":4244755,"name":"selection-mode target apply","summary":"0x0059e34d가 1인 selection mode에서 현재 actor +0x67 selector를 검사하고 actor +0x61을 세팅한다. mode 1은 0x0059e348 + 3을 actor +0x61에 직접 쓰고, mode 2는 selected target latch 0x0059e347을 actor +0x61에 쓴다.","result":"selection mode에서 단일 대상 actor index가 실제 actor +0x61로 적용되는 소비 경로 확정. 0x0059e347 direct producer는 닫혔고, 0x0059e348은 공용 opcode24 mode1/source 계열로 격리한다.","vaHex":"0x0040c513"},{"va":4404809,"name":"payload target scope byte reader","summary":"actor +0x04/+0x05/+0x59로 player/shared action payload를 찾고, hitIndex를 count에 맞춰 clamp한 뒤 payload + 0x16 + hitIndex*8 + 4 값을 반환한다.","result":"hit-unit byte[4] 직접 소비 지점 확정","vaHex":"0x00433649"},{"va":4404549,"name":"initial target selector writer","summary":"actor +0x58이 0이면 0x433649(..., 0xff) 결과를 +0x67에 쓰고, 1이면 0x09, 2이면 0x00을 쓴다.","result":"액션 시작 전 selector 초기화","vaHex":"0x00433545"},{"va":4404678,"name":"per-hit target selector writer","summary":"global hitIndex 0x0059e2a4를 사용해 현재 hit-unit의 byte[4]를 다시 +0x67에 반영한다. +0x58 1/2 override는 동일하다.","result":"다중 hit-unit 기술에서 hit마다 target scope 갱신","vaHex":"0x004335c6"},{"va":4404226,"name":"selected target index resolver","summary":"+0x67 selector를 보고 +0x61 단일 target index를 보정한다. 0x09/0x0a 같은 선택 대상 계열은 결국 +0x61 경로로 소비된다.","result":"+0x61 selected target index 소비 경로 확정","vaHex":"0x00433402"},{"va":4406425,"name":"target range start helper","summary":"현재 actor의 +0x67 low nibble이 0x01/0x05/0x06이면 각각 현재 actor/아군 전체/적 전체 범위 시작점을 반환하고, 그 외에는 +0x61을 반환한다.","result":"target loop start 계산","vaHex":"0x00433c99"},{"va":4406720,"name":"target range end helper","summary":"0x433c99와 같은 selector를 사용해 exclusive end index를 반환한다. 0x01은 현재 actor+1, 0x05/0x06은 편별 actor range 끝이다.","result":"target loop end 계산","vaHex":"0x00433dc0"},{"va":4412728,"name":"target-scope hit-unit target loop","summary":"actor +0x67을 다시 검사해 0x01/0x09는 +0x61 단일 actor, 0x05는 아군 전체 range로 풀고, 각 target actor에 hit-unit family helper table 0x00546970을 호출한다.","result":"+0x61이 실제 hit-unit target iteration에 들어가는 소비 경로 확정","vaHex":"0x00435538"}],"transitions":[{"name":"플레이어 자세 변경","va":4258693,"routine":"PgUp/PgDn handler","summary":"현재 선택 actor의 +0x2a를 1..5 범위에서 감소/증가시킨다. 1보다 작아지면 5, 5보다 커지면 1로 wrap.","result":"보통/돌격/방어/선제/반격 순환 확정"},{"name":"명중 후 상태 적용","va":4411012,"routine":"hit result status applier","summary":"HP zero면 기절(27)을 우선 적용하고, 아니면 +0x6c 상태 효과값 1..6을 상태 id 21..26/23..25로 변환한다.","result":"+0x6c 상태 효과 매핑 확정"},{"name":"상태 지속/회복","va":4411694,"routine":"temporary status recovery tick","summary":"+0x64 timer를 감소시키고 luck-side +0x26 기반 random gate를 통과하면 +0x66의 이전 +0x2a를 복원한다.","result":"+0x64 timer, +0x66 saved prior status 확정"},{"name":"아타호 술취함","va":4409930,"routine":"drunk state accumulator","summary":"기술/무기 계열 result가 취기(+0x65)를 누적하고 임계값 0/0x21/0x42/0x64를 넘으면 6/7/8/9 상태로 승급한다. 같은 증가량은 주량 경험치(+0x1a)에도 누적되며, 100을 넘으면 주량(+0x18)이 최대 100까지 1 오른다.","result":"취기, 주량 경험치, 주량과 얼근히 취함/만취함/정신없이 취함/대호 진행 확정"},{"name":"곤드레만드레/졸림 전환","va":4411694,"routine":"drunk hazard and sleep conversion","summary":"+0x69가 세워진 뒤 random(100)+주량(+0x18) < 취기(+0x65)이면 곤드레만드레(10). 곤드레만드레 상태는 random으로 졸림(21)으로 바뀔 수 있다.","result":"+0x69 pending flag와 술취함 부작용 경로 확정"},{"name":"스마슈 눈요기","va":4410555,"routine":"Smash eye-candy mode progression","summary":"기존 상태를 +0x66에 저장하고 11..14를 진행시킨다. 14 대폭발 이후에는 15 푸쉬로 전환하고 timer를 건다.","result":"흥분/분노/폭발직전/대폭발/푸쉬 진행 확정"},{"name":"린샹 도발","va":4410765,"routine":"Rinshan taunt random mode","summary":"random(4)+0x10으로 16..19 모드 중 하나를 고른다. 현재와 같은 모드가 다시 걸리면 20 피곤함으로 전환하고 timer를 건다.","result":"도발 4상태 + 피곤함 경로 확정"},{"name":"대상 범위 계산","va":4406425,"routine":"target range start/end helpers","summary":"+0x67 low nibble을 기준으로 자신/선택 대상/아군 전체/적 전체 범위의 시작과 끝 actor index를 계산한다.","result":"+0x67은 mode table tail이 아니라 action target selector로 분리"},{"name":"타겟 selector payload 소비","va":4404809,"routine":"hit-unit byte[4] reader / +0x67 writers","summary":"0x433649가 payload hit-unit byte[4]를 읽고, 0x433545/0x4335c6이 이를 actor +0x67에 쓴다.","result":"byte[4] target scope 소비 경로 확정"}],"functionRows":[{"va":4258693,"end":4258864,"label":"player stance cycle handler","needles":["[eax+0x2a]","c6 40 2a 05","c6 40 2a 01","inc","dec"],"vaHex":"0x0040fb85","endHex":"0x0040fc30","keyLines":["  40fb95:\t8a 48 2a             \tmov    cl,BYTE PTR [eax+0x2a]","  40fbaf:\tfe 48 2a             \tdec    BYTE PTR [eax+0x2a]","  40fbc5:\tc6 40 2a 05          \tmov    BYTE PTR [eax+0x2a],0x5","  40fbde:\t8a 48 2a             \tmov    cl,BYTE PTR [eax+0x2a]","  40fbf8:\tfe 40 2a             \tinc    BYTE PTR [eax+0x2a]","  40fc0e:\tc6 40 2a 01          \tmov    BYTE PTR [eax+0x2a],0x1"]},{"va":4411012,"end":4411694,"label":"hit result status applier","needles":["[eax+0x62]","[eax+0x6c]","[eax+0x66]","[eax+0x64]","[eax+0x68]","c6 40 2a 1b","c6 40 2a 1a","c6 40 2a 15","c6 40 2a 17","c6 40 2a 18","c6 40 2a 16","c6 40 2a 19"],"vaHex":"0x00434e84","endHex":"0x0043512e","keyLines":["  434e92:\t8a 48 62             \tmov    cl,BYTE PTR [eax+0x62]","  434ea8:\t8a 48 62             \tmov    cl,BYTE PTR [eax+0x62]","  434eb9:\t8a 48 66             \tmov    cl,BYTE PTR [eax+0x66]","  434ee4:\tc6 40 2a 1b          \tmov    BYTE PTR [eax+0x2a],0x1b","  434eeb:\tc6 40 64 00          \tmov    BYTE PTR [eax+0x64],0x0","  434f03:\tc6 40 68 01          \tmov    BYTE PTR [eax+0x68],0x1","  434f0f:\tc6 40 68 00          \tmov    BYTE PTR [eax+0x68],0x0","  434f50:\t8a 48 6c             \tmov    cl,BYTE PTR [eax+0x6c]","  434f60:\t8a 48 66             \tmov    cl,BYTE PTR [eax+0x66]","  434f7c:\t8a 48 6c             \tmov    cl,BYTE PTR [eax+0x6c]","  434f8a:\tc6 40 2a 1a          \tmov    BYTE PTR [eax+0x2a],0x1a","  434fa9:\t8a 48 62             \tmov    cl,BYTE PTR [eax+0x62]","  434fb2:\t88 48 62             \tmov    BYTE PTR [eax+0x62],cl","  434fb8:\tc6 40 68 01          \tmov    BYTE PTR [eax+0x68],0x1","  434fc4:\tc6 40 2a 15          \tmov    BYTE PTR [eax+0x2a],0x15","  434fed:\t8a 48 62             \tmov    cl,BYTE PTR [eax+0x62]","  434ff6:\t88 48 62             \tmov    BYTE PTR [eax+0x62],cl","  434ffc:\tc6 40 68 01          \tmov    BYTE PTR [eax+0x68],0x1","  435028:\t8a 48 62             \tmov    cl,BYTE PTR [eax+0x62]","  43503e:\t8a 48 6c             \tmov    cl,BYTE PTR [eax+0x6c]","  43504c:\tc6 40 2a 17          \tmov    BYTE PTR [eax+0x2a],0x17","  435053:\tc6 40 64 00          \tmov    BYTE PTR [eax+0x64],0x0","  43505c:\t8a 48 62             \tmov    cl,BYTE PTR [eax+0x62]","  435065:\t88 48 62             \tmov    BYTE PTR [eax+0x62],cl","  43506b:\tc6 40 68 01          \tmov    BYTE PTR [eax+0x68],0x1","  435077:\tc6 40 2a 18          \tmov    BYTE PTR [eax+0x2a],0x18","  43507e:\tc6 40 64 00          \tmov    BYTE PTR [eax+0x64],0x0","  435087:\t8a 48 62             \tmov    cl,BYTE PTR [eax+0x62]","  435090:\t88 48 62             \tmov    BYTE PTR [eax+0x62],cl","  435096:\tc6 40 68 01          \tmov    BYTE PTR [eax+0x68],0x1","  4350a2:\tc6 40 2a 16          \tmov    BYTE PTR [eax+0x2a],0x16","  4350a9:\tc6 40 64 00          \tmov    BYTE PTR [eax+0x64],0x0","  4350b2:\t8a 48 62             \tmov    cl,BYTE PTR [eax+0x62]","  4350bb:\t88 48 62             \tmov    BYTE PTR [eax+0x62],cl","  4350c1:\tc6 40 68 01          \tmov    BYTE PTR [eax+0x68],0x1","  4350cd:\tc6 40 2a 19          \tmov    BYTE PTR [eax+0x2a],0x19","  4350f4:\tc6 40 68 01          \tmov    BYTE PTR [eax+0x68],0x1"]},{"va":4411694,"end":4412053,"label":"temporary status recovery and drunk hazard","needles":["[eax+0x64]","[eax+0x66]","[eax+0x2a]","[eax+0x69]","[eax+0x65]","c6 40 2a 15","c6 40 2a 0a"],"vaHex":"0x0043512e","endHex":"0x00435295","keyLines":["  43513c:\t8a 48 64             \tmov    cl,BYTE PTR [eax+0x64]","  43514a:\tfe 48 64             \tdec    BYTE PTR [eax+0x64]","  435169:\t8a 48 64             \tmov    cl,BYTE PTR [eax+0x64]","  435177:\t66 0f b6 40 64       \tmovzx  ax,BYTE PTR [eax+0x64]","  4351a4:\t8a 48 66             \tmov    cl,BYTE PTR [eax+0x66]","  4351b2:\t8a 40 66             \tmov    al,BYTE PTR [eax+0x66]","  4351be:\tc6 40 66 00          \tmov    BYTE PTR [eax+0x66],0x0","  4351c5:\tc6 40 64 00          \tmov    BYTE PTR [eax+0x64],0x0","  4351df:\t8a 48 2a             \tmov    cl,BYTE PTR [eax+0x2a]","  435203:\tc6 40 2a 15          \tmov    BYTE PTR [eax+0x2a],0x15","  435220:\tc6 40 65 00          \tmov    BYTE PTR [eax+0x65],0x0","  435230:\t8a 48 69             \tmov    cl,BYTE PTR [eax+0x69]","  435266:\tc6 40 2a 0a          \tmov    BYTE PTR [eax+0x2a],0xa","  43527e:\tc6 40 64 00          \tmov    BYTE PTR [eax+0x64],0x0","  43528c:\tc6 40 69 00          \tmov    BYTE PTR [eax+0x69],0x0"]},{"va":4409930,"end":4410554,"label":"Ataho drunk state progression","needles":["[eax+0x6b]","[eax+0x65]","[eax+0x66]","[eax+0x2a]","c6 40 2a 06","c6 40 2a 07","c6 40 2a 08","c6 40 2a 09","[eax+0x69]"],"vaHex":"0x00434a4a","endHex":"0x00434cba","keyLines":["  434a58:\t8a 48 6b             \tmov    cl,BYTE PTR [eax+0x6b]","  434b8c:\t8a 48 65             \tmov    cl,BYTE PTR [eax+0x65]","  434baa:\t8a 48 65             \tmov    cl,BYTE PTR [eax+0x65]","  434bba:\t88 48 65             \tmov    BYTE PTR [eax+0x65],cl","  434bc5:\tc6 40 65 ff          \tmov    BYTE PTR [eax+0x65],0xff","  434c2b:\t8a 48 66             \tmov    cl,BYTE PTR [eax+0x66]","  434c39:\t8a 40 2a             \tmov    al,BYTE PTR [eax+0x2a]","  434c47:\t8a 48 65             \tmov    cl,BYTE PTR [eax+0x65]","  434c55:\tc6 40 2a 06          \tmov    BYTE PTR [eax+0x2a],0x6","  434c5e:\t8a 48 65             \tmov    cl,BYTE PTR [eax+0x65]","  434c6d:\tc6 40 2a 07          \tmov    BYTE PTR [eax+0x2a],0x7","  434c76:\t8a 48 65             \tmov    cl,BYTE PTR [eax+0x65]","  434c85:\tc6 40 2a 08          \tmov    BYTE PTR [eax+0x2a],0x8","  434c8e:\t8a 48 65             \tmov    cl,BYTE PTR [eax+0x65]","  434c9d:\tc6 40 2a 09          \tmov    BYTE PTR [eax+0x2a],0x9","  434cb2:\tc6 40 69 01          \tmov    BYTE PTR [eax+0x69],0x1"]},{"va":4410555,"end":4410765,"label":"Smash eye-candy state progression","needles":["[eax+0x66]","[eax+0x2a]","c6 40 2a 0f","c6 40 2a 0b","[eax+0x64]","[eax+0x62]","[eax+0x68]"],"vaHex":"0x00434cbb","endHex":"0x00434d8d","keyLines":["  434cc9:\t8a 48 66             \tmov    cl,BYTE PTR [eax+0x66]","  434cd7:\t8a 40 2a             \tmov    al,BYTE PTR [eax+0x2a]","  434ce3:\tc6 40 64 00          \tmov    BYTE PTR [eax+0x64],0x0","  434cec:\t8a 48 2a             \tmov    cl,BYTE PTR [eax+0x2a]","  434d1d:\tc6 40 2a 0f          \tmov    BYTE PTR [eax+0x2a],0xf","  434d3c:\t8a 48 62             \tmov    cl,BYTE PTR [eax+0x62]","  434d45:\t88 48 62             \tmov    BYTE PTR [eax+0x62],cl","  434d50:\tc6 40 2a 0b          \tmov    BYTE PTR [eax+0x2a],0xb","  434d84:\tc6 40 68 01          \tmov    BYTE PTR [eax+0x68],0x1"]},{"va":4410765,"end":4410921,"label":"Rinshan taunt state progression","needles":["[eax+0x66]","[eax+0x2a]","83 c0 10","c6 40 2a 14","[eax+0x64]","[eax+0x62]","[eax+0x68]"],"vaHex":"0x00434d8d","endHex":"0x00434e29","keyLines":["  434d9b:\t8a 48 66             \tmov    cl,BYTE PTR [eax+0x66]","  434da9:\t8a 40 2a             \tmov    al,BYTE PTR [eax+0x2a]","  434db5:\tc6 40 64 00          \tmov    BYTE PTR [eax+0x64],0x0","  434dc6:\t83 c0 10             \tadd    eax,0x10","  434dd1:\t8a 48 2a             \tmov    cl,BYTE PTR [eax+0x2a]","  434df2:\tc6 40 2a 14          \tmov    BYTE PTR [eax+0x2a],0x14","  434e11:\t8a 48 62             \tmov    cl,BYTE PTR [eax+0x62]","  434e1a:\t88 48 62             \tmov    BYTE PTR [eax+0x62],cl","  434e20:\tc6 40 68 01          \tmov    BYTE PTR [eax+0x68],0x1"]},{"va":4406425,"end":4406933,"label":"target range helpers","needles":["[eax+0x67]","[eax+0x61]","0x4576e8","0x59db28","0x59e2b0"],"vaHex":"0x00433c99","endHex":"0x00433e95","keyLines":["  433cac:\t66 8b 0c 45 b0 e2 59 \tmov    cx,WORD PTR [eax*2+0x59e2b0]","  433cd3:\t8a 48 67             \tmov    cl,BYTE PTR [eax+0x67]","  433ce9:\t8a 04 45 b0 e2 59 00 \tmov    al,BYTE PTR [eax*2+0x59e2b0]","  433d35:\t8a 48 67             \tmov    cl,BYTE PTR [eax+0x67]","  433d4b:\t8a 04 45 b0 e2 59 00 \tmov    al,BYTE PTR [eax*2+0x59e2b0]","  433db3:\t8a 40 61             \tmov    al,BYTE PTR [eax+0x61]","  433dd3:\t66 8b 0c 45 b0 e2 59 \tmov    cx,WORD PTR [eax*2+0x59e2b0]","  433dfa:\t8a 48 67             \tmov    cl,BYTE PTR [eax+0x67]","  433e12:\t8a 0c 45 b0 e2 59 00 \tmov    cl,BYTE PTR [eax*2+0x59e2b0]","  433e21:\ta0 e8 76 45 00       \tmov    al,ds:0x4576e8","  433e2d:\t66 a1 28 db 59 00    \tmov    ax,ds:0x59db28","  433e6d:\t8a 48 67             \tmov    cl,BYTE PTR [eax+0x67]","  433e85:\t8a 0c 45 b0 e2 59 00 \tmov    cl,BYTE PTR [eax*2+0x59e2b0]"]},{"va":4412728,"end":4413201,"label":"target-scope hit-unit target loop","needles":["[eax+0x67]","[eax+0x61]","0x546970","0x59db30","[eax+0x59]","[eax+0x12]","[ecx+eax*8+0x1b]"],"vaHex":"0x00435538","endHex":"0x00435711","keyLines":["  43557f:\t8a 48 59             \tmov    cl,BYTE PTR [eax+0x59]","  4355c4:\t8a 48 12             \tmov    cl,BYTE PTR [eax+0x12]","  4355d5:\t8a 48 67             \tmov    cl,BYTE PTR [eax+0x67]","  4355e5:\t8a 48 61             \tmov    cl,BYTE PTR [eax+0x61]","  4355f0:\t8a 48 61             \tmov    cl,BYTE PTR [eax+0x61]","  435656:\t8a 54 c1 1b          \tmov    dl,BYTE PTR [ecx+eax*8+0x1b]","  435665:\t8b 04 85 30 db 59 00 \tmov    eax,DWORD PTR [eax*4+0x59db30]","  435675:\t8b 04 85 30 db 59 00 \tmov    eax,DWORD PTR [eax*4+0x59db30]","  4356bd:\t8b 04 85 30 db 59 00 \tmov    eax,DWORD PTR [eax*4+0x59db30]","  4356d1:\t8a 54 c1 1b          \tmov    dl,BYTE PTR [ecx+eax*8+0x1b]","  4356d5:\tff 14 95 70 69 54 00 \tcall   DWORD PTR [edx*4+0x546970]"]},{"va":4404809,"end":4404977,"label":"payload hit-unit byte[4] target scope reader","needles":["0x4d2488","0x4d2494","[eax+0x12]","[ecx+eax*8+0x1a]"],"vaHex":"0x00433649","endHex":"0x004336f1","keyLines":["  43366a:\t8b 04 8d 88 24 4d 00 \tmov    eax,DWORD PTR [ecx*4+0x4d2488]","  433686:\t8b 0d 94 24 4d 00    \tmov    ecx,DWORD PTR ds:0x4d2494","  4336ba:\t8a 48 12             \tmov    cl,BYTE PTR [eax+0x12]","  4336cf:\t8a 48 12             \tmov    cl,BYTE PTR [eax+0x12]","  4336e3:\t8a 44 c1 1a          \tmov    al,BYTE PTR [ecx+eax*8+0x1a]"]},{"va":4404549,"end":4404805,"label":"target selector +0x67 writers","needles":["[eax+0x58]","[ecx+0x67]","[eax+0x67]","c6 40 67 09","c6 40 67 00","0x433649"],"vaHex":"0x00433545","endHex":"0x00433645","keyLines":["  433553:\t8a 48 58             \tmov    cl,BYTE PTR [eax+0x58]","  43356e:\te8 d6 00 00 00       \tcall   0x433649","  433579:\t88 41 67             \tmov    BYTE PTR [ecx+0x67],al","  433584:\tc6 40 67 09          \tmov    BYTE PTR [eax+0x67],0x9","  433590:\tc6 40 67 00          \tmov    BYTE PTR [eax+0x67],0x0","  4335d4:\t8a 48 58             \tmov    cl,BYTE PTR [eax+0x58]","  4335f1:\te8 53 00 00 00       \tcall   0x433649","  4335fc:\t88 41 67             \tmov    BYTE PTR [ecx+0x67],al","  433607:\tc6 40 67 09          \tmov    BYTE PTR [eax+0x67],0x9","  433613:\tc6 40 67 00          \tmov    BYTE PTR [eax+0x67],0x0"]},{"va":4404226,"end":4404549,"label":"selected target index +0x61 resolver","needles":["[eax+0x67]","[ecx+0x61]","[eax+0x61]","0x59db28","0x4576e8"],"vaHex":"0x00433402","endHex":"0x00433545","keyLines":["  43341c:\t8a 48 67             \tmov    cl,BYTE PTR [eax+0x67]","  433439:\t88 41 61             \tmov    BYTE PTR [ecx+0x61],al","  433441:\t66 a1 28 db 59 00    \tmov    ax,ds:0x59db28","  433459:\t88 41 61             \tmov    BYTE PTR [ecx+0x61],al","  433483:\t88 41 61             \tmov    BYTE PTR [ecx+0x61],al","  433490:\ta0 e8 76 45 00       \tmov    al,ds:0x4576e8","  4334a3:\t8a 48 61             \tmov    cl,BYTE PTR [eax+0x61]","  4334d1:\t88 41 61             \tmov    BYTE PTR [ecx+0x61],al","  4334de:\t66 0f b6 05 e8 76 45 \tmovzx  ax,BYTE PTR ds:0x4576e8","  4334f2:\t88 41 61             \tmov    BYTE PTR [ecx+0x61],al"]},{"va":4258413,"end":4258610,"label":"selected-target branch gate and latch producer","needles":["0x433649","test","0x8","0x59e347","0x59e33e","[ecx+0x40]"],"vaHex":"0x0040fa6d","endHex":"0x0040fb32","keyLines":["  40fa8d:\t85 c0                \ttest   eax,eax","  40fa95:\t8b 45 08             \tmov    eax,DWORD PTR [ebp+0x8]","  40fa9e:\t8b 4d 08             \tmov    ecx,DWORD PTR [ebp+0x8]","  40faa1:\t89 41 40             \tmov    DWORD PTR [ecx+0x40],eax","  40faab:\ta0 3e e3 59 00       \tmov    al,ds:0x59e33e","  40faf3:\te8 51 3b 02 00       \tcall   0x433649","  40faff:\tf6 c1 08             \ttest   cl,0x8","  40fb08:\t8b 45 08             \tmov    eax,DWORD PTR [ebp+0x8]","  40fb11:\t8b 4d 08             \tmov    ecx,DWORD PTR [ebp+0x8]","  40fb14:\t89 41 40             \tmov    DWORD PTR [ecx+0x40],eax","  40fb1c:\ta0 3e e3 59 00       \tmov    al,ds:0x59e33e","  40fb21:\ta2 47 e3 59 00       \tmov    ds:0x59e347,al","  40fb26:\t8b 45 08             \tmov    eax,DWORD PTR [ebp+0x8]","  40fb29:\t83 40 40 08          \tadd    DWORD PTR [eax+0x40],0x8"]},{"va":4256244,"end":4256525,"label":"selection/register opcode 0x57","needles":["0x421ef7","0x422093","0x42234e","[eax+0x58]","[ecx+0x40]"],"vaHex":"0x0040f1f4","endHex":"0x0040f30d","keyLines":["  40f25f:\te8 93 2c 01 00       \tcall   0x421ef7","  40f26e:\t89 48 58             \tmov    DWORD PTR [eax+0x58],ecx","  40f28a:\te8 04 2e 01 00       \tcall   0x422093","  40f299:\t89 48 58             \tmov    DWORD PTR [eax+0x58],ecx","  40f2ab:\te8 9e 30 01 00       \tcall   0x42234e","  40f2ba:\t89 48 58             \tmov    DWORD PTR [eax+0x58],ecx"]},{"va":4256525,"end":4256806,"label":"selection/remove opcode 0x58","needles":["0x42267e","0x4226e9","0x422899","[eax+0x58]","[ecx+0x40]"],"vaHex":"0x0040f30d","endHex":"0x0040f426","keyLines":["  40f378:\te8 01 33 01 00       \tcall   0x42267e","  40f387:\t89 48 58             \tmov    DWORD PTR [eax+0x58],ecx","  40f3a3:\te8 41 33 01 00       \tcall   0x4226e9","  40f3b2:\t89 48 58             \tmov    DWORD PTR [eax+0x58],ecx","  40f3c4:\te8 d0 34 01 00       \tcall   0x422899","  40f3d3:\t89 48 58             \tmov    DWORD PTR [eax+0x58],ecx"]},{"va":4256806,"end":4257148,"label":"selection/check branch opcode 0x59","needles":["0x421b33","0x422093","0x42234e","[eax+0x40]","[ecx+0x40]"],"vaHex":"0x0040f426","endHex":"0x0040f57c","keyLines":["  40f432:\t8b 40 40             \tmov    eax,DWORD PTR [eax+0x40]","  40f445:\t8b 40 40             \tmov    eax,DWORD PTR [eax+0x40]","  40f456:\t8b 40 40             \tmov    eax,DWORD PTR [eax+0x40]","  40f472:\t8b 40 40             \tmov    eax,DWORD PTR [eax+0x40]","  40f491:\te8 9d 26 01 00       \tcall   0x421b33","  40f4a9:\t8b 40 40             \tmov    eax,DWORD PTR [eax+0x40]","  40f4b2:\t89 41 40             \tmov    DWORD PTR [ecx+0x40],eax","  40f4c2:\t8b 40 40             \tmov    eax,DWORD PTR [eax+0x40]","  40f4e4:\t8b 40 40             \tmov    eax,DWORD PTR [eax+0x40]","  40f4ed:\t89 41 40             \tmov    DWORD PTR [ecx+0x40],eax","  40f4fd:\t8b 40 40             \tmov    eax,DWORD PTR [eax+0x40]","  40f51b:\t8b 40 40             \tmov    eax,DWORD PTR [eax+0x40]","  40f524:\t89 41 40             \tmov    DWORD PTR [ecx+0x40],eax"]},{"va":4258881,"end":4259006,"label":"selection-list setup opcode 0x5e","needles":["0x59e2a8","0x59db50","0x59e2d8","0x59e337","0x4dc51c","[ecx+0x40]"],"vaHex":"0x0040fc41","endHex":"0x0040fcbe","keyLines":["  40fc50:\ta3 a8 e2 59 00       \tmov    ds:0x59e2a8,eax","  40fc5e:\ta3 50 db 59 00       \tmov    ds:0x59db50,eax","  40fc6c:\ta2 d8 e2 59 00       \tmov    ds:0x59e2d8,al","  40fc73:\ta0 d8 e2 59 00       \tmov    al,ds:0x59e2d8","  40fc81:\t01 41 40             \tadd    DWORD PTR [ecx+0x40],eax","  40fc84:\tc6 05 37 e3 59 00 01 \tmov    BYTE PTR ds:0x59e337,0x1","  40fcae:\ta1 1c c5 4d 00       \tmov    eax,ds:0x4dc51c","  40fcb6:\t89 41 40             \tmov    DWORD PTR [ecx+0x40],eax"]},{"va":4259054,"end":4259540,"label":"selection-page/window opcode 0x60","needles":["0x59e34a","0x59e2a8","0x59e339","0x59e33a","0x59e33b","0x4576e0"],"vaHex":"0x0040fcee","endHex":"0x0040fed4","keyLines":["  40fcf9:\ta0 4a e3 59 00       \tmov    al,ds:0x59e34a","  40fcfe:\t8b 0d a8 e2 59 00    \tmov    ecx,DWORD PTR ds:0x59e2a8","  40fd11:\tc6 05 39 e3 59 00 00 \tmov    BYTE PTR ds:0x59e339,0x0","  40fd1a:\ta0 4a e3 59 00       \tmov    al,ds:0x59e34a","  40fd1f:\t8b 0d a8 e2 59 00    \tmov    ecx,DWORD PTR ds:0x59e2a8","  40fd2c:\ta1 e0 76 45 00       \tmov    eax,ds:0x4576e0","  40fd35:\ta2 3b e3 59 00       \tmov    ds:0x59e33b,al","  40fd3f:\tc6 05 39 e3 59 00 00 \tmov    BYTE PTR ds:0x59e339,0x0","  40fd61:\ta0 4a e3 59 00       \tmov    al,ds:0x59e34a","  40fd66:\t8b 0d a8 e2 59 00    \tmov    ecx,DWORD PTR ds:0x59e2a8","  40fd90:\ta2 39 e3 59 00       \tmov    ds:0x59e339,al","  40fda1:\ta0 4a e3 59 00       \tmov    al,ds:0x59e34a","  40fda6:\t8b 0d a8 e2 59 00    \tmov    ecx,DWORD PTR ds:0x59e2a8","  40fdb3:\ta1 e0 76 45 00       \tmov    eax,ds:0x4576e0","  40fdbc:\ta2 3b e3 59 00       \tmov    ds:0x59e33b,al","  40fdc3:\ta0 39 e3 59 00       \tmov    al,ds:0x59e339","  40fdca:\t8a 0d 3b e3 59 00    \tmov    cl,BYTE PTR ds:0x59e33b","  40fde2:\t8a 0d 39 e3 59 00    \tmov    cl,BYTE PTR ds:0x59e339","  40fdea:\ta2 3b e3 59 00       \tmov    ds:0x59e33b,al","  40fdf6:\ta0 4a e3 59 00       \tmov    al,ds:0x59e34a","  40fdfb:\t8b 0d a8 e2 59 00    \tmov    ecx,DWORD PTR ds:0x59e2a8","  40fe0e:\ta2 39 e3 59 00       \tmov    ds:0x59e339,al","  40fe15:\ta0 4a e3 59 00       \tmov    al,ds:0x59e34a","  40fe1a:\t8b 0d a8 e2 59 00    \tmov    ecx,DWORD PTR ds:0x59e2a8","  40fe27:\ta1 e0 76 45 00       \tmov    eax,ds:0x4576e0","  40fe30:\ta2 3b e3 59 00       \tmov    ds:0x59e33b,al","  40fe37:\ta0 39 e3 59 00       \tmov    al,ds:0x59e339","  40fe3e:\t8a 0d 3b e3 59 00    \tmov    cl,BYTE PTR ds:0x59e33b","  40fe56:\t8a 0d 39 e3 59 00    \tmov    cl,BYTE PTR ds:0x59e339","  40fe5e:\ta2 3b e3 59 00       \tmov    ds:0x59e33b,al","  40fea8:\tc0 a0 3a e3 59 00 33 \tshl    BYTE PTR [eax+0x59e33a],0x33","  40feb0:\t8a 0d 3b e3 59 00    \tmov    cl,BYTE PTR ds:0x59e33b","  40febe:\ta0 3b e3 59 00       \tmov    al,ds:0x59e33b","  40fec3:\ta2 3a e3 59 00       \tmov    ds:0x59e33a,al"]},{"va":4259540,"end":4259919,"label":"selection-entry resolver opcode 0x61","needles":["0x59e34a","0x59e2a8","0x421ef7","0x422093","0x42234e","[eax+0x58]"],"vaHex":"0x0040fed4","endHex":"0x0041004f","keyLines":["  40fedf:\ta0 4a e3 59 00       \tmov    al,ds:0x59e34a","  40fee4:\t8b 0d a8 e2 59 00    \tmov    ecx,DWORD PTR ds:0x59e2a8","  40fef9:\ta0 4a e3 59 00       \tmov    al,ds:0x59e34a","  40fefe:\t8b 0d a8 e2 59 00    \tmov    ecx,DWORD PTR ds:0x59e2a8","  40ff11:\ta0 4a e3 59 00       \tmov    al,ds:0x59e34a","  40ff16:\t8b 0d a8 e2 59 00    \tmov    ecx,DWORD PTR ds:0x59e2a8","  40ff34:\ta0 4a e3 59 00       \tmov    al,ds:0x59e34a","  40ff39:\t8b 0d a8 e2 59 00    \tmov    ecx,DWORD PTR ds:0x59e2a8","  40ff5c:\te8 96 1f 01 00       \tcall   0x421ef7","  40ff6b:\t89 48 58             \tmov    DWORD PTR [eax+0x58],ecx","  40ff7b:\ta0 4a e3 59 00       \tmov    al,ds:0x59e34a","  40ff80:\t8b 0d a8 e2 59 00    \tmov    ecx,DWORD PTR ds:0x59e2a8","  40ff8b:\te8 03 21 01 00       \tcall   0x422093","  40ff9a:\t89 48 58             \tmov    DWORD PTR [eax+0x58],ecx","  40ffa4:\ta0 4a e3 59 00       \tmov    al,ds:0x59e34a","  40ffa9:\t8b 0d a8 e2 59 00    \tmov    ecx,DWORD PTR ds:0x59e2a8","  40ffb4:\te8 95 23 01 00       \tcall   0x42234e","  40ffc3:\t89 48 58             \tmov    DWORD PTR [eax+0x58],ecx","  41000d:\t83 78 58 00          \tcmp    DWORD PTR [eax+0x58],0x0","  41001b:\t8a 0d 4a e3 59 00    \tmov    cl,BYTE PTR ds:0x59e34a","  410021:\t8b 15 a8 e2 59 00    \tmov    edx,DWORD PTR ds:0x59e2a8"]},{"va":4324266,"end":4324490,"label":"interactive cursor-entry confirm helper","needles":["0x59e34a","0x59e2a8","[eax+0x58]","0x59e33f","[ecx+0xb0]"],"vaHex":"0x0041fbaa","endHex":"0x0041fc8a","keyLines":["  41fbb5:\ta0 4a e3 59 00       \tmov    al,ds:0x59e34a","  41fbba:\t8b 0d a8 e2 59 00    \tmov    ecx,DWORD PTR ds:0x59e2a8","  41fbcf:\ta0 4a e3 59 00       \tmov    al,ds:0x59e34a","  41fbd4:\t8b 0d a8 e2 59 00    \tmov    ecx,DWORD PTR ds:0x59e2a8","  41fbe3:\t89 50 58             \tmov    DWORD PTR [eax+0x58],edx","  41fbe6:\tc6 05 3f e3 59 00 00 \tmov    BYTE PTR ds:0x59e33f,0x0","  41fbf4:\ta0 4a e3 59 00       \tmov    al,ds:0x59e34a","  41fbf9:\t8b 0d a8 e2 59 00    \tmov    ecx,DWORD PTR ds:0x59e2a8","  41fc08:\t89 50 58             \tmov    DWORD PTR [eax+0x58],edx","  41fc0b:\tc6 05 3f e3 59 00 01 \tmov    BYTE PTR ds:0x59e33f,0x1","  41fc19:\ta0 4a e3 59 00       \tmov    al,ds:0x59e34a","  41fc1e:\t8b 0d a8 e2 59 00    \tmov    ecx,DWORD PTR ds:0x59e2a8","  41fc2d:\t89 50 58             \tmov    DWORD PTR [eax+0x58],edx","  41fc30:\tc6 05 3f e3 59 00 02 \tmov    BYTE PTR ds:0x59e33f,0x2"]},{"va":4319021,"end":4319330,"label":"selection result reader by 0x59e33f","needles":["0x59e33f","0x59e34a","[eax+0x58]","0x4577a6","0x45779a","0x4576ec","0x4576f8"],"vaHex":"0x0041e72d","endHex":"0x0041e862","keyLines":["  41e738:\ta0 3f e3 59 00       \tmov    al,ds:0x59e33f","  41e775:\t8a 94 08 a6 77 45 00 \tmov    dl,BYTE PTR [eax+ecx*1+0x4577a6]","  41e77f:\t89 50 58             \tmov    DWORD PTR [eax+0x58],edx","  41e790:\t8a 0c 45 ec 76 45 00 \tmov    cl,BYTE PTR [eax*2+0x4576ec]","  41e79a:\t89 48 58             \tmov    DWORD PTR [eax+0x58],ecx","  41e7ca:\t8a 0d 4a e3 59 00    \tmov    cl,BYTE PTR ds:0x59e34a","  41e7d2:\t8a 94 08 9a 77 45 00 \tmov    dl,BYTE PTR [eax+ecx*1+0x45779a]","  41e7dc:\t89 50 58             \tmov    DWORD PTR [eax+0x58],edx","  41e7f0:\t8a 0d 4a e3 59 00    \tmov    cl,BYTE PTR ds:0x59e34a","  41e7fb:\t8a 0c 45 f8 76 45 00 \tmov    cl,BYTE PTR [eax*2+0x4576f8]","  41e805:\t89 48 58             \tmov    DWORD PTR [eax+0x58],ecx","  41e80f:\ta0 4a e3 59 00       \tmov    al,ds:0x59e34a","  41e821:\ta0 4a e3 59 00       \tmov    al,ds:0x59e34a"]},{"va":4259919,"end":4259997,"label":"selection pointer-table activation opcode 0x63","needles":["0x59db50","[ecx+0xb0]","0x41b66d","[eax+0x40]"],"vaHex":"0x0041004f","endHex":"0x0041009d","keyLines":["  410058:\tc7 40 10 6d b6 41 00 \tmov    DWORD PTR [eax+0x10],0x41b66d","  410062:\t8b 40 40             \tmov    eax,DWORD PTR [eax+0x40]","  41006a:\ta1 50 db 59 00       \tmov    eax,ds:0x59db50","  410075:\t89 81 b0 00 00 00    \tmov    DWORD PTR [ecx+0xb0],eax","  41007f:\te8 e9 b5 00 00       \tcall   0x41b66d","  410094:\t83 40 40 04          \tadd    DWORD PTR [eax+0x40],0x4"]},{"va":4257264,"end":4257440,"label":"manual/menu action setup uses payload scope and selected target latch","needles":["[ecx+0x59]","0x4336f1","0x43376e","0x433932","0x433649","[ecx+0x67]","0x59e347","[ecx+0x61]","0x435538"],"vaHex":"0x0040f5f0","endHex":"0x0040f6a0","keyLines":["  40f612:\t88 41 59             \tmov    BYTE PTR [ecx+0x59],al","  40f619:\te8 d3 40 02 00       \tcall   0x4336f1","  40f625:\te8 44 41 02 00       \tcall   0x43376e","  40f631:\te8 fc 42 02 00       \tcall   0x433932","  40f649:\te8 fb 3f 02 00       \tcall   0x433649","  40f654:\t88 41 67             \tmov    BYTE PTR [ecx+0x67],al","  40f657:\ta0 47 e3 59 00       \tmov    al,ds:0x59e347","  40f65f:\t88 41 61             \tmov    BYTE PTR [ecx+0x61],al","  40f664:\ta0 47 e3 59 00       \tmov    al,ds:0x59e347","  40f675:\te8 be 5e 02 00       \tcall   0x435538"]},{"va":4244755,"end":4245195,"label":"selection-mode target apply into actor +0x61","needles":["0x59e34d","0x59e347","0x59e348","[ecx+0x61]","[eax+0x67]"],"vaHex":"0x0040c513","endHex":"0x0040c6cb","keyLines":["  40c51e:\ta0 4d e3 59 00       \tmov    al,ds:0x59e34d","  40c58d:\t8a 48 67             \tmov    cl,BYTE PTR [eax+0x67]","  40c5a0:\t88 41 61             \tmov    BYTE PTR [ecx+0x61],al","  40c5f3:\t88 41 61             \tmov    BYTE PTR [ecx+0x61],al","  40c674:\tc0 a0 48 e3 59 00 83 \tshl    BYTE PTR [eax+0x59e348],0x83","  40c680:\t88 41 61             \tmov    BYTE PTR [ecx+0x61],al","  40c688:\ta0 47 e3 59 00       \tmov    al,ds:0x59e347","  40c690:\t88 41 61             \tmov    BYTE PTR [ecx+0x61],al"]},{"va":4266976,"end":4267061,"label":"status/mode name display","needles":["[eax+0x2a]","0x48bcaa","0x41b480"],"vaHex":"0x00411be0","endHex":"0x00411c35","keyLines":["  411c09:\t8a 48 2a             \tmov    cl,BYTE PTR [eax+0x2a]","  411c0c:\t8b 04 cd aa bc 48 00 \tmov    eax,DWORD PTR [ecx*8+0x48bcaa]","  411c28:\te8 53 98 00 00       \tcall   0x41b480"]}],"openQuestions":[]}