Вот такое мракобесие. Вернее - его часть.
; НАЗВАНИЕ: Alterbranchs
; ВЕРСИЯ: 1.0
; АВТОР: The Master
; ОПИСАНИЕ: Реализация альтерветок (отдельная структура обитателей для каждого города на карте)
; EXE: MoP
; таблица параметров для функции "Альтерветка 1-го типа":
; 1 и 2 - типы стандартных существ
; 3 и 4 - типы альтернативных существ
; 5 и 6 - ранее использовались для подтипов двеллингов, теперь бесполезны. Можно использовать для доп. данных
322228 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 000
322240 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 001
322258 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 002
322270 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 003
322288 0800000009000000A2000000A30000002300000075000000; 004 //5-ый уровень Замка
3222A0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 005
3222B8 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 006
3222D0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 007
3222E8 1000000011000000D4000000D50000000C00000067000000; 008 //2-ой уровень Оплота
322300 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 009
322318 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 010
322330 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 011
322348 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 012
322360 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 013
322378 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 014
322390 1E0000001F000000E1000000E20000001100000071000000; 015 //2-ой уровень Башни
3223A8 2000000021000000EF000000F0000000FFFFFFFFFFFFFFFF; 016 //3-ий уровень Башни
3223C0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 017
3223D8 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 018
3223F0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 019
322408 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 020
322420 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 021
322438 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 022
322450 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 023
322468 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 024
322480 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 025
322498 3400000035000000C3000000AC0000000E0000005C000000; 026 //6-ой уровень Инферно
3224B0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 027
3224C8 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 028
3224E0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 029
3224F8 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 030
322510 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 031
322528 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 032
322540 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 033
322558 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 034
322570 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 035
322588 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 036
3225A0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 037
3225B8 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 038
3225D0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 039
3225E8 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 040
322600 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 041
322618 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 042
322630 5600000057000000DD000000DE0000001300000068000000; 043 //2-ой уровень Цитадели
322648 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 044
322660 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 045
322678 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 046
322690 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 047
3226A8 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 048
3226C0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 049
3226D8 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 050
3226F0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 051
322708 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 052
322720 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 053
322738 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 054
322750 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 055
322768 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 056
322780 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 057
322798 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 058
3227B0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 059
3227C8 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 060
3227E0 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 061
3227F8 FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; 062
;*******************************************************************
; Разрешить строительство зданий в городах союзника (кроме альтерветок):
;1D5EF7 EB; jz L005D5F0E -> jmp L005D5F0E - старый вариант, просто разрешение строительства любых зданий
1D5EE0 743A; JE SHORT mop.005D5F1C
1D5EE2 8B0D4C956900; MOV ECX,DWORD PTR DS:[69954C]
1D5EE8 8B5138; MOV EDX,DWORD PTR DS:[ECX+38]
1D5EEB 8B0DF4CC6900; MOV ECX,DWORD PTR DS:[69CCF4]
1D5EF1 0FBF4201; MOVSX EAX,WORD PTR DS:[EDX+1]
1D5EF5 3BC1; CMP EAX,ECX
1D5EF7 7438; JE SHORT mop.005D5F31
1D5EF9 8B4518; MOV EAX,DWORD PTR SS:[EBP+18]
1D5EFC 83F81E; CMP EAX,1E
1D5EFF 7C30; JL SHORT mop.005D5F31
1D5F01 8B0D4C956900; MOV ECX,DWORD PTR DS:[69954C]
1D5F07 8B4938; MOV ECX,DWORD PTR DS:[ECX+38]
1D5F0A 0FBE4904; MOVSX ECX,BYTE PTR DS:[ECX+4]
1D5F0E 6BC90E; IMUL ECX,ECX,0E
1D5F11 03C8; ADD ECX,EAX
1D5F13 80B938FE790000; CMP BYTE PTR DS:[ECX+79FE38],0
1D5F1A 7415; JE SHORT mop.005D5F31
1D5F1C 6802780000; PUSH 7802
1D5F21 8BCB; MOV ECX,EBX
1D5F23 E888960200; CALL mop.005FF5B0
1D5F28 8B10; MOV EDX,DWORD PTR DS:[EAX]
1D5F2A 6A00; PUSH 0
1D5F2C 8BC8; MOV ECX,EAX
1D5F2E FF5224; CALL DWORD PTR DS:[EDX+24]
1D5F31 8B0D4C956900; MOV ECX,DWORD PTR DS:[69954C]
1D5F37 FF7364; PUSH DWORD PTR DS:[EBX+64]
1D5F3A FF7138; PUSH DWORD PTR DS:[ECX+38]
1D5F3D 8BCB; MOV ECX,EBX
1D5F3F E89C000000; CALL mop.005D5FE0
1D5F44 E95B2DECFF; JMP mop.00498CA4
; есть альтерветка или нет (0/1):
33AE56 00000000010000000000000000000001;
33AE66 00000000000000000000000000010100;
33AE76 00000000000000000000000000000001;
33AE86 00000000000000000000000000000000;
33AE96 00000000000000000000000000000000;
33AEA6 00000000000100000000000000000000;
33AEB6 00000000000000000000000000000000;
33AEC6 0000000000000000000000000000;
; Смещение сторонней функции:
243954 4F5F5D00; dd L005D5F4F
1D5F4F 55; PUSH EBP
1D5F50 8BEC; MOV EBP,ESP
1D5F52 56; PUSH ESI
1D5F53 8BF1; MOV ESI,ECX
1D5F55 E816000000; CALL mop.005D5F70
1D5F5A F6450801; TEST BYTE PTR SS:[EBP+8],1
1D5F5E 7409; JE SHORT mop.005D5F69
1D5F60 56; PUSH ESI
1D5F61 E88A510300; CALL mop.0060B0F0
1D5F66 83C404; ADD ESP,4
1D5F69 8BC6; MOV EAX,ESI
1D5F6B 5E; POP ESI
1D5F6C 5D; POP EBP
1D5F6D C20400; RETN 4
;*******************************************************************
;*******************************************************************
; 1. Отображение улучшенного существа в диалоге найма при клике в Форте:
151A14 E9061B0800; JMP mop.005D351F
151A19 9090; NOP (2)
1D351F 0FBE16; MOVSX EDX,BYTE PTR DS:[ESI]
1D3522 69D2F8010000; IMUL EDX,EDX,1F8
1D3528 8D92646AAB02; LEA EDX,DWORD PTR DS:[EDX+2AB6A64]
1D352E 8B148A; MOV EDX,DWORD PTR DS:[EDX+ECX*4]
1D3531 E9E5E4F7FF; JMP mop.00551A1B
;*******************************************************************
;*******************************************************************
; 2.
1C7196 E99BC30000; JMP mop.005D3536
1C719B 9090; NOP (2)
1D3536 8B4338; MOV EAX,DWORD PTR DS:[EBX+38]
1D3539 0FBE00; MOVSX EAX,BYTE PTR DS:[EAX]
1D353C 69C0F8010000; IMUL EAX,EAX,1F8
1D3542 8D80806AAB02; LEA EAX,DWORD PTR DS:[EAX+2AB6A80]
1D3548 8B0488; MOV EAX,DWORD PTR DS:[EAX+ECX*4]
1D354B E94D3CFFFF; JMP mop.005C719D
;*******************************************************************
;*******************************************************************
; 3. Кадры иконок найма:
1C6023 E928D50000; JMP mop.005D3550
1C6028 9090; NOP (2)
1D3550 0FBE0E; MOVSX ECX,BYTE PTR DS:[ESI]
1D3553 69C9F8010000; IMUL ECX,ECX,1F8
1D3559 8D89806AAB02; LEA ECX,DWORD PTR DS:[ECX+2AB6A80]
1D355F 8B0481; MOV EAX,DWORD PTR DS:[ECX+EAX*4]
1D3562 E9C32AFFFF; JMP mop.005C602A
;*******************************************************************
;*******************************************************************
; 4. Цифры прироста:
1BFFDF E983350100; JMP mop.005D3567
1BFFE4 9090; NOP (2)
1D3567 0FBE06; MOVSX EAX,BYTE PTR DS:[ESI]
1D356A 69C0F8010000; IMUL EAX,EAX,1F8
1D3570 8D80806AAB02; LEA EAX,DWORD PTR DS:[EAX+2AB6A80]
1D3576 8B0490; MOV EAX,DWORD PTR DS:[EAX+EDX*4]
1D3579 E968CAFEFF; JMP mop.005BFFE6
;*******************************************************************
;*******************************************************************
; 5. Отрисовка существ двеллингов в Форте:
1D9DE4 E99597FFFF; JMP mop.005D357E
1D9DE9 9090; NOP (2)
; первый уровень
1D357E 8B0D4C956900; MOV ECX,DWORD PTR DS:[69954C]
1D3584 8B4938; MOV ECX,DWORD PTR DS:[ECX+38]
1D3587 0FBE09; MOVSX ECX,BYTE PTR DS:[ECX]
1D358A 69C9F8010000; IMUL ECX,ECX,1F8
1D3590 8D89806AAB02; LEA ECX,DWORD PTR DS:[ECX+2AB6A80]
1D3596 8B1491; MOV EDX,DWORD PTR DS:[ECX+EDX*4]
1D3599 E91223F5FF; JMP mop.005258B0
; Остальные уровни (самомодифицирующийся код)
1258B0 890D609E5D00; MOV DWORD PTR DS:[5D9E60],ECX
1258B6 890DD69E5D00; MOV DWORD PTR DS:[5D9ED6],ECX
1258BC 890D4F9F5D00; MOV DWORD PTR DS:[5D9F4F],ECX
1258C2 890DC89F5D00; MOV DWORD PTR DS:[5D9FC8],ECX
1258C8 890D41A05D00; MOV DWORD PTR DS:[5DA041],ECX
1258CE 890DC5A05D00; MOV DWORD PTR DS:[5DA0C5],ECX
1258D4 890DBDA15D00; MOV DWORD PTR DS:[5DA1BD],ECX
1258DA E90C450B00; JMP mop.005D9DEB
; Затирание прежних адресов, просто для порядка при поиске:
1D9E60 00000000;
1D9ED6 00000000;
1D9F4F 00000000;
1D9FC8 00000000;
1DA041 00000000;
1DA0C5 00000000;
1DA1BD 00000000;
;*******************************************************************
;*******************************************************************
; 6. Названия существ в Форте:
1DD96B E92E5CFFFF; JMP mop.005D359E
1DD970 9090; NOP (2)
1D359E 8B4638; MOV EAX,DWORD PTR DS:[ESI+38]
1D35A1 0FBE00; MOVSX EAX,BYTE PTR DS:[EAX]
1D35A4 69C0F8010000; IMUL EAX,EAX,1F8
1D35AA 8D80806AAB02; LEA EAX,DWORD PTR DS:[EAX+2AB6A80]
1D35B0 8B0490; MOV EAX,DWORD PTR DS:[EAX+EDX*4]
1D35B3 E9BAA30000; JMP mop.005DD972
;*******************************************************************
;*******************************************************************
; 7. Параметры существ в Форте:
1DDAD6 E9DD5AFFFF; JMP mop.005D35B8
1DDADB 9090; NOP (2)
1D35B8 8B45F8; MOV EAX,DWORD PTR SS:[EBP-8]
1D35BB 8B4038; MOV EAX,DWORD PTR DS:[EAX+38]
1D35BE 0FBE00; MOVSX EAX,BYTE PTR DS:[EAX]
1D35C1 69C0F8010000; IMUL EAX,EAX,1F8
1D35C7 8D80806AAB02; LEA EAX,DWORD PTR DS:[EAX+2AB6A80]
1D35CD 8B0488; MOV EAX,DWORD PTR DS:[EAX+ECX*4]
1D35D0 E908A50000; JMP mop.005DDADD
;*******************************************************************
;*******************************************************************
; 8. Подсказки к существам в Форте при наведении мыши:
1DD099 E93765FFFF; JMP mop.005D35D5
1DD09E 9090; NOP (2)
1D35D5 0FBE06; MOVSX EAX,BYTE PTR DS:[ESI]
1D35D8 69C0F8010000; IMUL EAX,EAX,1F8
1D35DE 8D80806AAB02; LEA EAX,DWORD PTR DS:[EAX+2AB6A80]
1D35E4 8B0490; MOV EAX,DWORD PTR DS:[EAX+EDX*4]
1D35E7 E9B49A0000; JMP mop.005DD0A0
;*******************************************************************
;*******************************************************************
; 9. Отображение неулучшенного существа в диалоге найма при клике в Форте:
1519A7 E9401C0800; JMP mop.005D35EC
1519AC 9090; NOP (2)
1D35EC 0FBE06; MOVSX EAX,BYTE PTR DS:[ESI]
1D35EF 69C0F8010000; IMUL EAX,EAX,1F8
1D35F5 8D80806AAB02; LEA EAX,DWORD PTR DS:[EAX+2AB6A80]
1D35FB 8B0490; MOV EAX,DWORD PTR DS:[EAX+EDX*4]
1D35FE E9ABE3F7FF; JMP mop.005519AE
;*******************************************************************
;*******************************************************************
; 10. Для ИИ:
285FC 8D144F; LEA EDX,DWORD PTR DS:[EDI+ECX*2]
285FF E9FFAF1A00; JMP mop.005D3603
28604 90; NOP
28605 90; NOP
28606 66391E; CMP WORD PTR DS:[ESI],BX
1D3603 8B4508; MOV EAX,DWORD PTR SS:[EBP+8]
1D3606 0FBE00; MOVSX EAX,BYTE PTR DS:[EAX]
1D3609 69C0F8010000; IMUL EAX,EAX,1F8
1D360F 8D80806AAB02; LEA EAX,DWORD PTR DS:[EAX+2AB6A80]
1D3615 8B0490; MOV EAX,DWORD PTR DS:[EAX+EDX*4]
1D3618 E9E94FE5FF; JMP mop.00428606
;*******************************************************************
;*******************************************************************
; 11. Для ИИ:
28964 E9B4AC1A00; JMP mop.005D361D
28969 9090; NOP (2)
1D361D 0FBE03; MOVSX EAX,BYTE PTR DS:[EBX]
1D3620 69C0F8010000; IMUL EAX,EAX,1F8
1D3626 8D80806AAB02; LEA EAX,DWORD PTR DS:[EAX+2AB6A80]
1D362C 8B0490; MOV EAX,DWORD PTR DS:[EAX+EDX*4]
1D362F E93753E5FF; JMP mop.0042896B
;*******************************************************************
;*******************************************************************
; 12. Для ИИ:
29BB1 E9A9A73200; JMP mop.0075435F
29BB6 9090; NOP (2)
2EF35F 8B45EC; MOV EAX,DWORD PTR SS:[EBP-14]
2EF362 0FBE00; MOVSX EAX,BYTE PTR DS:[EAX]
2EF365 69C0F8010000; IMUL EAX,EAX,1F8
2EF36B 8D80806AAB02; LEA EAX,DWORD PTR DS:[EAX+2AB6A80]
2EF371 8B0490; MOV EAX,DWORD PTR DS:[EAX+EDX*4]
2EF374 E93F58CDFF; JMP mop.00429BB8
;*******************************************************************
;*******************************************************************
; 13. Для ИИ:
29DEC E988A53200; JMP mop.00754379
29DF1 9090; NOP (2)
2EF379 0FBE0F; MOVSX ECX,BYTE PTR DS:[EDI]
2EF37C 69C9F8010000; IMUL ECX,ECX,1F8
2EF382 8D89806AAB02; LEA ECX,DWORD PTR DS:[ECX+2AB6A80]
2EF388 8B0C81; MOV ECX,DWORD PTR DS:[ECX+EAX*4]
2EF38B E9635ACDFF; JMP mop.00429DF3
;*******************************************************************
;*******************************************************************
; 14. Неизвестно:
29F32 E9AFCF3200; JMP mop.00756EE6
29F37 9090; NOP (2)
2F1EE6 0FBE17; MOVSX EDX,BYTE PTR DS:[EDI]
2F1EE9 69D2F8010000; IMUL EDX,EDX,1F8
2F1EEF 8B8482806AAB02; MOV EAX,DWORD PTR DS:[EDX+EAX*4+2AB6A80]
2F1EF6 E93E30CDFF; JMP mop.00429F39
;*******************************************************************
;*******************************************************************
; 15. Неизвестно:
2A026 E9D0CE3200; JMP mop.00756EFB
2A02B 9090; NOP (2)
2F1EFB 0FBE17; MOVSX EDX,BYTE PTR DS:[EDI]
2F1EFE 69D2F8010000; IMUL EDX,EDX,1F8
2F1F04 8D92806AAB02; LEA EDX,DWORD PTR DS:[EDX+2AB6A80]
2F1F0A 8B0482; MOV EAX,DWORD PTR DS:[EDX+EAX*4]
2F1F0D E91B31CDFF; JMP mop.0042A02D
;*******************************************************************
;*******************************************************************
; 16. Для ИИ:
2B538 E961A02D00; JMP mop.0070559E
2B53D 9090; NOP (2)
2A059E 0FBE01; MOVSX EAX,BYTE PTR DS:[ECX]
2A05A1 69C0F8010000; IMUL EAX,EAX,1F8
2A05A7 8D80806AAB02; LEA EAX,DWORD PTR DS:[EAX+2AB6A80]
2A05AD 8B0490; MOV EAX,DWORD PTR DS:[EAX+EDX*4]
2A05B0 E98A5FD2FF; JMP mop.0042B53F
;*******************************************************************
;*******************************************************************
; 17-18. Для ИИ:
2B5D9 E9D79F2D00; JMP mop.007055B5
2B5DE 909090909090; NOP (6)
2A05B5 0FBE01; MOVSX EAX,BYTE PTR DS:[ECX]
2A05B8 69C0F8010000; IMUL EAX,EAX,1F8
2A05BE 8D80806AAB02; LEA EAX,DWORD PTR DS:[EAX+2AB6A80]
2A05C4 8B3C90; MOV EDI,DWORD PTR DS:[EAX+EDX*4]
2A05C7 E91860D2FF; JMP mop.0042B5E4
2B5E4 8B34B0; MOV ESI,DWORD PTR DS:[EAX+ESI*4]
2B5E7 8B1538956900; MOV EDX,DWORD PTR DS:[699538]
2B5ED 6683BA3EF6010005; CMP WORD PTR DS:[EDX+1F63E],5
2B5F5 0FBF445916; MOVSX EAX,WORD PTR DS:[ECX+EBX*2+16]
;*******************************************************************
;*******************************************************************
; 19. Неизвестно:
2B724 E926900B00; JMP mop.004E474F
2B729 9090; NOP (2)
E474F 0FBE07; MOVSX EAX,BYTE PTR DS:[EDI]
E4752 69C0F8010000; IMUL EAX,EAX,1F8
E4758 8D80806AAB02; LEA EAX,DWORD PTR DS:[EAX+2AB6A80]
E475E 8B0488; MOV EAX,DWORD PTR DS:[EAX+ECX*4]
E4761 E9C56FF4FF; JMP mop.0042B72B
;*******************************************************************
;*******************************************************************
; 20. ИИ:
2BE42 E91F890B00; JMP mop.004E4766
2BE47 9090; NOP (2)
E4766 0FBE16; MOVSX EDX,BYTE PTR DS:[ESI]
E4769 69D2F8010000; IMUL EDX,EDX,1F8
E476F 8D92806AAB02; LEA EDX,DWORD PTR DS:[EDX+2AB6A80]
E4775 8B1482; MOV EDX,DWORD PTR DS:[EDX+EAX*4]
E4778 E9CC76F4FF; JMP mop.0042BE49
;*******************************************************************
;*******************************************************************
; 21. Неизвестно:
2CF07 E971780B00; JMP mop.004E477D
2CF0C 9090; NOP (2)
E477D 8B450C; MOV EAX,DWORD PTR SS:[EBP+C]
E4780 0FBE00; MOVSX EAX,BYTE PTR DS:[EAX]
E4783 69C0F8010000; IMUL EAX,EAX,1F8
E4789 8D80806AAB02; LEA EAX,DWORD PTR DS:[EAX+2AB6A80]
E478F 8B0490; MOV EAX,DWORD PTR DS:[EAX+EDX*4]
E4792 E97787F4FF; JMP mop.0042CF0E
;*******************************************************************
;*******************************************************************
; 22. ИИ:
2D23F E953750B00; JMP mop.004E4797
2D244 90; NOP
2D245 90; NOP
2D246 8BF9; MOV EDI,ECX
E4797 8B7D08; MOV EDI,DWORD PTR SS:[EBP+8]
E479A 0FBE3F; MOVSX EDI,BYTE PTR DS:[EDI]
E479D 69FFF8010000; IMUL EDI,EDI,1F8
E47A3 8DBF806AAB02; LEA EDI,DWORD PTR DS:[EDI+2AB6A80]
E47A9 8B0487; MOV EAX,DWORD PTR DS:[EDI+EAX*4]
E47AC E9958AF4FF; JMP mop.0042D246
;*******************************************************************
;*******************************************************************
; 23. ИИ:
32E85 8D0CC500000000; LEA ECX,DWORD PTR DS:[EAX*8]
32E8C 2BC8; SUB ECX,EAX
32E8E 8D144A; LEA EDX,DWORD PTR DS:[EDX+ECX*2]
32E91 E91B190B00; JMP mop.004E47B1
32E96 90; NOP
32E97 90; NOP
32E98 5F; POP EDI
32E99 5E; POP ESI
32E9A 5B; POP EBX
E47B1 0FBE06; MOVSX EAX,BYTE PTR DS:[ESI]
E47B4 69C0F8010000; IMUL EAX,EAX,1F8
E47BA 8D80806AAB02; LEA EAX,DWORD PTR DS:[EAX+2AB6A80]
E47C0 8B0490; MOV EAX,DWORD PTR DS:[EAX+EDX*4]
E47C3 E9D0E6F4FF; JMP mop.00432E98
;*******************************************************************
;*******************************************************************
; 24. ИИ:
32F5F E964180B00; JMP mop.004E47C8
32F64 9090; NOP (2)
E47C8 0FBE17; MOVSX EDX,BYTE PTR DS:[EDI]
E47CB 69D2F8010000; IMUL EDX,EDX,1F8
E47D1 8D92806AAB02; LEA EDX,DWORD PTR DS:[EDX+2AB6A80]
E47D7 8B148A; MOV EDX,DWORD PTR DS:[EDX+ECX*4]
E47DA E987E7F4FF; JMP mop.00432F66
;*******************************************************************
;*******************************************************************
; 25. Неизвестно:
3363B E99F220F00; JMP mop.005258DF
33640 9090; NOP (2)
1258DF 0FBE0A; MOVSX ECX,BYTE PTR DS:[EDX]
1258E2 69C9F8010000; IMUL ECX,ECX,1F8
1258E8 8D89806AAB02; LEA ECX,DWORD PTR DS:[ECX+2AB6A80]
1258EE 8B0481; MOV EAX,DWORD PTR DS:[ECX+EAX*4]
1258F1 E94CDDF0FF; JMP mop.00433642
;*******************************************************************
; 503290 - Настройка случайных двеллингов при загрузке карты. Не привязано к какому-либо городу, так что не меняем.
;*******************************************************************
; 26. Неизвестно:
C8D2D E9C4CB0500; JMP mop.005258F6
C8D32 9090; NOP (2)
1258F6 0FBE16; MOVSX EDX,BYTE PTR DS:[ESI]
1258F9 69D2F8010000; IMUL EDX,EDX,1F8
1258FF 8D92806AAB02; LEA EDX,DWORD PTR DS:[EDX+2AB6A80]
125905 8B148A; MOV EDX,DWORD PTR DS:[EDX+ECX*4]
125908 E92734FAFF; JMP mop.004C8D34
;*******************************************************************
;*******************************************************************
; 27-28. Неизвестно:
BF302 E954832B00; JMP mop.0077765B
31265B 8B75F0; MOV ESI,DWORD PTR SS:[EBP-10]
31265E 0FBE36; MOVSX ESI,BYTE PTR DS:[ESI]
312661 69F6F8010000; IMUL ESI,ESI,1F8
312667 8DB69C6AAB02; LEA ESI,DWORD PTR DS:[ESI+2AB6A9C]
31266D 8B3C30; MOV EDI,DWORD PTR DS:[EAX+ESI]
312670 83EE1C; SUB ESI,1C
312673 89350AF34B00; MOV DWORD PTR DS:[4BF30A],ESI
312679 E98A7CD4FF; JMP mop.004BF308
; Затирание адреса для порядка
BF30A 00000000;
;*******************************************************************
;*******************************************************************
; 29. кадры существ для найма в обзоре королевства:
11CFD8 E9A1A62500; JMP mop.0077767E
11CFDD 9090; NOP (2)
31267E 8B45EC; MOV EAX,DWORD PTR SS:[EBP-14]
312681 0FBE00; MOVSX EAX,BYTE PTR DS:[EAX]
312684 69C0F8010000; IMUL EAX,EAX,1F8
31268A 8D80806AAB02; LEA EAX,DWORD PTR DS:[EAX+2AB6A80]
312690 8B0490; MOV EAX,DWORD PTR DS:[EAX+EDX*4]
312693 E94759DAFF; JMP mop.0051CFDF
;*******************************************************************
;*******************************************************************
; 30-31. Неизвестно:
125A8B E9D66E2500; JMP mop.0077C966
125A90 9090; NOP (2)
317966 0FBE16; MOVSX EDX,BYTE PTR DS:[ESI]
317969 69D2F8010000; IMUL EDX,EDX,1F8
31796F 8D929C6AAB02; LEA EDX,DWORD PTR DS:[EDX+2AB6A9C]
317975 83EA1C; SUB EDX,1C
317978 8915B05A5200; MOV DWORD PTR DS:[525AB0],EDX
31797E 8B1482; MOV EDX,DWORD PTR DS:[EDX+EAX*4]
317981 E90C91DAFF; JMP mop.00525A92
; Затирание адреса для порядка
125AB0 00000000;
;*******************************************************************
;*******************************************************************
; 32. Неизвестно:
12A31B E966262500; JMP mop.0077C986
12A320 9090; NOP (2)
317986 0FBE1F; MOVSX EBX,BYTE PTR DS:[EDI]
317989 69DBF8010000; IMUL EBX,EBX,1F8
31798F 8D9B806AAB02; LEA EBX,DWORD PTR DS:[EBX+2AB6A80]
317995 8B1C83; MOV EBX,DWORD PTR DS:[EBX+EAX*4]
317998 E985D9DAFF; JMP mop.0052A322
;*******************************************************************
;*******************************************************************
; 33. Неизвестно:
11FB6F E8DE1F0300; CALL mop.00551B52
1D38FC E851E2F7FF; CALL mop.00551B52
1D4209 E844D9F7FF; CALL mop.00551B52
1D42D1 E87CD8F7FF; CALL mop.00551B52
151B52 8BC2; MOV EAX,EDX
151B54 56; PUSH ESI
151B55 8D544116; LEA EDX,DWORD PTR DS:[ECX+EAX*2+16]
151B59 57; PUSH EDI
151B5A 8BF9; MOV EDI,ECX
151B5C 0FBE4904; MOVSX ECX,BYTE PTR DS:[ECX+4]
151B60 8D34CD00000000; LEA ESI,DWORD PTR DS:[ECX*8]
151B67 2BF1; SUB ESI,ECX
151B69 8D0470; LEA EAX,DWORD PTR DS:[EAX+ESI*2]
151B6C 5E; POP ESI
151B6D 0FBE3F; MOVSX EDI,BYTE PTR DS:[EDI]
151B70 69FFF8010000; IMUL EDI,EDI,1F8
151B76 8DBF806AAB02; LEA EDI,DWORD PTR DS:[EDI+2AB6A80]
151B7C 8B0C87; MOV ECX,DWORD PTR DS:[EDI+EAX*4]
151B7F 5F; POP EDI
;*******************************************************************
;*******************************************************************
; 34. Установка прироста монстров в города в первый день игры:
1BEF9E E9260AFEFF; JMP mop.0059F9C9
1BEFA3 9090; NOP (2)
19F9C9 0FBE19; MOVSX EBX,BYTE PTR DS:[ECX]
19F9CC 69DBF8010000; IMUL EBX,EBX,1F8
19F9D2 8D9B806AAB02; LEA EBX,DWORD PTR DS:[EBX+2AB6A80]
19F9D8 8B0483; MOV EAX,DWORD PTR DS:[EBX+EAX*4]
19F9DB E9C5F50100; JMP mop.005BEFA5
;*******************************************************************
;*******************************************************************
; 35. Подсказка к орде первого уровня в городе при наведении мыши:
1C7CE5 8B4338; MOV EAX,DWORD PTR DS:[EBX+38]
1C7CE8 0FBE00; MOVSX EAX,BYTE PTR DS:[EAX]
1C7CEB E9981B070090; JMP mop.00639888; NOP
239888 69C0F8010000; IMUL EAX,EAX,1F8
23988E 8D80806AAB02; LEA EAX,DWORD PTR DS:[EAX+2AB6A80]
239894 8B0490; MOV EAX,DWORD PTR DS:[EAX+EDX*4]
239897 E9A2E7F8FF; JMP mop.005C803E
;*******************************************************************
;*******************************************************************
; 36. Подсказка к орде третьего уровня в городе при наведении мыши:
1C7D1E 8B5338; MOV EDX,DWORD PTR DS:[EBX+38]
1C7D21 0FBE12; MOVSX EDX,BYTE PTR DS:[EDX]
1C7D24 E9B77CFDFF; JMP mop.0059F9E0
1C7D29 90; NOP
19F9E0 69D2F8010000; IMUL EDX,EDX,1F8
19F9E6 8D92806AAB02; LEA EDX,DWORD PTR DS:[EDX+2AB6A80]
19F9EC 8B0482; MOV EAX,DWORD PTR DS:[EDX+EAX*4]
19F9EF E94A860200; JMP mop.005C803E
;*******************************************************************
;*******************************************************************
; 37. Снова запуск карты:
B853D E8037D1000; CALL mop.005C0245
B868E E8B27B1000; CALL mop.005C0245
B873A E8067B1000; CALL mop.005C0245
C5FCF E871A20F00; CALL mop.005C0245
C6319 E8279F0F00; CALL mop.005C0245
C655C E8E49C0F00; CALL mop.005C0245
1C0245 55; PUSH EBP
1C0246 8BEC; MOV EBP,ESP
1C0248 0FBE5104; MOVSX EDX,BYTE PTR DS:[ECX+4]
1C024C 56; PUSH ESI
1C024D 33C0; XOR EAX,EAX
1C024F 8D34D500000000; LEA ESI,DWORD PTR DS:[EDX*8]
1C0256 57; PUSH EDI
1C0257 2BF2; SUB ESI,EDX
1C0259 0FBE11; MOVSX EDX,BYTE PTR DS:[ECX]
1C025C 69D2F8010000; IMUL EDX,EDX,1F8
1C0262 8D92806AAB02; LEA EDX,DWORD PTR DS:[EDX+2AB6A80]
1C0268 8D14F2; LEA EDX,DWORD PTR DS:[EDX+ESI*8]
;*******************************************************************
;*******************************************************************
; 38. Подсказка в кадру существа для найма в обзоре королевства (слева):
1219AF 8D0C4B; LEA ECX,DWORD PTR DS:[EBX+ECX*2]
1219B2 E93DE00700; JMP mop.0059F9F4
1219B7 90; NOP
1219B8 90; NOP
19F9F4 0FBE12; MOVSX EDX,BYTE PTR DS:[EDX]
19F9F7 69D2F8010000; IMUL EDX,EDX,1F8
19F9FD 8D926C69AB02; LEA EDX,DWORD PTR DS:[EDX+2AB696C]
19FA03 8B048A; MOV EAX,DWORD PTR DS:[EDX+ECX*4]
19FA06 E9AE1FF8FF; JMP mop.005219B9
;*******************************************************************
;*******************************************************************
; 39. Подсказка в цифре кол-ва существа для найма в обзоре королевства (справа):
1218F1 8D0C4B; LEA ECX,DWORD PTR DS:[EBX+ECX*2]
1218F4 0FBE02; MOVSX EAX,BYTE PTR DS:[EDX]
1218F7 E90E7E0800; JMP mop.005A970A
1218FC 90; NOP
1A970A 69C0F8010000; IMUL EAX,EAX,1F8
1A9710 8D80FC69AB02; LEA EAX,DWORD PTR DS:[EAX+2AB69FC]
1A9716 8B0488; MOV EAX,DWORD PTR DS:[EAX+ECX*4]
1A9719 E9F681F7FF; JMP mop.00521914
;*******************************************************************
;*******************************************************************
; 40. Подсказка в кадру существа для найма в обзоре королевства (справа):
121901 8D0CC500000000; LEA ECX,DWORD PTR DS:[EAX*8]
121908 2BC8; SUB ECX,EAX
12190A 8D044B; LEA EAX,DWORD PTR DS:[EBX+ECX*2]
12190D E90C7E0800; JMP mop.005A971E
1A971E 0FBE12; MOVSX EDX,BYTE PTR DS:[EDX]
1A9721 69D2F8010000; IMUL EDX,EDX,1F8
1A9727 8D92346AAB02; LEA EDX,DWORD PTR DS:[EDX+2AB6A34]
1A972D 8B0482; MOV EAX,DWORD PTR DS:[EDX+EAX*4]
1A9730 E9DF81F7FF; JMP mop.00521914
;*******************************************************************
;*******************************************************************
; 41. Подсказка в цифре кол-ва существа для найма в обзоре королевства (cлева):
121945 8D0CC500000000; LEA ECX,DWORD PTR DS:[EAX*8]
12194C 2BC8; SUB ECX,EAX
12194E 8D044B; LEA EAX,DWORD PTR DS:[EBX+ECX*2]
121951 E9DF7D0800; JMP mop.005A9735
121956 9090; NOP (2)
1A9735 0FBE12; MOVSX EDX,BYTE PTR DS:[EDX]
1A9738 69D2F8010000; IMUL EDX,EDX,1F8
1A973E 8D923469AB02; LEA EDX,DWORD PTR DS:[EDX+2AB6934]
1A9744 8B0482; MOV EAX,DWORD PTR DS:[EDX+EAX*4]
1A9747 E90C82F7FF; JMP mop.00521958
;*******************************************************************
;*******************************************************************
; 42. подсказка к двеллингу без орды
1C8037 E9FCD10000; JMP mop.005D5238
1C803C 9090; NOP (2)
1D5238 0FBE09; MOVSX ECX,BYTE PTR DS:[ECX]
1D523B 69C9F8010000; IMUL ECX,ECX,1F8
1D5241 8D89086AAB02; LEA ECX,DWORD PTR DS:[ECX+2AB6A08]
1D5247 8B0481; MOV EAX,DWORD PTR DS:[ECX+EAX*4]
1D524A E9EF2DFFFF; JMP mop.005C803E
;*******************************************************************
;*******************************************************************
; 43. Неизвестно:
2BCC9 E981951A00; JMP mop.005D524F
2BCCE 9090; NOP (2)
1D524F 0FBE0E; MOVSX ECX,BYTE PTR DS:[ESI]
1D5252 69C9F8010000; IMUL ECX,ECX,1F8
1D5258 8D89086AAB02; LEA ECX,DWORD PTR DS:[ECX+2AB6A08]
1D525E 8B3C81; MOV EDI,DWORD PTR DS:[ECX+EAX*4]
1D5261 E96A6AE5FF; JMP mop.0042BCD0
;*******************************************************************
;*******************************************************************
; 44. Неизвестно:
C698F BE1E000000; MOV ESI,1E
C6994 8B5D14; MOV EBX,DWORD PTR SS:[EBP+14]
C6997 0FBE4304; MOVSX EAX,BYTE PTR DS:[EBX+4]
C699B 8D14C500000000; LEA EDX,DWORD PTR DS:[EAX*8]
C69A2 2BD0; SUB EDX,EAX
C69A4 8D0456; LEA EAX,DWORD PTR DS:[ESI+EDX*2]
C69A7 0FBE0B; MOVSX ECX,BYTE PTR DS:[EBX]
C69AA 69C9F8010000; IMUL ECX,ECX,1F8
C69B0 E96D6FFFFF; JMP mop.004BD922
C69B5 90; NOP
BD922 8D89086AAB02; LEA ECX,DWORD PTR DS:[ECX+2AB6A08]
BD928 393C81; CMP DWORD PTR DS:[ECX+EAX*4],EDI
BD92B E986900000; JMP mop.004C69B6
C69E5 EBAD; JMP SHORT mop.004C6994
;*******************************************************************
;*******************************************************************
; 45. Неизвестно:
;7AAFB E98BDC1B00; JMP mop.0063878B
23878B D1E0; SHL EAX,1
23878D 8D3410; LEA ESI,DWORD PTR DS:[EAX+EDX]
238790 0FBE1B; MOVSX EBX,BYTE PTR DS:[EBX]
238793 69DBF8010000; IMUL EBX,EBX,1F8
238799 8D9B806AAB02; LEA EBX,DWORD PTR DS:[EBX+2AB6A80]
23879F 891D03AB4700; MOV DWORD PTR DS:[47AB03],EBX
2387A5 891D14AB4700; MOV DWORD PTR DS:[47AB14],EBX
2387AB 83C31C; ADD EBX,1C
2387AE 891D36AB4700; MOV DWORD PTR DS:[47AB36],EBX
2387B4 E94723E4FF; JMP mop.0047AB00
; Затирание адресов для порядка
;7AB03 00000000;
;7AB14 00000000;
;7AB36 00000000;
;*******************************************************************
;*******************************************************************
; 46. Неизвестно:
1BFC66 E934301700; JMP mop.00732C9F
1BFC6B 9090; NOP (2)
2CDC9F 0FBE06; MOVSX EAX,BYTE PTR DS:[ESI]
2CDCA2 69C0F8010000; IMUL EAX,EAX,1F8
2CDCA8 8D80806AAB02; LEA EAX,DWORD PTR DS:[EAX+2AB6A80]
2CDCAE 8B0488; MOV EAX,DWORD PTR DS:[EAX+ECX*4]
2CDCB1 E9B7CFE8FF; JMP mop.005BFC6D
;*******************************************************************
;*******************************************************************
; 47. Бонус прироста от Статуи Легиона:
1C0098 E96863F2FF; JMP mop.004E6405
1C009D 9090; NOP (2)
E6405 0FBE06; MOVSX EAX,BYTE PTR DS:[ESI]
E6408 69C0F8010000; IMUL EAX,EAX,1F8
E640E 8B8490806AAB02; MOV EAX,DWORD PTR DS:[EAX+EDX*4+2AB6A80]
E6415 E9859C0D00; JMP mop.005C009F
;38968E 0FBE06; MOVSX EAX,BYTE PTR DS:[ESI]
;389691 69C0F8010000; IMUL EAX,EAX,1F8
;389697 8D80806AAB02; LEA EAX,DWORD PTR DS:[EAX+2AB6A80]
;38969D 8B0490; MOV EAX,DWORD PTR DS:[EAX+EDX*4]
;3896A0 E9FA691BFD; JMP mop.005C009F
;*******************************************************************
;*******************************************************************
; 48. ВОГ: существа в двеллинге при разрушении здания
2A6844 0FB7044A; MOVZX EAX,WORD PTR DS:[EDX+ECX*2]
2A6848 8945E0; MOV DWORD PTR SS:[EBP-20],EAX
2A684B 8B4B38; MOV ECX,DWORD PTR DS:[EBX+38]
2A684E 0FBE09; MOVSX ECX,BYTE PTR DS:[ECX]
2A6851 69C9F8010000; IMUL ECX,ECX,1F8
2A6857 8D89806AAB02; LEA ECX,DWORD PTR DS:[ECX+2AB6A80]
2A685D 8B4598; MOV EAX,DWORD PTR SS:[EBP-68]
2A6860 6BC00E; IMUL EAX,EAX,0E
2A6863 03459C; ADD EAX,DWORD PTR SS:[EBP-64]
2A6866 8B0481; MOV EAX,DWORD PTR DS:[ECX+EAX*4]
2A6869 909090; NOP (3)
;*******************************************************************
; 00576455 8D80B4476700 lea eax,[eax+L006747B4]
; 005BE3AB 8B1495B4476700 mov edx,[L006747B4+edx*4]
; 005C0203 8B0C8DB4476700 mov ecx,[L006747B4+ecx*4]
; 005C057E 668B0C85B4476700 mov cx,[L006747B4+eax*4]
; 005C0B34 8B1C85B4476700 mov ebx,[L006747B4+eax*4]
; 005C0BEC 8B1C95B4476700 mov ebx,[L006747B4+edx*4]
; 005765AA 8D82C0476700 lea eax,[edx+L006747C0]
; 005C0527 668B148DD0476700 mov dx,[L006747D0+ecx*4]
; 0070F553 68B4476700 push L006747B4
; 0070F56F 68B4476700 push L006747B4
; 0071508B 8D0485B4476700 lea eax,[L006747B4+eax*4]
;
;007104E5 8A11 MOV DL,BYTE PTR DS:[ECX]
; SUB_L0047AB50 - ИИ-функция, не привязанная ни к какому городу, только к структуре. Оставляем там прежние адреса.