diff options
author | Iru Cai <mytbk920423@gmail.com> | 2018-09-29 10:31:09 +0800 |
---|---|---|
committer | Iru Cai <mytbk920423@gmail.com> | 2018-09-29 10:31:09 +0800 |
commit | d73b9944848e8cd544564ecb0dd0ec96710237bb (patch) | |
tree | 12515455b04431dcfa0d1fb0b36e3dda33bab81a /csrc/mkf_asm.asm | |
parent | d02dbcac9d53d84a8b0c8b5a46479dd87a37ae93 (diff) | |
download | rich4-d73b9944848e8cd544564ecb0dd0ec96710237bb.tar.xz |
name mkf_00455040 as mkf_decompress
Now it's a correct implementation, tested with dump_600
Diffstat (limited to 'csrc/mkf_asm.asm')
-rw-r--r-- | csrc/mkf_asm.asm | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/csrc/mkf_asm.asm b/csrc/mkf_asm.asm deleted file mode 100644 index 7a5d0b6..0000000 --- a/csrc/mkf_asm.asm +++ /dev/null @@ -1,88 +0,0 @@ -section .text -global fcn_00455040 -extern table_483430 -extern table_483530 -extern data_483630 -extern gtables -extern cfcn_45511b -extern cfcn_004550cc -extern cfcn_00455109 -extern cfcn_004551bb -extern cfcn_00455040 - -fcn_00455040: -jmp cfcn_00455040 -push ebp -mov ebp, esp -push ebx -push ecx -push esi -push edi -sub esp, 8 -mov esi, data_483630 -mov edi, gtables -mov ecx, 0x463 ; 1123 -rep movsd -mov edi, dword [ebp + 8] ; [0x8:4]=-1 ; 8 -mov esi, dword [ebp + 0xc] ; [0xc:4]=-1 ; 12 -xor edx, edx - -L0: - -mov [esp+4], ebx -mov [esp], ecx -lea eax, [esp+4] -push eax -lea eax, [esp+4] -push eax -push esi -call cfcn_004551bb -add esp, 12 -mov ecx, [esp] -mov ebx, [esp+4] - -or bh, bh -jne L1 -mov byte [edi], bl -inc edi -jmp L0 -L1: -mov eax, ecx -push ecx -shr eax, 3 -and ecx, 7 -mov eax, dword [esi + eax] -shr eax, cl -mov ebp, eax -and ebp, 0xff -mov cl, byte [ebp + table_483530] -mov dh, byte [ebp + table_483430] -shr eax, cl -mov dl, al -shl dl, 2 -shr dx, 2 -add cl, 6 -mov eax, ecx -and eax, 0xff -pop ecx -add ecx, eax -cmp dx, 0xfff -je L2 -mov ebp, ecx -sub ebx, 0xfd -push esi -lea esi, [edi - 1] -sub esi, edx -mov ecx, ebx -rep movsb -pop esi -mov ecx, ebp -jmp L0 -L2: -add esp, 8 -pop edi -pop esi -pop ecx -pop ebx -pop ebp -ret |