⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 deflate.asm

📁 zlib dll in wince 5.0 parfrom
💻 ASM
📖 第 1 页 / 共 5 页
字号:
 }

// 247  :     if (strm->zfree == (free_func)0) strm->zfree = zcfree;

 {   .mib  //R-Addr: 0X0250 
	adds	r26=strm$, sp				    //247 	cc:5
	addl	r21=@ltoff(@fptr(zcfree#)),gp		    //247 	cc:5
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0260 
	ld8	r25=[r26]				    //247 	cc:6
	ld8	r20=[r21]				    //247 	cc:6
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0270 
	adds	r22=56, r25;;				    //247 	cc:7, 00000038H
	st8	[r22]=r20				    //247 	cc:8
	nop.i	 0;;
 }
$LN11@deflateIni@2:

// 248  : 
// 249  : #ifdef FASTEST
// 250  :     if (level != 0) level = 1;
// 251  : #else
// 252  :     if (level == Z_DEFAULT_COMPRESSION) level = 6;

 {   .mmi  //R-Addr: 0X0280 
	adds	r19=level$, sp;;			    //252 	cc:0
	ld4	r18=[r19]				    //252 	cc:1
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0290 
	cmp4.ne.unc p14,p15=-1, r18			    //252 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.few $LN10@deflateIni@2#;;		    //252 	cc:2
 }

// 252  :     if (level == Z_DEFAULT_COMPRESSION) level = 6;

 {   .mib  //R-Addr: 0X02a0 
	mov	r17=6					    //252 	cc:3
	adds	r16=level$, sp				    //252 	cc:3
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X02b0 
	st4	[r16]=r17				    //252 	cc:4
	nop.m	 0
	nop.b	 0;;
 }
$LN10@deflateIni@2:

// 253  : #endif
// 254  : 
// 255  :     if (windowBits < 0) { /* suppress zlib wrapper */

 {   .mmi  //R-Addr: 0X02c0 
	adds	r15=windowBits$, sp;;			    //255 	cc:0
	ld4	r11=[r15]				    //255 	cc:1
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X02d0 
	cmp4.le.unc p14,p15=r0, r11			    //255 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.few $LN9@deflateIni@2#;;		    //255 	cc:2
 }

// 256  :         wrap = 0;
// 257  :         windowBits = -windowBits;

 {   .mmi  //R-Addr: 0X02e0 
	adds	r10=wrap$, sp;;				    //256 	cc:0
	st4	[r10]=r0				    //256 	cc:1
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X02f0 
	adds	r9=windowBits$, sp			    //257 	cc:0
	adds	r30=windowBits$, sp			    //257 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0300 
	ld4	r8=[r9];;				    //257 	cc:1
	sub	r31=r0, r8				    //257 	cc:2
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0310 
	st4	[r30]=r31				    //257 	cc:4
	nop.m	 0
	br.cond.sptk.few $LN8@deflateIni@2#;;		    //257 	cc:0
 }
$LN9@deflateIni@2:

// 258  :     }
// 259  : #ifdef GZIP
// 260  :     else if (windowBits > 15) {

 {   .mmi  //R-Addr: 0X0320 
	adds	r29=windowBits$, sp;;			    //260 	cc:0
	ld4	r28=[r29]				    //260 	cc:1
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0330 
	cmp4.ge.unc p14,p15=15, r28			    //260 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.few $LN8@deflateIni@2#;;		    //260 	cc:2
 }

// 261  :         wrap = 2;       /* write gzip wrapper instead */
// 262  :         windowBits -= 16;

 {   .mib  //R-Addr: 0X0340 
	mov	r27=2					    //261 	cc:0
	adds	r26=wrap$, sp				    //261 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0350 
	st4	[r26]=r27;;				    //261 	cc:1
	adds	r25=windowBits$, sp			    //262 	cc:0
	adds	r20=windowBits$, sp;;			    //262 	cc:0
 }
 {   .mmi  //R-Addr: 0X0360 
	ld4	r22=[r25];;				    //262 	cc:1
	adds	r21=-16, r22				    //262 	cc:2
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0370 
	st4	[r20]=r21;;				    //262 	cc:3
	nop.m	 0
	nop.i	 0;;
 }
$LN8@deflateIni@2:

// 263  :     }
// 264  : #endif
// 265  :     if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method != Z_DEFLATED ||
// 266  :         windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||
// 267  :         strategy < 0 || strategy > Z_FIXED) {

 {   .mmi  //R-Addr: 0X0380 
	adds	r19=memLevel$, sp;;			    //267 	cc:0
	ld4	r18=[r19]				    //267 	cc:1
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0390 
	cmp4.gt.unc p14,p15=1, r18			    //267 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.few $LN5@deflateIni@2#;;		    //267 	cc:2
 }

// 267  :         strategy < 0 || strategy > Z_FIXED) {

 {   .mmi  //R-Addr: 0X03a0 
	adds	r17=memLevel$, sp;;			    //267 	cc:3
	ld4	r16=[r17]				    //267 	cc:4
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X03b0 
	cmp4.lt.unc p14,p15=9, r16			    //267 	cc:5
	nop.m	 0
  (p14)	br.cond.dptk.few $LN5@deflateIni@2#;;		    //267 	cc:5
 }

// 267  :         strategy < 0 || strategy > Z_FIXED) {

 {   .mmi  //R-Addr: 0X03c0 
	adds	r15=method$, sp;;			    //267 	cc:6
	ld4	r11=[r15]				    //267 	cc:7
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X03d0 
	cmp4.ne.unc p14,p15=8, r11			    //267 	cc:8
	nop.m	 0
  (p14)	br.cond.dptk.few $LN5@deflateIni@2#;;		    //267 	cc:8
 }

// 267  :         strategy < 0 || strategy > Z_FIXED) {

 {   .mmi  //R-Addr: 0X03e0 
	adds	r10=windowBits$, sp;;			    //267 	cc:9
	ld4	r9=[r10]				    //267 	cc:10
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X03f0 
	cmp4.gt.unc p14,p15=8, r9			    //267 	cc:11
	nop.m	 0
  (p14)	br.cond.dptk.few $LN5@deflateIni@2#;;		    //267 	cc:11
 }

// 267  :         strategy < 0 || strategy > Z_FIXED) {

 {   .mmi  //R-Addr: 0X0400 
	adds	r8=windowBits$, sp;;			    //267 	cc:12
	ld4	r31=[r8]				    //267 	cc:13
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0410 
	cmp4.lt.unc p14,p15=15, r31			    //267 	cc:14
	nop.m	 0
  (p14)	br.cond.dptk.few $LN5@deflateIni@2#;;		    //267 	cc:14
 }

// 267  :         strategy < 0 || strategy > Z_FIXED) {

 {   .mmi  //R-Addr: 0X0420 
	adds	r30=level$, sp;;			    //267 	cc:15
	ld4	r29=[r30]				    //267 	cc:16
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0430 
	cmp4.gt.unc p14,p15=r0, r29			    //267 	cc:17
	nop.m	 0
  (p14)	br.cond.dptk.few $LN5@deflateIni@2#;;		    //267 	cc:17
 }

// 267  :         strategy < 0 || strategy > Z_FIXED) {

 {   .mmi  //R-Addr: 0X0440 
	adds	r28=level$, sp;;			    //267 	cc:18
	ld4	r27=[r28]				    //267 	cc:19
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0450 
	cmp4.lt.unc p14,p15=9, r27			    //267 	cc:20
	nop.m	 0
  (p14)	br.cond.dptk.few $LN5@deflateIni@2#;;		    //267 	cc:20
 }

// 267  :         strategy < 0 || strategy > Z_FIXED) {

 {   .mmi  //R-Addr: 0X0460 
	adds	r26=strategy$, sp;;			    //267 	cc:21
	ld4	r25=[r26]				    //267 	cc:22
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0470 
	cmp4.gt.unc p14,p15=r0, r25			    //267 	cc:23
	nop.m	 0
  (p14)	br.cond.dptk.few $LN5@deflateIni@2#;;		    //267 	cc:23
 }

// 267  :         strategy < 0 || strategy > Z_FIXED) {

 {   .mmi  //R-Addr: 0X0480 
	adds	r22=strategy$, sp;;			    //267 	cc:24
	ld4	r21=[r22]				    //267 	cc:25
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0490 
	cmp4.ge.unc p14,p15=4, r21			    //267 	cc:26
	nop.m	 0
  (p14)	br.cond.dptk.few $LN6@deflateIni@2#;;		    //267 	cc:26
 }
$LN5@deflateIni@2:

// 268  :         return Z_STREAM_ERROR;

 {   .mmb  //R-Addr: 0X04a0 
	mov	r8=-2					    //268 	cc:0
	nop.m	 0
	br.cond.sptk.few $LN16@deflateIni@2#;;		    //268 	cc:0
 }
$LN6@deflateIni@2:

// 269  :     }
// 270  :     if (windowBits == 8) windowBits = 9;  /* until 256-byte window bug fixed */

 {   .mmi  //R-Addr: 0X04b0 
	adds	r20=windowBits$, sp;;			    //270 	cc:0
	ld4	r19=[r20]				    //270 	cc:1
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X04c0 
	cmp4.ne.unc p14,p15=8, r19			    //270 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.few $LN4@deflateIni@2#;;		    //270 	cc:2
 }

// 270  :     if (windowBits == 8) windowBits = 9;  /* until 256-byte window bug fixed */

 {   .mib  //R-Addr: 0X04d0 
	mov	r18=9					    //270 	cc:3
	adds	r17=windowBits$, sp			    //270 	cc:3
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X04e0 
	st4	[r17]=r18				    //270 	cc:4
	nop.m	 0
	nop.b	 0;;
 }
$LN4@deflateIni@2:

// 271  :     s = (deflate_state *) ZALLOC(strm, 1, sizeof(deflate_state));
// 272  :     if (s == Z_NULL) return Z_MEM_ERROR;

 {   .mmi  //R-Addr: 0X04f0 
	adds	r10=strm$, sp				    //271 	cc:0
	adds	r16=strm$, sp				    //271 	cc:0
	mov	r45=5912				    //271 	cc:0, 00001718H
 }
 {   .mmi  //R-Addr: 0X0500 
	mov	r44=1;;					    //271 	cc:0
	ld8	r9=[r10]				    //271 	cc:1
	nop.i	 0
 }
 {   .mmi  //R-Addr: 0X0510 
	ld8	r15=[r16];;				    //271 	cc:1
	adds	r8=48, r9				    //271 	cc:2, 00000030H
	adds	r11=64, r15;;				    //271 	cc:2, 00000040H
 }
 {   .mmb  //R-Addr: 0X0520 
	ld8	r31=[r8]				    //271 	cc:3
	ld8	r43=[r11]				    //271 	cc:3
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0530 
	ld8	r30=[r31], 8;;				    //271 	cc:5
	ld8	gp=[r31]				    //271 	cc:6
	mov	b6=r30					    //271 	cc:6
 }
 {   .mmb  //R-Addr: 0X0540 
	nop.m	 0
	nop.m	 0
	br.call.dptk.many b0=b6;;			    //271 	cc:6
 }
 {   .mmi  //R-Addr: 0X0550 
	adds	r29=$T79478, sp				    //271 	cc:17
	adds	r28=$T79478, sp				    //271 	cc:17
	adds	r26=s$, sp				    //271 	cc:17
 }
 {   .mmi  //R-Addr: 0X0560 
	mov	gp=r42;;				    //271 	cc:17
	st8	[r29]=r8				    //271 	cc:18
	nop.i	 0
 }
 {   .mmi  //R-Addr: 0X0570 
	ld8	r27=[r28];;				    //271 	cc:18
	st8	[r26]=r27				    //271 	cc:19
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0580 
	adds	r25=s$, sp;;				    //272 	cc:0
	ld8	r22=[r25]				    //272 	cc:1
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0590 
	cmp.ne.unc p14,p15=r0, r22			    //272 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.many $LN3@deflateIni@2#;;		    //272 	cc:2
 }

// 272  :     if (s == Z_NULL) return Z_MEM_ERROR;

 {   .mmb  //R-Addr: 0X05a0 
	mov	r8=-4					    //272 	cc:3
	nop.m	 0
	br.cond.sptk.few $LN16@deflateIni@2#;;		    //272 	cc:3
 }
$LN3@deflateIni@2:

// 273  :     strm->state = (struct internal_state FAR *)s;
// 274  :     s->strm = strm;
// 275  : 
// 276  :     s->wrap = wrap;
// 277  :     s->gzhead = Z_NULL;
// 278  :     s->w_bits = windowBits;
// 279  :     s->w_size = 1 << s->w_bits;
// 280  :     s->w_mask = s->w_size - 1;
// 281  : 
// 282  :     s->hash_bits = memLevel + 7;
// 283  :     s->hash_size = 1 << s->hash_bits;
// 284  :     s->hash_mask = s->hash_size - 1;
// 285  :     s->hash_shift =  ((s->hash_bits+MIN_MATCH-1)/MIN_MATCH);
// 286  : 
// 287  :     s->window = (Bytef *) ZALLOC(strm, s->w_size, 2*sizeof(Byte));
// 288  :     s->prev   = (Posf *)  ZALLOC(strm, s->w_size, sizeof(Pos));
// 289  :     s->head   = (Posf *)  ZALLOC(strm, s->hash_size, sizeof(Pos));
// 290  : 
// 291  :     s->lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */
// 292  : 
// 293  :     overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);
// 294  :     s->pending_buf = (uchf *) overlay;
// 295  :     s->pending_buf_size = (ulg)s->lit_bufsize * (sizeof(ush)+2L);
// 296  : 
// 297  :     if (s->window == Z_NULL || s->prev == Z_NULL || s->head == Z_NULL ||
// 298  :         s->pending_buf == Z_NULL) {

 {   .mib  //R-Addr: 0X05b0 
	adds	r21=strm$, sp				    //273 	cc:0
	adds	r18=s$, sp				    //273 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X05c0 
	ld8	r20=[r21]				    //273 	cc:1
	ld8	r17=[r18]				    //273 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X05d0 
	adds	r19=40, r20;;				    //273 	cc:2, 00000028H
	st8	[r19]=r17				    //273 	cc:3
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X05e0 
	adds	r16=strm$, sp				    //274 	cc:0
	adds	r11=s$, sp				    //274 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X05f0 
	ld8	r15=[r16]				    //274 	cc:1
	ld8	r10=[r11]				    //274 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0600 
	st8	[r10]=r15;;				    //274 	cc:2
	adds	r9=s$, sp				    //276 	cc:0
	adds	r30=wrap$, sp;;				    //276 	cc:0
 }
 {   .mmb  //R-Addr: 0X0610 
	ld8	r8=[r9]					    //276 	cc:1
	ld4	r29=[r30]				    //276 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0620 
	adds	r31=44, r8;;				    //276 	cc:2, 0000002cH
	st4	[r31]=r29				    //276 	cc:3
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0630 
	adds	r28=s$, sp;;				    //277 	cc:0
	ld8	r27=[r28]				    //277 	cc:1
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0640 
	adds	r26=48, r27;;				    //277 	cc:2, 00000030H
	st8	[r26]=r0				    //277 	cc:3
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X0650 
	adds	r25=s$, sp				    //278 	cc:0
	adds	r20=windowBits$, sp			    //278 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0660 
	ld8	r22=[r25]				    //278 	cc:1
	ld4	r19=[r20]				    //278 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0670 
	adds	r21=72, r22;;				    //278 	cc:2, 00000048H
	st4	[r21]=r19				    //278 	cc:3
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0680 
	adds	r18=s$, sp				    //279 	cc:0
	mov	r11=1					    //279 	cc:0
	adds	r9=s$, sp;;				    //279 	cc:0
 }
 {   .mmb  //R-Addr: 0X0690 
	ld8	r17=[r18]				    //279 	cc:1
	ld8	r8=[r9]					    //279 	cc:1
	nop.b	 0;;
 }
 {   .mib  //R-Addr: 0X06a0 
	adds	r16=72, r17				    //279 	cc:2, 00000048H
	adds	r31=68, r8				    //279 	cc:2, 00000044H
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X06b0 
	ld4	r15=[r16];;				    //279 	cc:3
	nop.m	 0
	shl	r10=r11, r15;;				    //279 	cc:5
 }
 {   .mmi  //R-Addr: 0X06c0 
	st4	[r31]=r10;;				    //279 	cc:8
	adds	r30=s$, sp				    //280 	cc:0
	adds	r25=s$, sp;;				    //280 	cc:0
 }
 {   .mmb  //R-Addr: 0X06d0 
	ld8	r29=[r30]				    //280 	cc:1
	ld8	r22=[r25]				    //280 	cc:1
	nop.b	 0;;
 }
 {   .mib  //R-Addr: 0X06e0 
	adds	r28=68, r29				    //280 	cc:2, 00000044H
	adds	r21=76, r22				    //280 	cc:2, 0000004cH
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X06f0 
	ld4	r27=[r28];;				    //280 	cc:3
	adds	r26=-1, r27				    //280 	cc:4
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0700 
	st4	[r21]=r26;;				    //280 	cc:5
	adds	r20=memLevel$, sp			    //282 	cc:0
	adds	r17=s$, sp;;				    //282 	cc:0
 }
 {   .mmb  //R-Addr: 0X0710 
	ld4	r19=[r20]				    //282 	cc:1
	ld8	r16=[r17]				    //282 	cc:1
	nop.b	 0;;
 }
 {   .mib  //R-Addr: 0X0720 
	adds	r18=7, r19				    //282 	cc:2
	adds	r15=120, r16				    //282 	cc:2, 00000078H
	nop.b	 0;;
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -