📄 a.c
字号:
eaxedx = ((unsigned __int64) esi); eaxedx = ((eaxedx >> hxsiz_val) << 32) & 0xFFFFFFFF00000000 | edx; eaxedx <<= hysiz4; eax = ((eaxedx & 0xFFFFFFFF00000000) >> 32); ecx = ((ecx & 0xFFFFFF00) | hoffs_val[eax]); esi -= asm1; edx -= asm2; *((char *) edi) = pal_val[ecx]; edi--; ebp--; } /* if */ } /* if */ if ((edi & 1) == 0) { eax = esi >> hxsiz_val; eaxedx = ((((unsigned __int64) eax) << 32) | edx) << hysiz_val; eax = ((eaxedx & 0xFFFFFFFF00000000) >> 32); ecx = ((ecx & 0xFFFFFF00) | hoffs_val[eax]); ebx = ((ebx & 0xFFFFFF00) | pal_val[ecx]); esi -= asm1; edx -= asm2; *((char *) edi) = pal_val[ecx]; edi--; ebp--; } /* if */ if ((edi & 2) == 0) { eax = esi >> hxsiz_val; eaxedx = ((((unsigned __int64) eax) << 32) | edx) << hysiz_val; eax = ((eaxedx & 0xFFFFFFFF00000000) >> 32); ecx = ((ecx & 0xFFFFFF00) | hoffs_val[eax]); ebx = ((ebx & 0x00FFFFFF) | pal_val[ecx] << 24); esi -= asm1; edx -= asm2; *(((char *) edi) - 1) = pal_val[ecx]; edi -= 2; ebp -= 2; } /* if */ eax = esi >> (32 - machxbits_val); esi <<= machxbits_val; edx = (edx & 0xFFFFFFF00) | (eax & 0x000000FF); edi++; if (ebx >= 0xFFFF) goto beginhline64; eax = asm1; /* !!! NOT DONE! */} /* hlineasm4 *//* Used in Pentium II/Pentium Pro overlay. --ryan. ;eax: 00000000 00000000 00000000 temp---- ;ebx: 00000000 00000000 00000000 temp---- ;ecx: UUUUUUuu uuuuuuuu uuuuuuuu uuuuuuuu ;edx: VVVVVVvv vvvvvvvv vvvvvvvv vvvvvvvv ;esi: cnt----- -------- -------- -------- ;edi: vid----- -------- -------- -------- ;ebp: paloffs- -------- -------- -------- ;esp: ???????? ???????? ???????? ????????ALIGN 16PUBLIC prohlineasm4_prohlineasm4_: push ebp lea ebp, [ecx+88888888h]prohpala: mov ecx, esi lea esi, [eax+1] sub edi, esiprohbeg: mov eax, ecx shr eax, 20prohshru: mov ebx, edx shr ebx, 26prohshrv: and eax, 88888888hprohand: movzx eax, byte ptr [eax+ebx+88888888h]prohbuf: mov al, [eax+ebp] sub ecx, _asm1 sub edx, _asm2 mov [edi+esi], al dec esi jnz prohbeg pop ebp ret*/long prohlineasm4 (long eax, long ebx, long ecx, long edx, long esi, long edi){ fprintf(stderr, "STUB: prohlineasm4() %s line %d\n",__FILE__,__LINE__); return(0);}/*ALIGN 16PUBLIC setupvlineasm_setupvlineasm_: ;First 2 lines for VLINEASM1, rest for VLINEASM4 mov byte ptr [premach3a+2], al mov byte ptr [mach3a+2], al push ecx mov byte ptr [machvsh1+2], al ;32-shy mov byte ptr [machvsh3+2], al ;32-shy mov byte ptr [machvsh5+2], al ;32-shy mov byte ptr [machvsh6+2], al ;32-shy mov ah, al sub ah, 16 mov byte ptr [machvsh8+2], ah ;16-shy neg al mov byte ptr [machvsh7+2], al ;shy mov byte ptr [machvsh9+2], al ;shy mov byte ptr [machvsh10+2], al ;shy mov byte ptr [machvsh11+2], al ;shy mov byte ptr [machvsh12+2], al ;shy mov cl, al mov eax, 1 shl eax, cl dec eax mov dword ptr [machvsh2+2], eax ;(1<<shy)-1 mov dword ptr [machvsh4+2], eax ;(1<<shy)-1 pop ecx ret*/long setupvlineasm (long eax){ fprintf(stderr, "STUB: setupvlineasm() %s line %d\n",__FILE__,__LINE__); return (0);}/* Used in Pentium II/Pentium Pro overlay. --ryan.ALIGN 16PUBLIC prosetupvlineasm_prosetupvlineasm_: ;First 2 lines for VLINEASM1, rest for VLINEASM4 mov byte ptr [premach3a+2], al mov byte ptr [mach3a+2], al push ecx mov byte ptr [promachvsh1+2], al ;32-shy mov byte ptr [promachvsh3+2], al ;32-shy mov byte ptr [promachvsh5+2], al ;32-shy mov byte ptr [promachvsh6+2], al ;32-shy mov ah, al sub ah, 16 mov byte ptr [promachvsh8+2], ah ;16-shy neg al mov byte ptr [promachvsh7+2], al ;shy mov byte ptr [promachvsh9+2], al ;shy mov byte ptr [promachvsh10+2], al ;shy mov byte ptr [promachvsh11+2], al ;shy mov byte ptr [promachvsh12+2], al ;shy mov cl, al mov eax, 1 shl eax, cl dec eax mov dword ptr [promachvsh2+2], eax ;(1<<shy)-1 mov dword ptr [promachvsh4+2], eax ;(1<<shy)-1 pop ecx ret*/long prosetupvlineasm (long eax){ fprintf(stderr, "STUB: prosetupvlineasm() %s line %d\n",__FILE__,__LINE__); return (0);}/*ALIGN 16PUBLIC setupmvlineasm_setupmvlineasm_: mov byte ptr [maskmach3a+2], al mov byte ptr [machmv13+2], al mov byte ptr [machmv14+2], al mov byte ptr [machmv15+2], al mov byte ptr [machmv16+2], al ret*/long setupmvlineasm (long eax){ fprintf(stderr, "STUB: setupmvlineasm() %s line %d\n",__FILE__,__LINE__); return (0);}/*ALIGN 16PUBLIC setuptvlineasm_setuptvlineasm_: mov byte ptr [transmach3a+2], al ret*/long setuptvlineasm (long eax, long ebx, long ecx){ fprintf(stderr, "STUB: setuptvlineasm() %s line %d\n",__FILE__,__LINE__); return (0);}/*ALIGN 16PUBLIC prevlineasm1_prevlineasm1_: test ecx, ecx jnz vlineasm1_ add eax, edxpremach3a: shr edx, 32 mov dl, byte ptr [esi+edx] mov cl, byte ptr [ebx+edx] mov byte ptr [edi], cl ret*/long prevlineasm1 (long eax, long ebx, long ecx, long edx, long esi, long edi){ fprintf(stderr, "STUB: prevlineasm1() %s line %d\n",__FILE__,__LINE__); return (0);}/*ALIGN 16PUBLIC vlineasm1_vlineasm1_: push ebp mov ebp, ebx inc ecxfixchain1a: sub edi, 320beginvline: mov ebx, edxmach3a: shr ebx, 32fixchain1b: add edi, 320 mov bl, byte ptr [esi+ebx] add edx, eax dec ecx mov bl, byte ptr [ebp+ebx] mov byte ptr [edi], bl jnz short beginvline pop ebp mov eax, edx ret*/long vlineasm1 (long eax, long ebx, long ecx, long edx, long esi, long edi){ fprintf(stderr, "STUB: vlineasm1() %s line %d\n",__FILE__,__LINE__); return (0);}/*ALIGN 16PUBLIC mvlineasm1_ ;Masked vlinemvlineasm1_: push ebp mov ebp, ebxbeginmvline: mov ebx, edxmaskmach3a: shr ebx, 32 mov bl, byte ptr [esi+ebx] cmp bl, 255 je short skipmask1maskmach3c: mov bl, [ebp+ebx] mov byte ptr [edi], blskipmask1: add edx, eaxfixchain1m: add edi, 320 sub ecx, 1 jnc short beginmvline pop ebp mov eax, edx ret*/long mvlineasm1 (long eax, long ebx, long ecx, long edx, long esi, long edi){ fprintf(stderr, "STUB: mvlineasm1() %s line %d\n",__FILE__,__LINE__); return (0);}/*ALIGN 16PUBLIC fixtransluscence_fixtransluscence_: mov dword ptr [transmach4+2], eax mov dword ptr [tmach1+2], eax mov dword ptr [tmach2+2], eax mov dword ptr [tmach3+2], eax mov dword ptr [tmach4+2], eax mov dword ptr [tran2traa+2], eax mov dword ptr [tran2trab+2], eax mov dword ptr [tran2trac+2], eax mov dword ptr [tran2trad+2], eax ret*/long fixtransluscence (long eax){ fprintf (stderr, "STUB: fixtransluscence() %s line %d\n",__FILE__,__LINE__); return (0);}/*ALIGN 16PUBLIC settransnormal_settransnormal_: mov byte ptr [transrev0+1], 83h mov byte ptr [transrev1+1], 27h mov byte ptr [transrev2+1], 3fh mov byte ptr [transrev3+1], 98h mov byte ptr [transrev4+1], 90h mov byte ptr [transrev5+1], 37h mov byte ptr [transrev6+1], 90h mov word ptr [transrev7+0], 0f38ah mov byte ptr [transrev8+1], 90h mov word ptr [transrev9+0], 0f78ah mov byte ptr [transrev10+1], 0a7h mov byte ptr [transrev11+1], 81h mov byte ptr [transrev12+2], 9fh mov word ptr [transrev13+0], 0dc88h mov byte ptr [transrev14+1], 81h mov byte ptr [transrev15+1], 9ah mov byte ptr [transrev16+1], 0a7h mov byte ptr [transrev17+1], 82h ret*/long settransnormal (void){ fprintf (stderr, "STUB: settransnormal() %s line %d\n", __FILE__,__LINE__); return (0);}/*ALIGN 16PUBLIC settransreverse_settransreverse_: mov byte ptr [transrev0+1], 0a3h mov byte ptr [transrev1+1], 7h mov byte ptr [transrev2+1], 1fh mov byte ptr [transrev3+1], 0b8h mov byte ptr [transrev4+1], 0b0h mov byte ptr [transrev5+1], 17h mov byte ptr [transrev6+1], 0b0h mov word ptr [transrev7+0], 0d38ah mov byte ptr [transrev8+1], 0b0h mov word ptr [transrev9+0], 0d78ah mov byte ptr [transrev10+1], 87h mov byte ptr [transrev11+1], 0a1h mov byte ptr [transrev12+2], 87h mov word ptr [transrev13+0], 0e388h mov byte ptr [transrev14+1], 0a1h mov byte ptr [transrev15+1], 0bah mov byte ptr [transrev16+1], 87h mov byte ptr [transrev17+1], 0a2h ret*/long settransreverse (void){ fprintf (stderr, "STUB: settransreverse() %s line %d\n", __FILE__,__LINE__); return (0);}/*ALIGN 16PUBLIC tvlineasm1_ ;Masked & transluscent vlinetvlineasm1_: push ebp mov ebp, eax xor eax, eax inc ecx mov dword ptr [transmach3c+2], ebx jmp short begintvlineALIGN 16begintvline: mov ebx, edxtransmach3a: shr ebx, 32 mov bl, byte ptr [esi+ebx] cmp bl, 255 je short skiptrans1transrev0:transmach3c: mov al, [ebx+88888888h]transrev1: mov ah, byte ptr [edi]transmach4: mov al, byte ptr [eax+88888888h] ;_transluc[eax] mov byte ptr [edi], alskiptrans1: add edx, ebpfixchain1t: add edi, 320 dec ecx jnz short begintvline pop ebp mov eax, edx ret*/long tvlineasm1 (long eax, long ebx, long ecx, long ecx, long esi, long edi){ fprintf (stderr, "STUB: tvlineasm1() %s line %d\n", __FILE__,__LINE__); return (0);}/* ;eax: -------temp1------- ;ebx: -------temp2------- ;ecx: dat dat dat dat ;edx: ylo2 ylo4 ;esi: yhi1 yhi2 ;edi: ---videoplc/cnt---- ;ebp: yhi3 yhi4 ;esp:ALIGN 16PUBLIC vlineasm4_vlineasm4_: push ebp mov eax, dword ptr _ylookup[ecx*4] add eax, edi mov dword ptr [machvline4end+2], eax sub edi, eax mov eax, dword ptr _bufplce[0] mov ebx, dword ptr _bufplce[4] mov ecx, dword ptr _bufplce[8] mov edx, dword ptr _bufplce[12] mov dword ptr [machvbuf1+2], ecx mov dword ptr [machvbuf2+2], edx mov dword ptr [machvbuf3+2], eax mov dword ptr [machvbuf4+2], ebx mov eax, dword ptr _palookupoffse[0] mov ebx, dword ptr _palookupoffse[4] mov ecx, dword ptr _palookupoffse[8] mov edx, dword ptr _palookupoffse[12] mov dword ptr [machvpal1+2], ecx mov dword ptr [machvpal2+2], edx mov dword ptr [machvpal3+2], eax mov dword ptr [machvpal4+2], ebx ; 谀哪哪哪哪哪哪哪履哪哪哪哪哪哪哪
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -