亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? inffas32.asm

?? StormLib是對MPQ文件進行處理的庫 MPQ是暴雪公司的私有的一種壓縮格式
?? ASM
?? 第 1 頁 / 共 2 頁
字號:
;/* inffas32.asm is a hand tuned assembler version of inffast.c -- fast decoding
; *
; * inffas32.asm is derivated from inffas86.c, with translation of assembly code
; *
; * Copyright (C) 1995-2003 Mark Adler
; * For conditions of distribution and use, see copyright notice in zlib.h
; *
; * Copyright (C) 2003 Chris Anderson <christop@charm.net>
; * Please use the copyright conditions above.
; *
; * Mar-13-2003 -- Most of this is derived from inffast.S which is derived from
; * the gcc -S output of zlib-1.2.0/inffast.c.  Zlib-1.2.0 is in beta release at
; * the moment.  I have successfully compiled and tested this code with gcc2.96,
; * gcc3.2, icc5.0, msvc6.0.  It is very close to the speed of inffast.S
; * compiled with gcc -DNO_MMX, but inffast.S is still faster on the P3 with MMX
; * enabled.  I will attempt to merge the MMX code into this version.  Newer
; * versions of this and inffast.S can be found at
; * http://www.eetbeetee.com/zlib/ and http://www.charm.net/~christop/zlib/
; * 
; * 2005 : modification by Gilles Vollant
; */
; For Visual C++ 4.x and higher and ML 6.x and higher
;   ml.exe is in directory \MASM611C of Win95 DDK
;   ml.exe is also distributed in http://www.masm32.com/masmdl.htm
;    and in VC++2003 toolkit at http://msdn.microsoft.com/visualc/vctoolkit2003/
;
;
;   compile with command line option
;   ml  /coff /Zi /c /Flinffas32.lst inffas32.asm

;   if you define NO_GZIP (see inflate.h), compile with
;   ml  /coff /Zi /c /Flinffas32.lst /DNO_GUNZIP inffas32.asm


; zlib122sup is 0 fort zlib 1.2.2.1 and lower
; zlib122sup is 8 fort zlib 1.2.2.2 and more (with addition of dmax and head 
;        in inflate_state in inflate.h)
zlib1222sup      equ    8


IFDEF GUNZIP
  INFLATE_MODE_TYPE    equ 11
  INFLATE_MODE_BAD     equ 26
ELSE
  IFNDEF NO_GUNZIP
    INFLATE_MODE_TYPE    equ 11
    INFLATE_MODE_BAD     equ 26
  ELSE
    INFLATE_MODE_TYPE    equ 3
    INFLATE_MODE_BAD     equ 17
  ENDIF
ENDIF


; 75 "inffast.S"
;FILE "inffast.S"

;;;GLOBAL _inflate_fast

;;;SECTION .text



	.586p
	.mmx

	name	inflate_fast_x86
	.MODEL	FLAT

_DATA			segment
inflate_fast_use_mmx:
	dd	1


_TEXT			segment
PUBLIC _inflate_fast

ALIGN 4
_inflate_fast:
	jmp inflate_fast_entry



ALIGN 4
	db	'Fast decoding Code from Chris Anderson'
	db	0

ALIGN 4
invalid_literal_length_code_msg:
	db	'invalid literal/length code'
	db	0

ALIGN 4
invalid_distance_code_msg:
	db	'invalid distance code'
	db	0

ALIGN 4
invalid_distance_too_far_msg:
	db	'invalid distance too far back'
	db	0


ALIGN 4
inflate_fast_mask:
dd	0
dd	1
dd	3
dd	7
dd	15
dd	31
dd	63
dd	127
dd	255
dd	511
dd	1023
dd	2047
dd	4095
dd	8191
dd	16383
dd	32767
dd	65535
dd	131071
dd	262143
dd	524287
dd	1048575
dd	2097151
dd	4194303
dd	8388607
dd	16777215
dd	33554431
dd	67108863
dd	134217727
dd	268435455
dd	536870911
dd	1073741823
dd	2147483647
dd	4294967295


mode_state	 equ	0	;/* state->mode	*/
wsize_state	 equ	(32+zlib1222sup)	;/* state->wsize */
write_state	 equ	(36+4+zlib1222sup)	;/* state->write */
window_state	 equ	(40+4+zlib1222sup)	;/* state->window */
hold_state	 equ	(44+4+zlib1222sup)	;/* state->hold	*/
bits_state	 equ	(48+4+zlib1222sup)	;/* state->bits	*/
lencode_state	 equ	(64+4+zlib1222sup)	;/* state->lencode */
distcode_state	 equ	(68+4+zlib1222sup)	;/* state->distcode */
lenbits_state	 equ	(72+4+zlib1222sup)	;/* state->lenbits */
distbits_state	 equ	(76+4+zlib1222sup)	;/* state->distbits */


;;SECTION .text
; 205 "inffast.S"
;GLOBAL	inflate_fast_use_mmx

;SECTION .data


; GLOBAL inflate_fast_use_mmx:object
;.size inflate_fast_use_mmx, 4
; 226 "inffast.S"
;SECTION .text

ALIGN 4
inflate_fast_entry:
	push  edi
	push  esi
	push  ebp
	push  ebx
	pushfd
	sub  esp,64
	cld




	mov  esi, [esp+88]
	mov  edi, [esi+28]







	mov  edx, [esi+4]
	mov  eax, [esi+0]

	add  edx,eax
	sub  edx,11

	mov  [esp+44],eax
	mov  [esp+20],edx

	mov  ebp, [esp+92]
	mov  ecx, [esi+16]
	mov  ebx, [esi+12]

	sub  ebp,ecx
	neg  ebp
	add  ebp,ebx

	sub  ecx,257
	add  ecx,ebx

	mov  [esp+60],ebx
	mov  [esp+40],ebp
	mov  [esp+16],ecx
; 285 "inffast.S"
	mov  eax, [edi+lencode_state]
	mov  ecx, [edi+distcode_state]

	mov  [esp+8],eax
	mov  [esp+12],ecx

	mov  eax,1
	mov  ecx, [edi+lenbits_state]
	shl  eax,cl
	dec  eax
	mov  [esp+0],eax

	mov  eax,1
	mov  ecx, [edi+distbits_state]
	shl  eax,cl
	dec  eax
	mov  [esp+4],eax

	mov  eax, [edi+wsize_state]
	mov  ecx, [edi+write_state]
	mov  edx, [edi+window_state]

	mov  [esp+52],eax
	mov  [esp+48],ecx
	mov  [esp+56],edx

	mov  ebp, [edi+hold_state]
	mov  ebx, [edi+bits_state]
; 321 "inffast.S"
	mov  esi, [esp+44]
	mov  ecx, [esp+20]
	cmp  ecx,esi
	ja   L_align_long

	add  ecx,11
	sub  ecx,esi
	mov  eax,12
	sub  eax,ecx
	lea  edi, [esp+28]
	rep movsb
	mov  ecx,eax
	xor  eax,eax
	rep stosb
	lea  esi, [esp+28]
	mov  [esp+20],esi
	jmp  L_is_aligned


L_align_long:
	test  esi,3
	jz   L_is_aligned
	xor  eax,eax
	mov  al, [esi]
	inc  esi
	mov  ecx,ebx
	add  ebx,8
	shl  eax,cl
	or  ebp,eax
	jmp L_align_long

L_is_aligned:
	mov  edi, [esp+60]
; 366 "inffast.S"
L_check_mmx:
	cmp  dword ptr [inflate_fast_use_mmx],2
	je   L_init_mmx
	ja   L_do_loop

	push  eax
	push  ebx
	push  ecx
	push  edx
	pushfd
	mov  eax, [esp]
	xor  dword ptr [esp],0200000h




	popfd
	pushfd
	pop  edx
	xor  edx,eax
	jz   L_dont_use_mmx
	xor  eax,eax
	cpuid
	cmp  ebx,0756e6547h
	jne  L_dont_use_mmx
	cmp  ecx,06c65746eh
	jne  L_dont_use_mmx
	cmp  edx,049656e69h
	jne  L_dont_use_mmx
	mov  eax,1
	cpuid
	shr  eax,8
	and  eax,15
	cmp  eax,6
	jne  L_dont_use_mmx
	test  edx,0800000h
	jnz  L_use_mmx
	jmp  L_dont_use_mmx
L_use_mmx:
	mov  dword ptr [inflate_fast_use_mmx],2
	jmp  L_check_mmx_pop
L_dont_use_mmx:
	mov  dword ptr [inflate_fast_use_mmx],3
L_check_mmx_pop:
	pop  edx
	pop  ecx
	pop  ebx
	pop  eax
	jmp  L_check_mmx
; 426 "inffast.S"
ALIGN 4
L_do_loop:
; 437 "inffast.S"
	cmp  bl,15
	ja   L_get_length_code

	xor  eax,eax
	lodsw
	mov  cl,bl
	add  bl,16
	shl  eax,cl
	or  ebp,eax

L_get_length_code:
	mov  edx, [esp+0]
	mov  ecx, [esp+8]
	and  edx,ebp
	mov  eax, [ecx+edx*4]

L_dolen:






	mov  cl,ah
	sub  bl,ah
	shr  ebp,cl






	test  al,al
	jnz   L_test_for_length_base

	shr  eax,16
	stosb

L_while_test:


	cmp  [esp+16],edi
	jbe  L_break_loop

	cmp  [esp+20],esi
	ja   L_do_loop
	jmp  L_break_loop

L_test_for_length_base:
; 502 "inffast.S"
	mov  edx,eax
	shr  edx,16
	mov  cl,al

	test  al,16
	jz   L_test_for_second_level_length
	and  cl,15
	jz   L_save_len
	cmp  bl,cl
	jae  L_add_bits_to_len

	mov  ch,cl
	xor  eax,eax
	lodsw
	mov  cl,bl
	add  bl,16
	shl  eax,cl
	or  ebp,eax
	mov  cl,ch

L_add_bits_to_len:
	mov  eax,1
	shl  eax,cl
	dec  eax
	sub  bl,cl
	and  eax,ebp
	shr  ebp,cl
	add  edx,eax

L_save_len:
	mov  [esp+24],edx


L_decode_distance:
; 549 "inffast.S"
	cmp  bl,15
	ja   L_get_distance_code

	xor  eax,eax
	lodsw
	mov  cl,bl
	add  bl,16
	shl  eax,cl
	or  ebp,eax

L_get_distance_code:
	mov  edx, [esp+4]
	mov  ecx, [esp+12]
	and  edx,ebp
	mov  eax, [ecx+edx*4]


L_dodist:
	mov  edx,eax
	shr  edx,16
	mov  cl,ah
	sub  bl,ah
	shr  ebp,cl
; 584 "inffast.S"
	mov  cl,al

	test  al,16
	jz  L_test_for_second_level_dist
	and  cl,15
	jz  L_check_dist_one
	cmp  bl,cl
	jae  L_add_bits_to_dist

	mov  ch,cl
	xor  eax,eax
	lodsw
	mov  cl,bl
	add  bl,16
	shl  eax,cl
	or  ebp,eax
	mov  cl,ch

L_add_bits_to_dist:
	mov  eax,1
	shl  eax,cl
	dec  eax
	sub  bl,cl
	and  eax,ebp
	shr  ebp,cl
	add  edx,eax
	jmp  L_check_window

L_check_window:
; 625 "inffast.S"
	mov  [esp+44],esi
	mov  eax,edi
	sub  eax, [esp+40]

	cmp  eax,edx
	jb   L_clip_window

	mov  ecx, [esp+24]
	mov  esi,edi
	sub  esi,edx

	sub  ecx,3
	mov  al, [esi]
	mov  [edi],al
	mov  al, [esi+1]
	mov  dl, [esi+2]
	add  esi,3
	mov  [edi+1],al
	mov  [edi+2],dl
	add  edi,3
	rep movsb

	mov  esi, [esp+44]
	jmp  L_while_test

ALIGN 4
L_check_dist_one:
	cmp  edx,1
	jne  L_check_window
	cmp  [esp+40],edi
	je  L_check_window

	dec  edi
	mov  ecx, [esp+24]
	mov  al, [edi]
	sub  ecx,3

	mov  [edi+1],al
	mov  [edi+2],al
	mov  [edi+3],al
	add  edi,4
	rep stosb

	jmp  L_while_test

ALIGN 4
L_test_for_second_level_length:




	test  al,64
	jnz   L_test_for_end_of_block

	mov  eax,1
	shl  eax,cl
	dec  eax
	and  eax,ebp
	add  eax,edx
	mov  edx, [esp+8]
	mov  eax, [edx+eax*4]
	jmp  L_dolen

ALIGN 4
L_test_for_second_level_dist:




	test  al,64
	jnz   L_invalid_distance_code

	mov  eax,1
	shl  eax,cl
	dec  eax
	and  eax,ebp
	add  eax,edx

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品 国产精品| 欧美成人一级视频| 国内精品久久久久影院色| 亚洲日韩欧美一区二区在线| 日韩视频不卡中文| 在线免费观看视频一区| 国v精品久久久网| 免费一级片91| 亚洲一级电影视频| 中文字幕一区在线观看视频| 精品剧情v国产在线观看在线| 欧美三级三级三级爽爽爽| 成人午夜av在线| 国产一区二区福利视频| 天堂成人国产精品一区| 亚洲精品一二三| 国产精品嫩草影院com| 精品国产污网站| 7799精品视频| 欧美调教femdomvk| 99久久99精品久久久久久 | 亚洲免费大片在线观看| 国产人成亚洲第一网站在线播放| 3atv一区二区三区| 欧美日韩一区二区三区四区| 91浏览器入口在线观看| 国产成人99久久亚洲综合精品| 青娱乐精品在线视频| 亚洲va欧美va人人爽| 亚洲综合精品久久| 艳妇臀荡乳欲伦亚洲一区| 中文字幕视频一区| 中文字幕一区二区三区在线观看| 欧美经典一区二区三区| 久久久99久久| 久久精品亚洲精品国产欧美| 久久亚洲一区二区三区明星换脸| 精品国产91亚洲一区二区三区婷婷| 欧美伦理视频网站| 欧美肥妇bbw| 日韩午夜激情免费电影| 日韩欧美电影一二三| 欧美sm美女调教| xf在线a精品一区二区视频网站| 日韩欧美的一区| 久久精品视频一区二区三区| 欧美国产精品劲爆| 亚洲图片另类小说| 亚洲国产精品欧美一二99| 亚洲电影一区二区三区| 日本vs亚洲vs韩国一区三区| 日韩电影在线一区| 精品一区二区三区日韩| 国产精品一二一区| 不卡的av在线| 在线看日本不卡| 欧美日本一道本| 欧美xxxx老人做受| 国产精品国产三级国产aⅴ无密码| 中文字幕一区二区在线观看| 一区二区三区资源| 日韩精品五月天| 国产高清精品久久久久| 97久久精品人人澡人人爽| 欧美日韩国产一区| 2023国产精品视频| 自拍偷拍欧美精品| 午夜精品一区二区三区电影天堂| 美女视频网站久久| 成人一区二区视频| 色999日韩国产欧美一区二区| 欧美年轻男男videosbes| 久久久亚洲综合| 亚洲免费观看高清完整版在线观看 | 亚洲精品中文字幕在线观看| 日日摸夜夜添夜夜添国产精品 | 欧美精品xxxxbbbb| 2022国产精品视频| 一区二区三区91| 国产毛片精品视频| 欧美日韩激情在线| 国产亚洲综合av| 亚洲大尺度视频在线观看| 国产一区999| 欧美性生活久久| 欧美激情一区二区三区全黄| 亚洲福利国产精品| 国产精品99久久不卡二区| 欧美色综合久久| 欧美经典一区二区| 日韩精品欧美成人高清一区二区| 国产成人免费视频网站| 欧美日韩国产一区| 亚洲图片你懂的| 国产一区 二区| 91精品国产一区二区| 国产精品欧美极品| 久久99这里只有精品| 欧美做爰猛烈大尺度电影无法无天| 精品国产自在久精品国产| 亚洲黄色免费电影| www.爱久久.com| 久久久久久久久久久久久夜| 午夜国产精品一区| 色哟哟一区二区在线观看| 久久久久久久久久久久电影| 日韩国产欧美在线视频| 色天使久久综合网天天| 亚洲国产精品传媒在线观看| 日本中文字幕不卡| 91黄色激情网站| 国产精品视频九色porn| 国内精品国产成人国产三级粉色 | 亚洲国产视频一区| 99久久精品免费观看| 国产亚洲婷婷免费| 国产一区二区三区四区五区美女| 欧美一区二区网站| 日韩精品视频网站| 欧美日韩大陆一区二区| 亚洲一区二区三区四区在线免费观看| 成人免费视频一区二区| 久久精品人人做人人爽人人| 国产一区二区三区最好精华液| 日韩一区二区三区精品视频| 亚洲成a天堂v人片| 欧美午夜片在线看| 亚洲成人先锋电影| 欧美日韩免费不卡视频一区二区三区| 一区二区三区四区不卡在线| 91麻豆免费在线观看| 中文字幕色av一区二区三区| 丁香激情综合五月| 国产精品福利一区| 91毛片在线观看| 亚洲一区在线播放| 欧美久久久久久久久| 日本亚洲天堂网| 日韩一级完整毛片| 国产在线看一区| 欧美极品少妇xxxxⅹ高跟鞋| av在线不卡电影| 亚洲人亚洲人成电影网站色| 91麻豆高清视频| 亚洲超碰97人人做人人爱| 欧美高清视频在线高清观看mv色露露十八| 天天综合天天综合色| 日韩精品影音先锋| 国产成人精品免费视频网站| 国产精品入口麻豆九色| 91麻豆.com| 日产欧产美韩系列久久99| 精品久久一区二区| 国产宾馆实践打屁股91| 亚洲日穴在线视频| 欧美日韩黄色一区二区| 久久99精品久久久| 国产精品毛片高清在线完整版| 91视频国产资源| 日本亚洲电影天堂| 中文成人综合网| 欧美日韩一级黄| 韩国av一区二区| 亚洲三级免费观看| 在线成人免费视频| 国产成人精品亚洲777人妖| 亚洲精品成人在线| 日韩欧美一区二区免费| 成人a级免费电影| 亚洲一二三专区| 久久亚洲免费视频| 91麻豆.com| 韩国理伦片一区二区三区在线播放| 国产精品国产三级国产a| 欧美高清一级片在线| 成人毛片视频在线观看| 亚洲成人tv网| 国产免费观看久久| 欧美另类久久久品| 成人免费观看视频| 日韩精品亚洲专区| 亚洲少妇30p| 久久嫩草精品久久久久| 欧美亚洲一区二区在线观看| 久久激情五月激情| 一区二区三区四区五区视频在线观看| 欧美成人video| 欧美在线不卡视频| 成人免费视频网站在线观看| 青青草国产成人av片免费| 自拍偷自拍亚洲精品播放| 久久综合999| 欧美一区二区黄色| 色综合激情五月| 国产盗摄一区二区三区| 日韩精品91亚洲二区在线观看 | 中文字幕一区av| 久久久精品免费免费| 日韩一级完整毛片| 欧美日韩一区二区三区在线|