You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
10251 lines
161 KiB
10251 lines
161 KiB
__declspec(naked) void drawTopArchesUpperScreen(BYTE *pBuff) |
|
{ |
|
__asm { |
|
push ebx |
|
push edx |
|
push edi |
|
push esi |
|
mov edi, offset SpeedFrameTbl |
|
mov gpCelFrame, edi |
|
mov edi, ecx |
|
mov eax, light_table_index |
|
test al, al |
|
jz loc_46316A |
|
cmp al, lightmax |
|
jz loc_4631CA |
|
mov eax, level_cel_block |
|
and eax, 8000h |
|
jnz loc_4630FE |
|
mov ebx, pDungeonCels |
|
mov esi, ebx |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 2 |
|
add ebx, eax |
|
add esi, [ebx] |
|
mov ebx, light_table_index |
|
shl ebx, 8 |
|
add ebx, pLightTbl |
|
mov eax, level_cel_block |
|
mov al, ah |
|
shr eax, 4 |
|
and eax, 0Fh |
|
jz loc_463255 |
|
cmp ax, 1 |
|
jz loc_4632C5 |
|
cmp ax, 2 |
|
jz loc_463425 |
|
cmp ax, 3 |
|
jz loc_463698 |
|
cmp ax, 4 |
|
jz loc_46390B |
|
jmp loc_463AB3 |
|
loc_4630FE: |
|
mov esi, gpCelFrame |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 4 |
|
add eax, light_table_index |
|
shl eax, 2 |
|
add esi, eax |
|
mov eax, [esi] |
|
mov esi, pSpeedCels |
|
add esi, eax |
|
mov eax, level_cel_block |
|
mov al, ah |
|
shr eax, 4 |
|
and eax, 0Fh |
|
loc_463133: |
|
cmp ax, 8 |
|
jz loc_463C5B |
|
cmp ax, 9 |
|
jz loc_463CC2 |
|
cmp ax, 0Ah |
|
jz loc_463DA3 |
|
cmp ax, 0Bh |
|
jz loc_463ED8 |
|
cmp ax, 0Ch |
|
jz loc_464011 |
|
jmp loc_464112 |
|
loc_46316A: |
|
mov eax, level_cel_block |
|
and eax, 8000h |
|
jz loc_46319C |
|
mov esi, gpCelFrame |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 6 |
|
add esi, eax |
|
mov eax, level_cel_block |
|
and eax, 0F000h |
|
add eax, [esi] |
|
mov level_cel_block, eax |
|
loc_46319C: |
|
mov ebx, pDungeonCels |
|
mov esi, ebx |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 2 |
|
add ebx, eax |
|
add esi, [ebx] |
|
mov eax, level_cel_block |
|
mov al, ah |
|
shr eax, 4 |
|
and eax, 7 |
|
add eax, 8 |
|
jmp loc_463133 |
|
loc_4631CA: |
|
mov eax, level_cel_block |
|
and eax, 8000h |
|
jz loc_4631FC |
|
mov esi, gpCelFrame |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 6 |
|
add esi, eax |
|
mov eax, level_cel_block |
|
and eax, 0F000h |
|
add eax, [esi] |
|
mov level_cel_block, eax |
|
loc_4631FC: |
|
mov ebx, pDungeonCels |
|
mov esi, ebx |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 2 |
|
add ebx, eax |
|
add esi, [ebx] |
|
mov eax, level_cel_block |
|
mov al, ah |
|
shr eax, 4 |
|
and eax, 7 |
|
jz loc_46420F |
|
cmp ax, 1 |
|
jz loc_464263 |
|
cmp ax, 2 |
|
jz loc_464321 |
|
cmp ax, 3 |
|
jz loc_46440E |
|
cmp ax, 4 |
|
jz loc_4644FB |
|
jmp loc_4645C7 |
|
loc_463255: |
|
push ebp |
|
mov ebp, 10h |
|
loc_46325B: |
|
cmp edi, gpBufEnd |
|
jb loc_4632BF |
|
mov ecx, 8 |
|
loc_463268: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_463268 |
|
sub edi, 320h |
|
cmp edi, gpBufEnd |
|
jb loc_4632BF |
|
mov ecx, 8 |
|
loc_463299: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_463299 |
|
sub edi, 320h |
|
dec ebp |
|
jnz loc_46325B |
|
loc_4632BF: |
|
pop ebp |
|
jmp loc_464688 |
|
loc_4632C5: |
|
push ebp |
|
mov eax, edi |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
mov ebp, 20h |
|
loc_4632D5: |
|
mov edx, 20h |
|
loc_4632DA: |
|
xor eax, eax |
|
mov al, [esi] |
|
inc esi |
|
test al, al |
|
js loc_4633F8 |
|
sub edx, eax |
|
cmp edi, gpBufEnd |
|
jb loc_46341F |
|
mov ecx, eax |
|
mov eax, edi |
|
and eax, 1 |
|
cmp eax, WorldBoolFlag |
|
jnz loc_463377 |
|
push edx |
|
shr ecx, 1 |
|
jb loc_463340 |
|
shr ecx, 1 |
|
jnb loc_46331C |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_46331C: |
|
test cl, cl |
|
jz loc_46333E |
|
loc_463320: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_463320 |
|
loc_46333E: |
|
jmp loc_463374 |
|
loc_463340: |
|
inc esi |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_463353 |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_463353: |
|
test cl, cl |
|
jz loc_463374 |
|
loc_463357: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_463357 |
|
loc_463374: |
|
pop edx |
|
jmp loc_4633EF |
|
loc_463377: |
|
push edx |
|
shr ecx, 1 |
|
jb loc_4633B0 |
|
shr ecx, 1 |
|
jnb loc_46338D |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_46338D: |
|
test cl, cl |
|
jz loc_4633AE |
|
loc_463391: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_463391 |
|
loc_4633AE: |
|
jmp loc_4633EE |
|
loc_4633B0: |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
inc esi |
|
mov [edi], dl |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_4633CC |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_4633CC: |
|
test cl, cl |
|
jz loc_4633EE |
|
loc_4633D0: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_4633D0 |
|
loc_4633EE: |
|
pop edx |
|
loc_4633EF: |
|
test edx, edx |
|
jz loc_463404 |
|
jmp loc_4632DA |
|
loc_4633F8: |
|
neg al |
|
add edi, eax |
|
sub edx, eax |
|
jnz loc_4632DA |
|
loc_463404: |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
sub edi, 320h |
|
dec ebp |
|
jnz loc_4632D5 |
|
loc_46341F: |
|
pop ebp |
|
jmp loc_464688 |
|
loc_463425: |
|
push ebp |
|
xor eax, eax |
|
mov WorldBoolFlag, eax |
|
mov ebp, 1Eh |
|
loc_463432: |
|
cmp edi, gpBufEnd |
|
jb loc_463692 |
|
add edi, ebp |
|
mov ecx, 20h |
|
sub ecx, ebp |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_4634D2 |
|
mov edx, ecx |
|
and edx, 2 |
|
add esi, edx |
|
shr ecx, 1 |
|
jb loc_463499 |
|
shr ecx, 1 |
|
jnb loc_463475 |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_463475: |
|
test cl, cl |
|
jz loc_463497 |
|
loc_463479: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_463479 |
|
loc_463497: |
|
jmp loc_4634CD |
|
loc_463499: |
|
inc esi |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_4634AC |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_4634AC: |
|
test cl, cl |
|
jz loc_4634CD |
|
loc_4634B0: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_4634B0 |
|
loc_4634CD: |
|
jmp $+82h |
|
loc_4634D2: |
|
mov edx, ecx |
|
and edx, 2 |
|
add esi, edx |
|
shr ecx, 1 |
|
jb loc_463511 |
|
shr ecx, 1 |
|
jnb loc_4634EE |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_4634EE: |
|
test cl, cl |
|
jz loc_46350F |
|
loc_4634F2: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_4634F2 |
|
loc_46350F: |
|
jmp loc_46354F |
|
loc_463511: |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
inc esi |
|
mov [edi], dl |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_46352D |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_46352D: |
|
test cl, cl |
|
jz loc_46354F |
|
loc_463531: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_463531 |
|
loc_46354F: |
|
sub edi, 320h |
|
sub ebp, 2 |
|
jge loc_463432 |
|
mov ebp, 2 |
|
loc_463563: |
|
cmp edi, gpBufEnd |
|
jb loc_463692 |
|
add edi, ebp |
|
mov ecx, 20h |
|
sub ecx, ebp |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_463603 |
|
mov edx, ecx |
|
and edx, 2 |
|
add esi, edx |
|
shr ecx, 1 |
|
jb loc_4635CA |
|
shr ecx, 1 |
|
jnb loc_4635A6 |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_4635A6: |
|
test cl, cl |
|
jz loc_4635C8 |
|
loc_4635AA: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_4635AA |
|
loc_4635C8: |
|
jmp loc_4635FE |
|
loc_4635CA: |
|
inc esi |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_4635DD |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_4635DD: |
|
test cl, cl |
|
jz loc_4635FE |
|
loc_4635E1: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_4635E1 |
|
loc_4635FE: |
|
jmp $+82h |
|
loc_463603: |
|
mov edx, ecx |
|
and edx, 2 |
|
add esi, edx |
|
shr ecx, 1 |
|
jb loc_463642 |
|
shr ecx, 1 |
|
jnb loc_46361F |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_46361F: |
|
test cl, cl |
|
jz loc_463640 |
|
loc_463623: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_463623 |
|
loc_463640: |
|
jmp loc_463680 |
|
loc_463642: |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
inc esi |
|
mov [edi], dl |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_46365E |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_46365E: |
|
test cl, cl |
|
jz loc_463680 |
|
loc_463662: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_463662 |
|
loc_463680: |
|
sub edi, 320h |
|
add ebp, 2 |
|
cmp ebp, 20h |
|
jnz loc_463563 |
|
loc_463692: |
|
pop ebp |
|
jmp loc_464688 |
|
loc_463698: |
|
push ebp |
|
xor eax, eax |
|
mov WorldBoolFlag, eax |
|
mov ebp, 1Eh |
|
loc_4636A5: |
|
cmp edi, gpBufEnd |
|
jb loc_463905 |
|
mov ecx, 20h |
|
sub ecx, ebp |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_463743 |
|
shr ecx, 1 |
|
jb loc_463703 |
|
shr ecx, 1 |
|
jnb loc_4636DF |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_4636DF: |
|
test cl, cl |
|
jz loc_463701 |
|
loc_4636E3: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_4636E3 |
|
loc_463701: |
|
jmp loc_463737 |
|
loc_463703: |
|
inc esi |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_463716 |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_463716: |
|
test cl, cl |
|
jz loc_463737 |
|
loc_46371A: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_46371A |
|
loc_463737: |
|
mov edx, esi |
|
and edx, 2 |
|
add esi, edx |
|
jmp $+82h |
|
loc_463743: |
|
shr ecx, 1 |
|
jb loc_46377B |
|
shr ecx, 1 |
|
jnb loc_463758 |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_463758: |
|
test cl, cl |
|
jz loc_463779 |
|
loc_46375C: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_46375C |
|
loc_463779: |
|
jmp loc_4637B9 |
|
loc_46377B: |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
inc esi |
|
mov [edi], dl |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_463797 |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_463797: |
|
test cl, cl |
|
jz loc_4637B9 |
|
loc_46379B: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_46379B |
|
loc_4637B9: |
|
mov edx, esi |
|
and edx, 2 |
|
add esi, edx |
|
// loc_4637C0: |
|
sub edi, 320h |
|
add edi, ebp |
|
sub ebp, 2 |
|
jge loc_4636A5 |
|
mov ebp, 2 |
|
loc_4637D6: |
|
cmp edi, gpBufEnd |
|
jb loc_463905 |
|
mov ecx, 20h |
|
sub ecx, ebp |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_463874 |
|
shr ecx, 1 |
|
jb loc_463834 |
|
shr ecx, 1 |
|
jnb loc_463810 |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_463810: |
|
test cl, cl |
|
jz loc_463832 |
|
loc_463814: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_463814 |
|
loc_463832: |
|
jmp loc_463868 |
|
loc_463834: |
|
inc esi |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_463847 |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_463847: |
|
test cl, cl |
|
jz loc_463868 |
|
loc_46384B: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_46384B |
|
loc_463868: |
|
mov edx, esi |
|
and edx, 2 |
|
add esi, edx |
|
jmp $+82h |
|
loc_463874: |
|
shr ecx, 1 |
|
jb loc_4638AC |
|
shr ecx, 1 |
|
jnb loc_463889 |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_463889: |
|
test cl, cl |
|
jz loc_4638AA |
|
loc_46388D: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_46388D |
|
loc_4638AA: |
|
jmp loc_4638EA |
|
loc_4638AC: |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
inc esi |
|
mov [edi], dl |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_4638C8 |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_4638C8: |
|
test cl, cl |
|
jz loc_4638EA |
|
loc_4638CC: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_4638CC |
|
loc_4638EA: |
|
mov edx, esi |
|
and edx, 2 |
|
add esi, edx |
|
// loc_4638F1: |
|
sub edi, 320h |
|
add edi, ebp |
|
add ebp, 2 |
|
cmp ebp, 20h |
|
jnz loc_4637D6 |
|
loc_463905: |
|
pop ebp |
|
jmp loc_464688 |
|
loc_46390B: |
|
push ebp |
|
xor eax, eax |
|
mov WorldBoolFlag, eax |
|
mov ebp, 1Eh |
|
loc_463918: |
|
cmp edi, gpBufEnd |
|
jb loc_463AAD |
|
add edi, ebp |
|
mov ecx, 20h |
|
sub ecx, ebp |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_4639B8 |
|
mov edx, ecx |
|
and edx, 2 |
|
add esi, edx |
|
shr ecx, 1 |
|
jb loc_46397F |
|
shr ecx, 1 |
|
jnb loc_46395B |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_46395B: |
|
test cl, cl |
|
jz loc_46397D |
|
loc_46395F: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_46395F |
|
loc_46397D: |
|
jmp loc_4639B3 |
|
loc_46397F: |
|
inc esi |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_463992 |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_463992: |
|
test cl, cl |
|
jz loc_4639B3 |
|
loc_463996: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_463996 |
|
loc_4639B3: |
|
jmp $+82h |
|
loc_4639B8: |
|
mov edx, ecx |
|
and edx, 2 |
|
add esi, edx |
|
shr ecx, 1 |
|
jb loc_4639F7 |
|
shr ecx, 1 |
|
jnb loc_4639D4 |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_4639D4: |
|
test cl, cl |
|
jz loc_4639F5 |
|
loc_4639D8: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_4639D8 |
|
loc_4639F5: |
|
jmp loc_463A35 |
|
loc_4639F7: |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
inc esi |
|
mov [edi], dl |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_463A13 |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_463A13: |
|
test cl, cl |
|
jz loc_463A35 |
|
loc_463A17: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_463A17 |
|
loc_463A35: |
|
sub edi, 320h |
|
sub ebp, 2 |
|
jge loc_463918 |
|
mov ebp, 8 |
|
loc_463A49: |
|
cmp edi, gpBufEnd |
|
jb loc_463AAD |
|
mov ecx, 8 |
|
loc_463A56: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_463A56 |
|
sub edi, 320h |
|
cmp edi, gpBufEnd |
|
jb loc_463AAD |
|
mov ecx, 8 |
|
loc_463A87: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_463A87 |
|
sub edi, 320h |
|
dec ebp |
|
jnz loc_463A49 |
|
loc_463AAD: |
|
pop ebp |
|
jmp loc_464688 |
|
loc_463AB3: |
|
push ebp |
|
xor eax, eax |
|
mov WorldBoolFlag, eax |
|
mov ebp, 1Eh |
|
loc_463AC0: |
|
cmp edi, gpBufEnd |
|
jb loc_463C55 |
|
mov ecx, 20h |
|
sub ecx, ebp |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_463B5E |
|
shr ecx, 1 |
|
jb loc_463B1E |
|
shr ecx, 1 |
|
jnb loc_463AFA |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_463AFA: |
|
test cl, cl |
|
jz loc_463B1C |
|
loc_463AFE: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_463AFE |
|
loc_463B1C: |
|
jmp loc_463B52 |
|
loc_463B1E: |
|
inc esi |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_463B31 |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_463B31: |
|
test cl, cl |
|
jz loc_463B52 |
|
loc_463B35: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_463B35 |
|
loc_463B52: |
|
mov edx, esi |
|
and edx, 2 |
|
add esi, edx |
|
jmp $+82h |
|
loc_463B5E: |
|
shr ecx, 1 |
|
jb loc_463B96 |
|
shr ecx, 1 |
|
jnb loc_463B73 |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_463B73: |
|
test cl, cl |
|
jz loc_463B94 |
|
loc_463B77: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_463B77 |
|
loc_463B94: |
|
jmp loc_463BD4 |
|
loc_463B96: |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
inc esi |
|
mov [edi], dl |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_463BB2 |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_463BB2: |
|
test cl, cl |
|
jz loc_463BD4 |
|
loc_463BB6: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_463BB6 |
|
loc_463BD4: |
|
mov edx, esi |
|
and edx, 2 |
|
add esi, edx |
|
// loc_463BDB: |
|
sub edi, 320h |
|
add edi, ebp |
|
sub ebp, 2 |
|
jge loc_463AC0 |
|
mov ebp, 8 |
|
loc_463BF1: |
|
cmp edi, gpBufEnd |
|
jb loc_463C55 |
|
mov ecx, 8 |
|
loc_463BFE: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_463BFE |
|
sub edi, 320h |
|
cmp edi, gpBufEnd |
|
jb loc_463C55 |
|
mov ecx, 8 |
|
loc_463C2F: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_463C2F |
|
sub edi, 320h |
|
dec ebp |
|
jnz loc_463BF1 |
|
loc_463C55: |
|
pop ebp |
|
jmp loc_464688 |
|
loc_463C5B: |
|
mov edx, 10h |
|
loc_463C60: |
|
cmp edi, gpBufEnd |
|
jb loc_464688 |
|
mov ecx, 8 |
|
loc_463C71: |
|
mov eax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
inc edi |
|
dec ecx |
|
jnz loc_463C71 |
|
sub edi, 320h |
|
cmp edi, gpBufEnd |
|
jb loc_464688 |
|
mov ecx, 8 |
|
loc_463C9F: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
add edi, 2 |
|
dec ecx |
|
jnz loc_463C9F |
|
sub edi, 320h |
|
dec edx |
|
jnz loc_463C60 |
|
jmp loc_464688 |
|
loc_463CC2: |
|
push ebp |
|
mov eax, edi |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
mov ebp, 20h |
|
loc_463CD2: |
|
mov edx, 20h |
|
loc_463CD7: |
|
xor eax, eax |
|
mov al, [esi] |
|
inc esi |
|
test al, al |
|
js loc_463D76 |
|
sub edx, eax |
|
cmp edi, gpBufEnd |
|
jb loc_463D9D |
|
mov ecx, eax |
|
mov eax, edi |
|
and eax, 1 |
|
cmp eax, WorldBoolFlag |
|
jnz loc_463D36 |
|
shr ecx, 1 |
|
jnb loc_463D0D |
|
inc esi |
|
inc edi |
|
test ecx, ecx |
|
jz loc_463D6D |
|
jmp loc_463D46 |
|
loc_463D0D: |
|
shr ecx, 1 |
|
jnb loc_463D1D |
|
inc esi |
|
inc edi |
|
mov al, [esi] |
|
inc esi |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_463D6D |
|
loc_463D1D: |
|
mov eax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
inc edi |
|
dec ecx |
|
jnz loc_463D1D |
|
jmp loc_463D6D |
|
loc_463D36: |
|
shr ecx, 1 |
|
jnb loc_463D46 |
|
mov al, [esi] |
|
inc esi |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_463D6D |
|
jmp loc_463D0D |
|
loc_463D46: |
|
shr ecx, 1 |
|
jnb loc_463D58 |
|
mov al, [esi] |
|
add esi, 2 |
|
mov [edi], al |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_463D6D |
|
loc_463D58: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
add edi, 2 |
|
dec ecx |
|
jnz loc_463D58 |
|
loc_463D6D: |
|
test edx, edx |
|
jz loc_463D82 |
|
jmp loc_463CD7 |
|
loc_463D76: |
|
neg al |
|
add edi, eax |
|
sub edx, eax |
|
jnz loc_463CD7 |
|
loc_463D82: |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
sub edi, 320h |
|
dec ebp |
|
jnz loc_463CD2 |
|
loc_463D9D: |
|
pop ebp |
|
jmp loc_464688 |
|
loc_463DA3: |
|
xor eax, eax |
|
mov WorldBoolFlag, eax |
|
mov edx, 1Eh |
|
loc_463DAF: |
|
cmp edi, gpBufEnd |
|
jb loc_464688 |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_463E04 |
|
shr ecx, 2 |
|
jnb loc_463DEB |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_463E2E |
|
loc_463DEB: |
|
mov eax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
inc edi |
|
dec ecx |
|
jnz loc_463DEB |
|
jmp loc_463E2E |
|
loc_463E04: |
|
shr ecx, 2 |
|
jnb loc_463E19 |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_463E2E |
|
loc_463E19: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
add edi, 2 |
|
dec ecx |
|
jnz loc_463E19 |
|
loc_463E2E: |
|
sub edi, 320h |
|
sub edx, 2 |
|
jge loc_463DAF |
|
mov edx, 2 |
|
loc_463E42: |
|
cmp edi, gpBufEnd |
|
jb loc_464688 |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_463E97 |
|
shr ecx, 2 |
|
jnb loc_463E7E |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_463EC1 |
|
loc_463E7E: |
|
mov eax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
inc edi |
|
dec ecx |
|
jnz loc_463E7E |
|
jmp loc_463EC1 |
|
loc_463E97: |
|
shr ecx, 2 |
|
jnb loc_463EAC |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_463EC1 |
|
loc_463EAC: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
add edi, 2 |
|
dec ecx |
|
jnz loc_463EAC |
|
loc_463EC1: |
|
sub edi, 320h |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_463E42 |
|
jmp loc_464688 |
|
loc_463ED8: |
|
push ebp |
|
xor eax, eax |
|
mov WorldBoolFlag, eax |
|
mov edx, 1Eh |
|
loc_463EE5: |
|
cmp edi, gpBufEnd |
|
jb loc_46400B |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov ebp, ecx |
|
mov WorldBoolFlag, eax |
|
jz loc_463F3A |
|
shr ecx, 2 |
|
jz loc_463F26 |
|
loc_463F0F: |
|
mov eax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
inc edi |
|
dec ecx |
|
jnz loc_463F0F |
|
loc_463F26: |
|
and ebp, 2 |
|
jz loc_463F64 |
|
mov ax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
inc edi |
|
jmp loc_463F64 |
|
loc_463F3A: |
|
shr ecx, 2 |
|
jz loc_463F54 |
|
loc_463F3F: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
add edi, 2 |
|
dec ecx |
|
jnz loc_463F3F |
|
loc_463F54: |
|
and ebp, 2 |
|
jz loc_463F64 |
|
mov ax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
loc_463F64: |
|
sub edi, 320h |
|
add edi, edx |
|
sub edx, 2 |
|
jge loc_463EE5 |
|
mov edx, 2 |
|
loc_463F7A: |
|
cmp edi, gpBufEnd |
|
jb loc_46400B |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_463FCD |
|
shr ecx, 2 |
|
jz loc_463FB9 |
|
loc_463FA2: |
|
mov eax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
inc edi |
|
dec ecx |
|
jnz loc_463FA2 |
|
loc_463FB9: |
|
and ebp, 2 |
|
jz loc_463FF7 |
|
mov ax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
inc edi |
|
jmp loc_463FF7 |
|
loc_463FCD: |
|
shr ecx, 2 |
|
jz loc_463FE7 |
|
loc_463FD2: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
add edi, 2 |
|
dec ecx |
|
jnz loc_463FD2 |
|
loc_463FE7: |
|
and ebp, 2 |
|
jz loc_463FF7 |
|
mov ax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
loc_463FF7: |
|
sub edi, 320h |
|
add edi, edx |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_463F7A |
|
loc_46400B: |
|
pop ebp |
|
jmp loc_464688 |
|
loc_464011: |
|
xor eax, eax |
|
mov WorldBoolFlag, eax |
|
mov edx, 1Eh |
|
loc_46401D: |
|
cmp edi, gpBufEnd |
|
jb loc_464688 |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_464072 |
|
shr ecx, 2 |
|
jnb loc_464059 |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_46409C |
|
loc_464059: |
|
mov eax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
inc edi |
|
dec ecx |
|
jnz loc_464059 |
|
jmp loc_46409C |
|
loc_464072: |
|
shr ecx, 2 |
|
jnb loc_464087 |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_46409C |
|
loc_464087: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
add edi, 2 |
|
dec ecx |
|
jnz loc_464087 |
|
loc_46409C: |
|
sub edi, 320h |
|
sub edx, 2 |
|
jge loc_46401D |
|
mov edx, 8 |
|
loc_4640B0: |
|
cmp edi, gpBufEnd |
|
jb loc_464688 |
|
mov ecx, 8 |
|
loc_4640C1: |
|
mov eax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
inc edi |
|
dec ecx |
|
jnz loc_4640C1 |
|
sub edi, 320h |
|
cmp edi, gpBufEnd |
|
jb loc_464688 |
|
mov ecx, 8 |
|
loc_4640EF: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
add edi, 2 |
|
dec ecx |
|
jnz loc_4640EF |
|
sub edi, 320h |
|
dec edx |
|
jnz loc_4640B0 |
|
jmp loc_464688 |
|
loc_464112: |
|
push ebp |
|
xor eax, eax |
|
mov WorldBoolFlag, eax |
|
mov edx, 1Eh |
|
loc_46411F: |
|
cmp edi, gpBufEnd |
|
jb loc_464209 |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov ebp, ecx |
|
mov WorldBoolFlag, eax |
|
jz loc_464174 |
|
shr ecx, 2 |
|
jz loc_464160 |
|
loc_464149: |
|
mov eax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
inc edi |
|
dec ecx |
|
jnz loc_464149 |
|
loc_464160: |
|
and ebp, 2 |
|
jz loc_46419E |
|
mov ax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
inc edi |
|
jmp loc_46419E |
|
loc_464174: |
|
shr ecx, 2 |
|
jz loc_46418E |
|
loc_464179: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
add edi, 2 |
|
dec ecx |
|
jnz loc_464179 |
|
loc_46418E: |
|
and ebp, 2 |
|
jz loc_46419E |
|
mov ax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
loc_46419E: |
|
sub edi, 320h |
|
add edi, edx |
|
sub edx, 2 |
|
jge loc_46411F |
|
mov edx, 8 |
|
loc_4641B4: |
|
cmp edi, gpBufEnd |
|
jb loc_464209 |
|
mov ecx, 8 |
|
loc_4641C1: |
|
mov eax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
inc edi |
|
dec ecx |
|
jnz loc_4641C1 |
|
sub edi, 320h |
|
cmp edi, gpBufEnd |
|
jb loc_464209 |
|
mov ecx, 8 |
|
loc_4641EB: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
add edi, 2 |
|
dec ecx |
|
jnz loc_4641EB |
|
sub edi, 320h |
|
dec edx |
|
jnz loc_4641B4 |
|
loc_464209: |
|
pop ebp |
|
jmp loc_464688 |
|
loc_46420F: |
|
mov edx, 10h |
|
xor eax, eax |
|
loc_464216: |
|
cmp edi, gpBufEnd |
|
jb loc_464688 |
|
mov ecx, 8 |
|
loc_464227: |
|
mov [edi+1], al |
|
mov [edi+3], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_464227 |
|
sub edi, 320h |
|
cmp edi, gpBufEnd |
|
jb loc_464688 |
|
mov ecx, 8 |
|
loc_46424A: |
|
mov [edi], al |
|
mov [edi+2], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_46424A |
|
sub edi, 320h |
|
dec edx |
|
jnz loc_464216 |
|
jmp loc_464688 |
|
loc_464263: |
|
push ebp |
|
mov eax, edi |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
mov ebp, 20h |
|
loc_464273: |
|
mov edx, 20h |
|
loc_464278: |
|
xor eax, eax |
|
mov al, [esi] |
|
inc esi |
|
test al, al |
|
js loc_4642F4 |
|
sub edx, eax |
|
cmp edi, gpBufEnd |
|
jb loc_46431B |
|
mov ecx, eax |
|
add esi, ecx |
|
mov eax, edi |
|
and eax, 1 |
|
cmp eax, WorldBoolFlag |
|
jnz loc_4642C7 |
|
xor eax, eax |
|
shr ecx, 1 |
|
jnb loc_4642AD |
|
inc edi |
|
test ecx, ecx |
|
jz loc_4642EE |
|
jmp loc_4642D6 |
|
loc_4642AD: |
|
shr ecx, 1 |
|
jnb loc_4642B9 |
|
inc edi |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_4642EE |
|
loc_4642B9: |
|
mov [edi+1], al |
|
mov [edi+3], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4642B9 |
|
jmp loc_4642EE |
|
loc_4642C7: |
|
xor eax, eax |
|
shr ecx, 1 |
|
jnb loc_4642D6 |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_4642EE |
|
jmp loc_4642AD |
|
loc_4642D6: |
|
shr ecx, 1 |
|
jnb loc_4642E3 |
|
mov [edi], al |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_4642EE |
|
loc_4642E3: |
|
mov [edi], al |
|
mov [edi+2], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4642E3 |
|
loc_4642EE: |
|
test edx, edx |
|
jz loc_464300 |
|
jmp loc_464278 |
|
loc_4642F4: |
|
neg al |
|
add edi, eax |
|
sub edx, eax |
|
jnz loc_464278 |
|
loc_464300: |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
sub edi, 320h |
|
dec ebp |
|
jnz loc_464273 |
|
loc_46431B: |
|
pop ebp |
|
jmp loc_464688 |
|
loc_464321: |
|
xor eax, eax |
|
mov WorldBoolFlag, eax |
|
mov edx, 1Eh |
|
loc_46432D: |
|
cmp edi, gpBufEnd |
|
jb loc_464688 |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_46436F |
|
xor eax, eax |
|
shr ecx, 2 |
|
jnb loc_464361 |
|
inc edi |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_46438A |
|
loc_464361: |
|
mov [edi+1], al |
|
mov [edi+3], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_464361 |
|
jmp loc_46438A |
|
loc_46436F: |
|
xor eax, eax |
|
shr ecx, 2 |
|
jnb loc_46437F |
|
mov [edi], al |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_46438A |
|
loc_46437F: |
|
mov [edi], al |
|
mov [edi+2], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_46437F |
|
loc_46438A: |
|
sub edi, 320h |
|
test edx, edx |
|
jz loc_464399 |
|
sub edx, 2 |
|
jmp loc_46432D |
|
loc_464399: |
|
mov edx, 2 |
|
loc_46439E: |
|
cmp edi, gpBufEnd |
|
jb loc_464688 |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_4643E0 |
|
xor eax, eax |
|
shr ecx, 2 |
|
jnb loc_4643D2 |
|
inc edi |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_4643FB |
|
loc_4643D2: |
|
mov [edi+1], al |
|
mov [edi+3], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4643D2 |
|
jmp loc_4643FB |
|
loc_4643E0: |
|
xor eax, eax |
|
shr ecx, 2 |
|
jnb loc_4643F0 |
|
mov [edi], al |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_4643FB |
|
loc_4643F0: |
|
mov [edi], al |
|
mov [edi+2], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4643F0 |
|
loc_4643FB: |
|
sub edi, 320h |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_46439E |
|
jmp loc_464688 |
|
loc_46440E: |
|
xor eax, eax |
|
mov WorldBoolFlag, eax |
|
mov edx, 1Eh |
|
loc_46441A: |
|
cmp edi, gpBufEnd |
|
jb loc_464688 |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_46445A |
|
xor eax, eax |
|
shr ecx, 2 |
|
jnb loc_46444C |
|
inc edi |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_464475 |
|
loc_46444C: |
|
mov [edi+1], al |
|
mov [edi+3], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_46444C |
|
jmp loc_464475 |
|
loc_46445A: |
|
xor eax, eax |
|
shr ecx, 2 |
|
jnb loc_46446A |
|
mov [edi], al |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_464475 |
|
loc_46446A: |
|
mov [edi], al |
|
mov [edi+2], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_46446A |
|
loc_464475: |
|
sub edi, 320h |
|
test edx, edx |
|
jz loc_464486 |
|
add edi, edx |
|
sub edx, 2 |
|
jmp loc_46441A |
|
loc_464486: |
|
mov edx, 2 |
|
loc_46448B: |
|
cmp edi, gpBufEnd |
|
jb loc_464688 |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_4644CB |
|
xor eax, eax |
|
shr ecx, 2 |
|
jnb loc_4644BD |
|
inc edi |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_4644E6 |
|
loc_4644BD: |
|
mov [edi+1], al |
|
mov [edi+3], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4644BD |
|
jmp loc_4644E6 |
|
loc_4644CB: |
|
xor eax, eax |
|
shr ecx, 2 |
|
jnb loc_4644DB |
|
mov [edi], al |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_4644E6 |
|
loc_4644DB: |
|
mov [edi], al |
|
mov [edi+2], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4644DB |
|
loc_4644E6: |
|
sub edi, 320h |
|
add edi, edx |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_46448B |
|
jmp loc_464688 |
|
loc_4644FB: |
|
xor eax, eax |
|
mov WorldBoolFlag, eax |
|
mov edx, 1Eh |
|
loc_464507: |
|
cmp edi, gpBufEnd |
|
jb loc_464688 |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_464549 |
|
xor eax, eax |
|
shr ecx, 2 |
|
jnb loc_46453B |
|
inc edi |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_464564 |
|
loc_46453B: |
|
mov [edi+1], al |
|
mov [edi+3], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_46453B |
|
jmp loc_464564 |
|
loc_464549: |
|
xor eax, eax |
|
shr ecx, 2 |
|
jnb loc_464559 |
|
mov [edi], al |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_464564 |
|
loc_464559: |
|
mov [edi], al |
|
mov [edi+2], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_464559 |
|
loc_464564: |
|
sub edi, 320h |
|
test edx, edx |
|
jz loc_464573 |
|
sub edx, 2 |
|
jmp loc_464507 |
|
loc_464573: |
|
mov edx, 8 |
|
xor eax, eax |
|
loc_46457A: |
|
cmp edi, gpBufEnd |
|
jb loc_464688 |
|
mov ecx, 8 |
|
loc_46458B: |
|
mov [edi+1], al |
|
mov [edi+3], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_46458B |
|
sub edi, 320h |
|
cmp edi, gpBufEnd |
|
jb loc_464688 |
|
mov ecx, 8 |
|
loc_4645AE: |
|
mov [edi], al |
|
mov [edi+2], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4645AE |
|
sub edi, 320h |
|
dec edx |
|
jnz loc_46457A |
|
jmp loc_464688 |
|
loc_4645C7: |
|
xor eax, eax |
|
mov WorldBoolFlag, eax |
|
mov edx, 1Eh |
|
loc_4645D3: |
|
cmp edi, gpBufEnd |
|
jb loc_464688 |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_464613 |
|
xor eax, eax |
|
shr ecx, 2 |
|
jnb loc_464605 |
|
inc edi |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_46462E |
|
loc_464605: |
|
mov [edi+1], al |
|
mov [edi+3], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_464605 |
|
jmp loc_46462E |
|
loc_464613: |
|
xor eax, eax |
|
shr ecx, 2 |
|
jnb loc_464623 |
|
mov [edi], al |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_46462E |
|
loc_464623: |
|
mov [edi], al |
|
mov [edi+2], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_464623 |
|
loc_46462E: |
|
sub edi, 320h |
|
test edx, edx |
|
jz loc_46463F |
|
add edi, edx |
|
sub edx, 2 |
|
jmp loc_4645D3 |
|
loc_46463F: |
|
mov edx, 8 |
|
xor eax, eax |
|
loc_464646: |
|
cmp edi, gpBufEnd |
|
jb loc_464688 |
|
mov ecx, 8 |
|
loc_464653: |
|
mov [edi+1], al |
|
mov [edi+3], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_464653 |
|
sub edi, 320h |
|
cmp edi, gpBufEnd |
|
jb loc_464688 |
|
mov ecx, 8 |
|
loc_464672: |
|
mov [edi], al |
|
mov [edi+2], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_464672 |
|
sub edi, 320h |
|
dec edx |
|
jnz loc_464646 |
|
jmp loc_464688 |
|
loc_464688: |
|
pop esi |
|
pop edi |
|
pop edx |
|
pop ebx |
|
retn |
|
} |
|
} |
|
|
|
__declspec(naked) void drawBottomArchesUpperScreen(BYTE *pBuff, unsigned int *pMask) |
|
{ |
|
__asm { |
|
push ebx |
|
push edi |
|
push esi |
|
mov edi, offset SpeedFrameTbl |
|
mov gpCelFrame, edi |
|
mov edi, ecx |
|
mov gpDrawMask, edx |
|
mov eax, light_table_index |
|
test al, al |
|
jz loc_4647A2 |
|
cmp al, lightmax |
|
jz loc_464802 |
|
mov eax, level_cel_block |
|
and eax, 8000h |
|
jnz loc_464736 |
|
mov ebx, pDungeonCels |
|
mov esi, ebx |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 2 |
|
add ebx, eax |
|
add esi, [ebx] |
|
mov ebx, light_table_index |
|
shl ebx, 8 |
|
add ebx, pLightTbl |
|
mov eax, level_cel_block |
|
mov al, ah |
|
shr eax, 4 |
|
and eax, 0Fh |
|
jz loc_46488D |
|
jz loc_464FBC |
|
cmp ax, 1 |
|
jz loc_4648D5 |
|
cmp ax, 2 |
|
jz loc_464964 |
|
cmp ax, 3 |
|
jz loc_464A30 |
|
cmp ax, 4 |
|
jz loc_464AFE |
|
jmp loc_464BBC |
|
loc_464736: |
|
mov esi, gpCelFrame |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 4 |
|
add eax, light_table_index |
|
shl eax, 2 |
|
add esi, eax |
|
mov eax, [esi] |
|
mov esi, pSpeedCels |
|
add esi, eax |
|
mov eax, level_cel_block |
|
mov al, ah |
|
shr eax, 4 |
|
and eax, 0Fh |
|
loc_46476B: |
|
cmp ax, 8 |
|
jz loc_464C7A |
|
cmp ax, 9 |
|
jz loc_464CC1 |
|
cmp ax, 0Ah |
|
jz loc_464D4B |
|
cmp ax, 0Bh |
|
jz loc_464DE3 |
|
cmp ax, 0Ch |
|
jz loc_464E7D |
|
jmp loc_464F19 |
|
loc_4647A2: |
|
mov eax, level_cel_block |
|
and eax, 8000h |
|
jz loc_4647D4 |
|
mov esi, gpCelFrame |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 6 |
|
add esi, eax |
|
mov eax, level_cel_block |
|
and eax, 0F000h |
|
add eax, [esi] |
|
mov level_cel_block, eax |
|
loc_4647D4: |
|
mov ebx, pDungeonCels |
|
mov esi, ebx |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 2 |
|
add ebx, eax |
|
add esi, [ebx] |
|
mov eax, level_cel_block |
|
mov al, ah |
|
shr eax, 4 |
|
and eax, 7 |
|
add eax, 8 |
|
jmp loc_46476B |
|
loc_464802: |
|
mov eax, level_cel_block |
|
and eax, 8000h |
|
jz loc_464834 |
|
mov esi, gpCelFrame |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 6 |
|
add esi, eax |
|
mov eax, level_cel_block |
|
and eax, 0F000h |
|
add eax, [esi] |
|
mov level_cel_block, eax |
|
loc_464834: |
|
mov ebx, pDungeonCels |
|
mov esi, ebx |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 2 |
|
add ebx, eax |
|
add esi, [ebx] |
|
mov eax, level_cel_block |
|
mov al, ah |
|
shr eax, 4 |
|
and eax, 7 |
|
jz loc_464FBC |
|
cmp ax, 1 |
|
jz loc_465002 |
|
cmp ax, 2 |
|
jz loc_465091 |
|
cmp ax, 3 |
|
jz loc_465117 |
|
cmp ax, 4 |
|
jz loc_46519D |
|
jmp loc_465232 |
|
loc_46488D: |
|
mov edx, 20h |
|
loc_464892: |
|
cmp edi, gpBufEnd |
|
jb loc_4652C1 |
|
push edx |
|
mov eax, gpDrawMask |
|
mov edx, [eax] |
|
mov ecx, 20h |
|
loc_4648AB: |
|
mov al, [esi] |
|
inc esi |
|
shl edx, 1 |
|
jnb loc_4648B5 |
|
xlat |
|
mov [edi], al |
|
loc_4648B5: |
|
inc edi |
|
dec ecx |
|
jnz loc_4648AB |
|
pop edx |
|
sub edi, 320h |
|
mov eax, gpDrawMask |
|
sub eax, 4 |
|
mov gpDrawMask, eax |
|
dec edx |
|
jnz loc_464892 |
|
jmp loc_4652C1 |
|
loc_4648D5: |
|
mov ecx, 20h |
|
loc_4648DA: |
|
push ecx |
|
mov eax, gpDrawMask |
|
mov eax, [eax] |
|
mov gdwCurrentMask, eax |
|
mov edx, 20h |
|
loc_4648EC: |
|
xor eax, eax |
|
mov al, [esi] |
|
inc esi |
|
test al, al |
|
js loc_464927 |
|
sub edx, eax |
|
cmp edi, gpBufEnd |
|
jb loc_4652C0 |
|
mov ecx, eax |
|
push edx |
|
mov edx, gdwCurrentMask |
|
loc_46490C: |
|
mov al, [esi] |
|
inc esi |
|
shl edx, 1 |
|
jnb loc_464916 |
|
xlat |
|
mov [edi], al |
|
loc_464916: |
|
inc edi |
|
dec ecx |
|
jnz loc_46490C |
|
mov gdwCurrentMask, edx |
|
pop edx |
|
test edx, edx |
|
jz loc_464944 |
|
jmp loc_4648EC |
|
loc_464927: |
|
neg al |
|
add edi, eax |
|
mov ecx, eax |
|
and ecx, 1Fh |
|
jz loc_464940 |
|
push eax |
|
mov eax, gdwCurrentMask |
|
shl eax, cl |
|
mov gdwCurrentMask, eax |
|
pop eax |
|
loc_464940: |
|
sub edx, eax |
|
jnz loc_4648EC |
|
loc_464944: |
|
pop ecx |
|
sub edi, 320h |
|
mov eax, gpDrawMask |
|
sub eax, 4 |
|
mov gpDrawMask, eax |
|
dec ecx |
|
jnz loc_4648DA |
|
jmp loc_4652C1 |
|
loc_464964: |
|
mov edx, 1Eh |
|
loc_464969: |
|
cmp edi, gpBufEnd |
|
jb loc_4652C1 |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_46499E |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
xlat |
|
ror ax, 8 |
|
xlat |
|
ror ax, 8 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_4649BB |
|
loc_46499E: |
|
mov eax, [esi] |
|
add esi, 4 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_46499E |
|
loc_4649BB: |
|
sub edi, 320h |
|
sub edx, 2 |
|
jge loc_464969 |
|
mov edx, 2 |
|
loc_4649CB: |
|
cmp edi, gpBufEnd |
|
jb loc_4652C1 |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_464A00 |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
xlat |
|
ror ax, 8 |
|
xlat |
|
ror ax, 8 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_464A1D |
|
loc_464A00: |
|
mov eax, [esi] |
|
add esi, 4 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_464A00 |
|
loc_464A1D: |
|
sub edi, 320h |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_4649CB |
|
jmp loc_4652C1 |
|
loc_464A30: |
|
push ebp |
|
mov edx, 1Eh |
|
loc_464A36: |
|
cmp edi, gpBufEnd |
|
jb loc_464AF8 |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov ebp, ecx |
|
shr ecx, 2 |
|
jz loc_464A6D |
|
loc_464A50: |
|
mov eax, [esi] |
|
add esi, 4 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_464A50 |
|
loc_464A6D: |
|
and ebp, 2 |
|
jz loc_464A88 |
|
mov ax, [esi] |
|
add esi, 4 |
|
xlat |
|
ror ax, 8 |
|
xlat |
|
ror ax, 8 |
|
mov [edi], ax |
|
add edi, 2 |
|
loc_464A88: |
|
sub edi, 320h |
|
add edi, edx |
|
sub edx, 2 |
|
jge loc_464A36 |
|
mov edx, 2 |
|
loc_464A9A: |
|
cmp edi, gpBufEnd |
|
jb loc_464AF8 |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov ebp, ecx |
|
shr ecx, 2 |
|
jz loc_464ACD |
|
loc_464AB0: |
|
mov eax, [esi] |
|
add esi, 4 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_464AB0 |
|
loc_464ACD: |
|
and ebp, 2 |
|
jz loc_464AE8 |
|
mov ax, [esi] |
|
add esi, 4 |
|
xlat |
|
ror ax, 8 |
|
xlat |
|
ror ax, 8 |
|
mov [edi], ax |
|
add edi, 2 |
|
loc_464AE8: |
|
sub edi, 320h |
|
add edi, edx |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_464A9A |
|
loc_464AF8: |
|
pop ebp |
|
jmp loc_4652C1 |
|
loc_464AFE: |
|
mov edx, 1Eh |
|
loc_464B03: |
|
cmp edi, gpBufEnd |
|
jb loc_4652C1 |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_464B38 |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
xlat |
|
ror ax, 8 |
|
xlat |
|
ror ax, 8 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_464B55 |
|
loc_464B38: |
|
mov eax, [esi] |
|
add esi, 4 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_464B38 |
|
loc_464B55: |
|
sub edi, 320h |
|
sub edx, 2 |
|
jge loc_464B03 |
|
mov eax, gpDrawMask |
|
sub eax, 40h |
|
mov gpDrawMask, eax |
|
mov edx, 10h |
|
loc_464B72: |
|
cmp edi, gpBufEnd |
|
jb loc_4652C1 |
|
push edx |
|
mov eax, gpDrawMask |
|
mov edx, [eax] |
|
mov ecx, 20h |
|
mov eax, esi |
|
and eax, 2 |
|
add esi, eax |
|
loc_464B92: |
|
mov al, [esi] |
|
inc esi |
|
shl edx, 1 |
|
jnb loc_464B9C |
|
xlat |
|
mov [edi], al |
|
loc_464B9C: |
|
inc edi |
|
dec ecx |
|
jnz loc_464B92 |
|
pop edx |
|
sub edi, 320h |
|
mov eax, gpDrawMask |
|
sub eax, 4 |
|
mov gpDrawMask, eax |
|
dec edx |
|
jnz loc_464B72 |
|
jmp loc_4652C1 |
|
loc_464BBC: |
|
push ebp |
|
mov edx, 1Eh |
|
loc_464BC2: |
|
cmp edi, gpBufEnd |
|
jb loc_464C74 |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov ebp, ecx |
|
shr ecx, 2 |
|
jz loc_464BF9 |
|
loc_464BDC: |
|
mov eax, [esi] |
|
add esi, 4 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_464BDC |
|
loc_464BF9: |
|
and ebp, 2 |
|
jz loc_464C14 |
|
mov ax, [esi] |
|
add esi, 4 |
|
xlat |
|
ror ax, 8 |
|
xlat |
|
ror ax, 8 |
|
mov [edi], ax |
|
add edi, 2 |
|
loc_464C14: |
|
sub edi, 320h |
|
add edi, edx |
|
sub edx, 2 |
|
jge loc_464BC2 |
|
mov eax, gpDrawMask |
|
sub eax, 40h |
|
mov gpDrawMask, eax |
|
mov edx, 10h |
|
loc_464C33: |
|
cmp edi, gpBufEnd |
|
jb loc_464C74 |
|
push edx |
|
mov eax, gpDrawMask |
|
mov edx, [eax] |
|
mov ecx, 20h |
|
loc_464C48: |
|
mov al, [esi] |
|
inc esi |
|
shl edx, 1 |
|
jnb loc_464C52 |
|
xlat |
|
mov [edi], al |
|
loc_464C52: |
|
inc edi |
|
dec ecx |
|
jnz loc_464C48 |
|
mov ebp, esi |
|
and ebp, 2 |
|
add esi, ebp |
|
pop edx |
|
sub edi, 320h |
|
mov eax, gpDrawMask |
|
sub eax, 4 |
|
mov gpDrawMask, eax |
|
dec edx |
|
jnz loc_464C33 |
|
loc_464C74: |
|
pop ebp |
|
jmp loc_4652C1 |
|
loc_464C7A: |
|
mov edx, 20h |
|
loc_464C7F: |
|
cmp edi, gpBufEnd |
|
jb loc_4652C1 |
|
push edx |
|
mov eax, gpDrawMask |
|
mov edx, [eax] |
|
mov ecx, 20h |
|
loc_464C98: |
|
mov al, [esi] |
|
inc esi |
|
shl edx, 1 |
|
jnb loc_464CA1 |
|
mov [edi], al |
|
loc_464CA1: |
|
inc edi |
|
dec ecx |
|
jnz loc_464C98 |
|
pop edx |
|
sub edi, 320h |
|
mov eax, gpDrawMask |
|
sub eax, 4 |
|
mov gpDrawMask, eax |
|
dec edx |
|
jnz loc_464C7F |
|
jmp loc_4652C1 |
|
loc_464CC1: |
|
mov ecx, 20h |
|
loc_464CC6: |
|
push ecx |
|
mov eax, gpDrawMask |
|
mov eax, [eax] |
|
mov gdwCurrentMask, eax |
|
mov edx, 20h |
|
loc_464CD8: |
|
xor eax, eax |
|
mov al, [esi] |
|
inc esi |
|
test al, al |
|
js loc_464D12 |
|
sub edx, eax |
|
cmp edi, gpBufEnd |
|
jb loc_4652C0 |
|
push edx |
|
mov edx, gdwCurrentMask |
|
mov ecx, eax |
|
loc_464CF8: |
|
mov al, [esi] |
|
inc esi |
|
shl edx, 1 |
|
jnb loc_464D01 |
|
mov [edi], al |
|
loc_464D01: |
|
inc edi |
|
dec ecx |
|
jnz loc_464CF8 |
|
mov gdwCurrentMask, edx |
|
pop edx |
|
test edx, edx |
|
jz loc_464D2F |
|
jmp loc_464CD8 |
|
loc_464D12: |
|
neg al |
|
add edi, eax |
|
mov ecx, eax |
|
and ecx, 1Fh |
|
jz loc_464D2B |
|
mov ebx, gdwCurrentMask |
|
shl ebx, cl |
|
mov gdwCurrentMask, ebx |
|
loc_464D2B: |
|
sub edx, eax |
|
jnz loc_464CD8 |
|
loc_464D2F: |
|
pop ecx |
|
sub edi, 320h |
|
mov eax, gpDrawMask |
|
sub eax, 4 |
|
mov gpDrawMask, eax |
|
dec ecx |
|
jnz loc_464CC6 |
|
jmp loc_4652C1 |
|
loc_464D4B: |
|
mov edx, 1Eh |
|
loc_464D50: |
|
cmp edi, gpBufEnd |
|
jb loc_4652C1 |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_464D7B |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_464D88 |
|
loc_464D7B: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
dec ecx |
|
lea edi, [edi+4] |
|
jnz loc_464D7B |
|
loc_464D88: |
|
sub edi, 320h |
|
sub edx, 2 |
|
jge loc_464D50 |
|
mov edx, 2 |
|
loc_464D98: |
|
cmp edi, gpBufEnd |
|
jb loc_4652C1 |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_464DC3 |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
mov [edi], ax |
|
test ecx, ecx |
|
lea edi, [edi+2] |
|
jz loc_464DD0 |
|
loc_464DC3: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_464DC3 |
|
loc_464DD0: |
|
sub edi, 320h |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_464D98 |
|
jmp loc_4652C1 |
|
loc_464DE3: |
|
push ebp |
|
mov edx, 1Eh |
|
loc_464DE9: |
|
cmp edi, gpBufEnd |
|
jb loc_464E77 |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov ebp, ecx |
|
shr ecx, 2 |
|
jz loc_464E10 |
|
loc_464E03: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_464E03 |
|
loc_464E10: |
|
and ebp, 2 |
|
jz loc_464E21 |
|
mov ax, [esi] |
|
add esi, 4 |
|
mov [edi], ax |
|
add edi, 2 |
|
loc_464E21: |
|
sub edi, 320h |
|
add edi, edx |
|
sub edx, 2 |
|
jge loc_464DE9 |
|
mov edx, 2 |
|
loc_464E33: |
|
cmp edi, gpBufEnd |
|
jb loc_464E77 |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov ebp, ecx |
|
shr ecx, 2 |
|
jz loc_464E56 |
|
loc_464E49: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_464E49 |
|
loc_464E56: |
|
and ebp, 2 |
|
jz loc_464E67 |
|
mov ax, [esi] |
|
add esi, 4 |
|
mov [edi], ax |
|
add edi, 2 |
|
loc_464E67: |
|
sub edi, 320h |
|
add edi, edx |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_464E33 |
|
loc_464E77: |
|
pop ebp |
|
jmp loc_4652C1 |
|
loc_464E7D: |
|
mov edx, 1Eh |
|
loc_464E82: |
|
cmp edi, gpBufEnd |
|
jb loc_4652C1 |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_464EAD |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_464EBA |
|
loc_464EAD: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_464EAD |
|
loc_464EBA: |
|
sub edi, 320h |
|
sub edx, 2 |
|
jge loc_464E82 |
|
mov eax, gpDrawMask |
|
sub eax, 40h |
|
mov gpDrawMask, eax |
|
mov edx, 10h |
|
loc_464ED7: |
|
cmp edi, gpBufEnd |
|
jb loc_4652C1 |
|
push edx |
|
mov eax, gpDrawMask |
|
mov edx, [eax] |
|
mov ecx, 20h |
|
loc_464EF0: |
|
mov al, [esi] |
|
inc esi |
|
shl edx, 1 |
|
jnb loc_464EF9 |
|
mov [edi], al |
|
loc_464EF9: |
|
inc edi |
|
dec ecx |
|
jnz loc_464EF0 |
|
pop edx |
|
sub edi, 320h |
|
mov eax, gpDrawMask |
|
sub eax, 4 |
|
mov gpDrawMask, eax |
|
dec edx |
|
jnz loc_464ED7 |
|
jmp loc_4652C1 |
|
loc_464F19: |
|
push ebp |
|
mov edx, 1Eh |
|
loc_464F1F: |
|
cmp edi, gpBufEnd |
|
jb loc_464FB6 |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov ebp, ecx |
|
shr ecx, 2 |
|
jz loc_464F46 |
|
loc_464F39: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_464F39 |
|
loc_464F46: |
|
and ebp, 2 |
|
jz loc_464F57 |
|
mov ax, [esi] |
|
add esi, 4 |
|
mov [edi], ax |
|
add edi, 2 |
|
loc_464F57: |
|
sub edi, 320h |
|
add edi, edx |
|
sub edx, 2 |
|
jge loc_464F1F |
|
mov eax, gpDrawMask |
|
sub eax, 40h |
|
mov gpDrawMask, eax |
|
mov edx, 10h |
|
loc_464F76: |
|
cmp edi, gpBufEnd |
|
jb loc_464FB6 |
|
push edx |
|
mov eax, gpDrawMask |
|
mov edx, [eax] |
|
mov ecx, 20h |
|
loc_464F8B: |
|
mov al, [esi] |
|
inc esi |
|
shl edx, 1 |
|
jnb loc_464F94 |
|
mov [edi], al |
|
loc_464F94: |
|
inc edi |
|
dec ecx |
|
jnz loc_464F8B |
|
mov ebp, esi |
|
and ebp, 2 |
|
add esi, ebp |
|
pop edx |
|
sub edi, 320h |
|
mov eax, gpDrawMask |
|
sub eax, 4 |
|
mov gpDrawMask, eax |
|
dec edx |
|
jnz loc_464F76 |
|
loc_464FB6: |
|
pop ebp |
|
jmp loc_4652C1 |
|
loc_464FBC: |
|
mov edx, 20h |
|
loc_464FC1: |
|
cmp edi, gpBufEnd |
|
jb loc_4652C1 |
|
push edx |
|
mov eax, gpDrawMask |
|
mov edx, [eax] |
|
xor eax, eax |
|
mov ecx, 20h |
|
loc_464FDC: |
|
shl edx, 1 |
|
jnb loc_464FE2 |
|
mov [edi], al |
|
loc_464FE2: |
|
inc edi |
|
dec ecx |
|
jnz loc_464FDC |
|
pop edx |
|
sub edi, 320h |
|
mov eax, gpDrawMask |
|
sub eax, 4 |
|
mov gpDrawMask, eax |
|
dec edx |
|
jnz loc_464FC1 |
|
jmp loc_4652C1 |
|
loc_465002: |
|
mov ecx, 20h |
|
loc_465007: |
|
push ecx |
|
mov eax, gpDrawMask |
|
mov eax, [eax] |
|
mov gdwCurrentMask, eax |
|
mov edx, 20h |
|
loc_465019: |
|
xor eax, eax |
|
mov al, [esi] |
|
inc esi |
|
test al, al |
|
js loc_465054 |
|
sub edx, eax |
|
cmp edi, gpBufEnd |
|
jb loc_4652C0 |
|
push edx |
|
mov edx, gdwCurrentMask |
|
mov ecx, eax |
|
add esi, ecx |
|
xor eax, eax |
|
loc_46503D: |
|
shl edx, 1 |
|
jnb loc_465043 |
|
mov [edi], al |
|
loc_465043: |
|
inc edi |
|
dec ecx |
|
jnz loc_46503D |
|
mov gdwCurrentMask, edx |
|
pop edx |
|
test edx, edx |
|
jz loc_465071 |
|
jmp loc_465019 |
|
loc_465054: |
|
neg al |
|
add edi, eax |
|
mov ecx, eax |
|
and ecx, 1Fh |
|
jz loc_46506D |
|
mov ebx, gdwCurrentMask |
|
shl ebx, cl |
|
mov gdwCurrentMask, ebx |
|
loc_46506D: |
|
sub edx, eax |
|
jnz loc_465019 |
|
loc_465071: |
|
pop ecx |
|
sub edi, 320h |
|
mov eax, gpDrawMask |
|
sub eax, 4 |
|
mov gpDrawMask, eax |
|
dec ecx |
|
jnz loc_465007 |
|
jmp loc_4652C1 |
|
loc_465091: |
|
mov edx, 1Eh |
|
xor eax, eax |
|
loc_465098: |
|
cmp edi, gpBufEnd |
|
jb loc_4652C1 |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_4650BC |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_4650C4 |
|
loc_4650BC: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4650BC |
|
loc_4650C4: |
|
sub edi, 320h |
|
test edx, edx |
|
jz loc_4650D3 |
|
sub edx, 2 |
|
jmp loc_465098 |
|
loc_4650D3: |
|
mov edx, 2 |
|
loc_4650D8: |
|
cmp edi, gpBufEnd |
|
jb loc_4652C1 |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_4650FC |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_465104 |
|
loc_4650FC: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4650FC |
|
loc_465104: |
|
sub edi, 320h |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_4650D8 |
|
jmp loc_4652C1 |
|
loc_465117: |
|
mov edx, 1Eh |
|
xor eax, eax |
|
loc_46511E: |
|
cmp edi, gpBufEnd |
|
jb loc_4652C1 |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_465140 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_465148 |
|
loc_465140: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_465140 |
|
loc_465148: |
|
sub edi, 320h |
|
test edx, edx |
|
jz loc_465159 |
|
add edi, edx |
|
sub edx, 2 |
|
jmp loc_46511E |
|
loc_465159: |
|
mov edx, 2 |
|
loc_46515E: |
|
cmp edi, gpBufEnd |
|
jb loc_4652C1 |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_465180 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_465188 |
|
loc_465180: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_465180 |
|
loc_465188: |
|
sub edi, 320h |
|
add edi, edx |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_46515E |
|
jmp loc_4652C1 |
|
loc_46519D: |
|
mov edx, 1Eh |
|
xor eax, eax |
|
loc_4651A4: |
|
cmp edi, gpBufEnd |
|
jb loc_4652C1 |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_4651C8 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_4651D0 |
|
loc_4651C8: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4651C8 |
|
loc_4651D0: |
|
sub edi, 320h |
|
test edx, edx |
|
jz loc_4651DF |
|
sub edx, 2 |
|
jmp loc_4651A4 |
|
loc_4651DF: |
|
mov eax, gpDrawMask |
|
sub eax, 40h |
|
mov gpDrawMask, eax |
|
mov edx, 10h |
|
loc_4651F1: |
|
cmp edi, gpBufEnd |
|
jb loc_4652C1 |
|
push edx |
|
mov eax, gpDrawMask |
|
mov edx, [eax] |
|
xor eax, eax |
|
mov ecx, 20h |
|
loc_46520C: |
|
shl edx, 1 |
|
jnb loc_465212 |
|
mov [edi], al |
|
loc_465212: |
|
inc edi |
|
dec ecx |
|
jnz loc_46520C |
|
pop edx |
|
sub edi, 320h |
|
mov eax, gpDrawMask |
|
sub eax, 4 |
|
mov gpDrawMask, eax |
|
dec edx |
|
jnz loc_4651F1 |
|
jmp loc_4652C1 |
|
loc_465232: |
|
mov edx, 1Eh |
|
xor eax, eax |
|
loc_465239: |
|
cmp edi, gpBufEnd |
|
jb $+82h |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_46525B |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_465263 |
|
loc_46525B: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_46525B |
|
loc_465263: |
|
sub edi, 320h |
|
test edx, edx |
|
jz loc_465274 |
|
add edi, edx |
|
sub edx, 2 |
|
jmp loc_465239 |
|
loc_465274: |
|
mov eax, gpDrawMask |
|
sub eax, 40h |
|
mov gpDrawMask, eax |
|
mov edx, 10h |
|
loc_465286: |
|
cmp edi, gpBufEnd |
|
jb loc_4652C1 |
|
push edx |
|
mov eax, gpDrawMask |
|
mov edx, [eax] |
|
xor eax, eax |
|
mov ecx, 20h |
|
loc_46529D: |
|
shl edx, 1 |
|
jnb loc_4652A3 |
|
mov [edi], al |
|
loc_4652A3: |
|
inc edi |
|
dec ecx |
|
jnz loc_46529D |
|
pop edx |
|
sub edi, 320h |
|
mov eax, gpDrawMask |
|
sub eax, 4 |
|
mov gpDrawMask, eax |
|
dec edx |
|
jnz loc_465286 |
|
jmp loc_4652C1 |
|
loc_4652C0: |
|
pop eax |
|
loc_4652C1: |
|
pop esi |
|
pop edi |
|
pop ebx |
|
retn |
|
} |
|
} |
|
|
|
__declspec(naked) void drawUpperScreen(BYTE *pBuff) |
|
{ |
|
__asm { |
|
push ebx |
|
push edx |
|
push edi |
|
push esi |
|
mov edx, cel_transparency_active |
|
test edx, edx |
|
jz loc_465372 |
|
mov dl, arch_draw_type |
|
cmp dl, 0 |
|
jnz loc_4652EC |
|
call drawTopArchesUpperScreen |
|
jmp loc_465F33 |
|
loc_4652EC: |
|
cmp dl, 1 |
|
jnz loc_46532F |
|
mov ebx, level_piece_id |
|
mov al, block_lvid[ebx] |
|
cmp al, 1 |
|
jz loc_465307 |
|
cmp al, 3 |
|
jz loc_465307 |
|
jmp loc_46532F |
|
loc_465307: |
|
mov edx, offset LeftMask |
|
add edx, 7Ch |
|
call drawBottomArchesUpperScreen |
|
jmp loc_465F33 |
|
cmp al, 4 |
|
jnz loc_46532F |
|
mov edx, offset RightMask |
|
add edx, 7Ch |
|
call drawBottomArchesUpperScreen |
|
jmp loc_465F33 |
|
loc_46532F: |
|
cmp dl, 2 |
|
jnz loc_465372 |
|
mov ebx, level_piece_id |
|
mov al, block_lvid[ebx] |
|
cmp al, 2 |
|
jz loc_46534A |
|
cmp al, 3 |
|
jz loc_46534A |
|
jmp loc_465372 |
|
loc_46534A: |
|
mov edx, offset RightMask |
|
add edx, 7Ch |
|
call drawBottomArchesUpperScreen |
|
jmp loc_465F33 |
|
cmp al, 4 |
|
jnz loc_465372 |
|
mov edx, offset LeftMask |
|
add edx, 7Ch |
|
call drawBottomArchesUpperScreen |
|
jmp loc_465F33 |
|
loc_465372: |
|
mov edi, offset SpeedFrameTbl |
|
mov gpCelFrame, edi |
|
mov edi, ecx |
|
mov eax, light_table_index |
|
test al, al |
|
jz loc_465474 |
|
cmp al, lightmax |
|
jz loc_4654D4 |
|
mov eax, level_cel_block |
|
and eax, 8000h |
|
jnz loc_46540A |
|
mov ebx, pDungeonCels |
|
mov esi, ebx |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 2 |
|
add ebx, eax |
|
add esi, [ebx] |
|
mov ebx, light_table_index |
|
shl ebx, 8 |
|
add ebx, pLightTbl |
|
mov eax, level_cel_block |
|
shr eax, 0Ch |
|
and eax, 0Fh |
|
jz loc_46555D |
|
cmp ax, 1 |
|
jz loc_4655B5 |
|
cmp ax, 2 |
|
jz loc_465663 |
|
cmp ax, 3 |
|
jz loc_465765 |
|
cmp ax, 4 |
|
jz loc_465867 |
|
jmp loc_465939 |
|
loc_46540A: |
|
mov esi, gpCelFrame |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 4 |
|
add eax, light_table_index |
|
shl eax, 2 |
|
add esi, eax |
|
mov eax, [esi] |
|
mov esi, pSpeedCels |
|
add esi, eax |
|
mov eax, level_cel_block |
|
shr eax, 0Ch |
|
and eax, 0Fh |
|
loc_46543D: |
|
cmp ax, 8 |
|
jz loc_465A0B |
|
cmp ax, 9 |
|
jz loc_465A3C |
|
cmp ax, 0Ah |
|
jz loc_465AA8 |
|
cmp ax, 0Bh |
|
jz loc_465B40 |
|
cmp ax, 0Ch |
|
jz loc_465BDA |
|
jmp loc_465C53 |
|
loc_465474: |
|
mov eax, level_cel_block |
|
and eax, 8000h |
|
jz loc_4654A6 |
|
mov esi, gpCelFrame |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 6 |
|
add esi, eax |
|
mov eax, level_cel_block |
|
and eax, 0F000h |
|
add eax, [esi] |
|
mov level_cel_block, eax |
|
loc_4654A6: |
|
mov ebx, pDungeonCels |
|
mov esi, ebx |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 2 |
|
add ebx, eax |
|
add esi, [ebx] |
|
mov eax, level_cel_block |
|
mov al, ah |
|
shr eax, 4 |
|
and eax, 7 |
|
add eax, 8 |
|
jmp loc_46543D |
|
loc_4654D4: |
|
mov eax, level_cel_block |
|
and eax, 8000h |
|
jz loc_465506 |
|
mov esi, gpCelFrame |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 6 |
|
add esi, eax |
|
mov eax, level_cel_block |
|
and eax, 0F000h |
|
add eax, [esi] |
|
mov level_cel_block, eax |
|
loc_465506: |
|
mov ebx, pDungeonCels |
|
mov esi, ebx |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 2 |
|
add ebx, eax |
|
add esi, [ebx] |
|
mov eax, level_cel_block |
|
shr eax, 0Ch |
|
and eax, 7 |
|
jz loc_465CC8 |
|
cmp ax, 1 |
|
jz loc_465CF6 |
|
cmp ax, 2 |
|
jz loc_465D58 |
|
cmp ax, 3 |
|
jz loc_465DDE |
|
cmp ax, 4 |
|
jz loc_465E64 |
|
jmp loc_465ECF |
|
loc_46555D: |
|
mov edx, 20h |
|
loc_465562: |
|
cmp edi, gpBufEnd |
|
jb loc_465F33 |
|
mov ecx, 20h |
|
push edx |
|
loc_465574: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
ror eax, 10h |
|
mov [edi], ch |
|
mov ch, [ebx+edx] |
|
mov dl, al |
|
mov [edi+1], ch |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
mov [edi+2], ch |
|
mov ch, [ebx+edx] |
|
mov [edi+3], ch |
|
add edi, 4 |
|
sub cl, 4 |
|
cmp cl, 4 |
|
jge loc_465574 |
|
pop edx |
|
sub edi, 320h |
|
dec edx |
|
jnz loc_465562 |
|
jmp loc_465F33 |
|
loc_4655B5: |
|
push ebp |
|
mov ebp, 20h |
|
loc_4655BB: |
|
mov edx, 20h |
|
loc_4655C0: |
|
xor eax, eax |
|
mov al, [esi] |
|
inc esi |
|
test al, al |
|
js loc_465644 |
|
sub edx, eax |
|
cmp edi, gpBufEnd |
|
jb loc_46565D |
|
mov ecx, eax |
|
push edx |
|
cmp cl, 4 |
|
jl loc_465611 |
|
loc_4655DF: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
ror eax, 10h |
|
mov [edi], ch |
|
mov ch, [ebx+edx] |
|
mov dl, al |
|
mov [edi+1], ch |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
mov [edi+2], ch |
|
mov ch, [ebx+edx] |
|
mov [edi+3], ch |
|
add edi, 4 |
|
sub cl, 4 |
|
cmp cl, 4 |
|
jge loc_4655DF |
|
loc_465611: |
|
cmp cl, 2 |
|
jl loc_46562C |
|
mov dl, [esi] |
|
mov ch, [ebx+edx] |
|
mov [edi], ch |
|
mov dl, [esi+1] |
|
mov ch, [ebx+edx] |
|
mov [edi+1], ch |
|
add esi, 2 |
|
add edi, 2 |
|
loc_46562C: |
|
and cl, 1 |
|
jz loc_46563A |
|
mov dl, [esi] |
|
inc esi |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
inc edi |
|
loc_46563A: |
|
pop edx |
|
test edx, edx |
|
jz loc_465650 |
|
jmp loc_4655C0 |
|
loc_465644: |
|
neg al |
|
add edi, eax |
|
sub edx, eax |
|
jnz loc_4655C0 |
|
loc_465650: |
|
sub edi, 320h |
|
dec ebp |
|
jnz loc_4655BB |
|
loc_46565D: |
|
pop ebp |
|
jmp loc_465F33 |
|
loc_465663: |
|
push ebp |
|
mov ebp, 1Eh |
|
loc_465669: |
|
cmp edi, gpBufEnd |
|
jb loc_46575F |
|
add edi, ebp |
|
mov ecx, 20h |
|
sub ecx, ebp |
|
mov edx, ecx |
|
and edx, 2 |
|
add esi, edx |
|
cmp cl, 4 |
|
jl loc_4656BC |
|
loc_46568A: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
ror eax, 10h |
|
mov [edi], ch |
|
mov ch, [ebx+edx] |
|
mov dl, al |
|
mov [edi+1], ch |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
mov [edi+2], ch |
|
mov ch, [ebx+edx] |
|
mov [edi+3], ch |
|
add edi, 4 |
|
sub cl, 4 |
|
cmp cl, 4 |
|
jge loc_46568A |
|
loc_4656BC: |
|
cmp cl, 2 |
|
jl loc_4656D7 |
|
mov dl, [esi] |
|
mov ch, [ebx+edx] |
|
mov [edi], ch |
|
mov dl, [esi+1] |
|
mov ch, [ebx+edx] |
|
mov [edi+1], ch |
|
add esi, 2 |
|
add edi, 2 |
|
loc_4656D7: |
|
sub edi, 320h |
|
sub ebp, 2 |
|
jge loc_465669 |
|
mov ebp, 2 |
|
loc_4656E7: |
|
cmp edi, gpBufEnd |
|
jb loc_46575F |
|
add edi, ebp |
|
mov ecx, 20h |
|
sub ecx, ebp |
|
mov edx, ecx |
|
and edx, 2 |
|
add esi, edx |
|
cmp cl, 4 |
|
jl loc_465736 |
|
loc_465704: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
ror eax, 10h |
|
mov [edi], ch |
|
mov ch, [ebx+edx] |
|
mov dl, al |
|
mov [edi+1], ch |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
mov [edi+2], ch |
|
mov ch, [ebx+edx] |
|
mov [edi+3], ch |
|
add edi, 4 |
|
sub cl, 4 |
|
cmp cl, 4 |
|
jge loc_465704 |
|
loc_465736: |
|
cmp cl, 2 |
|
jl loc_465751 |
|
mov dl, [esi] |
|
mov ch, [ebx+edx] |
|
mov [edi], ch |
|
mov dl, [esi+1] |
|
mov ch, [ebx+edx] |
|
mov [edi+1], ch |
|
add esi, 2 |
|
add edi, 2 |
|
loc_465751: |
|
sub edi, 320h |
|
add ebp, 2 |
|
cmp ebp, 20h |
|
jnz loc_4656E7 |
|
loc_46575F: |
|
pop ebp |
|
jmp loc_465F33 |
|
loc_465765: |
|
push ebp |
|
mov ebp, 1Eh |
|
loc_46576B: |
|
cmp edi, gpBufEnd |
|
jb loc_465861 |
|
mov ecx, 20h |
|
sub ecx, ebp |
|
cmp cl, 4 |
|
jl loc_4657B5 |
|
loc_465783: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
ror eax, 10h |
|
mov [edi], ch |
|
mov ch, [ebx+edx] |
|
mov dl, al |
|
mov [edi+1], ch |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
mov [edi+2], ch |
|
mov ch, [ebx+edx] |
|
mov [edi+3], ch |
|
add edi, 4 |
|
sub cl, 4 |
|
cmp cl, 4 |
|
jge loc_465783 |
|
loc_4657B5: |
|
cmp cl, 2 |
|
jl loc_4657D0 |
|
mov dl, [esi] |
|
mov ch, [ebx+edx] |
|
mov [edi], ch |
|
mov dl, [esi+1] |
|
mov ch, [ebx+edx] |
|
mov [edi+1], ch |
|
add esi, 2 |
|
add edi, 2 |
|
loc_4657D0: |
|
mov edx, esi |
|
and edx, 2 |
|
add esi, edx |
|
sub edi, 320h |
|
add edi, ebp |
|
sub ebp, 2 |
|
jge loc_46576B |
|
mov ebp, 2 |
|
loc_4657E9: |
|
cmp edi, gpBufEnd |
|
jb loc_465861 |
|
mov ecx, 20h |
|
sub ecx, ebp |
|
cmp cl, 4 |
|
jl loc_46582F |
|
loc_4657FD: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
ror eax, 10h |
|
mov [edi], ch |
|
mov ch, [ebx+edx] |
|
mov dl, al |
|
mov [edi+1], ch |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
mov [edi+2], ch |
|
mov ch, [ebx+edx] |
|
mov [edi+3], ch |
|
add edi, 4 |
|
sub cl, 4 |
|
cmp cl, 4 |
|
jge loc_4657FD |
|
loc_46582F: |
|
cmp cl, 2 |
|
jl loc_46584A |
|
mov dl, [esi] |
|
mov ch, [ebx+edx] |
|
mov [edi], ch |
|
mov dl, [esi+1] |
|
mov ch, [ebx+edx] |
|
mov [edi+1], ch |
|
add esi, 2 |
|
add edi, 2 |
|
loc_46584A: |
|
mov edx, esi |
|
and edx, 2 |
|
add esi, edx |
|
sub edi, 320h |
|
add edi, ebp |
|
add ebp, 2 |
|
cmp ebp, 20h |
|
jnz loc_4657E9 |
|
loc_465861: |
|
pop ebp |
|
jmp loc_465F33 |
|
loc_465867: |
|
push ebp |
|
mov ebp, 1Eh |
|
loc_46586D: |
|
cmp edi, gpBufEnd |
|
jb loc_465933 |
|
add edi, ebp |
|
mov ecx, 20h |
|
sub ecx, ebp |
|
mov edx, ecx |
|
and edx, 2 |
|
add esi, edx |
|
cmp cl, 4 |
|
jl loc_4658C0 |
|
loc_46588E: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
ror eax, 10h |
|
mov [edi], ch |
|
mov ch, [ebx+edx] |
|
mov dl, al |
|
mov [edi+1], ch |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
mov [edi+2], ch |
|
mov ch, [ebx+edx] |
|
mov [edi+3], ch |
|
add edi, 4 |
|
sub cl, 4 |
|
cmp cl, 4 |
|
jge loc_46588E |
|
loc_4658C0: |
|
cmp cl, 2 |
|
jl loc_4658DB |
|
mov dl, [esi] |
|
mov ch, [ebx+edx] |
|
mov [edi], ch |
|
mov dl, [esi+1] |
|
mov ch, [ebx+edx] |
|
mov [edi+1], ch |
|
add esi, 2 |
|
add edi, 2 |
|
loc_4658DB: |
|
sub edi, 320h |
|
sub ebp, 2 |
|
jge loc_46586D |
|
mov ebp, 10h |
|
loc_4658EB: |
|
cmp edi, gpBufEnd |
|
jb loc_465933 |
|
mov ecx, 20h |
|
loc_4658F8: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
ror eax, 10h |
|
mov [edi], ch |
|
mov ch, [ebx+edx] |
|
mov dl, al |
|
mov [edi+1], ch |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
mov [edi+2], ch |
|
mov ch, [ebx+edx] |
|
mov [edi+3], ch |
|
add edi, 4 |
|
sub cl, 4 |
|
cmp cl, 4 |
|
jge loc_4658F8 |
|
sub edi, 320h |
|
dec ebp |
|
jnz loc_4658EB |
|
loc_465933: |
|
pop ebp |
|
jmp loc_465F33 |
|
loc_465939: |
|
push ebp |
|
mov ebp, 1Eh |
|
loc_46593F: |
|
cmp edi, gpBufEnd |
|
jb loc_465A05 |
|
mov ecx, 20h |
|
sub ecx, ebp |
|
cmp cl, 4 |
|
jl loc_465989 |
|
loc_465957: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
ror eax, 10h |
|
mov [edi], ch |
|
mov ch, [ebx+edx] |
|
mov dl, al |
|
mov [edi+1], ch |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
mov [edi+2], ch |
|
mov ch, [ebx+edx] |
|
mov [edi+3], ch |
|
add edi, 4 |
|
sub cl, 4 |
|
cmp cl, 4 |
|
jge loc_465957 |
|
loc_465989: |
|
cmp cl, 2 |
|
jl loc_4659A4 |
|
mov dl, [esi] |
|
mov ch, [ebx+edx] |
|
mov [edi], ch |
|
mov dl, [esi+1] |
|
mov ch, [ebx+edx] |
|
mov [edi+1], ch |
|
add esi, 2 |
|
add edi, 2 |
|
loc_4659A4: |
|
mov edx, esi |
|
and edx, 2 |
|
add esi, edx |
|
sub edi, 320h |
|
add edi, ebp |
|
sub ebp, 2 |
|
jge loc_46593F |
|
mov ebp, 10h |
|
loc_4659BD: |
|
cmp edi, gpBufEnd |
|
jb loc_465A05 |
|
mov ecx, 20h |
|
loc_4659CA: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
ror eax, 10h |
|
mov [edi], ch |
|
mov ch, [ebx+edx] |
|
mov dl, al |
|
mov [edi+1], ch |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
mov [edi+2], ch |
|
mov ch, [ebx+edx] |
|
mov [edi+3], ch |
|
add edi, 4 |
|
sub cl, 4 |
|
cmp cl, 4 |
|
jge loc_4659CA |
|
sub edi, 320h |
|
dec ebp |
|
jnz loc_4659BD |
|
loc_465A05: |
|
pop ebp |
|
jmp loc_465F33 |
|
loc_465A0B: |
|
mov edx, 20h |
|
loc_465A10: |
|
cmp edi, gpBufEnd |
|
jb loc_465F33 |
|
mov ecx, 8 |
|
loc_465A21: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_465A21 |
|
sub edi, 320h |
|
dec edx |
|
jnz loc_465A10 |
|
jmp loc_465F33 |
|
loc_465A3C: |
|
push ebp |
|
mov ebp, 20h |
|
loc_465A42: |
|
mov edx, 20h |
|
loc_465A47: |
|
xor eax, eax |
|
mov al, [esi] |
|
inc esi |
|
test al, al |
|
js loc_465A91 |
|
sub edx, eax |
|
cmp edi, gpBufEnd |
|
jb loc_465AA2 |
|
mov ecx, eax |
|
shr ecx, 1 |
|
jnb loc_465A6A |
|
mov al, [esi] |
|
inc esi |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_465A8B |
|
loc_465A6A: |
|
shr ecx, 1 |
|
jnb loc_465A7E |
|
mov ax, [esi] |
|
add esi, 2 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_465A8B |
|
loc_465A7E: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_465A7E |
|
loc_465A8B: |
|
test edx, edx |
|
jz loc_465A99 |
|
jmp loc_465A47 |
|
loc_465A91: |
|
neg al |
|
add edi, eax |
|
sub edx, eax |
|
jnz loc_465A47 |
|
loc_465A99: |
|
sub edi, 320h |
|
dec ebp |
|
jnz loc_465A42 |
|
loc_465AA2: |
|
pop ebp |
|
jmp loc_465F33 |
|
loc_465AA8: |
|
mov edx, 1Eh |
|
loc_465AAD: |
|
cmp edi, gpBufEnd |
|
jb loc_465F33 |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_465AD8 |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_465AE5 |
|
loc_465AD8: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_465AD8 |
|
loc_465AE5: |
|
sub edi, 320h |
|
sub edx, 2 |
|
jge loc_465AAD |
|
mov edx, 2 |
|
loc_465AF5: |
|
cmp edi, gpBufEnd |
|
jb loc_465F33 |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_465B20 |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_465B2D |
|
loc_465B20: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_465B20 |
|
loc_465B2D: |
|
sub edi, 320h |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_465AF5 |
|
jmp loc_465F33 |
|
loc_465B40: |
|
push ebp |
|
mov edx, 1Eh |
|
loc_465B46: |
|
cmp edi, gpBufEnd |
|
jb loc_465BD4 |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov ebp, ecx |
|
shr ecx, 2 |
|
jz loc_465B6D |
|
loc_465B60: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_465B60 |
|
loc_465B6D: |
|
and ebp, 2 |
|
jz loc_465B7E |
|
mov ax, [esi] |
|
add esi, 4 |
|
mov [edi], ax |
|
add edi, 2 |
|
loc_465B7E: |
|
sub edi, 320h |
|
add edi, edx |
|
sub edx, 2 |
|
jge loc_465B46 |
|
mov edx, 2 |
|
loc_465B90: |
|
cmp edi, gpBufEnd |
|
jb loc_465BD4 |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov ebp, ecx |
|
shr ecx, 2 |
|
jz loc_465BB3 |
|
loc_465BA6: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_465BA6 |
|
loc_465BB3: |
|
and ebp, 2 |
|
jz loc_465BC4 |
|
mov ax, [esi] |
|
add esi, 4 |
|
mov [edi], ax |
|
add edi, 2 |
|
loc_465BC4: |
|
sub edi, 320h |
|
add edi, edx |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_465B90 |
|
loc_465BD4: |
|
pop ebp |
|
jmp loc_465F33 |
|
loc_465BDA: |
|
mov edx, 1Eh |
|
loc_465BDF: |
|
cmp edi, gpBufEnd |
|
jb loc_465F33 |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_465C0A |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_465C17 |
|
loc_465C0A: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_465C0A |
|
loc_465C17: |
|
sub edi, 320h |
|
sub edx, 2 |
|
jge loc_465BDF |
|
mov edx, 10h |
|
loc_465C27: |
|
cmp edi, gpBufEnd |
|
jb loc_465F33 |
|
mov ecx, 8 |
|
loc_465C38: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_465C38 |
|
sub edi, 320h |
|
dec edx |
|
jnz loc_465C27 |
|
jmp loc_465F33 |
|
loc_465C53: |
|
push ebp |
|
mov edx, 1Eh |
|
loc_465C59: |
|
cmp edi, gpBufEnd |
|
jb loc_465CC2 |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov ebp, ecx |
|
shr ecx, 2 |
|
jz loc_465C7C |
|
loc_465C6F: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_465C6F |
|
loc_465C7C: |
|
and ebp, 2 |
|
jz loc_465C8D |
|
mov ax, [esi] |
|
add esi, 4 |
|
mov [edi], ax |
|
add edi, 2 |
|
loc_465C8D: |
|
sub edi, 320h |
|
add edi, edx |
|
sub edx, 2 |
|
jge loc_465C59 |
|
mov edx, 10h |
|
loc_465C9F: |
|
cmp edi, gpBufEnd |
|
jb loc_465CC2 |
|
mov ecx, 8 |
|
loc_465CAC: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_465CAC |
|
sub edi, 320h |
|
dec edx |
|
jnz loc_465C9F |
|
loc_465CC2: |
|
pop ebp |
|
jmp loc_465F33 |
|
loc_465CC8: |
|
mov edx, 20h |
|
xor eax, eax |
|
loc_465CCF: |
|
cmp edi, gpBufEnd |
|
jb loc_465F33 |
|
mov ecx, 8 |
|
loc_465CE0: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_465CE0 |
|
sub edi, 320h |
|
dec edx |
|
jnz loc_465CCF |
|
jmp loc_465F33 |
|
loc_465CF6: |
|
push ebp |
|
mov ebp, 20h |
|
loc_465CFC: |
|
mov edx, 20h |
|
loc_465D01: |
|
xor eax, eax |
|
mov al, [esi] |
|
inc esi |
|
test al, al |
|
js loc_465D41 |
|
sub edx, eax |
|
cmp edi, gpBufEnd |
|
jb loc_465D52 |
|
mov ecx, eax |
|
add esi, ecx |
|
xor eax, eax |
|
shr ecx, 1 |
|
jnb loc_465D25 |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_465D3B |
|
loc_465D25: |
|
shr ecx, 1 |
|
jnb loc_465D33 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_465D3B |
|
loc_465D33: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_465D33 |
|
loc_465D3B: |
|
test edx, edx |
|
jz loc_465D49 |
|
jmp loc_465D01 |
|
loc_465D41: |
|
neg al |
|
add edi, eax |
|
sub edx, eax |
|
jnz loc_465D01 |
|
loc_465D49: |
|
sub edi, 320h |
|
dec ebp |
|
jnz loc_465CFC |
|
loc_465D52: |
|
pop ebp |
|
jmp loc_465F33 |
|
loc_465D58: |
|
mov edx, 1Eh |
|
xor eax, eax |
|
loc_465D5F: |
|
cmp edi, gpBufEnd |
|
jb loc_465F33 |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_465D83 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_465D8B |
|
loc_465D83: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_465D83 |
|
loc_465D8B: |
|
sub edi, 320h |
|
test edx, edx |
|
jz loc_465D9A |
|
sub edx, 2 |
|
jmp loc_465D5F |
|
loc_465D9A: |
|
mov edx, 2 |
|
loc_465D9F: |
|
cmp edi, gpBufEnd |
|
jb loc_465F33 |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_465DC3 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_465DCB |
|
loc_465DC3: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_465DC3 |
|
loc_465DCB: |
|
sub edi, 320h |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_465D9F |
|
jmp loc_465F33 |
|
loc_465DDE: |
|
mov edx, 1Eh |
|
xor eax, eax |
|
loc_465DE5: |
|
cmp edi, gpBufEnd |
|
jb loc_465F33 |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_465E07 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_465E0F |
|
loc_465E07: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_465E07 |
|
loc_465E0F: |
|
sub edi, 320h |
|
test edx, edx |
|
jz loc_465E20 |
|
add edi, edx |
|
sub edx, 2 |
|
jmp loc_465DE5 |
|
loc_465E20: |
|
mov edx, 2 |
|
loc_465E25: |
|
cmp edi, gpBufEnd |
|
jb loc_465F33 |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_465E47 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_465E4F |
|
loc_465E47: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_465E47 |
|
loc_465E4F: |
|
sub edi, 320h |
|
add edi, edx |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_465E25 |
|
jmp loc_465F33 |
|
loc_465E64: |
|
mov edx, 1Eh |
|
xor eax, eax |
|
loc_465E6B: |
|
cmp edi, gpBufEnd |
|
jb loc_465F33 |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_465E8F |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_465E97 |
|
loc_465E8F: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_465E8F |
|
loc_465E97: |
|
sub edi, 320h |
|
test edx, edx |
|
jz loc_465EA6 |
|
sub edx, 2 |
|
jmp loc_465E6B |
|
loc_465EA6: |
|
mov edx, 10h |
|
loc_465EAB: |
|
cmp edi, gpBufEnd |
|
jb $+82h |
|
mov ecx, 8 |
|
loc_465EBC: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_465EBC |
|
sub edi, 320h |
|
dec edx |
|
jnz loc_465EAB |
|
jmp loc_465F33 |
|
loc_465ECF: |
|
mov edx, 1Eh |
|
xor eax, eax |
|
loc_465ED6: |
|
cmp edi, gpBufEnd |
|
jb loc_465F33 |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_465EF4 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_465EFC |
|
loc_465EF4: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_465EF4 |
|
loc_465EFC: |
|
sub edi, 320h |
|
test edx, edx |
|
jz loc_465F0D |
|
add edi, edx |
|
sub edx, 2 |
|
jmp loc_465ED6 |
|
loc_465F0D: |
|
mov edx, 10h |
|
loc_465F12: |
|
cmp edi, gpBufEnd |
|
jb loc_465F33 |
|
mov ecx, 8 |
|
loc_465F1F: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_465F1F |
|
sub edi, 320h |
|
dec edx |
|
jnz loc_465F12 |
|
jmp loc_465F33 |
|
pop eax |
|
loc_465F33: |
|
pop esi |
|
pop edi |
|
pop edx |
|
pop ebx |
|
retn |
|
} |
|
} |
|
|
|
__declspec(naked) void drawTopArchesLowerScreen(BYTE *pBuff) |
|
{ |
|
__asm { |
|
push ebx |
|
push edx |
|
push edi |
|
push esi |
|
mov edi, offset SpeedFrameTbl |
|
mov gpCelFrame, edi |
|
mov edi, ecx |
|
mov eax, light_table_index |
|
test al, al |
|
jz loc_466042 |
|
cmp al, lightmax |
|
jz loc_4660A2 |
|
mov eax, level_cel_block |
|
and eax, 8000h |
|
jnz loc_465FD6 |
|
mov ebx, pDungeonCels |
|
mov esi, ebx |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 2 |
|
add ebx, eax |
|
add esi, [ebx] |
|
mov ebx, light_table_index |
|
shl ebx, 8 |
|
add ebx, pLightTbl |
|
mov eax, level_cel_block |
|
mov al, ah |
|
shr eax, 4 |
|
and eax, 0Fh |
|
jz loc_46612D |
|
cmp ax, 1 |
|
jz loc_4661AD |
|
cmp ax, 2 |
|
jz loc_466310 |
|
cmp ax, 3 |
|
jz loc_466611 |
|
cmp ax, 4 |
|
jz loc_466912 |
|
jmp loc_466B11 |
|
loc_465FD6: |
|
mov esi, gpCelFrame |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 4 |
|
add eax, light_table_index |
|
shl eax, 2 |
|
add esi, eax |
|
mov eax, [esi] |
|
mov esi, pSpeedCels |
|
add esi, eax |
|
mov eax, level_cel_block |
|
mov al, ah |
|
shr eax, 4 |
|
and eax, 0Fh |
|
loc_46600B: |
|
cmp ax, 8 |
|
jz loc_466D10 |
|
cmp ax, 9 |
|
jz loc_466D7F |
|
cmp ax, 0Ah |
|
jz loc_466E62 |
|
cmp ax, 0Bh |
|
jz loc_46701C |
|
cmp ax, 0Ch |
|
jz loc_4671E1 |
|
jmp loc_46732D |
|
loc_466042: |
|
mov eax, level_cel_block |
|
and eax, 8000h |
|
jz loc_466074 |
|
mov esi, gpCelFrame |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 6 |
|
add esi, eax |
|
mov eax, level_cel_block |
|
and eax, 0F000h |
|
add eax, [esi] |
|
mov level_cel_block, eax |
|
loc_466074: |
|
mov ebx, pDungeonCels |
|
mov esi, ebx |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 2 |
|
add ebx, eax |
|
add esi, [ebx] |
|
mov eax, level_cel_block |
|
mov al, ah |
|
shr eax, 4 |
|
and eax, 7 |
|
add eax, 8 |
|
jmp loc_46600B |
|
loc_4660A2: |
|
mov eax, level_cel_block |
|
and eax, 8000h |
|
jz loc_4660D4 |
|
mov esi, gpCelFrame |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 6 |
|
add esi, eax |
|
mov eax, level_cel_block |
|
and eax, 0F000h |
|
add eax, [esi] |
|
mov level_cel_block, eax |
|
loc_4660D4: |
|
mov ebx, pDungeonCels |
|
mov esi, ebx |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 2 |
|
add ebx, eax |
|
add esi, [ebx] |
|
mov eax, level_cel_block |
|
mov al, ah |
|
shr eax, 4 |
|
and eax, 7 |
|
jz loc_46747D |
|
cmp ax, 1 |
|
jz loc_4674D9 |
|
cmp ax, 2 |
|
jz loc_467599 |
|
cmp ax, 3 |
|
jz loc_467692 |
|
cmp ax, 4 |
|
jz loc_46778F |
|
jmp loc_46786B |
|
loc_46612D: |
|
push ebp |
|
mov ebp, 10h |
|
loc_466133: |
|
cmp edi, gpBufEnd |
|
jb loc_466143 |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_466166 |
|
loc_466143: |
|
mov ecx, 8 |
|
loc_466148: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_466148 |
|
loc_466166: |
|
sub edi, 320h |
|
cmp edi, gpBufEnd |
|
jb loc_46617C |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_46619E |
|
loc_46617C: |
|
mov ecx, 8 |
|
loc_466181: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_466181 |
|
loc_46619E: |
|
sub edi, 320h |
|
dec ebp |
|
jnz loc_466133 |
|
pop ebp |
|
jmp loc_467944 |
|
loc_4661AD: |
|
push ebp |
|
mov eax, edi |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
mov ecx, 20h |
|
loc_4661BD: |
|
push ecx |
|
mov ebp, 20h |
|
loc_4661C3: |
|
xor eax, eax |
|
mov al, [esi] |
|
inc esi |
|
test al, al |
|
js loc_4662E2 |
|
sub ebp, eax |
|
cmp edi, gpBufEnd |
|
jb loc_4661E3 |
|
add esi, eax |
|
add edi, eax |
|
jmp loc_4662D9 |
|
loc_4661E3: |
|
mov ecx, eax |
|
mov eax, edi |
|
and eax, 1 |
|
cmp eax, WorldBoolFlag |
|
jnz loc_466263 |
|
shr ecx, 1 |
|
jb loc_46622D |
|
shr ecx, 1 |
|
jnb loc_466209 |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_466209: |
|
test cl, cl |
|
jz loc_46622B |
|
loc_46620D: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_46620D |
|
loc_46622B: |
|
jmp loc_466261 |
|
loc_46622D: |
|
inc esi |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_466240 |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_466240: |
|
test cl, cl |
|
jz loc_466261 |
|
loc_466244: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_466244 |
|
loc_466261: |
|
jmp loc_4662D9 |
|
loc_466263: |
|
shr ecx, 1 |
|
jb loc_46629B |
|
shr ecx, 1 |
|
jnb loc_466278 |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_466278: |
|
test cl, cl |
|
jz loc_466299 |
|
loc_46627C: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_46627C |
|
loc_466299: |
|
jmp loc_4662D9 |
|
loc_46629B: |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
inc esi |
|
mov [edi], dl |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_4662B7 |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_4662B7: |
|
test cl, cl |
|
jz loc_4662D9 |
|
loc_4662BB: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_4662BB |
|
loc_4662D9: |
|
test ebp, ebp |
|
jz loc_4662EE |
|
jmp loc_4661C3 |
|
loc_4662E2: |
|
neg al |
|
add edi, eax |
|
sub ebp, eax |
|
jnz loc_4661C3 |
|
loc_4662EE: |
|
pop ecx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
sub edi, 320h |
|
dec ecx |
|
jnz loc_4661BD |
|
pop ebp |
|
jmp loc_467944 |
|
loc_466310: |
|
push ebp |
|
xor eax, eax |
|
mov WorldBoolFlag, eax |
|
mov ebp, 1Eh |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_466370 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Dh |
|
jg loc_46635F |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_1[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
sub ebp, ecx |
|
mov eax, WorldBoolFlag |
|
shr ecx, 1 |
|
add eax, ecx |
|
mov WorldBoolFlag, eax |
|
jmp loc_466370 |
|
loc_46635F: |
|
sub edi, 3000h |
|
add esi, 120h |
|
jmp loc_466490 |
|
loc_466370: |
|
add edi, ebp |
|
mov ecx, 20h |
|
sub ecx, ebp |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_466404 |
|
mov edx, ecx |
|
and edx, 2 |
|
add esi, edx |
|
shr ecx, 1 |
|
jb loc_4663CB |
|
shr ecx, 1 |
|
jnb loc_4663A7 |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_4663A7: |
|
test cl, cl |
|
jz loc_4663C9 |
|
loc_4663AB: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_4663AB |
|
loc_4663C9: |
|
jmp loc_4663FF |
|
loc_4663CB: |
|
inc esi |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_4663DE |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_4663DE: |
|
test cl, cl |
|
jz loc_4663FF |
|
loc_4663E2: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_4663E2 |
|
loc_4663FF: |
|
jmp $+82h |
|
loc_466404: |
|
mov edx, ecx |
|
and edx, 2 |
|
add esi, edx |
|
shr ecx, 1 |
|
jb loc_466443 |
|
shr ecx, 1 |
|
jnb loc_466420 |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_466420: |
|
test cl, cl |
|
jz loc_466441 |
|
loc_466424: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_466424 |
|
loc_466441: |
|
jmp loc_466481 |
|
loc_466443: |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
inc esi |
|
mov [edi], dl |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_46645F |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_46645F: |
|
test cl, cl |
|
jz loc_466481 |
|
loc_466463: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_466463 |
|
loc_466481: |
|
sub edi, 320h |
|
sub ebp, 2 |
|
jge loc_466370 |
|
loc_466490: |
|
mov ebp, 2 |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_4664E8 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Ah |
|
jg loc_4664D7 |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_2[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
add ebp, ecx |
|
mov eax, WorldBoolFlag |
|
shr ecx, 1 |
|
add eax, ecx |
|
mov WorldBoolFlag, eax |
|
jmp loc_4664E8 |
|
loc_4664D7: |
|
sub edi, 2D00h |
|
add esi, 100h |
|
jmp loc_46660B |
|
loc_4664E8: |
|
add edi, ebp |
|
mov ecx, 20h |
|
sub ecx, ebp |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_46657C |
|
mov edx, ecx |
|
and edx, 2 |
|
add esi, edx |
|
shr ecx, 1 |
|
jb loc_466543 |
|
shr ecx, 1 |
|
jnb loc_46651F |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_46651F: |
|
test cl, cl |
|
jz loc_466541 |
|
loc_466523: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_466523 |
|
loc_466541: |
|
jmp loc_466577 |
|
loc_466543: |
|
inc esi |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_466556 |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_466556: |
|
test cl, cl |
|
jz loc_466577 |
|
loc_46655A: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_46655A |
|
loc_466577: |
|
jmp $+82h |
|
loc_46657C: |
|
mov edx, ecx |
|
and edx, 2 |
|
add esi, edx |
|
shr ecx, 1 |
|
jb loc_4665BB |
|
shr ecx, 1 |
|
jnb loc_466598 |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_466598: |
|
test cl, cl |
|
jz loc_4665B9 |
|
loc_46659C: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_46659C |
|
loc_4665B9: |
|
jmp loc_4665F9 |
|
loc_4665BB: |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
inc esi |
|
mov [edi], dl |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_4665D7 |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_4665D7: |
|
test cl, cl |
|
jz loc_4665F9 |
|
loc_4665DB: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_4665DB |
|
loc_4665F9: |
|
sub edi, 320h |
|
add ebp, 2 |
|
cmp ebp, 20h |
|
jnz loc_4664E8 |
|
loc_46660B: |
|
pop ebp |
|
jmp loc_467944 |
|
loc_466611: |
|
push ebp |
|
xor eax, eax |
|
mov WorldBoolFlag, eax |
|
mov ebp, 1Eh |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_466671 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Dh |
|
jg loc_466660 |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_1[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
sub ebp, ecx |
|
mov eax, WorldBoolFlag |
|
shr ecx, 1 |
|
add eax, ecx |
|
mov WorldBoolFlag, eax |
|
jmp loc_466671 |
|
loc_466660: |
|
sub edi, 3000h |
|
add esi, 120h |
|
jmp loc_466791 |
|
loc_466671: |
|
mov ecx, 20h |
|
sub ecx, ebp |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_466703 |
|
shr ecx, 1 |
|
jb loc_4666C3 |
|
shr ecx, 1 |
|
jnb loc_46669F |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_46669F: |
|
test cl, cl |
|
jz loc_4666C1 |
|
loc_4666A3: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_4666A3 |
|
loc_4666C1: |
|
jmp loc_4666F7 |
|
loc_4666C3: |
|
inc esi |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_4666D6 |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_4666D6: |
|
test cl, cl |
|
jz loc_4666F7 |
|
loc_4666DA: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_4666DA |
|
loc_4666F7: |
|
mov edx, esi |
|
and edx, 2 |
|
add esi, edx |
|
jmp $+82h |
|
loc_466703: |
|
shr ecx, 1 |
|
jb loc_46673B |
|
shr ecx, 1 |
|
jnb loc_466718 |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_466718: |
|
test cl, cl |
|
jz loc_466739 |
|
loc_46671C: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_46671C |
|
loc_466739: |
|
jmp loc_466779 |
|
loc_46673B: |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
inc esi |
|
mov [edi], dl |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_466757 |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_466757: |
|
test cl, cl |
|
jz loc_466779 |
|
loc_46675B: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_46675B |
|
loc_466779: |
|
mov edx, esi |
|
and edx, 2 |
|
add esi, edx |
|
// loc_466780: |
|
sub edi, 320h |
|
add edi, ebp |
|
sub ebp, 2 |
|
jge loc_466671 |
|
loc_466791: |
|
mov ebp, 2 |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_4667E9 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Ah |
|
jg loc_4667D8 |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_2[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
add ebp, ecx |
|
mov eax, WorldBoolFlag |
|
shr ecx, 1 |
|
add eax, ecx |
|
mov WorldBoolFlag, eax |
|
jmp loc_4667E9 |
|
loc_4667D8: |
|
sub edi, 2D00h |
|
add esi, 100h |
|
jmp loc_46690C |
|
loc_4667E9: |
|
mov ecx, 20h |
|
sub ecx, ebp |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_46687B |
|
shr ecx, 1 |
|
jb loc_46683B |
|
shr ecx, 1 |
|
jnb loc_466817 |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_466817: |
|
test cl, cl |
|
jz loc_466839 |
|
loc_46681B: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_46681B |
|
loc_466839: |
|
jmp loc_46686F |
|
loc_46683B: |
|
inc esi |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_46684E |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_46684E: |
|
test cl, cl |
|
jz loc_46686F |
|
loc_466852: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_466852 |
|
loc_46686F: |
|
mov edx, esi |
|
and edx, 2 |
|
add esi, edx |
|
jmp $+82h |
|
loc_46687B: |
|
shr ecx, 1 |
|
jb loc_4668B3 |
|
shr ecx, 1 |
|
jnb loc_466890 |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_466890: |
|
test cl, cl |
|
jz loc_4668B1 |
|
loc_466894: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_466894 |
|
loc_4668B1: |
|
jmp loc_4668F1 |
|
loc_4668B3: |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
inc esi |
|
mov [edi], dl |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_4668CF |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_4668CF: |
|
test cl, cl |
|
jz loc_4668F1 |
|
loc_4668D3: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_4668D3 |
|
loc_4668F1: |
|
mov edx, esi |
|
and edx, 2 |
|
add esi, edx |
|
// loc_4668F8: |
|
sub edi, 320h |
|
add edi, ebp |
|
add ebp, 2 |
|
cmp ebp, 20h |
|
jnz loc_4667E9 |
|
loc_46690C: |
|
pop ebp |
|
jmp loc_467944 |
|
loc_466912: |
|
push ebp |
|
xor eax, eax |
|
mov WorldBoolFlag, eax |
|
mov ebp, 1Eh |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_466972 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Dh |
|
jg loc_466961 |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_1[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
sub ebp, ecx |
|
mov eax, WorldBoolFlag |
|
shr ecx, 1 |
|
add eax, ecx |
|
mov WorldBoolFlag, eax |
|
jmp loc_466972 |
|
loc_466961: |
|
sub edi, 3000h |
|
add esi, 120h |
|
jmp loc_466A92 |
|
loc_466972: |
|
add edi, ebp |
|
mov ecx, 20h |
|
sub ecx, ebp |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_466A06 |
|
mov edx, ecx |
|
and edx, 2 |
|
add esi, edx |
|
shr ecx, 1 |
|
jb loc_4669CD |
|
shr ecx, 1 |
|
jnb loc_4669A9 |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_4669A9: |
|
test cl, cl |
|
jz loc_4669CB |
|
loc_4669AD: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_4669AD |
|
loc_4669CB: |
|
jmp loc_466A01 |
|
loc_4669CD: |
|
inc esi |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_4669E0 |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_4669E0: |
|
test cl, cl |
|
jz loc_466A01 |
|
loc_4669E4: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_4669E4 |
|
loc_466A01: |
|
jmp $+82h |
|
loc_466A06: |
|
mov edx, ecx |
|
and edx, 2 |
|
add esi, edx |
|
shr ecx, 1 |
|
jb loc_466A45 |
|
shr ecx, 1 |
|
jnb loc_466A22 |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_466A22: |
|
test cl, cl |
|
jz loc_466A43 |
|
loc_466A26: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_466A26 |
|
loc_466A43: |
|
jmp loc_466A83 |
|
loc_466A45: |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
inc esi |
|
mov [edi], dl |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_466A61 |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_466A61: |
|
test cl, cl |
|
jz loc_466A83 |
|
loc_466A65: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_466A65 |
|
loc_466A83: |
|
sub edi, 320h |
|
sub ebp, 2 |
|
jge loc_466972 |
|
loc_466A92: |
|
mov ebp, 8 |
|
loc_466A97: |
|
cmp edi, gpBufEnd |
|
jb loc_466AA7 |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_466ACA |
|
loc_466AA7: |
|
mov ecx, 8 |
|
loc_466AAC: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_466AAC |
|
loc_466ACA: |
|
sub edi, 320h |
|
cmp edi, gpBufEnd |
|
jb loc_466AE0 |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_466B02 |
|
loc_466AE0: |
|
mov ecx, 8 |
|
loc_466AE5: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_466AE5 |
|
loc_466B02: |
|
sub edi, 320h |
|
dec ebp |
|
jnz loc_466A97 |
|
pop ebp |
|
jmp loc_467944 |
|
loc_466B11: |
|
push ebp |
|
xor eax, eax |
|
mov WorldBoolFlag, eax |
|
mov ebp, 1Eh |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_466B71 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Dh |
|
jg loc_466B60 |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_1[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
sub ebp, ecx |
|
mov eax, WorldBoolFlag |
|
shr ecx, 1 |
|
add eax, ecx |
|
mov WorldBoolFlag, eax |
|
jmp loc_466B71 |
|
loc_466B60: |
|
sub edi, 3000h |
|
add esi, 120h |
|
jmp loc_466C91 |
|
loc_466B71: |
|
mov ecx, 20h |
|
sub ecx, ebp |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_466C03 |
|
shr ecx, 1 |
|
jb loc_466BC3 |
|
shr ecx, 1 |
|
jnb loc_466B9F |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_466B9F: |
|
test cl, cl |
|
jz loc_466BC1 |
|
loc_466BA3: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_466BA3 |
|
loc_466BC1: |
|
jmp loc_466BF7 |
|
loc_466BC3: |
|
inc esi |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_466BD6 |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_466BD6: |
|
test cl, cl |
|
jz loc_466BF7 |
|
loc_466BDA: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_466BDA |
|
loc_466BF7: |
|
mov edx, esi |
|
and edx, 2 |
|
add esi, edx |
|
jmp $+82h |
|
loc_466C03: |
|
shr ecx, 1 |
|
jb loc_466C3B |
|
shr ecx, 1 |
|
jnb loc_466C18 |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi], dl |
|
add edi, 2 |
|
loc_466C18: |
|
test cl, cl |
|
jz loc_466C39 |
|
loc_466C1C: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_466C1C |
|
loc_466C39: |
|
jmp loc_466C79 |
|
loc_466C3B: |
|
mov dl, [esi] |
|
mov dl, [ebx+edx] |
|
inc esi |
|
mov [edi], dl |
|
inc edi |
|
shr ecx, 1 |
|
jnb loc_466C57 |
|
mov dl, [esi+1] |
|
mov dl, [ebx+edx] |
|
add esi, 2 |
|
mov [edi+1], dl |
|
add edi, 2 |
|
loc_466C57: |
|
test cl, cl |
|
jz loc_466C79 |
|
loc_466C5B: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_466C5B |
|
loc_466C79: |
|
mov edx, esi |
|
and edx, 2 |
|
add esi, edx |
|
// loc_466C80: |
|
sub edi, 320h |
|
add edi, ebp |
|
sub ebp, 2 |
|
jge loc_466B71 |
|
loc_466C91: |
|
mov ebp, 8 |
|
loc_466C96: |
|
cmp edi, gpBufEnd |
|
jb loc_466CA6 |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_466CC9 |
|
loc_466CA6: |
|
mov ecx, 8 |
|
loc_466CAB: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, ah |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi+1], dl |
|
mov dl, ah |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-1], dl |
|
jnz loc_466CAB |
|
loc_466CC9: |
|
sub edi, 320h |
|
cmp edi, gpBufEnd |
|
jb loc_466CDF |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_466D01 |
|
loc_466CDF: |
|
mov ecx, 8 |
|
loc_466CE4: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
shr eax, 10h |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
mov dl, al |
|
add edi, 4 |
|
mov dl, [ebx+edx] |
|
dec ecx |
|
mov [edi-2], dl |
|
jnz loc_466CE4 |
|
loc_466D01: |
|
sub edi, 320h |
|
dec ebp |
|
jnz loc_466C96 |
|
pop ebp |
|
jmp loc_467944 |
|
loc_466D10: |
|
mov edx, 10h |
|
loc_466D15: |
|
cmp edi, gpBufEnd |
|
jb loc_466D25 |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_466D41 |
|
loc_466D25: |
|
mov ecx, 8 |
|
loc_466D2A: |
|
mov eax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
inc edi |
|
dec ecx |
|
jnz loc_466D2A |
|
loc_466D41: |
|
sub edi, 320h |
|
cmp edi, gpBufEnd |
|
jb loc_466D57 |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_466D71 |
|
loc_466D57: |
|
mov ecx, 8 |
|
loc_466D5C: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
add edi, 2 |
|
dec ecx |
|
jnz loc_466D5C |
|
loc_466D71: |
|
sub edi, 320h |
|
dec edx |
|
jnz loc_466D15 |
|
jmp loc_467944 |
|
loc_466D7F: |
|
mov eax, edi |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
mov ecx, 20h |
|
loc_466D8E: |
|
push ecx |
|
mov edx, 20h |
|
loc_466D94: |
|
xor eax, eax |
|
mov al, [esi] |
|
inc esi |
|
test al, al |
|
js loc_466E35 |
|
sub edx, eax |
|
cmp edi, gpBufEnd |
|
jb loc_466DB1 |
|
add esi, eax |
|
add edi, eax |
|
jmp loc_466E2C |
|
loc_466DB1: |
|
mov ecx, eax |
|
mov eax, edi |
|
and eax, 1 |
|
cmp eax, WorldBoolFlag |
|
jnz loc_466DF5 |
|
shr ecx, 1 |
|
jnb loc_466DCC |
|
inc esi |
|
inc edi |
|
test ecx, ecx |
|
jz loc_466E2C |
|
jmp loc_466E05 |
|
loc_466DCC: |
|
shr ecx, 1 |
|
jnb loc_466DDC |
|
inc esi |
|
inc edi |
|
mov al, [esi] |
|
inc esi |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_466E2C |
|
loc_466DDC: |
|
mov eax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
inc edi |
|
dec ecx |
|
jnz loc_466DDC |
|
jmp loc_466E2C |
|
loc_466DF5: |
|
shr ecx, 1 |
|
jnb loc_466E05 |
|
mov al, [esi] |
|
inc esi |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_466E2C |
|
jmp loc_466DCC |
|
loc_466E05: |
|
shr ecx, 1 |
|
jnb loc_466E17 |
|
mov al, [esi] |
|
add esi, 2 |
|
mov [edi], al |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_466E2C |
|
loc_466E17: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
add edi, 2 |
|
dec ecx |
|
jnz loc_466E17 |
|
loc_466E2C: |
|
test edx, edx |
|
jz loc_466E41 |
|
jmp loc_466D94 |
|
loc_466E35: |
|
neg al |
|
add edi, eax |
|
sub edx, eax |
|
jnz loc_466D94 |
|
loc_466E41: |
|
pop ecx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
sub edi, 320h |
|
dec ecx |
|
jnz loc_466D8E |
|
jmp loc_467944 |
|
loc_466E62: |
|
xor eax, eax |
|
mov WorldBoolFlag, eax |
|
mov edx, 1Eh |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_466EC1 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Dh |
|
jg loc_466EB0 |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_1[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
sub edx, ecx |
|
mov eax, WorldBoolFlag |
|
shr ecx, 1 |
|
add eax, ecx |
|
mov WorldBoolFlag, eax |
|
jmp loc_466EC1 |
|
loc_466EB0: |
|
sub edi, 3000h |
|
add esi, 120h |
|
jmp $+83h |
|
loc_466EC1: |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_466F0A |
|
shr ecx, 2 |
|
jnb loc_466EF1 |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_466F34 |
|
loc_466EF1: |
|
mov eax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
inc edi |
|
dec ecx |
|
jnz loc_466EF1 |
|
jmp loc_466F34 |
|
loc_466F0A: |
|
shr ecx, 2 |
|
jnb loc_466F1F |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_466F34 |
|
loc_466F1F: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
add edi, 2 |
|
dec ecx |
|
jnz loc_466F1F |
|
loc_466F34: |
|
sub edi, 320h |
|
sub edx, 2 |
|
jge loc_466EC1 |
|
// loc_466F3F: |
|
mov edx, 2 |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_466F97 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Ah |
|
jg loc_466F86 |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_2[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
add edx, ecx |
|
mov eax, WorldBoolFlag |
|
shr ecx, 1 |
|
add eax, ecx |
|
mov WorldBoolFlag, eax |
|
jmp loc_466F97 |
|
loc_466F86: |
|
sub edi, 2D00h |
|
add esi, 100h |
|
jmp loc_467944 |
|
loc_466F97: |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_466FE0 |
|
shr ecx, 2 |
|
jnb loc_466FC7 |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_467009 |
|
loc_466FC7: |
|
mov eax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
inc edi |
|
dec ecx |
|
jnz loc_466FC7 |
|
jmp loc_467009 |
|
loc_466FE0: |
|
shr ecx, 2 |
|
jnb loc_466FF4 |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
dec ecx |
|
jz loc_467009 |
|
loc_466FF4: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
add edi, 2 |
|
dec ecx |
|
jnz loc_466FF4 |
|
loc_467009: |
|
sub edi, 320h |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_466F97 |
|
jmp loc_467944 |
|
loc_46701C: |
|
push ebp |
|
xor eax, eax |
|
mov WorldBoolFlag, eax |
|
mov edx, 1Eh |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_46707C |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Dh |
|
jg loc_46706B |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_1[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
sub edx, ecx |
|
mov eax, WorldBoolFlag |
|
shr ecx, 1 |
|
add eax, ecx |
|
mov WorldBoolFlag, eax |
|
jmp loc_46707C |
|
loc_46706B: |
|
sub edi, 3000h |
|
add esi, 120h |
|
jmp loc_4670FC |
|
loc_46707C: |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov ebp, ecx |
|
mov WorldBoolFlag, eax |
|
jz loc_4670C5 |
|
shr ecx, 2 |
|
jz loc_4670B1 |
|
loc_46709A: |
|
mov eax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
inc edi |
|
dec ecx |
|
jnz loc_46709A |
|
loc_4670B1: |
|
and ebp, 2 |
|
jz loc_4670EF |
|
mov ax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
inc edi |
|
jmp loc_4670EF |
|
loc_4670C5: |
|
shr ecx, 2 |
|
jz loc_4670DF |
|
loc_4670CA: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
add edi, 2 |
|
dec ecx |
|
jnz loc_4670CA |
|
loc_4670DF: |
|
and ebp, 2 |
|
jz loc_4670EF |
|
mov ax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
loc_4670EF: |
|
sub edi, 320h |
|
add edi, edx |
|
sub edx, 2 |
|
jge loc_46707C |
|
loc_4670FC: |
|
mov edx, 2 |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_467154 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Ah |
|
jg loc_467143 |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_2[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
add edx, ecx |
|
mov eax, WorldBoolFlag |
|
shr ecx, 1 |
|
add eax, ecx |
|
mov WorldBoolFlag, eax |
|
jmp loc_467154 |
|
loc_467143: |
|
sub edi, 2D00h |
|
add esi, 100h |
|
jmp loc_4671DB |
|
loc_467154: |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov ebp, ecx |
|
mov WorldBoolFlag, eax |
|
jz loc_46719D |
|
shr ecx, 2 |
|
jz loc_467189 |
|
loc_467172: |
|
mov eax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
inc edi |
|
dec ecx |
|
jnz loc_467172 |
|
loc_467189: |
|
and ebp, 2 |
|
jz loc_4671C7 |
|
mov ax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
inc edi |
|
jmp loc_4671C7 |
|
loc_46719D: |
|
shr ecx, 2 |
|
jz loc_4671B7 |
|
loc_4671A2: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
add edi, 2 |
|
dec ecx |
|
jnz loc_4671A2 |
|
loc_4671B7: |
|
and ebp, 2 |
|
jz loc_4671C7 |
|
mov ax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
loc_4671C7: |
|
sub edi, 320h |
|
add edi, edx |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_467154 |
|
loc_4671DB: |
|
pop ebp |
|
jmp loc_467944 |
|
loc_4671E1: |
|
xor eax, eax |
|
mov WorldBoolFlag, eax |
|
mov edx, 1Eh |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_467240 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Dh |
|
jg loc_46722F |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_1[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
sub edx, ecx |
|
mov eax, WorldBoolFlag |
|
shr ecx, 1 |
|
add eax, ecx |
|
mov WorldBoolFlag, eax |
|
jmp loc_467240 |
|
loc_46722F: |
|
sub edi, 3000h |
|
add esi, 120h |
|
jmp $+83h |
|
loc_467240: |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_467289 |
|
shr ecx, 2 |
|
jnb loc_467270 |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_4672B3 |
|
loc_467270: |
|
mov eax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
inc edi |
|
dec ecx |
|
jnz loc_467270 |
|
jmp loc_4672B3 |
|
loc_467289: |
|
shr ecx, 2 |
|
jnb loc_46729E |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
mov [edi], al |
|
test ecx, ecx |
|
lea edi, [edi+2] |
|
jz loc_4672B3 |
|
loc_46729E: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
dec ecx |
|
lea edi, [edi+2] |
|
jnz loc_46729E |
|
loc_4672B3: |
|
sub edi, 320h |
|
sub edx, 2 |
|
jge loc_467240 |
|
// loc_4672BE: |
|
mov edx, 8 |
|
loc_4672C3: |
|
cmp edi, gpBufEnd |
|
jb loc_4672D3 |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_4672EF |
|
loc_4672D3: |
|
mov ecx, 8 |
|
loc_4672D8: |
|
mov eax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
inc edi |
|
dec ecx |
|
jnz loc_4672D8 |
|
loc_4672EF: |
|
sub edi, 320h |
|
cmp edi, gpBufEnd |
|
jb loc_467305 |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_46731F |
|
loc_467305: |
|
mov ecx, 8 |
|
loc_46730A: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
add edi, 2 |
|
dec ecx |
|
jnz loc_46730A |
|
loc_46731F: |
|
sub edi, 320h |
|
dec edx |
|
jnz loc_4672C3 |
|
jmp loc_467944 |
|
loc_46732D: |
|
push ebp |
|
xor eax, eax |
|
mov WorldBoolFlag, eax |
|
mov edx, 1Eh |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_46738D |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Dh |
|
jg loc_46737C |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_1[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
sub edx, ecx |
|
mov eax, WorldBoolFlag |
|
shr ecx, 1 |
|
add eax, ecx |
|
mov WorldBoolFlag, eax |
|
jmp loc_46738D |
|
loc_46737C: |
|
sub edi, 3000h |
|
add esi, 120h |
|
jmp loc_46740D |
|
loc_46738D: |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov ebp, ecx |
|
mov WorldBoolFlag, eax |
|
jz loc_4673D6 |
|
shr ecx, 2 |
|
jz loc_4673C2 |
|
loc_4673AB: |
|
mov eax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
inc edi |
|
dec ecx |
|
jnz loc_4673AB |
|
loc_4673C2: |
|
and ebp, 2 |
|
jz loc_467400 |
|
mov ax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
inc edi |
|
jmp loc_467400 |
|
loc_4673D6: |
|
shr ecx, 2 |
|
jz loc_4673F0 |
|
loc_4673DB: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
add edi, 2 |
|
dec ecx |
|
jnz loc_4673DB |
|
loc_4673F0: |
|
and ebp, 2 |
|
jz loc_467400 |
|
mov ax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
loc_467400: |
|
sub edi, 320h |
|
add edi, edx |
|
sub edx, 2 |
|
jge loc_46738D |
|
loc_46740D: |
|
mov edx, 8 |
|
loc_467412: |
|
cmp edi, gpBufEnd |
|
jb loc_467422 |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_46743E |
|
loc_467422: |
|
mov ecx, 8 |
|
loc_467427: |
|
mov eax, [esi] |
|
add esi, 4 |
|
inc edi |
|
ror eax, 8 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
inc edi |
|
dec ecx |
|
jnz loc_467427 |
|
loc_46743E: |
|
sub edi, 320h |
|
cmp edi, gpBufEnd |
|
jb loc_467454 |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_46746E |
|
loc_467454: |
|
mov ecx, 8 |
|
loc_467459: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], al |
|
add edi, 2 |
|
ror eax, 10h |
|
mov [edi], al |
|
add edi, 2 |
|
dec ecx |
|
jnz loc_467459 |
|
loc_46746E: |
|
sub edi, 320h |
|
dec edx |
|
jnz loc_467412 |
|
pop ebp |
|
jmp loc_467944 |
|
loc_46747D: |
|
mov edx, 10h |
|
xor eax, eax |
|
loc_467484: |
|
cmp edi, gpBufEnd |
|
jb loc_467494 |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_4674A5 |
|
loc_467494: |
|
mov ecx, 8 |
|
loc_467499: |
|
mov [edi+1], al |
|
mov [edi+3], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_467499 |
|
loc_4674A5: |
|
sub edi, 320h |
|
cmp edi, gpBufEnd |
|
jb loc_4674BB |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_4674CB |
|
loc_4674BB: |
|
mov ecx, 8 |
|
loc_4674C0: |
|
mov [edi], al |
|
mov [edi+2], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4674C0 |
|
loc_4674CB: |
|
sub edi, 320h |
|
dec edx |
|
jnz loc_467484 |
|
jmp loc_467944 |
|
loc_4674D9: |
|
mov eax, edi |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
mov ecx, 20h |
|
loc_4674E8: |
|
push ecx |
|
mov edx, 20h |
|
loc_4674EE: |
|
xor eax, eax |
|
mov al, [esi] |
|
inc esi |
|
test al, al |
|
js loc_46756C |
|
sub edx, eax |
|
cmp edi, gpBufEnd |
|
jb loc_467507 |
|
add esi, eax |
|
add edi, eax |
|
jmp loc_467566 |
|
loc_467507: |
|
mov ecx, eax |
|
add esi, ecx |
|
mov eax, edi |
|
and eax, 1 |
|
cmp eax, WorldBoolFlag |
|
jnz loc_46753F |
|
xor eax, eax |
|
shr ecx, 1 |
|
jnb loc_467525 |
|
inc edi |
|
test ecx, ecx |
|
jz loc_467566 |
|
jmp loc_46754E |
|
loc_467525: |
|
shr ecx, 1 |
|
jnb loc_467531 |
|
inc edi |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_467566 |
|
loc_467531: |
|
mov [edi+1], al |
|
mov [edi+3], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_467531 |
|
jmp loc_467566 |
|
loc_46753F: |
|
xor eax, eax |
|
shr ecx, 1 |
|
jnb loc_46754E |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_467566 |
|
jmp loc_467525 |
|
loc_46754E: |
|
shr ecx, 1 |
|
jnb loc_46755B |
|
mov [edi], al |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_467566 |
|
loc_46755B: |
|
mov [edi], al |
|
mov [edi+2], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_46755B |
|
loc_467566: |
|
test edx, edx |
|
jz loc_467578 |
|
jmp loc_4674EE |
|
loc_46756C: |
|
neg al |
|
add edi, eax |
|
sub edx, eax |
|
jnz loc_4674EE |
|
loc_467578: |
|
pop ecx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
sub edi, 320h |
|
dec ecx |
|
jnz loc_4674E8 |
|
jmp loc_467944 |
|
loc_467599: |
|
xor eax, eax |
|
mov WorldBoolFlag, eax |
|
mov edx, 1Eh |
|
loc_4675A5: |
|
cmp edi, gpBufEnd |
|
jb loc_4675B7 |
|
add esi, 20h |
|
sub esi, edx |
|
add edi, 20h |
|
jmp loc_467608 |
|
loc_4675B7: |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_4675ED |
|
xor eax, eax |
|
shr ecx, 2 |
|
jnb loc_4675DF |
|
inc edi |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_467608 |
|
loc_4675DF: |
|
mov [edi+1], al |
|
mov [edi+3], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4675DF |
|
jmp loc_467608 |
|
loc_4675ED: |
|
xor eax, eax |
|
shr ecx, 2 |
|
jnb loc_4675FD |
|
mov [edi], al |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_467608 |
|
loc_4675FD: |
|
mov [edi], al |
|
mov [edi+2], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4675FD |
|
loc_467608: |
|
sub edi, 320h |
|
test edx, edx |
|
jz loc_467617 |
|
sub edx, 2 |
|
jmp loc_4675A5 |
|
loc_467617: |
|
mov edx, 2 |
|
loc_46761C: |
|
cmp edi, gpBufEnd |
|
jb loc_46762E |
|
add esi, 20h |
|
sub esi, edx |
|
add edi, 20h |
|
jmp loc_46767F |
|
loc_46762E: |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_467664 |
|
xor eax, eax |
|
shr ecx, 2 |
|
jnb loc_467656 |
|
inc edi |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_46767F |
|
loc_467656: |
|
mov [edi+1], al |
|
mov [edi+3], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_467656 |
|
jmp loc_46767F |
|
loc_467664: |
|
xor eax, eax |
|
shr ecx, 2 |
|
jnb loc_467674 |
|
mov [edi], al |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_46767F |
|
loc_467674: |
|
mov [edi], al |
|
mov [edi+2], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_467674 |
|
loc_46767F: |
|
sub edi, 320h |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_46761C |
|
jmp loc_467944 |
|
loc_467692: |
|
xor eax, eax |
|
mov WorldBoolFlag, eax |
|
mov edx, 1Eh |
|
loc_46769E: |
|
cmp edi, gpBufEnd |
|
jb loc_4676B2 |
|
add esi, 20h |
|
sub esi, edx |
|
add edi, 20h |
|
sub edi, edx |
|
jmp loc_467701 |
|
loc_4676B2: |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_4676E6 |
|
xor eax, eax |
|
shr ecx, 2 |
|
jnb loc_4676D8 |
|
inc edi |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_467701 |
|
loc_4676D8: |
|
mov [edi+1], al |
|
mov [edi+3], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4676D8 |
|
jmp loc_467701 |
|
loc_4676E6: |
|
xor eax, eax |
|
shr ecx, 2 |
|
jnb loc_4676F6 |
|
mov [edi], al |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_467701 |
|
loc_4676F6: |
|
mov [edi], al |
|
mov [edi+2], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4676F6 |
|
loc_467701: |
|
sub edi, 320h |
|
test edx, edx |
|
jz loc_467712 |
|
add edi, edx |
|
sub edx, 2 |
|
jmp loc_46769E |
|
loc_467712: |
|
mov edx, 2 |
|
loc_467717: |
|
cmp edi, gpBufEnd |
|
jb loc_46772B |
|
add esi, 20h |
|
sub esi, edx |
|
add edi, 20h |
|
sub edi, edx |
|
jmp loc_46777A |
|
loc_46772B: |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_46775F |
|
xor eax, eax |
|
shr ecx, 2 |
|
jnb loc_467751 |
|
inc edi |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_46777A |
|
loc_467751: |
|
mov [edi+1], al |
|
mov [edi+3], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_467751 |
|
jmp loc_46777A |
|
loc_46775F: |
|
xor eax, eax |
|
shr ecx, 2 |
|
jnb loc_46776F |
|
mov [edi], al |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_46777A |
|
loc_46776F: |
|
mov [edi], al |
|
mov [edi+2], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_46776F |
|
loc_46777A: |
|
sub edi, 320h |
|
add edi, edx |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_467717 |
|
jmp loc_467944 |
|
loc_46778F: |
|
xor eax, eax |
|
mov WorldBoolFlag, eax |
|
mov edx, 1Eh |
|
loc_46779B: |
|
cmp edi, gpBufEnd |
|
jb loc_4677AD |
|
add esi, 20h |
|
sub esi, edx |
|
add edi, 20h |
|
jmp loc_4677FE |
|
loc_4677AD: |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_4677E3 |
|
xor eax, eax |
|
shr ecx, 2 |
|
jnb loc_4677D5 |
|
inc edi |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_4677FE |
|
loc_4677D5: |
|
mov [edi+1], al |
|
mov [edi+3], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4677D5 |
|
jmp loc_4677FE |
|
loc_4677E3: |
|
xor eax, eax |
|
shr ecx, 2 |
|
jnb loc_4677F3 |
|
mov [edi], al |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_4677FE |
|
loc_4677F3: |
|
mov [edi], al |
|
mov [edi+2], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4677F3 |
|
loc_4677FE: |
|
sub edi, 320h |
|
test edx, edx |
|
jz loc_46780D |
|
sub edx, 2 |
|
jmp loc_46779B |
|
loc_46780D: |
|
mov edx, 8 |
|
loc_467812: |
|
cmp edi, gpBufEnd |
|
jb loc_467822 |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_467835 |
|
loc_467822: |
|
mov ecx, 8 |
|
xor eax, eax |
|
loc_467829: |
|
mov [edi+1], al |
|
mov [edi+3], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_467829 |
|
loc_467835: |
|
sub edi, 320h |
|
cmp edi, gpBufEnd |
|
jb loc_46784B |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_46785D |
|
loc_46784B: |
|
mov ecx, 8 |
|
xor eax, eax |
|
loc_467852: |
|
mov [edi], al |
|
mov [edi+2], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_467852 |
|
loc_46785D: |
|
sub edi, 320h |
|
dec edx |
|
jnz loc_467812 |
|
jmp loc_467944 |
|
loc_46786B: |
|
xor eax, eax |
|
mov WorldBoolFlag, eax |
|
mov edx, 1Eh |
|
loc_467877: |
|
cmp edi, gpBufEnd |
|
jb loc_46788B |
|
add esi, 20h |
|
sub esi, edx |
|
add edi, 20h |
|
sub edi, edx |
|
jmp loc_4678DA |
|
loc_46788B: |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov eax, WorldBoolFlag |
|
inc eax |
|
and eax, 1 |
|
mov WorldBoolFlag, eax |
|
jz loc_4678BF |
|
xor eax, eax |
|
shr ecx, 2 |
|
jnb loc_4678B1 |
|
inc edi |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_4678DA |
|
loc_4678B1: |
|
mov [edi+1], al |
|
mov [edi+3], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4678B1 |
|
jmp loc_4678DA |
|
loc_4678BF: |
|
xor eax, eax |
|
shr ecx, 2 |
|
jnb loc_4678CF |
|
mov [edi], al |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_4678DA |
|
loc_4678CF: |
|
mov [edi], al |
|
mov [edi+2], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4678CF |
|
loc_4678DA: |
|
sub edi, 320h |
|
test edx, edx |
|
jz loc_4678EB |
|
add edi, edx |
|
sub edx, 2 |
|
jmp loc_467877 |
|
loc_4678EB: |
|
mov edx, 8 |
|
loc_4678F0: |
|
cmp edi, gpBufEnd |
|
jb loc_467900 |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_467913 |
|
loc_467900: |
|
mov ecx, 8 |
|
xor eax, eax |
|
loc_467907: |
|
mov [edi+1], al |
|
mov [edi+3], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_467907 |
|
loc_467913: |
|
sub edi, 320h |
|
cmp edi, gpBufEnd |
|
jb loc_467929 |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_46793B |
|
loc_467929: |
|
mov ecx, 8 |
|
xor eax, eax |
|
loc_467930: |
|
mov [edi], al |
|
mov [edi+2], al |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_467930 |
|
loc_46793B: |
|
sub edi, 320h |
|
dec edx |
|
jnz loc_4678F0 |
|
loc_467944: |
|
pop esi |
|
pop edi |
|
pop edx |
|
pop ebx |
|
retn |
|
} |
|
} |
|
|
|
__declspec(naked) void drawBottomArchesLowerScreen(BYTE *pBuff, unsigned int *pMask) |
|
{ |
|
__asm { |
|
push ebx |
|
push edi |
|
push esi |
|
mov edi, offset SpeedFrameTbl |
|
mov gpCelFrame, edi |
|
mov edi, ecx |
|
mov gpDrawMask, edx |
|
mov eax, light_table_index |
|
test al, al |
|
jz loc_467A58 |
|
cmp al, lightmax |
|
jz loc_467AB8 |
|
mov eax, level_cel_block |
|
and eax, 8000h |
|
jnz loc_4679EC |
|
mov ebx, pDungeonCels |
|
mov esi, ebx |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 2 |
|
add ebx, eax |
|
add esi, [ebx] |
|
mov ebx, light_table_index |
|
shl ebx, 8 |
|
add ebx, pLightTbl |
|
mov eax, level_cel_block |
|
mov al, ah |
|
shr eax, 4 |
|
and eax, 0Fh |
|
jz loc_467B43 |
|
cmp ax, 1 |
|
jz loc_467B8F |
|
cmp ax, 2 |
|
jz loc_467C20 |
|
cmp ax, 3 |
|
jz loc_467D5B |
|
cmp ax, 4 |
|
jz loc_467E99 |
|
jmp loc_467F8A |
|
loc_4679EC: |
|
mov esi, gpCelFrame |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 4 |
|
add eax, light_table_index |
|
shl eax, 2 |
|
add esi, eax |
|
mov eax, [esi] |
|
mov esi, pSpeedCels |
|
add esi, eax |
|
mov eax, level_cel_block |
|
mov al, ah |
|
shr eax, 4 |
|
and eax, 0Fh |
|
loc_467A21: |
|
cmp ax, 8 |
|
jz loc_468086 |
|
cmp ax, 9 |
|
jz loc_4680D1 |
|
cmp ax, 0Ah |
|
jz loc_468161 |
|
cmp ax, 0Bh |
|
jz loc_468268 |
|
cmp ax, 0Ch |
|
jz loc_468372 |
|
jmp loc_468448 |
|
loc_467A58: |
|
mov eax, level_cel_block |
|
and eax, 8000h |
|
jz loc_467A8A |
|
mov esi, gpCelFrame |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 6 |
|
add esi, eax |
|
mov eax, level_cel_block |
|
and eax, 0F000h |
|
add eax, [esi] |
|
mov level_cel_block, eax |
|
loc_467A8A: |
|
mov ebx, pDungeonCels |
|
mov esi, ebx |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 2 |
|
add ebx, eax |
|
add esi, [ebx] |
|
mov eax, level_cel_block |
|
mov al, ah |
|
shr eax, 4 |
|
and eax, 7 |
|
add eax, 8 |
|
jmp loc_467A21 |
|
loc_467AB8: |
|
mov eax, level_cel_block |
|
and eax, 8000h |
|
jz loc_467AEA |
|
mov esi, gpCelFrame |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 6 |
|
add esi, eax |
|
mov eax, level_cel_block |
|
and eax, 0F000h |
|
add eax, [esi] |
|
mov level_cel_block, eax |
|
loc_467AEA: |
|
mov ebx, pDungeonCels |
|
mov esi, ebx |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 2 |
|
add ebx, eax |
|
add esi, [ebx] |
|
mov eax, level_cel_block |
|
mov al, ah |
|
shr eax, 4 |
|
and eax, 7 |
|
jz loc_468529 |
|
cmp ax, 1 |
|
jz loc_468573 |
|
cmp ax, 2 |
|
jz loc_468604 |
|
cmp ax, 3 |
|
jz loc_468696 |
|
cmp ax, 4 |
|
jz loc_46872C |
|
jmp loc_4687CB |
|
loc_467B43: |
|
push ebp |
|
mov ebp, 20h |
|
loc_467B49: |
|
cmp edi, gpBufEnd |
|
jb loc_467B59 |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_467B73 |
|
loc_467B59: |
|
mov eax, gpDrawMask |
|
mov edx, [eax] |
|
mov ecx, 20h |
|
loc_467B65: |
|
mov al, [esi] |
|
inc esi |
|
shl edx, 1 |
|
jnb loc_467B6F |
|
xlat |
|
mov [edi], al |
|
loc_467B6F: |
|
inc edi |
|
dec ecx |
|
jnz loc_467B65 |
|
loc_467B73: |
|
sub edi, 320h |
|
mov eax, gpDrawMask |
|
sub eax, 4 |
|
mov gpDrawMask, eax |
|
dec ebp |
|
jnz loc_467B49 |
|
pop ebp |
|
jmp loc_468867 |
|
loc_467B8F: |
|
mov ecx, 20h |
|
loc_467B94: |
|
push ecx |
|
mov eax, gpDrawMask |
|
mov eax, [eax] |
|
mov gdwCurrentMask, eax |
|
mov edx, 20h |
|
loc_467BA6: |
|
xor eax, eax |
|
mov al, [esi] |
|
inc esi |
|
test al, al |
|
js loc_467BE3 |
|
sub edx, eax |
|
cmp edi, gpBufEnd |
|
jb loc_467BBF |
|
add esi, eax |
|
add edi, eax |
|
jmp loc_467BDD |
|
loc_467BBF: |
|
mov ecx, eax |
|
push edx |
|
mov edx, gdwCurrentMask |
|
loc_467BC8: |
|
mov al, [esi] |
|
inc esi |
|
shl edx, 1 |
|
jnb loc_467BD2 |
|
xlat |
|
mov [edi], al |
|
loc_467BD2: |
|
inc edi |
|
dec ecx |
|
jnz loc_467BC8 |
|
mov gdwCurrentMask, edx |
|
pop edx |
|
loc_467BDD: |
|
test edx, edx |
|
jz loc_467C00 |
|
jmp loc_467BA6 |
|
loc_467BE3: |
|
neg al |
|
add edi, eax |
|
mov ecx, eax |
|
and ecx, 1Fh |
|
jz loc_467BFC |
|
push eax |
|
mov eax, gdwCurrentMask |
|
shl eax, cl |
|
mov gdwCurrentMask, eax |
|
pop eax |
|
loc_467BFC: |
|
sub edx, eax |
|
jnz loc_467BA6 |
|
loc_467C00: |
|
pop ecx |
|
sub edi, 320h |
|
mov eax, gpDrawMask |
|
sub eax, 4 |
|
mov gpDrawMask, eax |
|
dec ecx |
|
jnz loc_467B94 |
|
jmp loc_468867 |
|
loc_467C20: |
|
mov edx, 1Eh |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_467C67 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Dh |
|
jg loc_467C59 |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_1[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
sub edx, ecx |
|
jmp loc_467C67 |
|
loc_467C59: |
|
sub edi, 3000h |
|
add esi, 120h |
|
jmp loc_467CB8 |
|
loc_467C67: |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_467C90 |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
xlat |
|
ror ax, 8 |
|
xlat |
|
ror ax, 8 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_467CAD |
|
loc_467C90: |
|
mov eax, [esi] |
|
add esi, 4 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_467C90 |
|
loc_467CAD: |
|
sub edi, 320h |
|
sub edx, 2 |
|
jge loc_467C67 |
|
loc_467CB8: |
|
mov edx, 2 |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_467D02 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Ah |
|
jg loc_467CF1 |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_2[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
add edx, ecx |
|
jmp loc_467D02 |
|
loc_467CF1: |
|
sub edi, 2D00h |
|
add esi, 100h |
|
jmp loc_468867 |
|
loc_467D02: |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_467D2B |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
xlat |
|
ror ax, 8 |
|
xlat |
|
ror ax, 8 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_467D48 |
|
loc_467D2B: |
|
mov eax, [esi] |
|
add esi, 4 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_467D2B |
|
loc_467D48: |
|
sub edi, 320h |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_467D02 |
|
jmp loc_468867 |
|
loc_467D5B: |
|
push ebp |
|
mov edx, 1Eh |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_467DA3 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Dh |
|
jg loc_467D95 |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_1[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
sub edx, ecx |
|
jmp loc_467DA3 |
|
loc_467D95: |
|
sub edi, 3000h |
|
add esi, 120h |
|
jmp loc_467DF6 |
|
loc_467DA3: |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov ebp, ecx |
|
shr ecx, 2 |
|
jz loc_467DCE |
|
loc_467DB1: |
|
mov eax, [esi] |
|
add esi, 4 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_467DB1 |
|
loc_467DCE: |
|
and ebp, 2 |
|
jz loc_467DE9 |
|
mov ax, [esi] |
|
add esi, 4 |
|
xlat |
|
ror ax, 8 |
|
xlat |
|
ror ax, 8 |
|
mov [edi], ax |
|
add edi, 2 |
|
loc_467DE9: |
|
sub edi, 320h |
|
add edi, edx |
|
sub edx, 2 |
|
jge loc_467DA3 |
|
loc_467DF6: |
|
mov edx, 2 |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_467E3D |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Ah |
|
jg loc_467E2F |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_2[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
add edx, ecx |
|
jmp loc_467E3D |
|
loc_467E2F: |
|
sub edi, 2D00h |
|
add esi, 100h |
|
jmp loc_467E93 |
|
loc_467E3D: |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov ebp, ecx |
|
shr ecx, 2 |
|
jz loc_467E68 |
|
loc_467E4B: |
|
mov eax, [esi] |
|
add esi, 4 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_467E4B |
|
loc_467E68: |
|
and ebp, 2 |
|
jz loc_467E83 |
|
mov ax, [esi] |
|
add esi, 2 |
|
xlat |
|
ror ax, 8 |
|
xlat |
|
ror ax, 8 |
|
mov [edi], ax |
|
add edi, 2 |
|
loc_467E83: |
|
sub edi, 320h |
|
add edi, edx |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_467E3D |
|
loc_467E93: |
|
pop ebp |
|
jmp loc_468867 |
|
loc_467E99: |
|
mov edx, 1Eh |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_467EE0 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Dh |
|
jg loc_467ED2 |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_1[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
sub edx, ecx |
|
jmp loc_467EE0 |
|
loc_467ED2: |
|
sub edi, 3000h |
|
add esi, 120h |
|
jmp loc_467F31 |
|
loc_467EE0: |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_467F09 |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
xlat |
|
ror ax, 8 |
|
xlat |
|
ror ax, 8 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_467F26 |
|
loc_467F09: |
|
mov eax, [esi] |
|
add esi, 4 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_467F09 |
|
loc_467F26: |
|
sub edi, 320h |
|
sub edx, 2 |
|
jge loc_467EE0 |
|
loc_467F31: |
|
mov eax, gpDrawMask |
|
sub eax, 40h |
|
mov gpDrawMask, eax |
|
mov edx, 10h |
|
loc_467F43: |
|
cmp edi, gpBufEnd |
|
jb loc_467F53 |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_467F6F |
|
loc_467F53: |
|
push edx |
|
mov eax, gpDrawMask |
|
mov edx, [eax] |
|
mov ecx, 20h |
|
loc_467F60: |
|
mov al, [esi] |
|
inc esi |
|
shl edx, 1 |
|
jnb loc_467F6A |
|
xlat |
|
mov [edi], al |
|
loc_467F6A: |
|
inc edi |
|
dec ecx |
|
jnz loc_467F60 |
|
pop edx |
|
loc_467F6F: |
|
sub edi, 320h |
|
mov eax, gpDrawMask |
|
sub eax, 4 |
|
mov gpDrawMask, eax |
|
dec edx |
|
jnz loc_467F43 |
|
jmp loc_468867 |
|
loc_467F8A: |
|
push ebp |
|
mov edx, 1Eh |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_467FD2 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Dh |
|
jg loc_467FC4 |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_1[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
sub edx, ecx |
|
jmp loc_467FD2 |
|
loc_467FC4: |
|
sub edi, 3000h |
|
add esi, 120h |
|
jmp loc_468025 |
|
loc_467FD2: |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov ebp, ecx |
|
shr ecx, 2 |
|
jz loc_467FFD |
|
loc_467FE0: |
|
mov eax, [esi] |
|
add esi, 4 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
xlat |
|
ror eax, 8 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_467FE0 |
|
loc_467FFD: |
|
and ebp, 2 |
|
jz loc_468018 |
|
mov ax, [esi] |
|
add esi, 4 |
|
xlat |
|
ror ax, 8 |
|
xlat |
|
ror ax, 8 |
|
mov [edi], ax |
|
add edi, 2 |
|
loc_468018: |
|
sub edi, 320h |
|
add edi, edx |
|
sub edx, 2 |
|
jge loc_467FD2 |
|
loc_468025: |
|
mov eax, gpDrawMask |
|
sub eax, 40h |
|
mov gpDrawMask, eax |
|
mov edx, 10h |
|
loc_468037: |
|
cmp edi, gpBufEnd |
|
jb loc_468047 |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_46806A |
|
loc_468047: |
|
push edx |
|
mov eax, gpDrawMask |
|
mov edx, [eax] |
|
mov ecx, 20h |
|
loc_468054: |
|
mov al, [esi] |
|
inc esi |
|
shl edx, 1 |
|
jnb loc_46805E |
|
xlat |
|
mov [edi], al |
|
loc_46805E: |
|
inc edi |
|
dec ecx |
|
jnz loc_468054 |
|
mov ebp, esi |
|
and ebp, 2 |
|
add esi, ebp |
|
pop edx |
|
loc_46806A: |
|
sub edi, 320h |
|
mov eax, gpDrawMask |
|
sub eax, 4 |
|
mov gpDrawMask, eax |
|
dec edx |
|
jnz loc_468037 |
|
pop ebp |
|
jmp loc_468867 |
|
loc_468086: |
|
mov edx, 20h |
|
loc_46808B: |
|
cmp edi, gpBufEnd |
|
jb loc_46809B |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_4680B6 |
|
loc_46809B: |
|
push edx |
|
mov eax, gpDrawMask |
|
mov edx, [eax] |
|
mov ecx, 20h |
|
loc_4680A8: |
|
mov al, [esi] |
|
inc esi |
|
shl edx, 1 |
|
jnb loc_4680B1 |
|
mov [edi], al |
|
loc_4680B1: |
|
inc edi |
|
dec ecx |
|
jnz loc_4680A8 |
|
pop edx |
|
loc_4680B6: |
|
sub edi, 320h |
|
mov eax, gpDrawMask |
|
sub eax, 4 |
|
mov gpDrawMask, eax |
|
dec edx |
|
jnz loc_46808B |
|
jmp loc_468867 |
|
loc_4680D1: |
|
mov ecx, 20h |
|
loc_4680D6: |
|
push ecx |
|
mov eax, gpDrawMask |
|
mov eax, [eax] |
|
mov gdwCurrentMask, eax |
|
mov edx, 20h |
|
loc_4680E8: |
|
xor eax, eax |
|
mov al, [esi] |
|
inc esi |
|
test al, al |
|
js loc_468124 |
|
sub edx, eax |
|
cmp edi, gpBufEnd |
|
jb loc_468101 |
|
add esi, eax |
|
add edi, eax |
|
jmp loc_46811E |
|
loc_468101: |
|
mov ecx, eax |
|
push edx |
|
mov edx, gdwCurrentMask |
|
loc_46810A: |
|
mov al, [esi] |
|
inc esi |
|
shl edx, 1 |
|
jnb loc_468113 |
|
mov [edi], al |
|
loc_468113: |
|
inc edi |
|
dec ecx |
|
jnz loc_46810A |
|
mov gdwCurrentMask, edx |
|
pop edx |
|
loc_46811E: |
|
test edx, edx |
|
jz loc_468141 |
|
jmp loc_4680E8 |
|
loc_468124: |
|
neg al |
|
add edi, eax |
|
mov ecx, eax |
|
and ecx, 1Fh |
|
jz loc_46813D |
|
mov ebx, gdwCurrentMask |
|
shl ebx, cl |
|
mov gdwCurrentMask, ebx |
|
loc_46813D: |
|
sub edx, eax |
|
jnz loc_4680E8 |
|
loc_468141: |
|
pop ecx |
|
sub edi, 320h |
|
mov eax, gpDrawMask |
|
sub eax, 4 |
|
mov gpDrawMask, eax |
|
dec ecx |
|
jnz loc_4680D6 |
|
jmp loc_468867 |
|
loc_468161: |
|
mov edx, 1Eh |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_4681A8 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Dh |
|
jg loc_46819A |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_1[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
sub edx, ecx |
|
jmp loc_4681A8 |
|
loc_46819A: |
|
sub edi, 3000h |
|
add esi, 120h |
|
jmp loc_4681DF |
|
loc_4681A8: |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_4681C7 |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_4681D4 |
|
loc_4681C7: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4681C7 |
|
loc_4681D4: |
|
sub edi, 320h |
|
sub edx, 2 |
|
jge loc_4681A8 |
|
loc_4681DF: |
|
mov edx, 2 |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_468229 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Ah |
|
jg loc_468218 |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_2[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
add edx, ecx |
|
jmp loc_468229 |
|
loc_468218: |
|
sub edi, 2D00h |
|
add esi, 100h |
|
jmp loc_468867 |
|
loc_468229: |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_468248 |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_468255 |
|
loc_468248: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_468248 |
|
loc_468255: |
|
sub edi, 320h |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_468229 |
|
jmp loc_468867 |
|
loc_468268: |
|
push ebp |
|
mov edx, 1Eh |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_4682B0 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Dh |
|
jg loc_4682A2 |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_1[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
sub edx, ecx |
|
jmp loc_4682B0 |
|
loc_4682A2: |
|
sub edi, 3000h |
|
add esi, 120h |
|
jmp loc_4682E9 |
|
loc_4682B0: |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov ebp, ecx |
|
shr ecx, 2 |
|
jz loc_4682CB |
|
loc_4682BE: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4682BE |
|
loc_4682CB: |
|
and ebp, 2 |
|
jz loc_4682DC |
|
mov ax, [esi] |
|
add esi, 4 |
|
mov [edi], ax |
|
add edi, 2 |
|
loc_4682DC: |
|
sub edi, 320h |
|
add edi, edx |
|
sub edx, 2 |
|
jge loc_4682B0 |
|
loc_4682E9: |
|
mov edx, 2 |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_468330 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Ah |
|
jg loc_468322 |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_2[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
add edx, ecx |
|
jmp loc_468330 |
|
loc_468322: |
|
sub edi, 2D00h |
|
add esi, 100h |
|
jmp loc_46836C |
|
loc_468330: |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov ebp, ecx |
|
shr ecx, 2 |
|
jz loc_46834B |
|
loc_46833E: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_46833E |
|
loc_46834B: |
|
and ebp, 2 |
|
jz loc_46835C |
|
mov ax, [esi] |
|
add esi, 4 |
|
mov [edi], ax |
|
add edi, 2 |
|
loc_46835C: |
|
sub edi, 320h |
|
add edi, edx |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_468330 |
|
loc_46836C: |
|
pop ebp |
|
jmp loc_468867 |
|
loc_468372: |
|
mov edx, 1Eh |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_4683B9 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Dh |
|
jg loc_4683AB |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_1[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
sub edx, ecx |
|
jmp loc_4683B9 |
|
loc_4683AB: |
|
sub edi, 3000h |
|
add esi, 120h |
|
jmp loc_4683F0 |
|
loc_4683B9: |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_4683D8 |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_4683E5 |
|
loc_4683D8: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4683D8 |
|
loc_4683E5: |
|
sub edi, 320h |
|
sub edx, 2 |
|
jge loc_4683B9 |
|
loc_4683F0: |
|
mov eax, gpDrawMask |
|
sub eax, 40h |
|
mov gpDrawMask, eax |
|
mov edx, 10h |
|
loc_468402: |
|
cmp edi, gpBufEnd |
|
jb loc_468412 |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_46842D |
|
loc_468412: |
|
push edx |
|
mov eax, gpDrawMask |
|
mov edx, [eax] |
|
mov ecx, 20h |
|
loc_46841F: |
|
mov al, [esi] |
|
inc esi |
|
shl edx, 1 |
|
jnb loc_468428 |
|
mov [edi], al |
|
loc_468428: |
|
inc edi |
|
dec ecx |
|
jnz loc_46841F |
|
pop edx |
|
loc_46842D: |
|
sub edi, 320h |
|
mov eax, gpDrawMask |
|
sub eax, 4 |
|
mov gpDrawMask, eax |
|
dec edx |
|
jnz loc_468402 |
|
jmp loc_468867 |
|
loc_468448: |
|
push ebp |
|
mov edx, 1Eh |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_468490 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Dh |
|
jg loc_468482 |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_1[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
sub edx, ecx |
|
jmp loc_468490 |
|
loc_468482: |
|
sub edi, 3000h |
|
add esi, 120h |
|
jmp loc_4684C9 |
|
loc_468490: |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov ebp, ecx |
|
shr ecx, 2 |
|
jz loc_4684AB |
|
loc_46849E: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_46849E |
|
loc_4684AB: |
|
and ebp, 2 |
|
jz loc_4684BC |
|
mov ax, [esi] |
|
add esi, 4 |
|
mov [edi], ax |
|
add edi, 2 |
|
loc_4684BC: |
|
sub edi, 320h |
|
add edi, edx |
|
sub edx, 2 |
|
jge loc_468490 |
|
loc_4684C9: |
|
mov eax, gpDrawMask |
|
sub eax, 40h |
|
mov gpDrawMask, eax |
|
mov edx, 10h |
|
loc_4684DB: |
|
cmp edi, gpBufEnd |
|
jb loc_4684EB |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_46850D |
|
loc_4684EB: |
|
push edx |
|
mov eax, gpDrawMask |
|
mov edx, [eax] |
|
mov ecx, 20h |
|
loc_4684F8: |
|
mov al, [esi] |
|
inc esi |
|
shl edx, 1 |
|
jnb loc_468501 |
|
mov [edi], al |
|
loc_468501: |
|
inc edi |
|
dec ecx |
|
jnz loc_4684F8 |
|
mov ebp, esi |
|
and ebp, 2 |
|
add esi, ebp |
|
pop edx |
|
loc_46850D: |
|
sub edi, 320h |
|
mov eax, gpDrawMask |
|
sub eax, 4 |
|
mov gpDrawMask, eax |
|
dec edx |
|
jnz loc_4684DB |
|
pop ebp |
|
jmp loc_468867 |
|
loc_468529: |
|
mov edx, 20h |
|
loc_46852E: |
|
cmp edi, gpBufEnd |
|
jb loc_46853E |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_468558 |
|
loc_46853E: |
|
push edx |
|
mov eax, gpDrawMask |
|
mov edx, [eax] |
|
xor eax, eax |
|
mov ecx, 20h |
|
loc_46854D: |
|
shl edx, 1 |
|
jnb loc_468553 |
|
mov [edi], al |
|
loc_468553: |
|
inc edi |
|
dec ecx |
|
jnz loc_46854D |
|
pop edx |
|
loc_468558: |
|
sub edi, 320h |
|
mov eax, gpDrawMask |
|
sub eax, 4 |
|
mov gpDrawMask, eax |
|
dec edx |
|
jnz loc_46852E |
|
jmp loc_468867 |
|
loc_468573: |
|
mov ecx, 20h |
|
loc_468578: |
|
push ecx |
|
mov eax, gpDrawMask |
|
mov eax, [eax] |
|
mov gdwCurrentMask, eax |
|
mov edx, 20h |
|
loc_46858A: |
|
xor eax, eax |
|
mov al, [esi] |
|
inc esi |
|
test al, al |
|
js loc_4685C7 |
|
sub edx, eax |
|
cmp edi, gpBufEnd |
|
jb loc_4685A3 |
|
add esi, eax |
|
add edi, eax |
|
jmp loc_4685C1 |
|
loc_4685A3: |
|
mov ecx, eax |
|
add esi, ecx |
|
push edx |
|
mov edx, gdwCurrentMask |
|
xor eax, eax |
|
loc_4685B0: |
|
shl edx, 1 |
|
jnb loc_4685B6 |
|
mov [edi], al |
|
loc_4685B6: |
|
inc edi |
|
dec ecx |
|
jnz loc_4685B0 |
|
mov gdwCurrentMask, edx |
|
pop edx |
|
loc_4685C1: |
|
test edx, edx |
|
jz loc_4685E4 |
|
jmp loc_46858A |
|
loc_4685C7: |
|
neg al |
|
add edi, eax |
|
mov ecx, eax |
|
and ecx, 1Fh |
|
jz loc_4685E0 |
|
mov ebx, gdwCurrentMask |
|
shl ebx, cl |
|
mov gdwCurrentMask, ebx |
|
loc_4685E0: |
|
sub edx, eax |
|
jnz loc_46858A |
|
loc_4685E4: |
|
pop ecx |
|
sub edi, 320h |
|
mov eax, gpDrawMask |
|
sub eax, 4 |
|
mov gpDrawMask, eax |
|
dec ecx |
|
jnz loc_468578 |
|
jmp loc_468867 |
|
loc_468604: |
|
mov edx, 1Eh |
|
xor eax, eax |
|
loc_46860B: |
|
cmp edi, gpBufEnd |
|
jb loc_46861D |
|
add esi, 20h |
|
sub esi, edx |
|
add edi, 20h |
|
jmp loc_46863D |
|
loc_46861D: |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_468635 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_46863D |
|
loc_468635: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_468635 |
|
loc_46863D: |
|
sub edi, 320h |
|
test edx, edx |
|
jz loc_46864C |
|
sub edx, 2 |
|
jmp loc_46860B |
|
loc_46864C: |
|
mov edx, 2 |
|
loc_468651: |
|
cmp edi, gpBufEnd |
|
jb loc_468663 |
|
add esi, 20h |
|
sub esi, edx |
|
add edi, 20h |
|
jmp loc_468683 |
|
loc_468663: |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_46867B |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_468683 |
|
loc_46867B: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_46867B |
|
loc_468683: |
|
sub edi, 320h |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_468651 |
|
jmp loc_468867 |
|
loc_468696: |
|
mov edx, 1Eh |
|
xor eax, eax |
|
loc_46869D: |
|
cmp edi, gpBufEnd |
|
jb loc_4686B1 |
|
add esi, 20h |
|
sub esi, edx |
|
add edi, 20h |
|
sub edi, edx |
|
jmp loc_4686CF |
|
loc_4686B1: |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_4686C7 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_4686CF |
|
loc_4686C7: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4686C7 |
|
loc_4686CF: |
|
sub edi, 320h |
|
test edx, edx |
|
jz loc_4686E0 |
|
add edi, edx |
|
sub edx, 2 |
|
jmp loc_46869D |
|
loc_4686E0: |
|
mov edx, 2 |
|
loc_4686E5: |
|
cmp edi, gpBufEnd |
|
jb loc_4686F9 |
|
add esi, 20h |
|
sub esi, edx |
|
add edi, 20h |
|
sub edi, edx |
|
jmp loc_468717 |
|
loc_4686F9: |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_46870F |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_468717 |
|
loc_46870F: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_46870F |
|
loc_468717: |
|
sub edi, 320h |
|
add edi, edx |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_4686E5 |
|
jmp loc_468867 |
|
loc_46872C: |
|
mov edx, 1Eh |
|
xor eax, eax |
|
loc_468733: |
|
cmp edi, gpBufEnd |
|
jb loc_468745 |
|
add esi, 20h |
|
sub esi, edx |
|
add edi, 20h |
|
jmp loc_468765 |
|
loc_468745: |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_46875D |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_468765 |
|
loc_46875D: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_46875D |
|
loc_468765: |
|
sub edi, 320h |
|
test edx, edx |
|
jz loc_468774 |
|
sub edx, 2 |
|
jmp loc_468733 |
|
loc_468774: |
|
mov eax, gpDrawMask |
|
sub eax, 40h |
|
mov gpDrawMask, eax |
|
mov edx, 10h |
|
loc_468786: |
|
cmp edi, gpBufEnd |
|
jb loc_468796 |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_4687B0 |
|
loc_468796: |
|
push edx |
|
mov eax, gpDrawMask |
|
mov edx, [eax] |
|
xor eax, eax |
|
mov ecx, 20h |
|
loc_4687A5: |
|
shl edx, 1 |
|
jnb loc_4687AB |
|
mov [edi], al |
|
loc_4687AB: |
|
inc edi |
|
dec ecx |
|
jnz loc_4687A5 |
|
pop edx |
|
loc_4687B0: |
|
sub edi, 320h |
|
mov eax, gpDrawMask |
|
sub eax, 4 |
|
mov gpDrawMask, eax |
|
dec edx |
|
jnz loc_468786 |
|
jmp loc_468867 |
|
loc_4687CB: |
|
mov edx, 1Eh |
|
xor eax, eax |
|
loc_4687D2: |
|
cmp edi, gpBufEnd |
|
jb loc_4687E6 |
|
add esi, 20h |
|
sub esi, edx |
|
add edi, 20h |
|
sub edi, edx |
|
jmp loc_468804 |
|
loc_4687E6: |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_4687FC |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_468804 |
|
loc_4687FC: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4687FC |
|
loc_468804: |
|
sub edi, 320h |
|
test edx, edx |
|
jz loc_468815 |
|
add edi, edx |
|
sub edx, 2 |
|
jmp loc_4687D2 |
|
loc_468815: |
|
mov eax, gpDrawMask |
|
sub eax, 40h |
|
mov gpDrawMask, eax |
|
mov edx, 10h |
|
loc_468827: |
|
cmp edi, gpBufEnd |
|
jb loc_468837 |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_468851 |
|
loc_468837: |
|
push edx |
|
mov eax, gpDrawMask |
|
mov edx, [eax] |
|
xor eax, eax |
|
mov ecx, 20h |
|
loc_468846: |
|
shl edx, 1 |
|
jnb loc_46884C |
|
mov [edi], al |
|
loc_46884C: |
|
inc edi |
|
dec ecx |
|
jnz loc_468846 |
|
pop edx |
|
loc_468851: |
|
sub edi, 320h |
|
mov eax, gpDrawMask |
|
sub eax, 4 |
|
mov gpDrawMask, eax |
|
dec edx |
|
jnz loc_468827 |
|
loc_468867: |
|
pop esi |
|
pop edi |
|
pop ebx |
|
retn |
|
} |
|
} |
|
|
|
__declspec(naked) void drawLowerScreen(BYTE *pBuff) |
|
{ |
|
__asm { |
|
push ebx |
|
push edx |
|
push edi |
|
push esi |
|
mov edx, cel_transparency_active |
|
test edx, edx |
|
jz loc_468918 |
|
mov dl, arch_draw_type |
|
cmp dl, 0 |
|
jnz loc_468892 |
|
call drawTopArchesLowerScreen |
|
jmp loc_4696B9 |
|
loc_468892: |
|
cmp dl, 1 |
|
jnz loc_4688D5 |
|
mov ebx, level_piece_id |
|
mov al, block_lvid[ebx] |
|
cmp al, 1 |
|
jz loc_4688AD |
|
cmp al, 3 |
|
jz loc_4688AD |
|
jmp loc_4688D5 |
|
loc_4688AD: |
|
mov edx, offset LeftMask |
|
add edx, 7Ch |
|
call drawBottomArchesLowerScreen |
|
jmp loc_4696B9 |
|
cmp al, 4 |
|
jnz loc_4688D5 |
|
mov edx, offset RightMask |
|
add edx, 7Ch |
|
call drawBottomArchesLowerScreen |
|
jmp loc_4696B9 |
|
loc_4688D5: |
|
cmp dl, 2 |
|
jnz loc_468918 |
|
mov ebx, level_piece_id |
|
mov al, block_lvid[ebx] |
|
cmp al, 2 |
|
jz loc_4688F0 |
|
cmp al, 3 |
|
jz loc_4688F0 |
|
jmp loc_468918 |
|
loc_4688F0: |
|
mov edx, offset RightMask |
|
add edx, 7Ch |
|
call drawBottomArchesLowerScreen |
|
jmp loc_4696B9 |
|
cmp al, 4 |
|
jnz loc_468918 |
|
mov edx, offset LeftMask |
|
add edx, 7Ch |
|
call drawBottomArchesLowerScreen |
|
jmp loc_4696B9 |
|
loc_468918: |
|
mov edi, offset SpeedFrameTbl |
|
mov gpCelFrame, edi |
|
mov edi, ecx |
|
mov eax, light_table_index |
|
test al, al |
|
jz loc_468A1A |
|
cmp al, lightmax |
|
jz loc_468A78 |
|
mov eax, level_cel_block |
|
and eax, 8000h |
|
jnz loc_4689B0 |
|
mov ebx, pDungeonCels |
|
mov esi, ebx |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 2 |
|
add ebx, eax |
|
add esi, [ebx] |
|
mov ebx, light_table_index |
|
shl ebx, 8 |
|
add ebx, pLightTbl |
|
mov eax, level_cel_block |
|
shr eax, 0Ch |
|
and eax, 0Fh |
|
jz loc_468B03 |
|
cmp ax, 1 |
|
jz loc_468B5B |
|
cmp ax, 2 |
|
jz loc_468C06 |
|
cmp ax, 3 |
|
jz loc_468CEC |
|
cmp ax, 4 |
|
jz loc_468DD2 |
|
jmp loc_468EE2 |
|
loc_4689B0: |
|
mov esi, gpCelFrame |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 4 |
|
add eax, light_table_index |
|
shl eax, 2 |
|
add esi, eax |
|
mov eax, [esi] |
|
mov esi, pSpeedCels |
|
add esi, eax |
|
mov eax, level_cel_block |
|
shr eax, 0Ch |
|
and eax, 0Fh |
|
loc_4689E3: |
|
cmp ax, 8 |
|
jz loc_468FF2 |
|
cmp ax, 9 |
|
jz loc_469027 |
|
cmp ax, 0Ah |
|
jz loc_469099 |
|
cmp ax, 0Bh |
|
jz loc_46919D |
|
cmp ax, 0Ch |
|
jz loc_4692A5 |
|
jmp loc_469358 |
|
loc_468A1A: |
|
mov eax, level_cel_block |
|
and eax, 8000h |
|
jz loc_468A4C |
|
mov esi, gpCelFrame |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 6 |
|
add esi, eax |
|
mov eax, level_cel_block |
|
and eax, 0F000h |
|
add eax, [esi] |
|
mov level_cel_block, eax |
|
loc_468A4C: |
|
mov ebx, pDungeonCels |
|
mov esi, ebx |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 2 |
|
add ebx, eax |
|
add esi, [ebx] |
|
mov eax, level_cel_block |
|
shr eax, 0Ch |
|
and eax, 7 |
|
add eax, 8 |
|
jmp loc_4689E3 |
|
loc_468A78: |
|
mov eax, level_cel_block |
|
and eax, 8000h |
|
jz loc_468AAA |
|
mov esi, gpCelFrame |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 6 |
|
add esi, eax |
|
mov eax, level_cel_block |
|
and eax, 0F000h |
|
add eax, [esi] |
|
mov level_cel_block, eax |
|
loc_468AAA: |
|
mov ebx, pDungeonCels |
|
mov esi, ebx |
|
mov eax, level_cel_block |
|
and eax, 0FFFh |
|
shl eax, 2 |
|
add ebx, eax |
|
add esi, [ebx] |
|
mov eax, level_cel_block |
|
mov al, ah |
|
shr eax, 4 |
|
and eax, 7 |
|
jz loc_46940D |
|
cmp ax, 1 |
|
jz loc_46943F |
|
cmp ax, 2 |
|
jz loc_4694A7 |
|
cmp ax, 3 |
|
jz loc_469539 |
|
cmp ax, 4 |
|
jz loc_4695CF |
|
jmp loc_469644 |
|
loc_468B03: |
|
mov edx, 20h |
|
push ebp |
|
loc_468B09: |
|
push edx |
|
cmp edi, gpBufEnd |
|
jb loc_468B1A |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_468B4B |
|
loc_468B1A: |
|
xor edx, edx |
|
mov ebp, 8 |
|
loc_468B21: |
|
mov eax, [esi] |
|
add esi, 4 |
|
ror eax, 10h |
|
mov dl, al |
|
mov cl, [ebx+edx] |
|
mov dl, ah |
|
mov ch, [ebx+edx] |
|
ror eax, 10h |
|
shl ecx, 10h |
|
mov dl, al |
|
mov cl, [ebx+edx] |
|
mov dl, ah |
|
mov ch, [ebx+edx] |
|
mov [edi], ecx |
|
add edi, 4 |
|
dec ebp |
|
jnz loc_468B21 |
|
loc_468B4B: |
|
sub edi, 320h |
|
pop edx |
|
dec edx |
|
jnz loc_468B09 |
|
pop ebp |
|
jmp loc_4696B9 |
|
loc_468B5B: |
|
push ebp |
|
mov ecx, 20h |
|
loc_468B61: |
|
push ecx |
|
mov ebp, 20h |
|
loc_468B67: |
|
xor eax, eax |
|
mov al, [esi] |
|
inc esi |
|
test al, al |
|
jns loc_468B78 |
|
neg al |
|
add edi, eax |
|
sub ebp, eax |
|
jmp loc_468BEA |
|
loc_468B78: |
|
sub ebp, eax |
|
cmp edi, gpBufEnd |
|
jb loc_468B88 |
|
add esi, eax |
|
add edi, eax |
|
jmp loc_468BEA |
|
loc_468B88: |
|
mov ecx, eax |
|
cmp cl, 4 |
|
jl loc_468BC1 |
|
loc_468B8F: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
ror eax, 10h |
|
mov [edi], ch |
|
mov ch, [ebx+edx] |
|
mov dl, al |
|
mov [edi+1], ch |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
mov [edi+2], ch |
|
mov ch, [ebx+edx] |
|
mov [edi+3], ch |
|
add edi, 4 |
|
sub cl, 4 |
|
cmp cl, 4 |
|
jge loc_468B8F |
|
loc_468BC1: |
|
cmp cl, 2 |
|
jl loc_468BDC |
|
mov dl, [esi] |
|
mov ch, [ebx+edx] |
|
mov [edi], ch |
|
mov dl, [esi+1] |
|
mov ch, [ebx+edx] |
|
mov [edi+1], ch |
|
add esi, 2 |
|
add edi, 2 |
|
loc_468BDC: |
|
and cl, 1 |
|
jz loc_468BEA |
|
mov dl, [esi] |
|
inc esi |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
inc edi |
|
loc_468BEA: |
|
test ebp, ebp |
|
jnz loc_468B67 |
|
pop ecx |
|
sub edi, 320h |
|
dec ecx |
|
jnz loc_468B61 |
|
pop ebp |
|
jmp loc_4696B9 |
|
loc_468C06: |
|
push ebp |
|
mov ebp, 1Eh |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_468C4E |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Dh |
|
jg loc_468C40 |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_1[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
sub ebp, ecx |
|
jmp loc_468C4E |
|
loc_468C40: |
|
sub edi, 3000h |
|
add esi, 120h |
|
jmp loc_468C75 |
|
loc_468C4E: |
|
add edi, ebp |
|
mov ecx, 20h |
|
sub ecx, ebp |
|
mov edx, ecx |
|
and edx, 2 |
|
add esi, edx |
|
loc_468C5E: |
|
mov dl, [esi] |
|
inc esi |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
inc edi |
|
dec ecx |
|
jnz loc_468C5E |
|
sub edi, 320h |
|
sub ebp, 2 |
|
jge loc_468C4E |
|
loc_468C75: |
|
mov ebp, 2 |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_468CBC |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Ah |
|
jg loc_468CAE |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_2[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
add ebp, ecx |
|
jmp loc_468CBC |
|
loc_468CAE: |
|
sub edi, 2D00h |
|
add esi, 100h |
|
jmp loc_468CE6 |
|
loc_468CBC: |
|
add edi, ebp |
|
mov ecx, 20h |
|
sub ecx, ebp |
|
mov edx, ecx |
|
and edx, 2 |
|
add esi, edx |
|
loc_468CCC: |
|
mov dl, [esi] |
|
inc esi |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
inc edi |
|
dec ecx |
|
jnz loc_468CCC |
|
add ebp, 2 |
|
sub edi, 320h |
|
cmp ebp, 20h |
|
jnz loc_468CBC |
|
loc_468CE6: |
|
pop ebp |
|
jmp loc_4696B9 |
|
loc_468CEC: |
|
push ebp |
|
mov ebp, 1Eh |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_468D34 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Dh |
|
jg loc_468D26 |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_1[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
sub ebp, ecx |
|
jmp loc_468D34 |
|
loc_468D26: |
|
sub edi, 3000h |
|
add esi, 120h |
|
jmp loc_468D5B |
|
loc_468D34: |
|
mov ecx, 20h |
|
sub ecx, ebp |
|
loc_468D3B: |
|
mov dl, [esi] |
|
inc esi |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
inc edi |
|
dec ecx |
|
jnz loc_468D3B |
|
mov edx, esi |
|
and edx, 2 |
|
add esi, edx |
|
sub edi, 320h |
|
add edi, ebp |
|
sub ebp, 2 |
|
jge loc_468D34 |
|
loc_468D5B: |
|
mov ebp, 2 |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_468DA2 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Ah |
|
jg loc_468D94 |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_2[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
add ebp, ecx |
|
jmp loc_468DA2 |
|
loc_468D94: |
|
sub edi, 2D00h |
|
add esi, 100h |
|
jmp loc_468DCC |
|
loc_468DA2: |
|
mov ecx, 20h |
|
sub ecx, ebp |
|
loc_468DA9: |
|
mov dl, [esi] |
|
inc esi |
|
mov dl, [ebx+edx] |
|
mov [edi], dl |
|
inc edi |
|
dec ecx |
|
jnz loc_468DA9 |
|
mov edx, esi |
|
and edx, 2 |
|
add esi, edx |
|
sub edi, 320h |
|
add edi, ebp |
|
add ebp, 2 |
|
cmp ebp, 20h |
|
jnz loc_468DA2 |
|
loc_468DCC: |
|
pop ebp |
|
jmp loc_4696B9 |
|
loc_468DD2: |
|
push ebp |
|
mov ebp, 1Eh |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_468E1A |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Dh |
|
jg loc_468E0C |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_1[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
sub ebp, ecx |
|
jmp loc_468E1A |
|
loc_468E0C: |
|
sub edi, 3000h |
|
add esi, 120h |
|
jmp loc_468E87 |
|
loc_468E1A: |
|
add edi, ebp |
|
mov ecx, 20h |
|
sub ecx, ebp |
|
mov edx, ecx |
|
and edx, 2 |
|
add esi, edx |
|
cmp cl, 4 |
|
jl loc_468E61 |
|
loc_468E2F: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
ror eax, 10h |
|
mov [edi], ch |
|
mov ch, [ebx+edx] |
|
mov dl, al |
|
mov [edi+1], ch |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
mov [edi+2], ch |
|
mov ch, [ebx+edx] |
|
mov [edi+3], ch |
|
add edi, 4 |
|
sub cl, 4 |
|
cmp cl, 4 |
|
jge loc_468E2F |
|
loc_468E61: |
|
cmp cl, 2 |
|
jl loc_468E7C |
|
mov dl, [esi] |
|
mov ch, [ebx+edx] |
|
mov [edi], ch |
|
mov dl, [esi+1] |
|
mov ch, [ebx+edx] |
|
mov [edi+1], ch |
|
add esi, 2 |
|
add edi, 2 |
|
loc_468E7C: |
|
sub edi, 320h |
|
sub ebp, 2 |
|
jge loc_468E1A |
|
loc_468E87: |
|
mov ebp, 10h |
|
loc_468E8C: |
|
cmp edi, gpBufEnd |
|
jb loc_468E9C |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_468ED3 |
|
loc_468E9C: |
|
mov ecx, 20h |
|
loc_468EA1: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
ror eax, 10h |
|
mov [edi], ch |
|
mov ch, [ebx+edx] |
|
mov dl, al |
|
mov [edi+1], ch |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
mov [edi+2], ch |
|
mov ch, [ebx+edx] |
|
mov [edi+3], ch |
|
add edi, 4 |
|
sub cl, 4 |
|
cmp cl, 4 |
|
jge loc_468EA1 |
|
loc_468ED3: |
|
sub edi, 320h |
|
dec ebp |
|
jnz loc_468E8C |
|
pop ebp |
|
jmp loc_4696B9 |
|
loc_468EE2: |
|
push ebp |
|
mov ebp, 1Eh |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_468F2A |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Dh |
|
jg loc_468F1C |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_1[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
sub ebp, ecx |
|
jmp loc_468F2A |
|
loc_468F1C: |
|
sub edi, 3000h |
|
add esi, 120h |
|
jmp loc_468F97 |
|
loc_468F2A: |
|
mov ecx, 20h |
|
sub ecx, ebp |
|
cmp cl, 4 |
|
jl loc_468F68 |
|
loc_468F36: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
ror eax, 10h |
|
mov [edi], ch |
|
mov ch, [ebx+edx] |
|
mov dl, al |
|
mov [edi+1], ch |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
mov [edi+2], ch |
|
mov ch, [ebx+edx] |
|
mov [edi+3], ch |
|
add edi, 4 |
|
sub cl, 4 |
|
cmp cl, 4 |
|
jge loc_468F36 |
|
loc_468F68: |
|
cmp cl, 2 |
|
jl loc_468F83 |
|
mov dl, [esi] |
|
mov ch, [ebx+edx] |
|
mov [edi], ch |
|
mov dl, [esi+1] |
|
mov ch, [ebx+edx] |
|
mov [edi+1], ch |
|
add esi, 2 |
|
add edi, 2 |
|
loc_468F83: |
|
mov edx, esi |
|
and edx, 2 |
|
add esi, edx |
|
sub edi, 320h |
|
add edi, ebp |
|
sub ebp, 2 |
|
jge loc_468F2A |
|
loc_468F97: |
|
mov ebp, 10h |
|
loc_468F9C: |
|
cmp edi, gpBufEnd |
|
jb loc_468FAC |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_468FE3 |
|
loc_468FAC: |
|
mov ecx, 20h |
|
loc_468FB1: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov dl, al |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
ror eax, 10h |
|
mov [edi], ch |
|
mov ch, [ebx+edx] |
|
mov dl, al |
|
mov [edi+1], ch |
|
mov ch, [ebx+edx] |
|
mov dl, ah |
|
mov [edi+2], ch |
|
mov ch, [ebx+edx] |
|
mov [edi+3], ch |
|
add edi, 4 |
|
sub cl, 4 |
|
cmp cl, 4 |
|
jge loc_468FB1 |
|
loc_468FE3: |
|
sub edi, 320h |
|
dec ebp |
|
jnz loc_468F9C |
|
pop ebp |
|
jmp loc_4696B9 |
|
loc_468FF2: |
|
mov edx, 20h |
|
loc_468FF7: |
|
cmp edi, gpBufEnd |
|
jb loc_469007 |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_469019 |
|
loc_469007: |
|
mov ecx, 8 |
|
loc_46900C: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_46900C |
|
loc_469019: |
|
sub edi, 320h |
|
dec edx |
|
jnz loc_468FF7 |
|
jmp loc_4696B9 |
|
loc_469027: |
|
mov ecx, 20h |
|
loc_46902C: |
|
push ecx |
|
mov edx, 20h |
|
loc_469032: |
|
xor eax, eax |
|
mov al, [esi] |
|
inc esi |
|
test al, al |
|
js loc_469082 |
|
sub edx, eax |
|
cmp edi, gpBufEnd |
|
jb loc_46904B |
|
add esi, eax |
|
add edi, eax |
|
jmp loc_46907C |
|
loc_46904B: |
|
mov ecx, eax |
|
shr ecx, 1 |
|
jnb loc_46905B |
|
mov al, [esi] |
|
inc esi |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_46907C |
|
loc_46905B: |
|
shr ecx, 1 |
|
jnb loc_46906F |
|
mov ax, [esi] |
|
add esi, 2 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_46907C |
|
loc_46906F: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_46906F |
|
loc_46907C: |
|
test edx, edx |
|
jz loc_46908A |
|
jmp loc_469032 |
|
loc_469082: |
|
neg al |
|
add edi, eax |
|
sub edx, eax |
|
jnz loc_469032 |
|
loc_46908A: |
|
pop ecx |
|
sub edi, 320h |
|
dec ecx |
|
jnz loc_46902C |
|
jmp loc_4696B9 |
|
loc_469099: |
|
mov edx, 1Eh |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_4690E0 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Dh |
|
jg loc_4690D2 |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_1[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
sub edx, ecx |
|
jmp loc_4690E0 |
|
loc_4690D2: |
|
sub edi, 3000h |
|
add esi, 120h |
|
jmp loc_469117 |
|
loc_4690E0: |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_4690FF |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_46910C |
|
loc_4690FF: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4690FF |
|
loc_46910C: |
|
sub edi, 320h |
|
sub edx, 2 |
|
jge loc_4690E0 |
|
loc_469117: |
|
mov edx, 2 |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_46915E |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Ah |
|
jg loc_469150 |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_2[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
add edx, ecx |
|
jmp loc_46915E |
|
loc_469150: |
|
sub edi, 2D00h |
|
add esi, 100h |
|
jmp loc_469198 |
|
loc_46915E: |
|
mov ecx, 20h |
|
add edi, edx |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_46917D |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_46918A |
|
loc_46917D: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_46917D |
|
loc_46918A: |
|
add edx, 2 |
|
sub edi, 320h |
|
cmp edx, 20h |
|
jl loc_46915E |
|
loc_469198: |
|
jmp loc_4696B9 |
|
loc_46919D: |
|
mov edx, 1Eh |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_4691E4 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Dh |
|
jg loc_4691D6 |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_1[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
sub edx, ecx |
|
jmp loc_4691E4 |
|
loc_4691D6: |
|
sub edi, 3000h |
|
add esi, 120h |
|
jmp loc_46921D |
|
loc_4691E4: |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov ebx, ecx |
|
shr ecx, 2 |
|
jz loc_4691FF |
|
loc_4691F2: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4691F2 |
|
loc_4691FF: |
|
and ebx, 2 |
|
jz loc_469210 |
|
mov ax, [esi] |
|
add esi, 4 |
|
mov [edi], ax |
|
add edi, 2 |
|
loc_469210: |
|
add edi, edx |
|
sub edi, 320h |
|
sub edx, 2 |
|
jge loc_4691E4 |
|
loc_46921D: |
|
mov edx, 2 |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_469264 |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Ah |
|
jg loc_469256 |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_2[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
add edx, ecx |
|
jmp loc_469264 |
|
loc_469256: |
|
sub edi, 2D00h |
|
add esi, 100h |
|
jmp loc_4692A0 |
|
loc_469264: |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov ebx, ecx |
|
shr ecx, 2 |
|
jz loc_46927F |
|
loc_469272: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_469272 |
|
loc_46927F: |
|
and ebx, 2 |
|
jz loc_469290 |
|
mov ax, [esi] |
|
add esi, 4 |
|
mov [edi], ax |
|
add edi, 2 |
|
loc_469290: |
|
add edi, edx |
|
add edx, 2 |
|
sub edi, 320h |
|
cmp edx, 20h |
|
jl loc_469264 |
|
loc_4692A0: |
|
jmp loc_4696B9 |
|
loc_4692A5: |
|
mov edx, 1Eh |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_4692EC |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Dh |
|
jg loc_4692DE |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_1[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
sub edx, ecx |
|
jmp loc_4692EC |
|
loc_4692DE: |
|
sub edi, 3000h |
|
add esi, 120h |
|
jmp loc_469323 |
|
loc_4692EC: |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_46930B |
|
mov ax, [esi+2] |
|
add esi, 4 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_469318 |
|
loc_46930B: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_46930B |
|
loc_469318: |
|
sub edi, 320h |
|
sub edx, 2 |
|
jge loc_4692EC |
|
loc_469323: |
|
mov edx, 10h |
|
loc_469328: |
|
cmp edi, gpBufEnd |
|
jb loc_469338 |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_46934A |
|
loc_469338: |
|
mov ecx, 8 |
|
loc_46933D: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_46933D |
|
loc_46934A: |
|
sub edi, 320h |
|
dec edx |
|
jnz loc_469328 |
|
jmp loc_4696B9 |
|
loc_469358: |
|
mov edx, 1Eh |
|
mov eax, edi |
|
sub eax, gpBufEnd |
|
jb loc_46939F |
|
add eax, 3FFh |
|
shr eax, 8 |
|
cmp eax, 2Dh |
|
jg loc_469391 |
|
mov ecx, WorldTbl3x16[eax*4] |
|
mov eax, ecx |
|
add esi, WorldTbl17_1[ecx] |
|
shl eax, 6 |
|
lea eax, [eax+eax*2] |
|
shr ecx, 1 |
|
sub edi, eax |
|
sub edx, ecx |
|
jmp loc_46939F |
|
loc_469391: |
|
sub edi, 3000h |
|
add esi, 120h |
|
jmp loc_4693D8 |
|
loc_46939F: |
|
mov ecx, 20h |
|
sub ecx, edx |
|
mov ebx, ecx |
|
shr ecx, 2 |
|
jz loc_4693BA |
|
loc_4693AD: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4693AD |
|
loc_4693BA: |
|
and ebx, 2 |
|
jz loc_4693CB |
|
mov ax, [esi] |
|
add esi, 4 |
|
mov [edi], ax |
|
add edi, 2 |
|
loc_4693CB: |
|
sub edi, 320h |
|
add edi, edx |
|
sub edx, 2 |
|
jge loc_46939F |
|
loc_4693D8: |
|
mov edx, 10h |
|
loc_4693DD: |
|
cmp edi, gpBufEnd |
|
jb loc_4693ED |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_4693FF |
|
loc_4693ED: |
|
mov ecx, 8 |
|
loc_4693F2: |
|
mov eax, [esi] |
|
add esi, 4 |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4693F2 |
|
loc_4693FF: |
|
sub edi, 320h |
|
dec edx |
|
jnz loc_4693DD |
|
jmp loc_4696B9 |
|
loc_46940D: |
|
mov edx, 20h |
|
xor eax, eax |
|
loc_469414: |
|
cmp edi, gpBufEnd |
|
jb loc_469424 |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_469431 |
|
loc_469424: |
|
mov ecx, 8 |
|
loc_469429: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_469429 |
|
loc_469431: |
|
sub edi, 320h |
|
dec edx |
|
jnz loc_469414 |
|
jmp loc_4696B9 |
|
loc_46943F: |
|
mov ecx, 20h |
|
loc_469444: |
|
push ecx |
|
mov edx, 20h |
|
loc_46944A: |
|
xor eax, eax |
|
mov al, [esi] |
|
inc esi |
|
test al, al |
|
js loc_469490 |
|
sub edx, eax |
|
cmp edi, gpBufEnd |
|
jb loc_469463 |
|
add esi, eax |
|
add edi, eax |
|
jmp loc_46948A |
|
loc_469463: |
|
mov ecx, eax |
|
add esi, ecx |
|
xor eax, eax |
|
shr ecx, 1 |
|
jnb loc_469474 |
|
mov [edi], al |
|
inc edi |
|
test ecx, ecx |
|
jz loc_46948A |
|
loc_469474: |
|
shr ecx, 1 |
|
jnb loc_469482 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_46948A |
|
loc_469482: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_469482 |
|
loc_46948A: |
|
test edx, edx |
|
jz loc_469498 |
|
jmp loc_46944A |
|
loc_469490: |
|
neg al |
|
add edi, eax |
|
sub edx, eax |
|
jnz loc_46944A |
|
loc_469498: |
|
pop ecx |
|
sub edi, 320h |
|
dec ecx |
|
jnz loc_469444 |
|
jmp loc_4696B9 |
|
loc_4694A7: |
|
mov edx, 1Eh |
|
xor eax, eax |
|
loc_4694AE: |
|
cmp edi, gpBufEnd |
|
jb loc_4694C0 |
|
add esi, 20h |
|
sub esi, edx |
|
add edi, 20h |
|
jmp loc_4694E0 |
|
loc_4694C0: |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_4694D8 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_4694E0 |
|
loc_4694D8: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4694D8 |
|
loc_4694E0: |
|
sub edi, 320h |
|
test edx, edx |
|
jz loc_4694EF |
|
sub edx, 2 |
|
jmp loc_4694AE |
|
loc_4694EF: |
|
mov edx, 2 |
|
loc_4694F4: |
|
cmp edi, gpBufEnd |
|
jb loc_469506 |
|
add esi, 20h |
|
sub esi, edx |
|
add edi, 20h |
|
jmp loc_469526 |
|
loc_469506: |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_46951E |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_469526 |
|
loc_46951E: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_46951E |
|
loc_469526: |
|
sub edi, 320h |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_4694F4 |
|
jmp loc_4696B9 |
|
loc_469539: |
|
mov edx, 1Eh |
|
xor eax, eax |
|
loc_469540: |
|
cmp edi, gpBufEnd |
|
jb loc_469554 |
|
add esi, 20h |
|
sub esi, edx |
|
add edi, 20h |
|
sub edi, edx |
|
jmp loc_469572 |
|
loc_469554: |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_46956A |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_469572 |
|
loc_46956A: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_46956A |
|
loc_469572: |
|
sub edi, 320h |
|
test edx, edx |
|
jz loc_469583 |
|
add edi, edx |
|
sub edx, 2 |
|
jmp loc_469540 |
|
loc_469583: |
|
mov edx, 2 |
|
loc_469588: |
|
cmp edi, gpBufEnd |
|
jb loc_46959C |
|
add esi, 20h |
|
sub esi, edx |
|
add edi, 20h |
|
sub edi, edx |
|
jmp loc_4695BA |
|
loc_46959C: |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_4695B2 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_4695BA |
|
loc_4695B2: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4695B2 |
|
loc_4695BA: |
|
sub edi, 320h |
|
add edi, edx |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_469588 |
|
jmp loc_4696B9 |
|
loc_4695CF: |
|
mov edx, 1Eh |
|
xor eax, eax |
|
loc_4695D6: |
|
cmp edi, gpBufEnd |
|
jb loc_4695E8 |
|
add esi, 20h |
|
sub esi, edx |
|
add edi, 20h |
|
jmp loc_469608 |
|
loc_4695E8: |
|
add edi, edx |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_469600 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_469608 |
|
loc_469600: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_469600 |
|
loc_469608: |
|
sub edi, 320h |
|
test edx, edx |
|
jz loc_469617 |
|
sub edx, 2 |
|
jmp loc_4695D6 |
|
loc_469617: |
|
mov edx, 10h |
|
loc_46961C: |
|
cmp edi, gpBufEnd |
|
jb loc_46962C |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_469639 |
|
loc_46962C: |
|
mov ecx, 8 |
|
loc_469631: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_469631 |
|
loc_469639: |
|
sub edi, 320h |
|
dec edx |
|
jnz loc_46961C |
|
jmp loc_4696B9 |
|
loc_469644: |
|
mov edx, 1Eh |
|
xor eax, eax |
|
loc_46964B: |
|
cmp edi, gpBufEnd |
|
jb loc_46965F |
|
add esi, 20h |
|
sub esi, edx |
|
add edi, 20h |
|
sub edi, edx |
|
jmp loc_46967D |
|
loc_46965F: |
|
mov ecx, 20h |
|
sub ecx, edx |
|
shr ecx, 2 |
|
jnb loc_469675 |
|
mov [edi], ax |
|
add edi, 2 |
|
test ecx, ecx |
|
jz loc_46967D |
|
loc_469675: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_469675 |
|
loc_46967D: |
|
sub edi, 320h |
|
test edx, edx |
|
jz loc_46968E |
|
add edi, edx |
|
sub edx, 2 |
|
jmp loc_46964B |
|
loc_46968E: |
|
mov edx, 10h |
|
loc_469693: |
|
cmp edi, gpBufEnd |
|
jb loc_4696A3 |
|
add esi, 20h |
|
add edi, 20h |
|
jmp loc_4696B0 |
|
loc_4696A3: |
|
mov ecx, 8 |
|
loc_4696A8: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4696A8 |
|
loc_4696B0: |
|
sub edi, 320h |
|
dec edx |
|
jnz loc_469693 |
|
loc_4696B9: |
|
pop esi |
|
pop edi |
|
pop edx |
|
pop ebx |
|
retn |
|
} |
|
} |
|
|
|
__declspec(naked) void world_draw_black_tile(BYTE *pBuff) |
|
{ |
|
__asm { |
|
push ebx |
|
push edx |
|
push edi |
|
push esi |
|
mov edi, ecx |
|
mov edx, 1Eh |
|
mov ebx, 1 |
|
xor eax, eax |
|
loc_4696D0: |
|
add edi, edx |
|
mov ecx, ebx |
|
loc_4696D4: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4696D4 |
|
add edi, edx |
|
sub edi, 340h |
|
test edx, edx |
|
jz loc_4696EE |
|
sub edx, 2 |
|
inc ebx |
|
jmp loc_4696D0 |
|
loc_4696EE: |
|
mov edx, 2 |
|
mov ebx, 0Fh |
|
loc_4696F8: |
|
add edi, edx |
|
mov ecx, ebx |
|
loc_4696FC: |
|
mov [edi], eax |
|
add edi, 4 |
|
dec ecx |
|
jnz loc_4696FC |
|
add edi, edx |
|
sub edi, 340h |
|
dec ebx |
|
add edx, 2 |
|
cmp edx, 20h |
|
jnz loc_4696F8 |
|
pop esi |
|
pop edi |
|
pop edx |
|
pop ebx |
|
retn |
|
} |
|
}
|
|
|