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

📄 inflate.asm

📁 zlib dll in wince 5.0 parfrom
💻 ASM
📖 第 1 页 / 共 5 页
字号:
$LN5@inflateIni:

// 172  :         state->wrap = (windowBits >> 4) + 1;
// 173  : #ifdef GUNZIP
// 174  :         if (windowBits < 48) windowBits &= 15;

 {   .mib  //R-Addr: 0X0380 
	adds	r17=windowBits$, sp			    //172 	cc:0
	adds	r10=state$, sp				    //172 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0390 
	ld4	r16=[r17]				    //172 	cc:1
	ld8	r9=[r10]				    //172 	cc:1
	nop.b	 0;;
 }
 {   .mii  //R-Addr: 0X03a0 
	adds	r8=8, r9				    //172 	cc:2
	extr	r15=r16, 4, 28;;			    //172 	cc:2
	adds	r11=1, r15;;				    //172 	cc:3
 }
 {   .mmi  //R-Addr: 0X03b0 
	st4	[r8]=r11;;				    //172 	cc:4
	adds	r31=windowBits$, sp			    //174 	cc:0
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X03c0 
	ld4	r30=[r31];;				    //174 	cc:1
	cmp4.le.unc p14,p15=48, r30			    //174 	cc:2, 00000030H
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X03d0 
	nop.m	 0
	nop.m	 0
  (p14)	br.cond.dptk.few $LN4@inflateIni#;;		    //174 	cc:2
 }

// 174  :         if (windowBits < 48) windowBits &= 15;

 {   .mib  //R-Addr: 0X03e0 
	adds	r29=windowBits$, sp			    //174 	cc:3
	adds	r26=windowBits$, sp			    //174 	cc:3
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X03f0 
	ld4	r28=[r29];;				    //174 	cc:4
	and	r27=15, r28				    //174 	cc:5
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0400 
	st4	[r26]=r27				    //174 	cc:6
	nop.m	 0
	nop.b	 0;;
 }
$LN4@inflateIni:

// 175  : #endif
// 176  :     }
// 177  :     if (windowBits < 8 || windowBits > 15) {

 {   .mmi  //R-Addr: 0X0410 
	adds	r25=windowBits$, sp;;			    //177 	cc:0
	ld4	r22=[r25]				    //177 	cc:1
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0420 
	cmp4.gt.unc p14,p15=8, r22			    //177 	cc:2
	nop.m	 0
  (p14)	br.cond.dptk.few $LN1@inflateIni#;;		    //177 	cc:2
 }

// 177  :     if (windowBits < 8 || windowBits > 15) {

 {   .mmi  //R-Addr: 0X0430 
	adds	r21=windowBits$, sp;;			    //177 	cc:3
	ld4	r20=[r21]				    //177 	cc:4
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0440 
	cmp4.ge.unc p14,p15=15, r20			    //177 	cc:5
	nop.m	 0
  (p14)	br.cond.dptk.few $LN2@inflateIni#;;		    //177 	cc:5
 }
$LN1@inflateIni:

// 178  :         ZFREE(strm, state);
// 179  :         strm->state = Z_NULL;
// 180  :         return Z_STREAM_ERROR;

 {   .mmi  //R-Addr: 0X0450 
	adds	r15=strm$, sp				    //178 	cc:0
	adds	r18=strm$, sp				    //178 	cc:0
	adds	r19=state$, sp;;			    //178 	cc:0
 }
 {   .mmb  //R-Addr: 0X0460 
	ld8	r11=[r15]				    //178 	cc:1
	ld8	r17=[r18]				    //178 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0470 
	ld8	r40=[r19]				    //178 	cc:2
	adds	r10=56, r11				    //178 	cc:2, 00000038H
	adds	r16=64, r17;;				    //178 	cc:2, 00000040H
 }
 {   .mmb  //R-Addr: 0X0480 
	ld8	r9=[r10]				    //178 	cc:3
	ld8	r39=[r16]				    //178 	cc:3
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0490 
	ld8	r8=[r9], 8;;				    //178 	cc:5
	ld8	gp=[r9]					    //178 	cc:6
	mov	b6=r8					    //178 	cc:6
 }
 {   .mmb  //R-Addr: 0X04a0 
	nop.m	 0
	nop.m	 0
	br.call.dptk.many b0=b6;;			    //178 	cc:6
 }
 {   .mmi  //R-Addr: 0X04b0 
	mov	gp=r38;;				    //178 	cc:17
	adds	r31=strm$, sp				    //179 	cc:0
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X04c0 
	ld8	r30=[r31];;				    //179 	cc:1
	adds	r29=40, r30				    //179 	cc:2, 00000028H
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X04d0 
	st8	[r29]=r0				    //179 	cc:4
	mov	r8=-2					    //180 	cc:0
	br.cond.sptk.few $LN12@inflateIni#;;		    //180 	cc:0
 }
$LN2@inflateIni:

// 181  :     }
// 182  :     state->wbits = (unsigned)windowBits;
// 183  :     state->window = Z_NULL;
// 184  :     return inflateReset(strm);

 {   .mib  //R-Addr: 0X04e0 
	adds	r28=state$, sp				    //182 	cc:0
	adds	r25=windowBits$, sp			    //182 	cc:0
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X04f0 
	ld8	r27=[r28]				    //182 	cc:1
	ld4	r22=[r25]				    //182 	cc:1
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0500 
	adds	r26=40, r27;;				    //182 	cc:2, 00000028H
	st4	[r26]=r22				    //182 	cc:3
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0510 
	adds	r21=state$, sp;;			    //183 	cc:0
	ld8	r20=[r21]				    //183 	cc:1
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0520 
	adds	r19=56, r20;;				    //183 	cc:2, 00000038H
	st8	[r19]=r0				    //183 	cc:3
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0530 
	adds	r18=strm$, sp;;				    //184 	cc:0
	ld8	r39=[r18]				    //184 	cc:1
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X0540 
	nop.m	 0
	nop.m	 0
	br.call.sptk.few b0=inflateReset#;;		    //184 	cc:1
 }
 {   .mib  //R-Addr: 0X0550 
	adds	r17=$T79734, sp				    //184 	cc:12
	adds	r16=$T79734, sp				    //184 	cc:12
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X0560 
	st4	[r17]=r8				    //184 	cc:13
	ld4	r8=[r16]				    //184 	cc:13
	nop.b	 0;;
 }
$LN12@inflateIni:

// 185  : }

 {   .mii  //R-Addr: 0X0570 
	adds	sp=64, sp				    //185 	cc:0, 00000040H
	mov.ret	b0=r36;;				    //185 	cc:0
	mov.i	ar.pfs=r37				    //185 	cc:1
 }
 {   .mmb  //R-Addr: 0X0580 
	nop.m	 0
	nop.m	 0
	br.ret.sptk.many b0;;				    //185 	cc:1
 }
// End code for function:
	.endp	inflateInit2_#
	.type	inflateInit_#	,@function 
        .global inflateInit_#
	.section	.pdata
$T79746: data4	@imagerel($LN3@inflateIni@2#)
	data4	@imagerel($LN3@inflateIni@2#+176)
	data4	@imagerel($T79744#)
	.section	.xdata
	.skip 8
$T79744: data2	03H
	data2	00H
	data4	02H
	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	"\x36"		//R1:body size size 22
	string	"\x81"		//B1:label_state 1
	string	"\xc0\x05"	//B2:ecount 0 time 5
// Function compile flags: /Odtp
	.section	.text

// Begin code for function: inflateInit_:
	.proc	inflateInit_#
	.align 32
$T79743	= 16
strm$	= 32
version$	= 40
stream_size$	= 48
inflateInit_: 
// strm$ = r32
// version$ = r33
// stream_size$ = r34
// Output regs: r37-r40
$LN3@inflateIni@2:

// 191  : {
// 192  :     return inflateInit2_(strm, DEF_WBITS, version, stream_size);
// 193  : }

 {   .mii  //R-Addr: 0X00 
	alloc	r36=3, 2, 4, 0				    //191 	cc:0
	mov	r35=b0					    //191 	cc:0
	adds	sp=-48, sp;;				    //191 	cc:0, ffffffd0H
 }
 {   .mmi  //R-Addr: 0X010 
	ld8.nta	r2=[sp]					    //191 	cc:1
	adds	r31=strm$, sp
	adds	r30=version$, sp
 }
 {   .mmi  //R-Addr: 0X020 
	adds	r29=stream_size$, sp;;
	st8	[r31]=r32
	nop.i	 0
 }
 {   .mmi  //R-Addr: 0X030 
	st8	[r30]=r33;;
	st4	[r29]=r34
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X040 
	adds	r28=stream_size$, sp			    //192 	cc:0
	adds	r27=version$, sp			    //192 	cc:0
	adds	r26=strm$, sp				    //192 	cc:0
 }
 {   .mmi  //R-Addr: 0X050 
	mov	r38=15;;				    //192 	cc:0
	ld4	r40=[r28]				    //192 	cc:1
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X060 
	ld8	r39=[r27]				    //192 	cc:2
	ld8	r37=[r26]				    //192 	cc:2
	br.call.sptk.few b0=inflateInit2_#;;		    //192 	cc:2
 }
 {   .mib  //R-Addr: 0X070 
	adds	r25=$T79743, sp				    //192 	cc:13
	adds	r22=$T79743, sp				    //192 	cc:13
	nop.b	 0;;
 }
 {   .mmb  //R-Addr: 0X080 
	st4	[r25]=r8				    //192 	cc:14
	ld4	r8=[r22]				    //192 	cc:14
	nop.b	 0;;
 }
 {   .mii  //R-Addr: 0X090 
	adds	sp=48, sp				    //193 	cc:0, 00000030H
	mov.ret	b0=r35;;				    //193 	cc:0
	mov.i	ar.pfs=r36				    //193 	cc:1
 }
 {   .mmb  //R-Addr: 0X0a0 
	nop.m	 0
	nop.m	 0
	br.ret.sptk.many b0;;				    //193 	cc:1
 }
// End code for function:
	.endp	inflateInit_#
	.type	inflate#	,@function 
        .global inflate#
	.type	inflate_fast#	,@function 
        .global inflate_fast#
	.type	inflate_table#	,@function 
        .global inflate_table#
	.type	memcpy#	,@function 
        .global memcpy#
	.type	adler32#	,@function 
        .global adler32#
	.type	crc32#	,@function 
        .global crc32#
	.section	.pdata
$T79797: data4	@imagerel($LN512@inflate#)
	data4	@imagerel($LN512@inflate#+32944)
	data4	@imagerel($T79795#)
	.section	.xdata
	.skip 16
$T79795: 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\x0e"	//P7:mem_stack_f time 1 size 14
	string	"\xe4\x02"	//P7:rp_when time 2
	string	"\xb0\xa2"	//P3:rp_gr 34
	string	"\x61\x97\x30"	//R3:body size 6167
	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: inflate:
	.proc	inflate#
	.align 32
put$	= 16
last$	= 24
have$	= 28
in$	= 32
len$	= 36
bits$	= 40
left$	= 44
next$	= 48
ret$	= 56
hold$	= 60
hbuf$	= 64
this$	= 68
copy$	= 72
from$	= 80
out$	= 88
state$	= 96
$T79764	= 104
$T79765	= 108
$T79766	= 112
$T79767	= 116
$T79768	= 120
$T79769	= 124
$T79770	= 128
$T79771	= 132
$T79772	= 136
$T79773	= 140
$T79774	= 144
$T79775	= 148
$T79776	= 152
$T79777	= 156
$T79778	= 160
$T79779	= 164
$T79780	= 168
$T79781	= 172
$T79782	= 176
$T79783	= 180
$T79784	= 184
$T79785	= 188
$T79786	= 192
$T79787	= 196
$T79788	= 200
$T79789	= 204
$T79790	= 208
$T79791	= 212
$T79792	= 216
strm$	= 224
flush$	= 232
inflate:	 
// strm$ = r32
// flush$ = r33
// Output regs: r37-r42
$LN512@inflate:

// 557  : {
// 558  :     struct inflate_state FAR *state;
// 559  :     unsigned char FAR *next;    /* next input */
// 560  :     unsigned char FAR *put;     /* next output */
// 561  :     unsigned have, left;        /* available input and output */
// 562  :     unsigned long hold;         /* bit buffer */
// 563  :     unsigned bits;              /* bits in bit buffer */
// 564  :     unsigned in, out;           /* save starting available input and output */
// 565  :     unsigned copy;              /* number of stored or match bytes to copy */
// 566  :     unsigned char FAR *from;    /* where to copy match bytes from */
// 567  :     code this;                  /* current decoding table entry */
// 568  :     code last;                  /* parent table entry */
// 569  :     unsigned len;               /* length to copy for repeats, bits to drop */
// 570  :     int ret;                    /* return code */
// 571  : #ifdef GUNZIP
// 572  :     unsigned char hbuf[4];      /* buffer for gzip header crc calculation */
// 573  : #endif
// 574  :     static const unsigned short order[19] = /* permutation of code lengths */
// 575  :         {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};
// 576  : 
// 577  :     if (strm == Z_NULL || strm->state == Z_NULL || strm->next_out == Z_NULL ||
// 578  :         (strm->next_in == Z_NULL && strm->avail_in != 0))

 {   .mmi  //R-Addr: 0X00 
	alloc	r35=2, 3, 6, 0				    //557 	cc:0
	adds	sp=-224, sp				    //557 	cc:0, ffffff20H
	mov	r34=b0					    //557 	cc:0
 }
 {   .mmi  //R-Addr: 0X010 
	mov	r36=gp;;				    //557 	cc:0
	ld8.nta	r2=[sp]					    //557 	cc:1
	adds	r31=strm$, sp
 }
 {   .mmi  //R-Addr: 0X020 
	adds	r30=flush$, sp;;
	st8	[r31]=r32
	nop.i	 0
 }
 {   .mmi  //R-Addr: 0X030 
	st4	[r30]=r33;;
	adds	r29=strm$, sp				    //578 	cc:0
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X040 
	ld8	r28=[r29];;				    //578 	cc:1
	cmp.eq.unc p14,p15=r0, r28			    //578 	cc:2
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X050 
	nop.m	 0
	nop.m	 0
  (p14)	br.cond.dptk.few $LN492@inflate#;;		    //578 	cc:2
 }

// 578  :         (strm->next_in == Z_NULL && strm->avail_in != 0))

 {   .mmi  //R-Addr: 0X060 
	adds	r27=strm$, sp;;				    //578 	cc:3
	ld8	r26=[r27]				    //578 	cc:4
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X070 
	adds	r25=40, r26;;				    //578 	cc:5, 00000028H
	ld8	r22=[r25]				    //578 	cc:6
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X080 
	cmp.eq.unc p14,p15=r0, r22			    //578 	cc:7
	nop.m	 0
  (p14)	br.cond.dptk.few $LN492@inflate#;;		    //578 	cc:7
 }

// 578  :         (strm->next_in == Z_NULL && strm->avail_in != 0))

 {   .mmi  //R-Addr: 0X090 
	adds	r21=strm$, sp;;				    //578 	cc:8
	ld8	r20=[r21]				    //578 	cc:9
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0a0 
	adds	r19=16, r20;;				    //578 	cc:10
	ld8	r18=[r19]				    //578 	cc:11
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0b0 
	cmp.eq.unc p14,p15=r0, r18			    //578 	cc:12
	nop.m	 0
  (p14)	br.cond.dptk.few $LN492@inflate#;;		    //578 	cc:12
 }

// 578  :         (strm->next_in == Z_NULL && strm->avail_in != 0))

 {   .mmi  //R-Addr: 0X0c0 
	adds	r17=strm$, sp;;				    //578 	cc:13
	ld8	r16=[r17]				    //578 	cc:14
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0d0 
	ld8	r15=[r16];;				    //578 	cc:16
	cmp.ne.unc p14,p15=r0, r15			    //578 	cc:17
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X0e0 
	nop.m	 0
	nop.m	 0
  (p14)	br.cond.dptk.few $LN493@inflate#;;		    //578 	cc:17
 }

// 578  :         (strm->next_in == Z_NULL && strm->avail_in != 0))

 {   .mmi  //R-Addr: 0X0f0 
	adds	r11=strm$, sp;;				    //578 	cc:18
	ld8	r10=[r11]				    //578 	cc:19
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0100 
	adds	r9=8, r10;;				    //578 	cc:20
	ld4	r8=[r9]					    //578 	cc:21
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0110 
	cmp4.eq.unc p14,p15=r0, r8			    //578 	cc:22
	nop.m	 0
  (p14)	br.cond.dptk.few $LN493@inflate#;;		    //578 	cc:22
 }
$LN492@inflate:

// 579  :         return Z_STREAM_ERROR;

 {   .mmb  //R-Addr: 0X0120 
	mov	r8=-2					    //579 	cc:0
	nop.m	 0
	br.cond.sptk.few $LN494@inflate#;;		    //579 	cc:0
 }
$LN493@inflate:

// 580  : 
// 581  :     state = (struct inflate_state FAR *)strm->state;
// 582  :     if (state->mode == TYPE) state->mode = TYPEDO;      /* skip check */

 {   .mib  //R-Addr: 0X0130 
	adds	r31=strm$, sp				    //581 	cc:0
	adds	r27=state$, sp				    //581 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0140 
	ld8	r30=[r31];;				    //581 	cc:1
	adds	r29=40, r30				    //581 	cc:2, 00000028H
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0150 
	ld8	r28=[r29];;				    //581 	cc:3
	st8	[r27]=r28				    //581 	cc:4
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0160 
	adds	r26=state$, sp;;			    //582 	cc:0
	ld8	r25=[r26]				    //582 	cc:1
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X0170 
	ld4	r22=[r25];;				    //582 	cc:3
	cmp4.ne.unc p14,p15=11, r22			    //582 	cc:4
	nop.i	 0
 }
 {   .mmb  //R-Addr: 0X0180 
	nop.m	 0
	nop.m	 0
  (p14)	br.cond.dptk.many $LN490@inflate#;;		    //582 	cc:4
 }

// 582  :     if (state->mode == TYPE) state->mode = TYPEDO;      /* skip check */

 {   .mib  //R-Addr: 0X0190 
	adds	r21=state$, sp				    //582 	cc:5
	mov	r19=12					    //582 	cc:5
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X01a0 
	ld8	r20=[r21];;				    //582 	cc:6
	st4	[r20]=r19				    //582 	cc:7
	nop.i	 0;;
 }
$LN490@inflate:

// 583  :     LOAD();

 {   .mmi  //R-Addr: 0X01b0 
	adds	r18=strm$, sp				    //583 	cc:0
	adds	r11=put$, sp				    //583 	cc:0
	adds	r10=strm$, sp				    //583 	cc:0
 }
 {   .mmi  //R-Addr: 0X01c0 
	adds	r30=left$, sp				    //583 	cc:0
	adds	r29=strm$, sp				    //583 	cc:0
	adds	r26=next$, sp;;				    //583 	cc:0
 }
 {   .mmi  //R-Addr: 0X01d0 
	ld8	r17=[r18]				    //583 	cc:1
	adds	r25=strm$, sp				    //583 	cc:1
	adds	r19=have$, sp				    //583 	cc:1
 }
 {   .mmi  //R-Addr: 0X01e0 
	adds	r18=state$, sp;;			    //583 	cc:1
	adds	r16=16, r17				    //583 	cc:2
	nop.i	 0;;
 }
 {   .mmi  //R-Addr: 0X01f0 
	ld8	r15=[r16];;				    //583 	cc:3
	st8	[r11]=r15				    //583 	cc:4
	adds	r11=hold$, sp				    //583 	cc:4
 }
 {   .mii  //R-Addr: 0X0200 
	ld8	r9=[r10]				    //583 	cc:4
	adds	r10=state$, sp;;			    //583 	cc:4
	adds	r8=24, r9;;				    //583 	cc:5
 }
 {   .mmi  //R-Addr: 0X0210 
	ld4	r31=[r8];;				    //583 	cc:6
	st4	[r30]=r31				    //583 	cc:7
	adds	r30=bits$, sp				    //583 	cc:7
 }
 {   .mmi  //R-Addr: 0X0220 
	ld8	r28=[r29];;				    //583 	cc:7
	ld8	r27=[r28]				    //583 	cc:9
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0230 
	st8	[r26]=r27				    //583 	cc:10
	ld8	r22=[r25]				    //583 	cc:10
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0240 
	adds	r21=8, r22;;				    //583 	cc:11
	ld4	r20=[r21]				    //583 	cc:12
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0250 
	st4	[r19]=r20				    //583 	cc:13
	ld8	r17=[r18]				    //583 	cc:13
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0260 
	adds	r16=64, r17;;				    //583 	cc:14, 00000040H
	ld4	r15=[r16]				    //583 	cc:15
	nop.i	 0;;
 }
 {   .mmb  //R-Addr: 0X0270 
	st4	[r11]=r15				    //583 	cc:16
	ld8	r9=[r10]				    //583 	cc:16
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X0280 
	adds	r8=68, r9;;				    //583 	cc:17, 00000044H
	ld4	r31=[r8]				    //583 	cc:18
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X0290 
	st4	[r30]=r31				    //583 	cc:19
	cmp4.ne.unc p14,p15=r0, r0			    //583 	cc:19
  (p14)	br.cond.dptk.many $LN490@inflate#;;		    //583 	cc:19
 }

// 584  :     in = have;
// 585  :     out = left;
// 586  :     ret = Z_OK;

 {   .mib  //R-Addr: 0X02a0 
	adds	r29=have$, sp				    //584 	cc:0
	adds	r27=in$, sp				    //584 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X02b0 
	ld4	r28=[r29];;				    //584 	cc:1
	st4	[r27]=r28				    //584 	cc:2
	nop.i	 0;;
 }
 {   .mib  //R-Addr: 0X02c0 
	adds	r26=left$, sp				    //585 	cc:0
	adds	r22=out$, sp				    //585 	cc:0
	nop.b	 0;;
 }
 {   .mmi  //R-Addr: 0X02d0 
	ld4	r25=[r26];;				    //585 	cc:1
	st4	[r22]=r25				    //585 	cc:2
	nop.i	 0;;
 }

⌨️ 快捷键说明

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