mirror of
https://github.com/galaxyhaxz/devilution
synced 2025-02-22 12:34:59 +00:00
10251 lines
161 KiB
C++
10251 lines
161 KiB
C++
__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
|
|
}
|
|
}
|