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

📄 testzlib.asm

📁 zlib dll in wince 5.0 parfrom
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0c0 
	adds	r16=stream$, sp;;			    //125 	cc:0
	ld8	r15=[r16]				    //125 	cc:1
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0d0 
	cmp.ne.unc p14,p15=r0, r15			    //125 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.few $LN4@ReadFileMe#;;		    //125 	cc:2
 }

// 126  :         return 0;

 {   .mmb  //R-Addr: 0X0e0 
	mov	r8=r0					    //126 	cc:0
	nop.m	 0
	br.cond.sptk.few $LN5@ReadFileMe#;;		    //126 	cc:0
 }
$LN4@ReadFileMe:

// 127  : 
// 128  :     fseek(stream,0,SEEK_END);
// 129  : 
// 130  :     *plFileSize=ftell(stream);
// 131  :     fseek(stream,0,SEEK_SET);
// 132  :     ptr=malloc((*plFileSize)+1);
// 133  :     if (ptr==NULL)

 {   .mmi  //R-Addr: 0X0f0 
	addl	r10=@gprel(__imp_fseek#),gp		    //128 	cc:0
	adds	r11=stream$, sp				    //128 	cc:0
	mov	r40=2					    //128 	cc:0
 }
 {   .mmi  //R-Addr: 0X0100 
	mov	r39=0;;					    //128 	cc:0
	ld8	r9=[r10]				    //128 	cc:1
	nop.i	 0
 }
 {   .mmi  //R-Addr: 0X0110 
	ld8	r38=[r11];;				    //128 	cc:1
	ld8	r8=[r9], 8				    //128 	cc:3
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X0120 
	ld8	gp=[r9]					    //128 	cc:4
	mov	b7=r8					    //128 	cc:4
	br.call.dptk.many b0=b7;;			    //128 	cc:4
 }
 {   .mmi  //R-Addr: 0X0130 
	mov	gp=r37;;				    //128 	cc:15
	addl	r30=@gprel(__imp_ftell#),gp		    //130 	cc:0
	adds	r31=stream$, sp;;			    //130 	cc:0
 }
 {   .mmb  //R-Addr: 0X0140 
	ld8	r29=[r30]				    //130 	cc:1
	ld8	r38=[r31]				    //130 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0150 
	ld8	r28=[r29], 8;;				    //130 	cc:3
	ld8	gp=[r29]				    //130 	cc:4
	mov	b6=r28					    //130 	cc:4
 }
 {   .mmb  //R-Addr: 0X0160 
	nop.m	 0
	nop.m	 0
	br.call.dptk.many b0=b6;;			    //130 	cc:4
 }
 {   .mmi  //R-Addr: 0X0170 
	adds	r27=$T80463, sp				    //130 	cc:15
	adds	r26=$T80463, sp				    //130 	cc:15
	adds	r22=plFileSize$, sp			    //130 	cc:15
 }
 {   .mmi  //R-Addr: 0X0180 
	mov	gp=r37;;				    //130 	cc:15
	st4	[r27]=r8				    //130 	cc:16
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X0190 
	ld4	r25=[r26]				    //130 	cc:16
	ld8	r21=[r22]				    //130 	cc:16
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X01a0 
	st4	[r21]=r25;;				    //130 	cc:17
	addl	r19=@gprel(__imp_fseek#),gp		    //131 	cc:0
	adds	r20=stream$, sp				    //131 	cc:0
 }
 {   .mib  //R-Addr: 0X01b0 
	mov	r40=0					    //131 	cc:0
	mov	r39=0					    //131 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X01c0 
	ld8	r18=[r19]				    //131 	cc:1
	ld8	r38=[r20]				    //131 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X01d0 
	ld8	r17=[r18], 8;;				    //131 	cc:3
	ld8	gp=[r18]				    //131 	cc:4
	mov	b7=r17					    //131 	cc:4
 }
 {   .mmb  //R-Addr: 0X01e0 
	nop.m	 0
	nop.m	 0
	br.call.dptk.many b0=b7;;			    //131 	cc:4
 }
 {   .mmi  //R-Addr: 0X01f0 
	mov	gp=r37;;				    //131 	cc:15
	adds	r16=plFileSize$, sp			    //132 	cc:0
	addl	r9=@gprel(__imp_malloc#),gp;;		    //132 	cc:0
 }
 {   .mmb  //R-Addr: 0X0200 
	ld8	r15=[r16]				    //132 	cc:1
	ld8	r8=[r9]					    //132 	cc:1
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0210 
	ld4	r11=[r15]				    //132 	cc:3
	ld8	r31=[r8], 8				    //132 	cc:3
	nop.b	 0;;
 }
 {   .mii  //R-Addr: 0X0220 
	ld8	gp=[r8]					    //132 	cc:4
	mov	b6=r31					    //132 	cc:4
	adds	r10=1, r11;;				    //132 	cc:4
 }
 {   .mib  //R-Addr: 0X0230 
	nop.m	 0
	sxt4	r38=r10					    //132 	cc:5
	br.call.dptk.many b0=b6;;			    //132 	cc:5
 }
 {   .mmi  //R-Addr: 0X0240 
	adds	r30=$T80464, sp				    //132 	cc:16
	adds	r29=$T80464, sp				    //132 	cc:16
	adds	r27=ptr$, sp				    //132 	cc:16
 }
 {   .mmi  //R-Addr: 0X0250 
	mov	gp=r37;;				    //132 	cc:16
	st8	[r30]=r8				    //132 	cc:17
	nop.i	 0
 }
 {   .mmi  //R-Addr: 0X0260 
	ld8	r28=[r29];;				    //132 	cc:17
	st8	[r27]=r28				    //132 	cc:18
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0270 
	adds	r26=ptr$, sp;;				    //133 	cc:0
	ld8	r25=[r26]				    //133 	cc:1
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0280 
	cmp.ne.unc p14,p15=r0, r25			    //133 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.few $LN3@ReadFileMe#;;		    //133 	cc:2
 }

// 134  :         retVal=0;
// 135  :     else

 {   .mmi  //R-Addr: 0X0290 
	adds	r22=retVal$, sp;;			    //134 	cc:0
	st4	[r22]=r0				    //134 	cc:1
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X02a0 
	nop.m	 0
	nop.m	 0
	br.cond.sptk.few $LN2@ReadFileMe#;;		    //135 	cc:0
 }
$LN3@ReadFileMe:

// 136  :     {
// 137  :         if (fread(ptr, 1, *plFileSize,stream) != (*plFileSize))

 {   .mmi  //R-Addr: 0X02b0 
	addl	r16=@gprel(__imp_fread#),gp		    //137 	cc:0
	adds	r20=plFileSize$, sp			    //137 	cc:0
	adds	r21=stream$, sp				    //137 	cc:0
 }
 {   .mib  //R-Addr: 0X02c0 
	adds	r17=ptr$, sp				    //137 	cc:0
	mov	r39=1					    //137 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X02d0 
	ld8	r19=[r20]				    //137 	cc:1
	ld8	r15=[r16]				    //137 	cc:1
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X02e0 
	ld8	r41=[r21]				    //137 	cc:2
	ld8	r38=[r17]				    //137 	cc:2
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X02f0 
	ld8	r11=[r15], 8				    //137 	cc:3
	ld4	r18=[r19]				    //137 	cc:3
	nop.b	 0;;
 }
 {   .mii  //R-Addr: 0X0300 
	ld8	gp=[r15]				    //137 	cc:4
	mov	b7=r11					    //137 	cc:4
	sxt4	r40=r18					    //137 	cc:4
 }
 {   .mmb  //R-Addr: 0X0310 
	nop.m	 0
	nop.m	 0
	br.call.dptk.many b0=b7;;			    //137 	cc:4
 }
 {   .mmi  //R-Addr: 0X0320 
	adds	r10=$T80465, sp				    //137 	cc:15
	adds	r9=plFileSize$, sp			    //137 	cc:15
	adds	r29=$T80465, sp				    //137 	cc:15
 }
 {   .mmi  //R-Addr: 0X0330 
	mov	gp=r37;;				    //137 	cc:15
	st8	[r10]=r8				    //137 	cc:16
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X0340 
	ld8	r8=[r9]					    //137 	cc:16
	ld8	r28=[r29]				    //137 	cc:16
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0350 
	ld4	r31=[r8];;				    //137 	cc:18
	nop.m	 0
	sxt4	r30=r31;;				    //137 	cc:19
 }
 {   .mmb  //R-Addr: 0X0360 
	cmp.eq.unc p14,p15=r28, r30			    //137 	cc:20
	nop.m	 0
  (p14)	br.cond.dptk.few $LN2@ReadFileMe#;;		    //137 	cc:20
 }

// 138  :             retVal=0;

 {   .mmi  //R-Addr: 0X0370 
	adds	r27=retVal$, sp;;			    //138 	cc:0
	st4	[r27]=r0				    //138 	cc:1
	nop.i	 0;;
 }
$LN2@ReadFileMe:

// 139  :     }
// 140  :     fclose(stream);
// 141  :     *pFilePtr=ptr;
// 142  :     return retVal;

 {   .mib  //R-Addr: 0X0380 
	addl	r25=@gprel(__imp_fclose#),gp		    //140 	cc:0
	adds	r26=stream$, sp				    //140 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0390 
	ld8	r22=[r25]				    //140 	cc:1
	ld8	r38=[r26]				    //140 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X03a0 
	ld8	r21=[r22], 8;;				    //140 	cc:3
	ld8	gp=[r22]				    //140 	cc:4
	mov	b6=r21					    //140 	cc:4
 }
 {   .mmb  //R-Addr: 0X03b0 
	nop.m	 0
	nop.m	 0
	br.call.dptk.many b0=b6;;			    //140 	cc:4
 }
 {   .mmi  //R-Addr: 0X03c0 
	mov	gp=r37;;				    //140 	cc:15
	adds	r20=ptr$, sp				    //141 	cc:0
	adds	r18=pFilePtr$, sp;;			    //141 	cc:0
 }
 {   .mmb  //R-Addr: 0X03d0 
	ld8	r19=[r20]				    //141 	cc:1
	ld8	r17=[r18]				    //141 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X03e0 
	st8	[r17]=r19;;				    //141 	cc:2
	adds	r16=retVal$, sp				    //142 	cc:0
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X03f0 
	ld4	r8=[r16];;				    //142 	cc:1
	nop.m	 0
	nop.i	 0;;
 }
$LN5@ReadFileMe:

// 143  : }

 {   .mii  //R-Addr: 0X0400 
	adds	sp=96, sp				    //143 	cc:0, 00000060H
	mov.ret	b0=r35;;				    //143 	cc:0
	mov.i	ar.pfs=r36				    //143 	cc:1
 }
 {   .mmb  //R-Addr: 0X0410 
	nop.m	 0
	nop.m	 0
	br.ret.sptk.many b0;;				    //143 	cc:1
 }
// End code for function:
	.endp	ReadFileMemory#
	.type	main#	,@function 
        .global main#
	.type	memcmp#	,@function 
        .global memcmp#
	.type	inflateEnd#	,@function 
        .global inflateEnd#
	.type	inflate#	,@function 
        .global inflate#
	.type	inflateInit_#	,@function 
        .global inflateInit_#
	.type	__imp_realloc#	,@function 
        .global __imp_realloc#
	.type	deflateEnd#	,@function 
        .global deflateEnd#
	.type	deflate#	,@function 
        .global deflate#
	.type	deflateInit_#	,@function 
        .global deflateInit_#
	.type	memset#	,@function 
        .global memset#
	.type	__imp_atol#	,@function 
        .global __imp_atol#
	.type	__imp_printf#	,@function 
        .global __imp_printf#
	.type	_fltused#	,@object 
        .global _fltused#
	.section	.pdata
$T80506: data4	@imagerel($LN27@main#)
	data4	@imagerel($LN27@main#+6128)
	data4	@imagerel($T80504#)
	.section	.xdata
	.skip 8
$T80504: data2	03H
	data2	00H
	data4	03H
	string	"\x0a"		//R1:prologue size 10
	string	"\xe6\x00"	//P7:pfs_when time 0
	string	"\xb1\x23"	//P3:pfs_gr 35
	string	"\xe0\x01\x1d"	//P7:mem_stack_f time 1 size 29
	string	"\xe4\x02"	//P7:rp_when time 2
	string	"\xb0\xa2"	//P3:rp_gr 34
	string	"\x61\xf3\x08"	//R3:body size 1139
	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: main:
	.proc	main#
	.align 32
lCompressedSize$	= 16
li_qp$	= 24
lBufferSizeCpr$	= 32
BlockSizeUncompress$	= 36
lFileSize$	= 40
li_rdtsc$	= 48
FilePtr$	= 56
cprLevel$	= 64
lSizeCpr$	= 68
lSizeUncpr$	= 72
CprPtr$	= 80
lBufferSizeUncpr$	= 88
dwResRdtsc$	= 96
dwMsecQP$	= 104
dwGetTick$	= 108
BlockSizeCompress$	= 112
UncprPtr$	= 120
zcpr$80346	= 128
step$80350	= 216
ret$80347	= 220
lOrigDone$80349	= 224
lOrigToDo$80348	= 228
all_read_before$80357	= 232
zcpr$80366	= 240
step$80370	= 328
ret$80367	= 332
lOrigDone$80369	= 336
lOrigToDo$80368	= 340
all_read_before$80377	= 344
$T80478	= 348
$T80479	= 352
$T80480	= 356
$T80481	= 360
$T80482	= 368
$T80483	= 376
$T80484	= 380
$T80485	= 384
$T80486	= 388
$T80487	= 392
$T80488	= 400
$T80489	= 408
$T80490	= 416
$T80491	= 424
$T80492	= 428
$T80493	= 432
$T80494	= 436
$T80495	= 440
$T80496	= 448
$T80497	= 452
$T80498	= 456
argc$	= 464
argv$	= 472
main: 
// argc$ = r32
// argv$ = r33
// Output regs: r37-r40
$LN27@main:

// 146  : {
// 147  :     int BlockSizeCompress=0x8000;
// 148  :     int BlockSizeUncompress=0x8000;
// 149  :     int cprLevel=Z_DEFAULT_COMPRESSION ;
// 150  :     long lFileSize;
// 151  :     unsigned char* FilePtr;
// 152  :     long lBufferSizeCpr;
// 153  :     long lBufferSizeUncpr;
// 154  :     long lCompressedSize=0;
// 155  :     unsigned char* CprPtr;
// 156  :     unsigned char* UncprPtr;
// 157  :     long lSizeCpr,lSizeUncpr;
// 158  :     DWORD dwGetTick,dwMsecQP;
// 159  :     LARGE_INTEGER li_qp,li_rdtsc,dwResRdtsc;
// 160  : 
// 161  :     if (argc<=1)

 {   .mmi  //R-Addr: 0X00 
	alloc	r35=2, 3, 4, 0				    //146 	cc:0
	adds	sp=-464, sp				    //146 	cc:0, fffffe30H
	mov	r34=b0					    //146 	cc:0
 }
 {   .mmi  //R-Addr: 0X010 
	mov	r36=gp;;				    //146 	cc:0
	ld8.nta	r2=[sp]					    //146 	cc:1
	adds	r31=argc$, sp
 }
 {   .mmi  //R-Addr: 0X020 
	adds	r30=argv$, sp;;
	st4	[r31]=r32
	nop.i	 0
 }
 {   .mmi  //R-Addr: 0X030 
	st8	[r30]=r33;;
	mov	r29=32768				    //147 	cc:0, 00008000H
	adds	r28=BlockSizeCompress$, sp;;		    //147 	cc:0
 }
 {   .mmi  //R-Addr: 0X040 
	st4	[r28]=r29;;				    //147 	cc:1
	mov	r27=32768				    //148 	cc:0, 00008000H
	adds	r26=BlockSizeUncompress$, sp;;		    //148 	cc:0
 }
 {   .mmi  //R-Addr: 0X050 
	st4	[r26]=r27;;				    //148 	cc:1
	mov	r25=-1					    //149 	cc:0
	adds	r22=cprLevel$, sp;;			    //149 	cc:0
 }
 {   .mmi  //R-Addr: 0X060 
	st4	[r22]=r25;;				    //149 	cc:1
	adds	r21=lCompressedSize$, sp		    //154 	cc:0
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X070 
	st4	[r21]=r0;;				    //154 	cc:1
	adds	r20=argc$, sp				    //161 	cc:0
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X080 
	ld4	r19=[r20];;				    //161 	cc:1
	cmp4.lt.unc p14,p15=1, r19			    //161 	cc:2
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X090 
	nop.m	 0
	nop.m	 0
  (p14)	br.cond.dptk.few $LN14@main#;;			    //161 	cc:2
 }

// 162  :     {
// 163  :         printf("run TestZlib <File> [BlockSizeCompress] [BlockSizeUncompress] [compres. level]\n");
// 164  :         return 0;

 {   .mib  //R-Addr: 0X0a0 
	addl	r17=@gprel(__imp_printf#),gp		    //163 	cc:0
	addl	r18=@ltoff($SG80336#),gp		    //163 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0b0 
	ld8	r16=[r17]				    //163 	cc:1
	ld8	r37=[r18]				    //163 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0c0 
	ld8	r15=[r16], 8;;				    //163 	cc:3
	ld8	gp=[r16]				    //163 	cc:4
	mov	b7=r15					    //163 	cc:4
 }
 {   .mmb  //R-Addr: 0X0d0 
	nop.m	 0
	nop.m	 0
	br.call.dptk.many b0=b7;;			    //163 	cc:4
 }
 {   .mmb  //R-Addr: 0X0e0 

⌨️ 快捷键说明

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