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

📄 deflate.asm

📁 zlib dll in wince 5.0 parfrom
💻 ASM
📖 第 1 页 / 共 5 页
字号:
// Listing generated by Microsoft (R) Optimizing Compiler Version 15.00.21022.08 

	.file	"f:/Study/wincezip/DLL/deflate.c"
	.radix	D
	.section	.text,	"ax", "progbits"
	.align 32
	.section	.pdata,	"a", "progbits"
	.align 4
	.section	.xdata,	"a", "progbits"
	.align 8
	.section	.text$zz,	"ax", "progbits"
	.align 16
	.section	.pdata,	"a", "progbits"
	.align 4
	.section	.text$zy,	"ax", "progbits"
	.align 16
	.section	.pdata,	"a", "progbits"
	.align 4
	.section	.data,	"wa", "progbits"
	.align 16
	.section	.rdata,	"a", "progbits"
	.align 16
	.section	.bss,	"wa", "nobits"
	.align 16
	.section	.debug$S,	"ax", "progbits"
	.align 16
	.section	$$TYPES,	"ax", "progbits"
	.align 16
	.section	.tls$,	"was", "progbits"
	.align 16
	.section	.sdata,	"was", "progbits"
	.align 16
	.section	.sbss,	"was", "nobits"
	.align 16
	.section	.srdata,	"as", "progbits"
	.align 16
	.section	.rdata,	"a", "progbits"
	.align 16
        .global deflate_copyright#
	.section	.srdata
?my_version@?1??deflateInit2_@@9@9:
	string	"1.2.3\000"				// `deflateInit2_'::`2'::my_version
	.section	.rdata
deflate_copyright:
	string	" deflate 1.2.3 Copyright 1995-2005 Jean-loup Gailly \000"
	.skip 11
configuration_table:
	data2	00H
	data2	00H
	data2	00H
	data2	00H
	data8	deflate_stored#
	data2	04H
	data2	04H
	data2	08H
	data2	04H
	data8	deflate_fast#
	data2	04H
	data2	05H
	data2	010H
	data2	08H
	data8	deflate_fast#
	data2	04H
	data2	06H
	data2	020H
	data2	020H
	data8	deflate_fast#
	data2	04H
	data2	04H
	data2	010H
	data2	010H
	data8	deflate_slow#
	data2	08H
	data2	010H
	data2	020H
	data2	020H
	data8	deflate_slow#
	data2	08H
	data2	010H
	data2	080H
	data2	080H
	data8	deflate_slow#
	data2	08H
	data2	020H
	data2	080H
	data2	0100H
	data8	deflate_slow#
	data2	020H
	data2	080H
	data2	0102H
	data2	0400H
	data8	deflate_slow#
	data2	020H
	data2	0102H
	data2	0102H
	data2	01000H
	data8	deflate_slow#
	.type	deflateInit_#	,@function 
        .global deflateInit_#
	.section	.pdata
$T79476: data4	@imagerel($LN3@deflateIni#)
	data4	@imagerel($LN3@deflateIni#+224)
	data4	@imagerel($T79474#)
	.section	.xdata
$T79474: data2	03H
	data2	00H
	data4	02H
	string	"\x0e"		//R1:prologue size 14
	string	"\xe6\x00"	//P7:pfs_when time 0
	string	"\xb1\x25"	//P3:pfs_gr 37
	string	"\xe4\x01"	//P7:rp_when time 1
	string	"\xb0\xa4"	//P3:rp_gr 36
	string	"\xe0\x02\x03"	//P7:mem_stack_f time 2 size 3
	string	"\x3c"		//R1:body size size 28
	string	"\x81"		//B1:label_state 1
	string	"\xc0\x05"	//B2:ecount 0 time 5
// Function compile flags: /Odtp
// File f:\study\wincezip\dll\deflate.c
	.section	.text

// Begin code for function: deflateInit_:
	.proc	deflateInit_#
	.align 32
$T79473	= 16
strm$	= 32
level$	= 40
version$	= 48
stream_size$	= 56
deflateInit_: 
// strm$ = r32
// level$ = r33
// version$ = r34
// stream_size$ = r35
// Output regs: r38-r45
$LN3@deflateIni:

// 209  : {
// 210  :     return deflateInit2_(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL,
// 211  :                          Z_DEFAULT_STRATEGY, version, stream_size);
// 212  :     /* To do: ignore strm->next_in if we use it as window */
// 213  : }

 {   .mii  //R-Addr: 0X00 
	alloc	r37=4, 2, 8, 0				    //209 	cc:0
	mov	r36=b0					    //209 	cc:0
	adds	sp=-48, sp;;				    //209 	cc:0, ffffffd0H
 }
 {   .mmi  //R-Addr: 0X010 
	ld8.nta	r2=[sp]					    //209 	cc:1
	adds	r31=strm$, sp
	adds	r30=level$, sp
 }
 {   .mib  //R-Addr: 0X020 
	adds	r29=version$, sp
	adds	r28=stream_size$, sp
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X030 
	st8	[r31]=r32
	st4	[r30]=r33
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X040 
	st8	[r29]=r34
	st4	[r28]=r35
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X050 
	adds	r27=stream_size$, sp			    //211 	cc:0
	adds	r26=version$, sp			    //211 	cc:0
	adds	r25=level$, sp				    //211 	cc:0
 }
 {   .mmi  //R-Addr: 0X060 
	adds	r22=strm$, sp				    //211 	cc:0
	mov	r43=0					    //211 	cc:0
	mov	r42=8;;					    //211 	cc:0
 }
 {   .mmi  //R-Addr: 0X070 
	ld4	r45=[r27]				    //211 	cc:1
	ld8	r44=[r26]				    //211 	cc:1
	mov	r41=15					    //211 	cc:1
 }
 {   .mmi  //R-Addr: 0X080 
	mov	r40=8;;					    //211 	cc:1
	ld4	r39=[r25]				    //211 	cc:2
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X090 
	ld8	r38=[r22]				    //211 	cc:2
	nop.m	 0
	br.call.sptk.few b0=deflateInit2_#;;		    //211 	cc:2
 }
 {   .mib  //R-Addr: 0X0a0 
	adds	r21=$T79473, sp				    //211 	cc:13
	adds	r20=$T79473, sp				    //211 	cc:13
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0b0 
	st4	[r21]=r8				    //211 	cc:14
	ld4	r8=[r20]				    //211 	cc:14
	nop.b	 0;;
 }
 {   .mii  //R-Addr: 0X0c0 
	adds	sp=48, sp				    //213 	cc:0, 00000030H
	mov.ret	b0=r36;;				    //213 	cc:0
	mov.i	ar.pfs=r37				    //213 	cc:1
 }
 {   .mmb  //R-Addr: 0X0d0 
	nop.m	 0
	nop.m	 0
	br.ret.sptk.many b0;;				    //213 	cc:1
 }
// End code for function:
	.endp	deflateInit_#
	.type	deflateInit2_#	,@function 
        .global deflateInit2_#
	.type	z_errmsg#	,@object 
        .global z_errmsg#
	.type	zcfree#	,@function 
        .global zcfree#
	.type	zcalloc#	,@function 
        .global zcalloc#
	.section	.pdata
$T79492: data4	@imagerel($LN18@deflateIni@2#)
	data4	@imagerel($LN18@deflateIni@2#+4096)
	data4	@imagerel($T79490#)
	.section	.xdata
	.skip 16
$T79490: data2	03H
	data2	00H
	data4	03H
	string	"\x17"		//R1:prologue size 23
	string	"\xe6\x00"	//P7:pfs_when time 0
	string	"\xb1\x29"	//P3:pfs_gr 41
	string	"\xe0\x01\x09"	//P7:mem_stack_f time 1 size 9
	string	"\xe4\x02"	//P7:rp_when time 2
	string	"\xb0\xa8"	//P3:rp_gr 40
	string	"\x61\xe9\x05"	//R3:body size 745
	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: deflateInit2_:
	.proc	deflateInit2_#
	.align 32
s$	= 16
overlay$	= 24
wrap$	= 32
$T79478	= 40
$T79479	= 48
$T79480	= 56
$T79481	= 64
$T79482	= 72
$T79487	= 80
strm$	= 96
level$	= 104
method$	= 112
windowBits$	= 120
memLevel$	= 128
strategy$	= 136
version$	= 144
stream_size$	= 152
deflateInit2_: 
// strm$ = r32
// level$ = r33
// method$ = r34
// windowBits$ = r35
// memLevel$ = r36
// strategy$ = r37
// version$ = r38
// stream_size$ = r39
// Output regs: r43-r45
$LN18@deflateIni@2:

// 226  : {
// 227  :     deflate_state *s;
// 228  :     int wrap = 1;
// 229  :     static const char my_version[] = ZLIB_VERSION;
// 230  : 
// 231  :     ushf *overlay;
// 232  :     /* We overlay pending_buf and d_buf+l_buf. This works since the average
// 233  :      * output size for (length,distance) codes is <= 24 bits.
// 234  :      */
// 235  : 
// 236  :     if (version == Z_NULL || version[0] != my_version[0] ||
// 237  :         stream_size != sizeof(z_stream)) {

 {   .mmi  //R-Addr: 0X00 
	alloc	r41=8, 3, 3, 0				    //226 	cc:0
	adds	sp=-144, sp				    //226 	cc:0, ffffff70H
	mov	r40=b0					    //226 	cc:0
 }
 {   .mmi  //R-Addr: 0X010 
	mov	r42=gp;;				    //226 	cc:0
	ld8.nta	r2=[sp]					    //226 	cc:1
	adds	r31=strm$, sp
 }
 {   .mmi  //R-Addr: 0X020 
	adds	r30=level$, sp
	adds	r29=method$, sp
	adds	r28=windowBits$, sp;;
 }
 {   .mmi  //R-Addr: 0X030 
	st8	[r31]=r32
	st4	[r30]=r33
	adds	r27=memLevel$, sp
 }
 {   .mmi  //R-Addr: 0X040 
	adds	r26=strategy$, sp
	adds	r25=version$, sp
	adds	r22=stream_size$, sp;;
 }
 {   .mmb  //R-Addr: 0X050 
	st4	[r29]=r34
	st4	[r28]=r35
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X060 
	st4	[r27]=r36
	st4	[r26]=r37
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X070 
	st8	[r25]=r38
	st4	[r22]=r39
	nop.b	 0;;
 }
 {   .mib  //R-Addr: 0X080 
	mov	r21=1					    //228 	cc:0
	adds	r20=wrap$, sp				    //228 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X090 
	st4	[r20]=r21;;				    //228 	cc:1
	adds	r19=version$, sp			    //237 	cc:0
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0a0 
	ld8	r18=[r19];;				    //237 	cc:1
	cmp.eq.unc p14,p15=r0, r18			    //237 	cc:2
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X0b0 
	nop.m	 0
	nop.m	 0
  (p14)	br.cond.dptk.few $LN14@deflateIni@2#;;		    //237 	cc:2
 }

// 237  :         stream_size != sizeof(z_stream)) {

 {   .mib  //R-Addr: 0X0c0 
	adds	r17=version$, sp			    //237 	cc:3
	addl	r10=@gprel(?my_version@?1??deflateInit2_@@9@9#),gp //237 	cc:3
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0d0 
	ld8	r16=[r17]				    //237 	cc:4
	ld1	r9=[r10]				    //237 	cc:4
	nop.b	 0;;
 }
 {   .mib  //R-Addr: 0X0e0 
	nop.m	 0
	sxt1	r8=r9					    //237 	cc:5
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0f0 
	ld1	r15=[r16];;				    //237 	cc:6
	nop.m	 0
	sxt1	r11=r15;;				    //237 	cc:7
 }
 {   .mmb  //R-Addr: 0X0100 
	cmp4.ne.unc p14,p15=r11, r8			    //237 	cc:8
	nop.m	 0
  (p14)	br.cond.dptk.few $LN14@deflateIni@2#;;		    //237 	cc:8
 }

// 237  :         stream_size != sizeof(z_stream)) {

 {   .mmi  //R-Addr: 0X0110 
	adds	r31=stream_size$, sp;;			    //237 	cc:9
	ld4	r30=[r31]				    //237 	cc:10
	nop.i	 0;;
 }
 {   .mii  //R-Addr: 0X0120 
	nop.m	 0
	sxt4	r29=r30;;				    //237 	cc:11
	cmp.eq.unc p14,p15=88, r29			    //237 	cc:12, 00000058H
 }
 {   .mmb  //R-Addr: 0X0130 
	nop.m	 0
	nop.m	 0
  (p14)	br.cond.dptk.few $LN15@deflateIni@2#;;		    //237 	cc:12
 }
$LN14@deflateIni@2:

// 238  :         return Z_VERSION_ERROR;

 {   .mmb  //R-Addr: 0X0140 
	mov	r8=-6					    //238 	cc:0
	nop.m	 0
	br.cond.sptk.few $LN16@deflateIni@2#;;		    //238 	cc:0
 }
$LN15@deflateIni@2:

// 239  :     }
// 240  :     if (strm == Z_NULL) return Z_STREAM_ERROR;

 {   .mmi  //R-Addr: 0X0150 
	adds	r28=strm$, sp;;				    //240 	cc:0
	ld8	r27=[r28]				    //240 	cc:1
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0160 
	cmp.ne.unc p14,p15=r0, r27			    //240 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.few $LN13@deflateIni@2#;;		    //240 	cc:2
 }

// 240  :     if (strm == Z_NULL) return Z_STREAM_ERROR;

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

// 241  : 
// 242  :     strm->msg = Z_NULL;
// 243  :     if (strm->zalloc == (alloc_func)0) {

 {   .mmi  //R-Addr: 0X0180 
	adds	r26=strm$, sp;;				    //242 	cc:0
	ld8	r25=[r26]				    //242 	cc:1
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0190 
	adds	r22=32, r25;;				    //242 	cc:2
	st8	[r22]=r0				    //242 	cc:3
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X01a0 
	adds	r21=strm$, sp;;				    //243 	cc:0
	ld8	r20=[r21]				    //243 	cc:1
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X01b0 
	adds	r19=48, r20;;				    //243 	cc:2, 00000030H
	ld8	r18=[r19]				    //243 	cc:3
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X01c0 
	cmp.ne.unc p14,p15=r0, r18			    //243 	cc:4
	nop.m	 0
  (p14)	br.cond.dptk.few $LN12@deflateIni@2#;;		    //243 	cc:4
 }

// 244  :         strm->zalloc = zcalloc;
// 245  :         strm->opaque = (voidpf)0;

 {   .mib  //R-Addr: 0X01d0 
	adds	r17=strm$, sp				    //244 	cc:0
	addl	r11=@ltoff(@fptr(zcalloc#)),gp		    //244 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X01e0 
	ld8	r16=[r17]				    //244 	cc:1
	ld8	r10=[r11]				    //244 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X01f0 
	adds	r15=48, r16;;				    //244 	cc:2, 00000030H
	st8	[r15]=r10				    //244 	cc:3
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0200 
	adds	r9=strm$, sp;;				    //245 	cc:0
	ld8	r8=[r9]					    //245 	cc:1
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0210 
	adds	r31=64, r8;;				    //245 	cc:2, 00000040H
	st8	[r31]=r0				    //245 	cc:3
	nop.i	 0;;
 }
$LN12@deflateIni@2:

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

 {   .mmi  //R-Addr: 0X0220 
	adds	r30=strm$, sp;;				    //247 	cc:0
	ld8	r29=[r30]				    //247 	cc:1
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0230 
	adds	r28=56, r29;;				    //247 	cc:2, 00000038H
	ld8	r27=[r28]				    //247 	cc:3
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0240 
	cmp.ne.unc p14,p15=r0, r27			    //247 	cc:4
	nop.m	 0
  (p14)	br.cond.dptk.few $LN11@deflateIni@2#;;		    //247 	cc:4

⌨️ 快捷键说明

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