요약
- 전투 actor 초기화 루틴은 0x00457c60 기반 0x38-byte row prefix 8바이트를 actor +0x00으로 복사한다.
- HP view로 내보낸 out/enemy_stat_table row는 actual actor row +0x08에서 시작한다. 따라서 exported +0x06은 actor +0x1c attack, exported +0x0a는 actor +0x20 defense처럼 8바이트 보정이 필요하다.
- exported +0x34 name id는 current actor row 내부가 아니라 다음 actual row prefix의 +0x04 marker다. 이름 anchor로는 유효하지만 current actor struct 필드는 아니다.
- 플레이어 row 장비/레벨업 루틴 대조로 actor +0x26은 운 축으로 승격됐다. +0x28은 상태창/장비 운 보정 대상이 아니며 0x4343db critical/alternate 판정과 0x4344ab 상태 성공 gate의 attacker-side 숨은 발동률 계수로 분리한다.
- actor +0x2a는 숫자 계수가 아니라 0x48bcaa 자세/상태 테이블 index다. actual row +0x1c/exported +0x14는 초기 mode/status id이며, 몬스터 대부분의 값 1은 보통 상태다.
- actor +0x14는 몬스터에서는 EXP base, 플레이어에서는 current EXP다. 전투 보상 루프가 defeated enemy +0x14로 보상 EXP를 계산한 뒤 live player actor +0x14에 직접 더한다.
- actor +0x40/+0x41은 전투 종료 아이템 드롭 item id/probability로 확정됐다. 단 현재 80개 연속 몬스터 row의 source HP-view +0x2a/+0x2b가 전부 0이라 일반 몬스터 보상은 EXP/골드만 있고 아이템 드롭은 비활성이다.
- actor +0x1e/exported +0x08은 전체 80개 몬스터 row에 값이 있지만 전투 damage/hit/status 공식의 직접 소비처가 확인되지 않는다. 현재 전투 엔진 구현에서는 저장된 튜닝 축으로 보존하고 공식 필드로는 사용하지 않는다.
- 몬스터 HP view exporter의 설명은 이름 anchor 용도로만 유지한다. 실제 actor row 내부 구조는 이 보고서의 actual row/actor offset mapping을 기준으로 본다.
Offset Mapping
| actual row | exported HP view | actor | width | role | status | evidence |
|---|
| +0x00 | | +0x00 | dword | actor prefix zero/reserved | 구조 확인, 의미 후보 | 0x40bec8에서 row prefix 8바이트를 actor +0x00으로 memcpy한다. |
| +0x04 | | +0x04 | byte x2 | battle action source/type prefix | 고신뢰 | actor +0x04는 0x434218에서 action table branch(1/2)를 고르고, +0x05는 type 1 branch의 table index로 쓰인다. |
| +0x06 | | +0x06 | u16 | level / level-like battle value | 고신뢰 | actor +0x06은 hit/avoid와 damage random 폭에서 attacker/target level 값처럼 쓰인다. 원숭이 actual row 값은 2. |
| +0x08 | +0x00 | +0x08 | u32 source -> actor word | HP source, actor current/max/base HP | 확정 | 0x40bef4가 row +0x08을 actor +0x08에 쓰고 +0x0a/+0x0c로 복사한다. |
| +0x0a | +0x02 | +0x0e | u16 | MP source, actor current/max/base MP | 확정 | 0x40bf2a가 row +0x0a를 actor +0x0e에 쓰고 +0x10/+0x12로 복사한다. |
| +0x0c | +0x04 | +0x14 | u8 -> word | EXP base/current EXP | 확정 | 0x40bf60이 enemy row +0x0c를 actor +0x14로 복사한다. 0x42157b 경험치 공식은 defeated enemy +0x14를 base EXP로 읽고, 0x40e085..0x40e095는 산출 EXP를 live player actor +0x14에 더한다. |
| | +0x16 | word | fixed 100 coefficient | 확정 | 0x40bf70이 actor +0x16 = 100으로 직접 초기화한다. |
| +0x0e | +0x06 | +0x1c | u16 | attack axis | 고신뢰 | 0x40bf79 memcpy source row +0x0e -> actor +0x1c. 0x43461f/0x434737 damage formula에서 attacker +0x70 * actor +0x1c로 쓰인다. |
| +0x10 | +0x08 | +0x1e | u16 | 저장된 튜닝 축 / 현 전투 공식 미사용 | 공식 미사용 확인 / 이름 보류 | row +0x0e..+0x37 block 안에서 actor +0x1e로 복사되고 전체 몬스터 80개에 20..200 범위 값이 있다. 다만 .text 직접 접근 스캔에서 전투 actor word/byte read/write [actor+0x1e]는 없고, 보이는 +0x1e 접근은 display/helper object callback pointer 구조다. damage family byte5가 0x10..0x19인 물리/속성 공식은 target +0x1c+family로 actor +0x2c 이후를 읽으므로 +0x1e에 닿지 않는다. |
| +0x12 | +0x0a | +0x20 | u16 | defense axis | 고신뢰 | 0x43461f/0x434737 damage formula에서 target +0x7a * actor +0x20로 쓰인다. |
| +0x14 | +0x0c | +0x22 | u16 | technique / hit axis | 고신뢰 | 0x434218 hit/avoid에서 attacker +0x06 + +0x22, 0x4344ab status gate에서 attacker +0x74 * +0x22로 쓰인다. |
| +0x16 | +0x0e | +0x24 | u16 | agility / avoid axis | 고신뢰 | 0x434218 hit/avoid에서 target +0x06 + +0x24와 target +0x7c 계수로 회피 점수를 만든다. |
| +0x18 | +0x10 | +0x26 | u16 | luck axis / status-critical resistance-side axis | 고신뢰 | 플레이어 row의 장비/레벨업 루틴에서 actor +0x26이 운으로 확정됐다. 전투 공식에서는 critical/status gate의 attacker/target luck-side 축으로 쓰인다. |
| +0x1a | +0x12 | +0x28 | u16 | 숨은 상태/크리티컬 발동률 계수 | 역할 확정 / UI 비표시 | 0x4343db에서 attacker +0x28이 RNG range/base로 쓰이고, 통과 시 attacker +0x62 bit 0x10을 세운다. 0x4344ab 상태 성공 gate에서도 attacker-side 계수로 읽힌다. 플레이어 상태창/장비/레벨업 운 경로와 분리되어 있고 몬스터 대부분이 100이라 상태창 운으로 단정하면 안 된다. |
| +0x1c | +0x14 | +0x2a | u16 | initial battle mode/status id | 확정 | actor +0x2a로 복사된 뒤 0x433940이 0x48bcaa 자세/상태 계수 테이블 index로 읽는다. 0x434e84..0x43512e 상태/버프 루틴도 +0x2a에 상태 id를 쓰고 +0x66에 이전값을 저장한다. 몬스터 row 대부분의 1은 초기 보통 상태로 해석된다. |
| +0x1e | +0x16 | +0x2c | u8 table | family/rate table start | 고신뢰 | target +0x1c+family damage 보정은 family 0x10부터 actor +0x2c table을 읽고, hit/avoid는 actor +0x36+unitByte6을 읽는다. enemy_stat_table의 actual row +0x28..+0x2b가 actor +0x36..+0x39 hit-class table로 복사된다. hit class는 0=상단/공중/상승, 1=일반, 2=하단/지면/다운, 3=잡기/밀착 특수로 본다. |
| +0x32 | +0x2a | +0x40 | u8 item + u8 chance/range | item drop id / item drop probability divisor | 루틴 확정 / 현재 연속 몬스터 테이블 전부 0 | 보상 핸들러 0x43577c가 defeated actor +0x40 item id와 +0x41 확률/분모를 읽는다. actor row copy상 source는 actual +0x32/+0x33, HP-view +0x2a/+0x2b다. 현재 80개 연속 몬스터 row에서는 모두 0이라 일반 몬스터 보상은 EXP/골드만 있고 아이템 드롭은 비활성으로 본다. |
| +0x36 | +0x2e | +0x44 | u16 | gold/reward source | 고신뢰 | exported monster table의 gold 값과 일치하고, row +0x0e..+0x37 memcpy에 포함되어 actor +0x44로 복사된다. |
| next +0x04 | +0x34 | | u16 boundary marker | next row prefix marker used as exported monster name id | 구조 확인 | exported +0x34는 actual current row 내부가 아니라 다음 actual row +0x04다. 이름 anchor로는 유효하지만 current actor에는 복사되지 않는다. |
Sample Rows
| name | actual row | HP view | prefix | level | HP | MP | EXP base | +1c atk | +1e | +20 def | +22 tech | +24 agi | +26 | +28 | +2a init state | +36..+39 hit class | gold | boundary name id |
|---|
| 원숭이 | 0x00457d40 | 0x00457d48 | 00 00 00 00 02 04 02 00 | 2 | 15 | 0 | 22 | 19 | 30 | 12 | 22 | 14 | 30 | 100 | 1 | 0x4b 0x64 0x64 0x7d | 3 | 0x0205 |
| 멧돼지 | 0x00457e58 | 0x00457e60 | 00 00 00 00 02 09 03 00 | 3 | 22 | 0 | 31 | 27 | 30 | 16 | 27 | 22 | 45 | 100 | 1 | 0x32 0x64 0x96 0x64 | 4 | 0x020a |
| 슬라임 | 0x00457f38 | 0x00457f40 | 00 00 00 00 02 0d 04 00 | 4 | 20 | 0 | 27 | 26 | 70 | 23 | 32 | 10 | 20 | 100 | 1 | 0x19 0x64 0xc8 0x19 | 1 | 0x020e |
| 박쥐 | 0x004581a0 | 0x004581a8 | 00 00 00 00 02 18 06 00 | 6 | 8 | 0 | 25 | 27 | 20 | 10 | 45 | 40 | 75 | 100 | 1 | 0x7d 0x64 0x00 0x00 | 5 | 0x0219 |
| 파워 | 0x004582b8 | 0x004582c0 | 00 00 00 00 02 1d 0b 00 | 11 | 300 | 0 | 99 | 51 | 100 | 56 | 60 | 37 | 40 | 100 | 1 | 0x64 0x64 0x64 0x00 | 1000 | 0x021e |
| 스피드 | 0x004582f0 | 0x004582f8 | 00 00 00 00 02 1e 0b 00 | 11 | 300 | 0 | 99 | 46 | 40 | 50 | 64 | 48 | 100 | 100 | 1 | 0x64 0x64 0x64 0x00 | 1000 | 0x021f |
| 숙련주작권사 | 0x00458360 | 0x00458368 | 00 00 00 00 02 20 0f 00 | 15 | 124 | 0 | 37 | 75 | 50 | 65 | 76 | 63 | 50 | 100 | 1 | 0x64 0x5a 0x5a 0x64 | 50 | 0x0221 |
| 숙련창룡권사 | 0x00458398 | 0x004583a0 | 00 00 00 00 02 21 0f 00 | 15 | 116 | 0 | 37 | 70 | 50 | 68 | 79 | 68 | 50 | 100 | 1 | 0x5a 0x5a 0x6e 0x5a | 50 | 0x0222 |
| 숙련현무권사 | 0x004583d0 | 0x004583d8 | 00 00 00 00 02 22 0f 00 | 15 | 120 | 0 | 37 | 72 | 50 | 70 | 73 | 65 | 50 | 100 | 1 | 0x5f 0x55 0x55 0xaf | 50 | 0x0223 |
| 주작권사 | 0x00458718 | 0x00458720 | 00 00 00 00 02 31 0c 00 | 12 | 82 | 0 | 30 | 70 | 50 | 52 | 59 | 51 | 50 | 100 | 1 | 0x5a 0x64 0x64 0x64 | 20 | 0x0232 |
| 창룡권사 | 0x00458750 | 0x00458758 | 00 00 00 00 02 32 0c 00 | 12 | 75 | 0 | 30 | 66 | 50 | 55 | 64 | 54 | 50 | 100 | 1 | 0x5a 0x64 0x64 0x64 | 20 | 0x0233 |
| 현무권사 | 0x00458788 | 0x00458790 | 00 00 00 00 02 33 0c 00 | 12 | 89 | 0 | 30 | 68 | 50 | 58 | 56 | 48 | 50 | 100 | 1 | 0x5a 0x64 0x6e 0x64 | 20 | 0x0234 |
| 주작성령 | 0x004589b8 | 0x004589c0 | 00 00 00 00 02 3d 12 00 | 18 | 178 | 0 | 39 | 85 | 50 | 71 | 85 | 80 | 77 | 100 | 1 | 0x73 0x64 0x4b 0x64 | 0 | 0x023e |
| 창룡성령 | 0x004589f0 | 0x004589f8 | 00 00 00 00 02 3e 12 00 | 18 | 189 | 0 | 39 | 81 | 100 | 73 | 90 | 83 | 77 | 100 | 1 | 0x73 0x64 0x4b 0x64 | 0 | 0x023f |
| 현무성령 | 0x00458a28 | 0x00458a30 | 00 00 00 00 02 3f 12 00 | 18 | 200 | 0 | 39 | 83 | 75 | 75 | 87 | 78 | 77 | 100 | 1 | 0x73 0x64 0x4b 0x64 | 0 | 0x0240 |
| 폭호 | 0x00458b78 | 0x00458b80 | 00 00 00 00 02 45 23 00 | 35 | 1500 | 0 | 100 | 140 | 70 | 140 | 140 | 110 | 70 | 100 | 1 | 0x64 0x5f 0x69 0x64 | 1000 | 0x0246 |
| 데드드래곤 | 0x00458d38 | 0x00458d40 | 00 00 00 00 02 4d 31 00 | 49 | 1250 | 0 | 88 | 176 | 99 | 166 | 170 | 135 | 50 | 100 | 1 | 0x64 0x64 0x6e 0x46 | 600 | 0x024e |
+1e Distribution
전체 80개 몬스터 row의 exported +0x08 / actor +0x1e 값 분포. 값은 존재하지만 현재 확인된 전투 공식에서는 소비되지 않는다.
| value | count | examples |
|---|
| 20 | 9 | 독사, 구렁이, 화사, 수사, 뢰사, 박쥐, 큰박쥐, 흡혈박쥐, 마왕박쥐 |
| 25 | 1 | 초류권사 |
| 30 | 4 | 원숭이, 취한원숭이, 멧돼지, 구멍멧돼지 |
| 35 | 2 | 돌기멧돼지, 외뿔멧돼지 |
| 40 | 4 | 스피드, 근육맨1호, 권법가, 바니-S |
| 46 | 1 | 격투가 |
| 50 | 27 | 맹호권사범, 숙련주작권사, 숙련창룡권사, 숙련현무권사, 백호권사범, 근육맨, 핀푸, 핀푸, 탕, 탕 |
| 60 | 2 | 근육맨2호, 근육맨 |
| 65 | 2 | 귀갑권사, 암각권총통 |
| 67 | 3 | 견원이, 언원이, 문원이 |
| 70 | 4 | 슬라임, 마왕슬라임, 폭호, 투귀 |
| 75 | 3 | 바위슬라임, 현무성령, 야차 |
| 80 | 6 | 불꽃슬라임, 물슬라임, 벼락슬라임, 동작석상, 해골, 해골전사 |
| 85 | 1 | 스컬나이트 |
| 89 | 1 | 뇌룡 |
| 90 | 2 | 린샹, 지옥의마인 |
| 91 | 1 | 화룡 |
| 95 | 1 | 빙룡 |
| 99 | 2 | 유령, 데드드래곤 |
| 100 | 4 | 파워, 창룡성령, 리치, 두개골 |
Equipment Stat Contrast
장비 f00~f04는 상태창 스탯으로 이미 별도 디코드되어 있다. 몬스터 actor +0x26/+0x28과 같은 전투 공식 축을 이 장비 필드명에 그대로 덮어쓰지 않는다.
| name | record | stat summary | battle modifiers | equipment skills | raw |
|---|
| 명주·귀신살 | 0x0048b3ea | 운 +25 | f13 +10 | 기본기=마시기(MP 0, 술취함 상태 변경), 개인공격기=인사불성 철권(MP 12, 개인, 타격/무속성, 넘어짐), 전체공격기=노익장 대폭발(MP 16, 전체, 울부짖음/충격, 행동정지), 특수기=천조족(MP 1, 자기/보조, MP회복) | 00 00 00 00 19 00 00 00 00 00 00 00 00 0a 00 00 00 00 00 00 00 00 00 00 00 01 09 22 39 41 |
| 호랑이 도복 | 0x0048b4a2 | 공격력 +30 방어력 +25 기술력 +5 순발력 +12 운 +5 | f06 +5, f11 +10, f12 +10, f13 +10, f14 +10, f22 +10, f23 +10 | | 1e 19 05 0c 05 00 05 00 00 00 00 0a 0a 0a 0a 00 00 00 00 00 00 00 0a 0a 00 81 00 00 00 00 |
| 백호 도복 | 0x0048b4fe | 공격력 +25 방어력 +32 기술력 +10 순발력 +16 운 +10 | f06 +10, f08 +10, f09 +10, f10 +10, f11 +20, f12 +10, f13 +10, f19 +10, f20 +10, f21 +10, f22 +10, f23 +10 | | 19 20 0a 10 0a 00 0a 00 0a 0a 0a 14 0a 0a 00 00 00 00 00 0a 0a 0a 0a 0a 00 81 00 00 00 00 |
| 호랑이발톱 | 0x0048b612 | 공격력 +50 기술력 +5 운 +5 | f11 +15, f12 +15, f14 +15 | 기본기=꼬챙이 꿰기(MP 0, 개인, 울부짖음/충격), 개인공격기=맹호열지조(MP 16, 개인, 베기/공중, 넘어짐), 전체공격기=맹호단공아(MP 25, 전체, 베기/공중) | 32 00 05 00 05 00 00 00 00 00 00 0f 0f 00 0f 00 00 00 00 00 00 00 00 00 00 02 08 1b 2e 00 |
| 마인아수라 | 0x0048b83a | 공격력 +50 기술력 +25 | | 기본기=마구베기(MP 0, 개인, 기공/광파), 개인공격기=난도질(MP 30, 개인, 베기/공중, 10타), 전체공격기=투신의 춤(MP 30, 전체, 베기/공중, 3타), 특수기=신격방어(MP 10, 자기/보조, 회복/방어) | 32 00 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 04 13 22 27 |
| 투신의 갑옷 | 0x0048b94e | 방어력 +50 운 +10 | f08 +10, f09 +10, f10 +10, f11 +20, f13 +10, f14 +20, f18 +20, f20 +10, f22 +10, f23 +5 | | 00 32 00 00 0a 00 00 00 0a 0a 0a 14 00 0a 14 00 00 00 14 00 0a 00 0a 05 00 84 00 00 00 00 |
Disassembly Evidence
0x0040be38 actor initializer row copy
40bec5: 83 c4 0c add esp,0xc
40bec8: 6a 08 push 0x8
40beca: 8b 45 f8 mov eax,DWORD PTR [ebp-0x8]
40bed3: 2b c1 sub eax,ecx
40bed5: 8d 04 c5 60 7c 45 00 lea eax,[eax*8+0x457c60]
40bedc: 50 push eax
40bef2: 2b c1 sub eax,ecx
40bef4: 66 8b 04 c5 68 7c 45 mov ax,WORD PTR [eax*8+0x457c68]
40befb: 00
40befc: 8b 4d fc mov ecx,DWORD PTR [ebp-0x4]
40beff: 66 89 41 08 mov WORD PTR [ecx+0x8],ax
40bf03: 8b 45 fc mov eax,DWORD PTR [ebp-0x4]
40bf28: 2b c1 sub eax,ecx
40bf2a: 66 8b 04 c5 6a 7c 45 mov ax,WORD PTR [eax*8+0x457c6a]
40bf31: 00
40bf32: 8b 4d fc mov ecx,DWORD PTR [ebp-0x4]
40bf35: 66 89 41 0e mov WORD PTR [ecx+0xe],ax
40bf39: 8b 45 fc mov eax,DWORD PTR [ebp-0x4]
40bf5e: 2b c1 sub eax,ecx
40bf60: 66 0f b6 04 c5 6c 7c movzx ax,BYTE PTR [eax*8+0x457c6c]
40bf67: 45 00
40bf69: 8b 4d fc mov ecx,DWORD PTR [ebp-0x4]
40bf6c: 66 89 41 14 mov WORD PTR [ecx+0x14],ax
40bf70: 8b 45 fc mov eax,DWORD PTR [ebp-0x4]
40bf73: 66 c7 40 16 64 00 mov WORD PTR [eax+0x16],0x64
40bf79: 6a 2a push 0x2a
40bf7b: 8b 45 f8 mov eax,DWORD PTR [ebp-0x8]
40bf84: 2b c1 sub eax,ecx
40bf86: 8d 04 c5 60 7c 45 00 lea eax,[eax*8+0x457c60]
40bf8d: 83 c0 0e add eax,0xe
40bf90: 50 push eax
40bf91: 8b 45 fc mov eax,DWORD PTR [ebp-0x4]
40bf94: 83 c0 1c add eax,0x1c
40bf97: 50 push eax
0x00434218 hit/avoid formula fields
4342a2: 66 8b 48 06 mov cx,WORD PTR [eax+0x6]
4342ab: 66 8b 50 22 mov dx,WORD PTR [eax+0x22]
4342b8: 66 8b 40 74 mov ax,WORD PTR [eax+0x74]
4342c5: 66 8b 48 24 mov cx,WORD PTR [eax+0x24]
4342ce: 66 8b 50 06 mov dx,WORD PTR [eax+0x6]
4342db: 66 8b 40 7c mov ax,WORD PTR [eax+0x7c]
4342e8: 8a 48 06 mov cl,BYTE PTR [eax+0x6]
4342ee: 66 0f b6 44 01 36 movzx ax,BYTE PTR [ecx+eax*1+0x36]
0x004343db critical/alternate candidate fields
4343e7: 66 8b 40 28 mov ax,WORD PTR [eax+0x28]
4343f2: 66 8b 40 72 mov ax,WORD PTR [eax+0x72]
4343ff: 66 8b 48 26 mov cx,WORD PTR [eax+0x26]
434408: 66 8b 50 7e mov dx,WORD PTR [eax+0x7e]
43449d: 80 c9 10 or cl,0x10
0x004344ab status gate fields
4344b9: 8a 48 6c mov cl,BYTE PTR [eax+0x6c]
4344ce: 66 8b 48 26 mov cx,WORD PTR [eax+0x26]
4344f1: 66 8b 48 28 mov cx,WORD PTR [eax+0x28]
43451d: 66 8b 50 22 mov dx,WORD PTR [eax+0x22]
434537: 66 8b 48 26 mov cx,WORD PTR [eax+0x26]
43455a: 8a 48 6c mov cl,BYTE PTR [eax+0x6c]
434560: 66 0f b6 44 01 39 movzx ax,BYTE PTR [ecx+eax*1+0x39]
43459e: c6 40 6c 00 mov BYTE PTR [eax+0x6c],0x0
434611: c6 40 6c 00 mov BYTE PTR [eax+0x6c],0x0
0x0043461f damage formula fields
43462d: 66 8b 48 70 mov cx,WORD PTR [eax+0x70]
434636: 66 8b 50 1c mov dx,WORD PTR [eax+0x1c]
434660: 66 8b 48 7a mov cx,WORD PTR [eax+0x7a]
434669: 66 8b 50 20 mov dx,WORD PTR [eax+0x20]
434693: 8a 48 6b mov cl,BYTE PTR [eax+0x6b]
434745: 66 8b 48 70 mov cx,WORD PTR [eax+0x70]
43474e: 66 8b 50 1c mov dx,WORD PTR [eax+0x1c]
434778: 66 8b 48 7a mov cx,WORD PTR [eax+0x7a]
434781: 66 8b 50 20 mov dx,WORD PTR [eax+0x20]
4347ab: 8a 48 6b mov cl,BYTE PTR [eax+0x6b]
0x0040dfb8 victory EXP fanout
40e010: 8a 48 62 mov cl,BYTE PTR [eax+0x62]
40e013: f6 c1 40 test cl,0x40
40e047: 8a 48 62 mov cl,BYTE PTR [eax+0x62]
40e04a: f6 c1 80 test cl,0x80
40e06e: e8 08 35 01 00 call 0x42157b
40e085: 66 8b 51 14 mov dx,WORD PTR [ecx+0x14]
40e095: 66 89 41 14 mov WORD PTR [ecx+0x14],ax
40e0a9: e8 88 76 02 00 call 0x435736
0x0042157b EXP reward formula
421589: 66 8b 48 06 mov cx,WORD PTR [eax+0x6]
421592: 66 8b 50 06 mov dx,WORD PTR [eax+0x6]
4215a3: 66 8b 48 06 mov cx,WORD PTR [eax+0x6]
4215ac: 66 8b 50 06 mov dx,WORD PTR [eax+0x6]
4215c0: 66 8b 48 06 mov cx,WORD PTR [eax+0x6]
4215c9: 66 8b 50 06 mov dx,WORD PTR [eax+0x6]
4215f2: 66 8b 48 06 mov cx,WORD PTR [eax+0x6]
4215fb: 66 8b 50 06 mov dx,WORD PTR [eax+0x6]
42160c: 66 8b 48 14 mov cx,WORD PTR [eax+0x14]
421615: 66 8b 50 14 mov dx,WORD PTR [eax+0x14]
42163d: 66 8b 48 14 mov cx,WORD PTR [eax+0x14]
421666: 66 8b 48 14 mov cx,WORD PTR [eax+0x14]
4216a9: 8a 8c c0 98 77 45 00 mov cl,BYTE PTR [eax+eax*8+0x457798]
4216d5: c1 e8 01 shr eax,0x1
421710: 8a 8c c0 99 77 45 00 mov cl,BYTE PTR [eax+eax*8+0x457799]
42173c: c1 e8 01 shr eax,0x1
0x00435736 gold reward / inactive item-drop handler
435744: 66 8b 48 44 mov cx,WORD PTR [eax+0x44]
43574b: a1 e0 76 45 00 mov eax,ds:0x4576e0
435753: 3d 3f 42 0f 00 cmp eax,0xf423f
43575e: c7 05 e0 76 45 00 3f mov DWORD PTR ds:0x4576e0,0xf423f
435772: 66 8b 48 44 mov cx,WORD PTR [eax+0x44]
435776: 01 0d e0 76 45 00 add DWORD PTR ds:0x4576e0,ecx
435781: 8a 48 40 mov cl,BYTE PTR [eax+0x40]
43578f: 66 0f b6 40 41 movzx ax,BYTE PTR [eax+0x41]
4357ad: 8a 40 40 mov al,BYTE PTR [eax+0x40]
4357b1: e8 dd c8 fe ff call 0x422093
4357bc: 8a 40 40 mov al,BYTE PTR [eax+0x40]