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

📄 crc32.asm

📁 zlib dll in wince 5.0 parfrom
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	data4	0c5fec97H
	data4	0e2f05985H
	data4	08797e53dH
	data4	0d1878665H
	data4	0b4e03addH
	data4	05a4f8fcfH
	data4	03f283377H
	data4	08610e4eaH
	data4	0e3775852H
	data4	0dd8ed40H
	data4	068bf51f8H
	data4	0a1f82bf0H
	data4	0c49f9748H
	data4	02a30225aH
	data4	04f579ee2H
	data4	0f66f497fH
	data4	09308f5c7H
	data4	07da740d5H
	data4	018c0fc6dH
	data4	04ed09f35H
	data4	02bb7238dH
	data4	0c518969fH
	data4	0a07f2a27H
	data4	01947fdbaH
	data4	07c204102H
	data4	0928ff410H
	data4	0f7e848a8H
	data4	03d58149bH
	data4	0583fa823H
	data4	0b6901d31H
	data4	0d3f7a189H
	data4	06acf7614H
	data4	0fa8caacH
	data4	0e1077fbeH
	data4	08460c306H
	data4	0d270a05eH
	data4	0b7171ce6H
	data4	059b8a9f4H
	data4	03cdf154cH
	data4	085e7c2d1H
	data4	0e0807e69H
	data4	0e2fcb7bH
	data4	06b4877c3H
	data4	0a20f0dcbH
	data4	0c768b173H
	data4	029c70461H
	data4	04ca0b8d9H
	data4	0f5986f44H
	data4	090ffd3fcH
	data4	07e5066eeH
	data4	01b37da56H
	data4	04d27b90eH
	data4	0284005b6H
	data4	0c6efb0a4H
	data4	0a3880c1cH
	data4	01ab0db81H
	data4	07fd76739H
	data4	09178d22bH
	data4	0f41f6e93H
	data4	03f7263bH
	data4	066909a83H
	data4	0883f2f91H
	data4	0ed589329H
	data4	0546044b4H
	data4	03107f80cH
	data4	0dfa84d1eH
	data4	0bacff1a6H
	data4	0ecdf92feH
	data4	089b82e46H
	data4	067179b54H
	data4	027027ecH
	data4	0bb48f071H
	data4	0de2f4cc9H
	data4	03080f9dbH
	data4	055e74563H
	data4	09ca03f6bH
	data4	0f9c783d3H
	data4	0176836c1H
	data4	0720f8a79H
	data4	0cb375de4H
	data4	0ae50e15cH
	data4	040ff544eH
	data4	02598e8f6H
	data4	073888baeH
	data4	016ef3716H
	data4	0f8408204H
	data4	09d273ebcH
	data4	0241fe921H
	data4	041785599H
	data4	0afd7e08bH
	data4	0cab05c33H
	data4	03bb659edH
	data4	05ed1e555H
	data4	0b07e5047H
	data4	0d519ecffH
	data4	06c213b62H
	data4	094687daH
	data4	0e7e932c8H
	data4	0828e8e70H
	data4	0d49eed28H
	data4	0b1f95190H
	data4	05f56e482H
	data4	03a31583aH
	data4	083098fa7H
	data4	0e66e331fH
	data4	08c1860dH
	data4	06da63ab5H
	data4	0a4e140bdH
	data4	0c186fc05H
	data4	02f294917H
	data4	04a4ef5afH
	data4	0f3762232H
	data4	096119e8aH
	data4	078be2b98H
	data4	01dd99720H
	data4	04bc9f478H
	data4	02eae48c0H
	data4	0c001fdd2H
	data4	0a566416aH
	data4	01c5e96f7H
	data4	079392a4fH
	data4	097969f5dH
	data4	0f2f123e5H
	data4	05196b4dH
	data4	0607ed7f5H
	data4	08ed162e7H
	data4	0ebb6de5fH
	data4	0528e09c2H
	data4	037e9b57aH
	data4	0d9460068H
	data4	0bc21bcd0H
	data4	0ea31df88H
	data4	08f566330H
	data4	061f9d622H
	data4	049e6a9aH
	data4	0bda6bd07H
	data4	0d8c101bfH
	data4	0366eb4adH
	data4	053090815H
	data4	09a4e721dH
	data4	0ff29cea5H
	data4	011867bb7H
	data4	074e1c70fH
	data4	0cdd91092H
	data4	0a8beac2aH
	data4	046111938H
	data4	02376a580H
	data4	07566c6d8H
	data4	010017a60H
	data4	0feaecf72H
	data4	09bc973caH
	data4	022f1a457H
	data4	0479618efH
	data4	0a939adfdH
	data4	0cc5e1145H
	data4	06ee4d76H
	data4	06389f1ceH
	data4	08d2644dcH
	data4	0e841f864H
	data4	051792ff9H
	data4	0341e9341H
	data4	0dab12653H
	data4	0bfd69aebH
	data4	0e9c6f9b3H
	data4	08ca1450bH
	data4	0620ef019H
	data4	07694ca1H
	data4	0be519b3cH
	data4	0db362784H
	data4	035999296H
	data4	050fe2e2eH
	data4	099b95426H
	data4	0fcdee89eH
	data4	012715d8cH
	data4	07716e134H
	data4	0ce2e36a9H
	data4	0ab498a11H
	data4	045e63f03H
	data4	0208183bbH
	data4	07691e0e3H
	data4	013f65c5bH
	data4	0fd59e949H
	data4	0983e55f1H
	data4	02106826cH
	data4	044613ed4H
	data4	0aace8bc6H
	data4	0cfa9377eH
	data4	038417fd6H
	data4	05d26c36eH
	data4	0b389767cH
	data4	0d6eecac4H
	data4	06fd61d59H
	data4	0ab1a1e1H
	data4	0e41e14f3H
	data4	08179a84bH
	data4	0d769cb13H
	data4	0b20e77abH
	data4	05ca1c2b9H
	data4	039c67e01H
	data4	080fea99cH
	data4	0e5991524H
	data4	0b36a036H
	data4	06e511c8eH
	data4	0a7166686H
	data4	0c271da3eH
	data4	02cde6f2cH
	data4	049b9d394H
	data4	0f0810409H
	data4	095e6b8b1H
	data4	07b490da3H
	data4	01e2eb11bH
	data4	0483ed243H
	data4	02d596efbH
	data4	0c3f6dbe9H
	data4	0a6916751H
	data4	01fa9b0ccH
	data4	07ace0c74H
	data4	09461b966H
	data4	0f10605deH
	.type	get_crc_table#	,@function 
        .global get_crc_table#
// Function compile flags: /Odtp
// File f:\study\wincezip\dll\crc32.c
	.section	.text

// Begin code for function: get_crc_table:
	.proc	get_crc_table#
	.align 32
get_crc_table: 
// Output regs: None

// 211  :     return (const unsigned long FAR *)crc_table;
// 212  : }

 {   .mmi  //R-Addr: 0X00 
	addl	r31=@ltoff(crc_table#),gp;;		    //211 	cc:0
	ld8	r8=[r31]				    //211 	cc:1
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X010 
	nop.m	 0
	nop.m	 0
	br.ret.sptk.many b0;;				    //212 	cc:0
 }
// End code for function:
	.endp	get_crc_table#
	.type	crc32#	,@function 
        .global crc32#
	.section	.pdata
$T78871: data4	@imagerel($LN13@crc32#)
	data4	@imagerel($LN13@crc32#+2064)
	data4	@imagerel($T78869#)
	.section	.xdata
$T78869: data2	03H
	data2	00H
	data4	03H
	string	"\x0b"		//R1:prologue size 11
	string	"\xe6\x00"	//P7:pfs_when time 0
	string	"\xb1\x24"	//P3:pfs_gr 36
	string	"\xe4\x01"	//P7:rp_when time 1
	string	"\xb0\xa3"	//P3:rp_gr 35
	string	"\xe0\x02\x03"	//P7:mem_stack_f time 2 size 3
	string	"\x61\xf8\x02"	//R3:body size 376
	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: crc32:
	.proc	crc32#
	.align 32
endian$78725	= 16
$T78867	= 20
$T78868	= 24
crc$	= 32
buf$	= 40
len$	= 48
crc32: 
// crc$ = r32
// buf$ = r33
// len$ = r34
// Output regs: r37-r39
$LN13@crc32:

// 223  : {
// 224  :     if (buf == Z_NULL) return 0UL;

 {   .mii  //R-Addr: 0X00 
	alloc	r36=3, 2, 3, 0				    //223 	cc:0
	mov	r35=b0					    //223 	cc:0
	adds	sp=-48, sp;;				    //223 	cc:0, ffffffd0H
 }
 {   .mmi  //R-Addr: 0X010 
	ld8.nta	r2=[sp]					    //223 	cc:1
	adds	r31=crc$, sp
	adds	r30=buf$, sp
 }
 {   .mmi  //R-Addr: 0X020 
	adds	r29=len$, sp;;
	st4	[r31]=r32
	nop.i	 0
 }
 {   .mmi  //R-Addr: 0X030 
	st8	[r30]=r33;;
	st4	[r29]=r34
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X040 
	adds	r28=buf$, sp;;				    //224 	cc:0
	ld8	r27=[r28]				    //224 	cc:1
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X050 
	cmp.ne.unc p14,p15=r0, r27			    //224 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.few $LN10@crc32#;;			    //224 	cc:2
 }

// 224  :     if (buf == Z_NULL) return 0UL;

 {   .mmb  //R-Addr: 0X060 
	mov	r8=r0					    //224 	cc:3
	nop.m	 0
	br.cond.sptk.few $LN11@crc32#;;			    //224 	cc:3
 }
$LN10@crc32:

// 225  : 
// 226  : #ifdef DYNAMIC_CRC_TABLE
// 227  :     if (crc_table_empty)
// 228  :         make_crc_table();
// 229  : #endif /* DYNAMIC_CRC_TABLE */
// 230  : 
// 231  : #ifdef BYFOUR
// 232  :     if (sizeof(void *) == sizeof(ptrdiff_t)) {

 {   .mmi  //R-Addr: 0X070 
	mov	r26=1;;					    //232 	cc:0
	cmp4.eq.unc p14,p15=r0, r26			    //232 	cc:1
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X080 
	nop.m	 0
	nop.m	 0
  (p14)	br.cond.dptk.few $LN9@crc32#;;			    //232 	cc:1
 }

// 233  :         u4 endian;
// 234  : 
// 235  :         endian = 1;
// 236  :         if (*((unsigned char *)(&endian)))

 {   .mib  //R-Addr: 0X090 
	mov	r25=1					    //235 	cc:0
	adds	r22=endian$78725, sp			    //235 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0a0 
	st4	[r22]=r25;;				    //235 	cc:1
	adds	r21=endian$78725, sp			    //236 	cc:0
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0b0 
	ld1	r20=[r21];;				    //236 	cc:1
	cmp4.eq.unc p14,p15=r0, r20			    //236 	cc:2
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X0c0 
	nop.m	 0
	nop.m	 0
  (p14)	br.cond.dptk.few $LN8@crc32#;;			    //236 	cc:2
 }

// 237  :             return crc32_little(crc, buf, len);

 {   .mmi  //R-Addr: 0X0d0 
	adds	r19=len$, sp				    //237 	cc:0
	adds	r18=buf$, sp				    //237 	cc:0
	adds	r17=crc$, sp;;				    //237 	cc:0
 }
 {   .mmb  //R-Addr: 0X0e0 
	ld4	r39=[r19]				    //237 	cc:1
	ld8	r38=[r18]				    //237 	cc:1
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0f0 
	ld4	r37=[r17]				    //237 	cc:2
	nop.m	 0
	br.call.sptk.few b0=crc32_little#;;		    //237 	cc:2
 }
 {   .mib  //R-Addr: 0X0100 
	adds	r16=$T78867, sp				    //237 	cc:13
	adds	r15=$T78867, sp				    //237 	cc:13
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0110 
	st4	[r16]=r8				    //237 	cc:14
	ld4	r8=[r15]				    //237 	cc:14
	br.cond.sptk.few $LN11@crc32#;;			    //237 	cc:14
 }

// 238  :         else

 {   .mmb  //R-Addr: 0X0120 
	nop.m	 0
	nop.m	 0
	br.cond.sptk.few $LN9@crc32#;;			    //238 	cc:0
 }
$LN8@crc32:

// 239  :             return crc32_big(crc, buf, len);

 {   .mmi  //R-Addr: 0X0130 
	adds	r11=len$, sp				    //239 	cc:0
	adds	r10=buf$, sp				    //239 	cc:0
	adds	r9=crc$, sp;;				    //239 	cc:0
 }
 {   .mmb  //R-Addr: 0X0140 
	ld4	r39=[r11]				    //239 	cc:1
	ld8	r38=[r10]				    //239 	cc:1
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0150 
	ld4	r37=[r9]				    //239 	cc:2
	nop.m	 0
	br.call.sptk.few b0=crc32_big#;;		    //239 	cc:2
 }
 {   .mib  //R-Addr: 0X0160 
	adds	r31=$T78868, sp				    //239 	cc:13
	adds	r30=$T78868, sp				    //239 	cc:13
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0170 
	st4	[r31]=r8				    //239 	cc:14
	ld4	r8=[r30]				    //239 	cc:14
	br.cond.sptk.few $LN11@crc32#;;			    //239 	cc:14
 }
$LN9@crc32:

// 240  :     }
// 241  : #endif /* BYFOUR */
// 242  :     crc = crc ^ 0xffffffffUL;

 {   .mib  //R-Addr: 0X0180 
	adds	r29=crc$, sp				    //242 	cc:0
	adds	r26=crc$, sp				    //242 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0190 
	ld4	r28=[r29];;				    //242 	cc:1
	xor	r27=-1, r28				    //242 	cc:2
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X01a0 
	st4	[r26]=r27				    //242 	cc:3
	nop.m	 0
	nop.b	 0;;
 }
$LN6@crc32:

// 243  :     while (len >= 8) {

 {   .mmi  //R-Addr: 0X01b0 
	adds	r25=len$, sp;;				    //243 	cc:0
	ld4	r22=[r25]				    //243 	cc:1
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X01c0 
	cmp4.gtu.unc p14,p15=8, r22			    //243 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.few $LN5@crc32#;;			    //243 	cc:2
 }

// 244  :         DO8;
// 245  :         len -= 8;
// 246  :     }

 {   .mmi  //R-Addr: 0X01d0 
	adds	r21=buf$, sp				    //244 	cc:0
	adds	r18=crc$, sp				    //244 	cc:0
	addl	r9=@ltoff(crc_table#),gp		    //244 	cc:0
 }
 {   .mmi  //R-Addr: 0X01e0 
	adds	r30=crc$, sp				    //244 	cc:0
	adds	r25=crc$, sp				    //244 	cc:0
	adds	r22=buf$, sp;;				    //244 	cc:0
 }
 {   .mmi  //R-Addr: 0X01f0 
	ld8	r20=[r21]				    //244 	cc:1
	ld4	r17=[r18]				    //244 	cc:1
	adds	r18=buf$, sp;;				    //244 	cc:1
 }
 {   .mmi  //R-Addr: 0X0200 
	ld8	r8=[r9]					    //244 	cc:2
	ld4	r29=[r30]				    //244 	cc:2
	addl	r30=@ltoff(crc_table#),gp;;		    //244 	cc:2
 }
 {   .mii  //R-Addr: 0X0210 
	ld1	r19=[r20]				    //244 	cc:3
	extr.u	r28=r29, 8, 24;;			    //244 	cc:3
	xor	r16=r17, r19				    //244 	cc:4
 }
 {   .mmi  //R-Addr: 0X0220 
	adds	r19=buf$, sp;;				    //244 	cc:4
	nop.m	 0
	zxt1	r15=r16;;				    //244 	cc:5
 }
 {   .mii  //R-Addr: 0X0230 
	nop.m	 0
	sxt4	r11=r15					    //244 	cc:6
	adds	r15=crc$, sp;;				    //244 	cc:6
 }
 {   .mii  //R-Addr: 0X0240 
	nop.m	 0
	shl	r10=r11, 2;;				    //244 	cc:7
	add	r31=r8, r10;;				    //244 	cc:8
 }
 {   .mmi  //R-Addr: 0X0250 
	ld4	r27=[r31];;				    //244 	cc:9
	xor	r26=r27, r28				    //244 	cc:10
	adds	r27=crc$, sp;;				    //244 	cc:10
 }
 {   .mmb  //R-Addr: 0X0260 
	st4	[r25]=r26				    //244 	cc:11
	ld8	r21=[r22]				    //244 	cc:11
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0270 
	adds	r20=1, r21;;				    //244 	cc:12
	st8	[r19]=r20				    //244 	cc:13
	adds	r20=crc$, sp				    //244 	cc:13
 }
 {   .mmi  //R-Addr: 0X0280 
	ld8	r17=[r18]				    //244 	cc:13
	ld4	r11=[r15]				    //244 	cc:13
	adds	r19=buf$, sp;;				    //244 	cc:13
 }
 {   .mmi  //R-Addr: 0X0290 
	ld8	r29=[r30]				    //244 	cc:14
	ld4	r26=[r27]				    //244 	cc:14
	adds	r15=buf$, sp				    //244 	cc:14
 }
 {   .mmi  //R-Addr: 0X02a0 
	addl	r27=@ltoff(crc_table#),gp;;		    //244 	cc:14
	ld1	r16=[r17]				    //244 	cc:15
	extr.u	r25=r26, 8, 24;;			    //244 	cc:15
 }
 {   .mii  //R-Addr: 0X02b0 
	xor	r10=r11, r16				    //244 	cc:16
	adds	r16=buf$, sp;;				    //244 	cc:16
	zxt1	r9=r10;;				    //244 	cc:17
 }
 {   .mii  //R-Addr: 0X02c0 
	nop.m	 0
	sxt4	r8=r9					    //244 	cc:18
	adds	r9=crc$, sp;;				    //244 	cc:18
 }
 {   .mii  //R-Addr: 0X02d0 
	nop.m	 0
	shl	r31=r8, 2;;				    //244 	cc:19
	add	r28=r29, r31;;				    //244 	cc:20
 }
 {   .mmi  //R-Addr: 0X02e0 
	ld4	r22=[r28];;				    //244 	cc:21
	xor	r21=r22, r25				    //244 	cc:22
	adds	r22=crc$, sp;;				    //244 	cc:22
 }
 {   .mmb  //R-Addr: 0X02f0 
	st4	[r20]=r21				    //244 	cc:23
	ld8	r18=[r19]				    //244 	cc:23
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0300 
	adds	r17=1, r18;;				    //244 	cc:24
	st8	[r16]=r17				    //244 	cc:25
	adds	r17=crc$, sp				    //244 	cc:25
 }
 {   .mmi  //R-Addr: 0X0310 
	ld8	r11=[r15]				    //244 	cc:25
	ld4	r8=[r9]					    //244 	cc:25
	adds	r16=buf$, sp;;				    //244 	cc:25
 }
 {   .mmi  //R-Addr: 0X0320 
	ld8	r26=[r27]				    //244 	cc:26
	ld4	r21=[r22]				    //244 	cc:26
	adds	r9=buf$, sp;;				    //244 	cc:26
 }
 {   .mii  //R-Addr: 0X0330 
	ld1	r10=[r11]				    //244 	cc:27
	extr.u	r20=r21, 8, 24;;			    //244 	cc:27
	xor	r31=r8, r10				    //244 	cc:28
 }
 {   .mmi  //R-Addr: 0X0340 
	adds	r10=buf$, sp;;				    //244 	cc:28
	nop.m	 0
	zxt1	r30=r31;;				    //244 	cc:29
 }
 {   .mii  //R-Addr: 0X0350 
	nop.m	 0
	sxt4	r29=r30					    //244 	cc:30
	adds	r30=crc$, sp;;				    //244 	cc:30
 }
 {   .mii  //R-Addr: 0X0360 
	nop.m	 0
	shl	r28=r29, 2;;				    //244 	cc:31
	add	r25=r26, r28;;				    //244 	cc:32
 }
 {   .mmi  //R-Addr: 0X0370 
	ld4	r19=[r25];;				    //244 	cc:33
	xor	r18=r19, r20				    //244 	cc:34
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0380 
	st4	[r17]=r18				    //244 	cc:35
	ld8	r15=[r16]				    //244 	cc:35
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0390 
	adds	r11=1, r15;;				    //244 	cc:36
	st8	[r10]=r11				    //244 	cc:37
	nop.i	 0
 }

⌨️ 快捷键说明

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