Code:
proc Load_Werd_Txt
...
vAlloc 524288
;===============1===
;144 * 144 * 2 * 4=165888
;256 * 256 * 2 * 4=524288;1
;--------
;144 * 144 * 2 * (8 + 8) = 663552
;256 * 256 * 2 * (8 + 8) = 2097152
; // Patch Squares
mov dword[73644Ch], eax ; @Squares;1
mov dword[73BB32h], eax ; @Squares;2
mov dword[73BE35h], eax ; @Squares;3
mov dword[74AA76h], eax
mov dword[75118Fh], eax ; @Squares;5
mov dword[751975h], eax ; @Squares;6
mov dword[752B68h], eax ; @Squares;7
mov dword[752B87h], eax ; @Squares;8
mov dword[752BA0h], eax ; @Squares;9
mov dword[752BBFh], eax ; @Squares;10
mov dword[752BD8h], eax ; @Squares;11
mov dword[752BF6h], eax ; @Squares;12
mov dword[752C0Fh], eax ; @Squares;13
mov dword[752C2Eh], eax ; @Squares;14
mov dword[752C47h], eax ; @Squares;15
mov dword[752C66h], eax ; @Squares;16
; // Patch Squares2
vAlloc 2097152;eax;ecx;edx;
mov dword[73BB51h], eax ; @Squares2;1
mov dword[74AA98h], eax ;
mov dword[751582h], eax ; @Squares2;3
mov dword[752472h], eax ; @Squares2;4
mov dword[752FA4h], eax ; @Squares2;5
push -1
push -1
call ExtraMapSizeSquares
...
retn
endp
proc ExtraMapVar256
mov edi,SECOND_DIM_SIZE_256
mov ecx,SQUARES_SIZE_256
mov ebx,SECOND_DIM_SIZE2_256
mov edx,SQUARES2_SIZE_256
mov esi,256
; mov al,6
ret
endp
proc ExtraMapVar144
mov edi,SECOND_DIM_SIZE_144
mov ecx,SQUARES_SIZE_144
mov ebx,SECOND_DIM_SIZE2_144
mov edx,SQUARES2_SIZE_144
mov esi,144
; mov al,2
ret
endp
proc ExtraMapSizeSquares
pushad
mov eax,dword [esp+28h]
.if dword[SquaresCache] = eax
; Дебаг "Равен"
; ПоказатьЦифрБ eax
jmp .ок
.endif
.if dword[esp+24h] = -1
call ExtraMapVar256
.elseif dword[esp+24h] = 0
call ExtraMapVar144
.elseif;dword [eax+18h]
.if eax = Size_Map_M;36
mov edi,SECOND_DIM_SIZE_36
mov ecx,SQUARES_SIZE_36
mov ebx,SECOND_DIM_SIZE2_36
mov edx,SQUARES2_SIZE_36
mov esi,36
; mov al,0
.elseif eax = Size_Map_S;72
mov edi,SECOND_DIM_SIZE_72
mov ecx,SQUARES_SIZE_72
mov ebx,SECOND_DIM_SIZE2_72
mov edx,SQUARES2_SIZE_72
mov esi,72
; mov al,1
.elseif eax = Size_Map_L;108
mov edi,SECOND_DIM_SIZE_108
mov ecx,SQUARES_SIZE_108
mov ebx,SECOND_DIM_SIZE2_108
mov edx,SQUARES2_SIZE_108
mov esi,108
; mov al,2
.elseif eax = Size_Map_X;144
call ExtraMapVar144
; mov edi,3
.elseif eax = Size_Map_H;180
mov edi,SECOND_DIM_SIZE_180
mov ecx,SQUARES_SIZE_180
mov ebx,SECOND_DIM_SIZE2_180
mov edx,SQUARES2_SIZE_180
mov esi,180
; mov al,4
.elseif eax = Size_Map_XH;216
mov edi,SECOND_DIM_SIZE_216
mov ecx,SQUARES_SIZE_216
mov ebx,SECOND_DIM_SIZE2_216
mov edx,SQUARES2_SIZE_216
mov esi,216
; mov al,5
; .elseif dword [eax+18h] = Size_Map_G;252
.elseif
call ExtraMapVar256
; mov edi,6
.endif;SizeMap
.endif
mov dword[SquaresCache],eax
; // Patch calculating Squares addresses
mov dword[736442h], edi;eax;
mov dword[73BB28h], edi;eax;
mov dword[73BE2Bh], edi;eax;
mov dword[74AA6Bh], edi;eax
mov dword[75118Ah], ecx;
mov dword[751970h], ecx;
mov dword[752B5Eh], edi;eax;
mov dword[752B7Dh], edi;eax;
mov dword[752B96h], edi;eax;
mov dword[752BB5h], edi;eax;
mov dword[752BCEh], edi;eax;
mov dword[752BECh], edi;eax;
mov dword[752C05h], edi;eax;
mov dword[752C24h], edi;eax;
mov dword[752C3Dh], edi;eax;
mov dword[752C5Ch], edi;eax;
; // Patch calculating Squares2 addresses
mov dword[73BB44h], ebx;
mov dword[74AA8Ah], ebx
mov dword[75157Dh], edx;
mov dword[75246Dh], edx;
mov dword[752FBDh], edx;
; // Fix cycles
mov dword[752B14h], esi;256 ; 256;
mov dword[752B33h], esi;256 ; 256;
.ок:
popad
ret 8
endp