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

📄 deflate.asm

📁 zlib dll in wince 5.0 parfrom
💻 ASM
📖 第 1 页 / 共 5 页
字号:
 {   .mmb  //R-Addr: 0X0d50 
	nop.m	 0
	nop.m	 0
	br.call.sptk.few b0=deflateEnd#;;		    //301 	cc:1
 }
 {   .mmb  //R-Addr: 0X0d60 
	mov	r8=-4					    //302 	cc:0
	nop.m	 0
	br.cond.sptk.few $LN16@deflateIni@2#;;		    //302 	cc:0
 }
$LN2@deflateIni@2:

// 303  :     }
// 304  :     s->d_buf = overlay + s->lit_bufsize/sizeof(ush);
// 305  :     s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;
// 306  : 
// 307  :     s->level = level;
// 308  :     s->strategy = strategy;
// 309  :     s->method = (Byte)method;
// 310  : 
// 311  :     return deflateReset(strm);

 {   .mmi  //R-Addr: 0X0d70 
	adds	r19=s$, sp				    //304 	cc:0
	mov	r15=2					    //304 	cc:0
	mov	r11=65501				    //304 	cc:0, 0000ffddH
 }
 {   .mii  //R-Addr: 0X0d80 
	adds	r8=overlay$, sp				    //304 	cc:0
	adds	r29=s$, sp;;				    //304 	cc:0
	cmp.eq.unc p15,p0=0, r15			    //304 	cc:1
 }
 {   .mmb  //R-Addr: 0X0d90 
	ld8	r18=[r19]				    //304 	cc:1
	setf.sig f13=r15				    //304 	cc:1
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0da0 
	adds	r17=5872, r18				    //304 	cc:2, 000016f0H
	setf.exp f32=r11				    //304 	cc:2
	nop.b	 0;;
 }
 {   .mib  //R-Addr: 0X0db0 
	ld4	r16=[r17]				    //304 	cc:3
  (p15)	break.i	 1					    //304 	cc:3
	nop.b	 0
 }
 {   .mmi  //R-Addr: 0X0dc0 
	ld8	r31=[r8];;				    //304 	cc:3
	setf.sig f12=r16				    //304 	cc:4
	nop.i	 0
 }
 {   .mmi  //R-Addr: 0X0dd0 
	ld8	r28=[r29];;				    //304 	cc:4
	adds	r27=5880, r28				    //304 	cc:5, 000016f8H
	nop.i	 0;;
 }
 {   .mfb  //R-Addr: 0X0de0 
	nop.m	 0
	fcvt.xuf.s1 f15=f13				    //304 	cc:7
	nop.b	 0;;
 }
 {   .mfb  //R-Addr: 0X0df0 
	nop.m	 0
	fcvt.xuf.s1 f14=f12				    //304 	cc:10
	nop.b	 0;;
 }
 {   .mfb  //R-Addr: 0X0e00 
	nop.m	 0
	frcpa.s1 f33,p7=f14, f15			    //304 	cc:14
	nop.b	 0;;
 }
 {   .mfb  //R-Addr: 0X0e10 
	nop.m	 0
  (p7)	fma.s1	f14=f14, f33, f0			    //304 	cc:18
	nop.b	 0
 }
 {   .mfb  //R-Addr: 0X0e20 
	nop.m	 0
  (p7)	fnma.s1	f15=f15, f33, f1			    //304 	cc:18
	nop.b	 0;;
 }
 {   .mfb  //R-Addr: 0X0e30 
	nop.m	 0
  (p7)	fma.s1	f14=f15, f14, f14			    //304 	cc:22
	nop.b	 0
 }
 {   .mfb  //R-Addr: 0X0e40 
	nop.m	 0
  (p7)	fma.s1	f15=f15, f15, f32			    //304 	cc:22
	nop.b	 0;;
 }
 {   .mfb  //R-Addr: 0X0e50 
	nop.m	 0
  (p7)	fma.s1	f33=f15, f14, f14, f33			    //304 	cc:26
	nop.b	 0;;
 }
 {   .mfb  //R-Addr: 0X0e60 
	nop.m	 0
	fcvt.fxu.trunc.s1 f14=f33, f14			    //304 	cc:30
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0e70 
	getf.sig r10=f14;;				    //304 	cc:34
	nop.m	 0
	shl	r9=r10, 1;;				    //304 	cc:39
 }
 {   .mmi  //R-Addr: 0X0e80 
	add	r30=r31, r9;;				    //304 	cc:40
	st8	[r27]=r30				    //304 	cc:41
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0e90 
	adds	r21=s$, sp				    //305 	cc:0
	mov	r17=3					    //305 	cc:0
	adds	r26=s$, sp				    //305 	cc:0
 }
 {   .mmi  //R-Addr: 0X0ea0 
	adds	r10=s$, sp;;				    //305 	cc:0
	ld8	r20=[r21]				    //305 	cc:1
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X0eb0 
	ld8	r25=[r26]				    //305 	cc:1
	setf.sig f35=r17				    //305 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0ec0 
	ld8	r9=[r10]				    //305 	cc:2
	adds	r19=5872, r20				    //305 	cc:2, 000016f0H
	adds	r22=16, r25;;				    //305 	cc:2
 }
 {   .mmi  //R-Addr: 0X0ed0 
	ld4	r18=[r19]				    //305 	cc:3
	ld8	r15=[r22]				    //305 	cc:3
	adds	r8=5864, r9;;				    //305 	cc:3, 000016e8H
 }
 {   .mmb  //R-Addr: 0X0ee0 
	setf.sig f34=r18				    //305 	cc:4
	nop.m	 0
	nop.b	 0;;
 }
 {   .mfb  //R-Addr: 0X0ef0 
	nop.m	 0
	xma.lu	f36=f34, f35, f0			    //305 	cc:10
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0f00 
	getf.sig r16=f36;;				    //305 	cc:14
	add	r11=r15, r16				    //305 	cc:19
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0f10 
	st8	[r8]=r11;;				    //305 	cc:20
	adds	r31=s$, sp				    //307 	cc:0
	adds	r28=level$, sp;;			    //307 	cc:0
 }
 {   .mmb  //R-Addr: 0X0f20 
	ld8	r30=[r31]				    //307 	cc:1
	ld4	r27=[r28]				    //307 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0f30 
	adds	r29=172, r30;;				    //307 	cc:2, 000000acH
	st4	[r29]=r27				    //307 	cc:3
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X0f40 
	adds	r26=s$, sp				    //308 	cc:0
	adds	r21=strategy$, sp			    //308 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0f50 
	ld8	r25=[r26]				    //308 	cc:1
	ld4	r20=[r21]				    //308 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0f60 
	adds	r22=176, r25;;				    //308 	cc:2, 000000b0H
	st4	[r22]=r20				    //308 	cc:3
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X0f70 
	adds	r17=s$, sp				    //309 	cc:0
	adds	r19=method$, sp				    //309 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0f80 
	ld8	r16=[r17]				    //309 	cc:1
	ld4	r18=[r19]				    //309 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0f90 
	adds	r15=60, r16;;				    //309 	cc:2, 0000003cH
	st1	[r15]=r18				    //309 	cc:3
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0fa0 
	adds	r11=strm$, sp;;				    //311 	cc:0
	ld8	r43=[r11]				    //311 	cc:1
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X0fb0 
	nop.m	 0
	nop.m	 0
	br.call.sptk.few b0=deflateReset#;;		    //311 	cc:1
 }
 {   .mib  //R-Addr: 0X0fc0 
	adds	r10=$T79487, sp				    //311 	cc:12
	adds	r9=$T79487, sp				    //311 	cc:12
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0fd0 
	st4	[r10]=r8				    //311 	cc:13
	ld4	r8=[r9]					    //311 	cc:13
	nop.b	 0;;
 }
$LN16@deflateIni@2:

// 312  : }

 {   .mii  //R-Addr: 0X0fe0 
	adds	sp=144, sp				    //312 	cc:0, 00000090H
	mov.ret	b0=r40;;				    //312 	cc:0
	mov.i	ar.pfs=r41				    //312 	cc:1
 }
 {   .mmb  //R-Addr: 0X0ff0 
	nop.m	 0
	nop.m	 0
	br.ret.sptk.many b0;;				    //312 	cc:1
 }
// End code for function:
	.endp	deflateInit2_#
	.type	deflateSetDictionary#	,@function 
        .global deflateSetDictionary#
	.type	memcpy#	,@function 
        .global memcpy#
	.type	adler32#	,@function 
        .global adler32#
	.section	.pdata
$T79499: data4	@imagerel($LN12@deflateSet#)
	data4	@imagerel($LN12@deflateSet#+2064)
	data4	@imagerel($T79497#)
	.section	.xdata
	.skip 8
$T79497: data2	03H
	data2	00H
	data4	03H
	string	"\x0d"		//R1:prologue size 13
	string	"\xe6\x00"	//P7:pfs_when time 0
	string	"\xb1\x24"	//P3:pfs_gr 36
	string	"\xe0\x01\x04"	//P7:mem_stack_f time 1 size 4
	string	"\xe4\x02"	//P7:rp_when time 2
	string	"\xb0\xa3"	//P3:rp_gr 35
	string	"\x61\xf6\x02"	//R3:body size 374
	string	"\x81"		//B1:label_state 1
	string	"\xc0\x05"	//B2:ecount 0 time 5
	string	"\x00\x00\x00\x00\x00\x00" //padding
// Function compile flags: /Odtp
	.section	.text

// Begin code for function: deflateSetDictionary:
	.proc	deflateSetDictionary#
	.align 32
length$	= 16
n$	= 20
s$	= 24
hash_head$	= 32
$T79496	= 36
strm$	= 48
dictionary$	= 56
dictLength$	= 64
deflateSetDictionary: 
// strm$ = r32
// dictionary$ = r33
// dictLength$ = r34
// Output regs: r38-r40
$LN12@deflateSet:

// 319  : {
// 320  :     deflate_state *s;
// 321  :     uInt length = dictLength;
// 322  :     uInt n;
// 323  :     IPos hash_head = 0;
// 324  : 
// 325  :     if (strm == Z_NULL || strm->state == Z_NULL || dictionary == Z_NULL ||
// 326  :         strm->state->wrap == 2 ||
// 327  :         (strm->state->wrap == 1 && strm->state->status != INIT_STATE))

 {   .mmi  //R-Addr: 0X00 
	alloc	r36=3, 3, 3, 0				    //319 	cc:0
	adds	sp=-64, sp				    //319 	cc:0, ffffffc0H
	mov	r35=b0					    //319 	cc:0
 }
 {   .mmi  //R-Addr: 0X010 
	mov	r37=gp;;				    //319 	cc:0
	ld8.nta	r2=[sp]					    //319 	cc:1
	adds	r31=strm$, sp
 }
 {   .mib  //R-Addr: 0X020 
	adds	r30=dictionary$, sp
	adds	r29=dictLength$, sp
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X030 
	st8	[r31]=r32
	st8	[r30]=r33
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X040 
	st4	[r29]=r34;;
	adds	r28=dictLength$, sp			    //321 	cc:0
	adds	r26=length$, sp;;			    //321 	cc:0
 }
 {   .mmi  //R-Addr: 0X050 
	ld4	r27=[r28];;				    //321 	cc:1
	st4	[r26]=r27				    //321 	cc:2
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X060 
	adds	r25=hash_head$, sp;;			    //323 	cc:0
	st4	[r25]=r0				    //323 	cc:1
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X070 
	adds	r22=strm$, sp;;				    //327 	cc:0
	ld8	r21=[r22]				    //327 	cc:1
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X080 
	cmp.eq.unc p14,p15=r0, r21			    //327 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.few $LN8@deflateSet#;;		    //327 	cc:2
 }

// 327  :         (strm->state->wrap == 1 && strm->state->status != INIT_STATE))

 {   .mmi  //R-Addr: 0X090 
	adds	r20=strm$, sp;;				    //327 	cc:3
	ld8	r19=[r20]				    //327 	cc:4
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0a0 
	adds	r18=40, r19;;				    //327 	cc:5, 00000028H
	ld8	r17=[r18]				    //327 	cc:6
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0b0 
	cmp.eq.unc p14,p15=r0, r17			    //327 	cc:7
	nop.m	 0
  (p14)	br.cond.dptk.few $LN8@deflateSet#;;		    //327 	cc:7
 }

// 327  :         (strm->state->wrap == 1 && strm->state->status != INIT_STATE))

 {   .mmi  //R-Addr: 0X0c0 
	adds	r16=dictionary$, sp;;			    //327 	cc:8
	ld8	r15=[r16]				    //327 	cc:9
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0d0 
	cmp.eq.unc p14,p15=r0, r15			    //327 	cc:10
	nop.m	 0
  (p14)	br.cond.dptk.few $LN8@deflateSet#;;		    //327 	cc:10
 }

// 327  :         (strm->state->wrap == 1 && strm->state->status != INIT_STATE))

 {   .mmi  //R-Addr: 0X0e0 
	adds	r11=strm$, sp;;				    //327 	cc:11
	ld8	r10=[r11]				    //327 	cc:12
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0f0 
	adds	r9=40, r10;;				    //327 	cc:13, 00000028H
	ld8	r8=[r9]					    //327 	cc:14
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0100 
	adds	r31=44, r8;;				    //327 	cc:15, 0000002cH
	ld4	r30=[r31]				    //327 	cc:16
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0110 
	cmp4.eq.unc p14,p15=2, r30			    //327 	cc:17
	nop.m	 0
  (p14)	br.cond.dptk.few $LN8@deflateSet#;;		    //327 	cc:17
 }

// 327  :         (strm->state->wrap == 1 && strm->state->status != INIT_STATE))

 {   .mmi  //R-Addr: 0X0120 
	adds	r29=strm$, sp;;				    //327 	cc:18
	ld8	r28=[r29]				    //327 	cc:19
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0130 
	adds	r27=40, r28;;				    //327 	cc:20, 00000028H
	ld8	r26=[r27]				    //327 	cc:21
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0140 
	adds	r25=44, r26;;				    //327 	cc:22, 0000002cH
	ld4	r22=[r25]				    //327 	cc:23
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0150 
	cmp4.ne.unc p14,p15=1, r22			    //327 	cc:24
	nop.m	 0
  (p14)	br.cond.dptk.few $LN9@deflateSet#;;		    //327 	cc:24
 }

// 327  :         (strm->state->wrap == 1 && strm->state->status != INIT_STATE))

 {   .mmi  //R-Addr: 0X0160 
	adds	r21=strm$, sp;;				    //327 	cc:25
	ld8	r20=[r21]				    //327 	cc:26
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0170 
	adds	r19=40, r20;;				    //327 	cc:27, 00000028H
	ld8	r18=[r19]				    //327 	cc:28
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0180 
	adds	r17=8, r18;;				    //327 	cc:29
	ld4	r16=[r17]				    //327 	cc:30
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0190 
	cmp4.eq.unc p14,p15=42, r16			    //327 	cc:31, 0000002aH
	nop.m	 0
  (p14)	br.cond.dptk.few $LN9@deflateSet#;;		    //327 	cc:31
 }
$LN8@deflateSet:

// 328  :         return Z_STREAM_ERROR;

 {   .mmb  //R-Addr: 0X01a0 
	mov	r8=-2					    //328 	cc:0
	nop.m	 0
	br.cond.sptk.few $LN10@deflateSet#;;		    //328 	cc:0
 }
$LN9@deflateSet:

// 329  : 
// 330  :     s = strm->state;
// 331  :     if (s->wrap)

 {   .mib  //R-Addr: 0X01b0 
	adds	r15=strm$, sp				    //330 	cc:0
	adds	r8=s$, sp				    //330 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X01c0 
	ld8	r11=[r15];;				    //330 	cc:1
	adds	r10=40, r11				    //330 	cc:2, 00000028H
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X01d0 
	ld8	r9=[r10];;				    //330 	cc:3
	st8	[r8]=r9					    //330 	cc:4
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X01e0 
	adds	r31=s$, sp;;				    //331 	cc:0
	ld8	r30=[r31]				    //331 	cc:1
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X01f0 
	adds	r29=44, r30;;				    //331 	cc:2, 0000002cH
	ld4	r28=[r29]				    //331 	cc:3
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0200 
	cmp4.eq.unc p14,p15=r0, r28			    //331 	cc:4
	nop.m	 0
  (p14)	br.cond.dptk.few $LN7@deflateSet#;;		    //331 	cc:4
 }

// 332  :         strm->adler = adler32(strm->adler, dictionary, dictLength);

 {   .mmi  //R-Addr: 0X0210 
	adds	r25=strm$, sp				    //332 	cc:0
	adds	r27=dictLength$, sp			    //332 	cc:0
	adds	r26=dictionary$, sp;;			    //332 	cc:0
 }
 {   .mmb  //R-Addr: 0X0220 
	ld8	r22=[r25]				    //332 	cc:1
	ld4	r40=[r27]				    //332 	cc:1
	nop.b	 0;;
 }
 {   .mib  //R-Addr: 0X0230 
	ld8	r39=[r26]				    //332 	cc:2
	adds	r21=76, r22				    //332 	cc:2, 0000004cH
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0240 
	ld4	r38=[r21]				    //332 	cc:3
	nop.m	 0
	br.call.sptk.few b0=adler32#;;			    //332 	cc:3
 }
 {   .mmi  //R-Addr: 0X0250 
	adds	r20=$T79496, sp				    //332 	cc:14
	adds	r19=strm$, sp				    //332 	cc:14
	adds	r16=$T79496, sp				    //332 	cc:14

⌨️ 快捷键说明

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