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

📄 inflate.cod

📁 microsoft visual c++ 2005、windows mobile 5 远程控制PC.通过阅读项目源码能让你熟悉Active Sync RAPI
💻 COD
📖 第 1 页 / 共 5 页
字号:
	DW	08H
	DB	00H
	DB	08H
	DW	05dH
	DB	00H
	DB	08H
	DW	01dH
	DB	00H
	DB	09H
	DW	09bH
	DB	014H
	DB	07H
	DW	053H
	DB	00H
	DB	08H
	DW	07dH
	DB	00H
	DB	08H
	DW	03dH
	DB	00H
	DB	09H
	DW	0dbH
	DB	012H
	DB	07H
	DW	017H
	DB	00H
	DB	08H
	DW	06dH
	DB	00H
	DB	08H
	DW	02dH
	DB	00H
	DB	09H
	DW	0bbH
	DB	00H
	DB	08H
	DW	0dH
	DB	00H
	DB	08H
	DW	08dH
	DB	00H
	DB	08H
	DW	04dH
	DB	00H
	DB	09H
	DW	0fbH
	DB	010H
	DB	07H
	DW	03H
	DB	00H
	DB	08H
	DW	053H
	DB	00H
	DB	08H
	DW	013H
	DB	015H
	DB	08H
	DW	0c3H
	DB	013H
	DB	07H
	DW	023H
	DB	00H
	DB	08H
	DW	073H
	DB	00H
	DB	08H
	DW	033H
	DB	00H
	DB	09H
	DW	0c7H
	DB	011H
	DB	07H
	DW	0bH
	DB	00H
	DB	08H
	DW	063H
	DB	00H
	DB	08H
	DW	023H
	DB	00H
	DB	09H
	DW	0a7H
	DB	00H
	DB	08H
	DW	03H
	DB	00H
	DB	08H
	DW	083H
	DB	00H
	DB	08H
	DW	043H
	DB	00H
	DB	09H
	DW	0e7H
	DB	010H
	DB	07H
	DW	07H
	DB	00H
	DB	08H
	DW	05bH
	DB	00H
	DB	08H
	DW	01bH
	DB	00H
	DB	09H
	DW	097H
	DB	014H
	DB	07H
	DW	043H
	DB	00H
	DB	08H
	DW	07bH
	DB	00H
	DB	08H
	DW	03bH
	DB	00H
	DB	09H
	DW	0d7H
	DB	012H
	DB	07H
	DW	013H
	DB	00H
	DB	08H
	DW	06bH
	DB	00H
	DB	08H
	DW	02bH
	DB	00H
	DB	09H
	DW	0b7H
	DB	00H
	DB	08H
	DW	0bH
	DB	00H
	DB	08H
	DW	08bH
	DB	00H
	DB	08H
	DW	04bH
	DB	00H
	DB	09H
	DW	0f7H
	DB	010H
	DB	07H
	DW	05H
	DB	00H
	DB	08H
	DW	057H
	DB	00H
	DB	08H
	DW	017H
	DB	040H
	DB	08H
	DW	00H
	DB	013H
	DB	07H
	DW	033H
	DB	00H
	DB	08H
	DW	077H
	DB	00H
	DB	08H
	DW	037H
	DB	00H
	DB	09H
	DW	0cfH
	DB	011H
	DB	07H
	DW	0fH
	DB	00H
	DB	08H
	DW	067H
	DB	00H
	DB	08H
	DW	027H
	DB	00H
	DB	09H
	DW	0afH
	DB	00H
	DB	08H
	DW	07H
	DB	00H
	DB	08H
	DW	087H
	DB	00H
	DB	08H
	DW	047H
	DB	00H
	DB	09H
	DW	0efH
	DB	010H
	DB	07H
	DW	09H
	DB	00H
	DB	08H
	DW	05fH
	DB	00H
	DB	08H
	DW	01fH
	DB	00H
	DB	09H
	DW	09fH
	DB	014H
	DB	07H
	DW	063H
	DB	00H
	DB	08H
	DW	07fH
	DB	00H
	DB	08H
	DW	03fH
	DB	00H
	DB	09H
	DW	0dfH
	DB	012H
	DB	07H
	DW	01bH
	DB	00H
	DB	08H
	DW	06fH
	DB	00H
	DB	08H
	DW	02fH
	DB	00H
	DB	09H
	DW	0bfH
	DB	00H
	DB	08H
	DW	0fH
	DB	00H
	DB	08H
	DW	08fH
	DB	00H
	DB	08H
	DW	04fH
	DB	00H
	DB	09H
	DW	0ffH
?distfix@?1??fixedtables@@9@9 DB 010H			; `fixedtables'::`2'::distfix
	DB	05H
	DW	01H
	DB	017H
	DB	05H
	DW	0101H
	DB	013H
	DB	05H
	DW	011H
	DB	01bH
	DB	05H
	DW	01001H
	DB	011H
	DB	05H
	DW	05H
	DB	019H
	DB	05H
	DW	0401H
	DB	015H
	DB	05H
	DW	041H
	DB	01dH
	DB	05H
	DW	04001H
	DB	010H
	DB	05H
	DW	03H
	DB	018H
	DB	05H
	DW	0201H
	DB	014H
	DB	05H
	DW	021H
	DB	01cH
	DB	05H
	DW	02001H
	DB	012H
	DB	05H
	DW	09H
	DB	01aH
	DB	05H
	DW	0801H
	DB	016H
	DB	05H
	DW	081H
	DB	040H
	DB	05H
	DW	00H
	DB	010H
	DB	05H
	DW	02H
	DB	017H
	DB	05H
	DW	0181H
	DB	013H
	DB	05H
	DW	019H
	DB	01bH
	DB	05H
	DW	01801H
	DB	011H
	DB	05H
	DW	07H
	DB	019H
	DB	05H
	DW	0601H
	DB	015H
	DB	05H
	DW	061H
	DB	01dH
	DB	05H
	DW	06001H
	DB	010H
	DB	05H
	DW	04H
	DB	018H
	DB	05H
	DW	0301H
	DB	014H
	DB	05H
	DW	031H
	DB	01cH
	DB	05H
	DW	03001H
	DB	012H
	DB	05H
	DW	0dH
	DB	01aH
	DB	05H
	DW	0c01H
	DB	016H
	DB	05H
	DW	0c1H
	DB	040H
	DB	05H
	DW	00H
?order@?1??inflate@@9@9 DW 010H				; `inflate'::`2'::order
	DW	011H
	DW	012H
	DW	00H
	DW	08H
	DW	07H
	DW	09H
	DW	06H
	DW	0aH
	DW	05H
	DW	0bH
	DW	04H
	DW	0cH
	DW	03H
	DW	0dH
	DW	02H
	DW	0eH
	DW	01H
	DW	0fH
PUBLIC	_inflateCopy@8
EXTRN	_memcpy:PROC
; Function compile flags: /Ogtpy
; File d:\src\vs2005\cpp\ceremoteclient\zlib123\inflate.c
;	COMDAT _inflateCopy@8
_TEXT	SEGMENT
_dest$ = 8						; size = 4
_window$ = 12						; size = 4
_source$ = 12						; size = 4
_inflateCopy@8 PROC					; COMDAT

; 1326 : {

  00000	53		 push	 ebx
  00001	56		 push	 esi
  00002	57		 push	 edi

; 1327 :     struct inflate_state FAR *state;
; 1328 :     struct inflate_state FAR *copy;
; 1329 :     unsigned char FAR *window;
; 1330 :     unsigned wsize;
; 1331 : 
; 1332 :     /* check input */
; 1333 :     if (dest == Z_NULL || source == Z_NULL || source->state == Z_NULL ||
; 1334 :         source->zalloc == (alloc_func)0 || source->zfree == (free_func)0)

  00003	8b 7c 24 10	 mov	 edi, DWORD PTR _dest$[esp+8]
  00007	85 ff		 test	 edi, edi
  00009	0f 84 2e 01 00
	00		 je	 $LN6@inflateCop
  0000f	8b 74 24 14	 mov	 esi, DWORD PTR _source$[esp+8]
  00013	85 f6		 test	 esi, esi
  00015	0f 84 22 01 00
	00		 je	 $LN6@inflateCop
  0001b	8b 5e 1c	 mov	 ebx, DWORD PTR [esi+28]
  0001e	85 db		 test	 ebx, ebx
  00020	0f 84 17 01 00
	00		 je	 $LN6@inflateCop
  00026	8b 46 20	 mov	 eax, DWORD PTR [esi+32]
  00029	85 c0		 test	 eax, eax
  0002b	0f 84 0c 01 00
	00		 je	 $LN6@inflateCop
  00031	83 7e 24 00	 cmp	 DWORD PTR [esi+36], 0
  00035	0f 84 02 01 00
	00		 je	 $LN6@inflateCop

; 1336 :     state = (struct inflate_state FAR *)source->state;
; 1337 : 
; 1338 :     /* allocate space */
; 1339 :     copy = (struct inflate_state FAR *)
; 1340 :            ZALLOC(source, 1, sizeof(struct inflate_state));

  0003b	8b 4e 28	 mov	 ecx, DWORD PTR [esi+40]
  0003e	55		 push	 ebp
  0003f	68 30 25 00 00	 push	 9520			; 00002530H
  00044	6a 01		 push	 1
  00046	51		 push	 ecx
  00047	ff d0		 call	 eax
  00049	8b e8		 mov	 ebp, eax
  0004b	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1341 :     if (copy == Z_NULL) return Z_MEM_ERROR;

  0004e	85 ed		 test	 ebp, ebp
  00050	74 3c		 je	 SHORT $LN11@inflateCop

; 1342 :     window = Z_NULL;
; 1343 :     if (state->window != Z_NULL) {

  00052	83 7b 34 00	 cmp	 DWORD PTR [ebx+52], 0
  00056	c7 44 24 18 00
	00 00 00	 mov	 DWORD PTR _window$[esp+12], 0
  0005e	74 3a		 je	 SHORT $LN3@inflateCop

; 1344 :         window = (unsigned char FAR *)
; 1345 :                  ZALLOC(source, 1U << state->wbits, sizeof(unsigned char));

  00060	8b 4b 24	 mov	 ecx, DWORD PTR [ebx+36]
  00063	8b 46 28	 mov	 eax, DWORD PTR [esi+40]
  00066	ba 01 00 00 00	 mov	 edx, 1
  0006b	d3 e2		 shl	 edx, cl
  0006d	8b 4e 20	 mov	 ecx, DWORD PTR [esi+32]
  00070	6a 01		 push	 1
  00072	52		 push	 edx
  00073	50		 push	 eax
  00074	ff d1		 call	 ecx
  00076	83 c4 0c	 add	 esp, 12			; 0000000cH

; 1346 :         if (window == Z_NULL) {

  00079	85 c0		 test	 eax, eax
  0007b	89 44 24 18	 mov	 DWORD PTR _window$[esp+12], eax
  0007f	75 19		 jne	 SHORT $LN3@inflateCop

; 1347 :             ZFREE(source, copy);

  00081	8b 56 28	 mov	 edx, DWORD PTR [esi+40]
  00084	8b 46 24	 mov	 eax, DWORD PTR [esi+36]
  00087	55		 push	 ebp
  00088	52		 push	 edx
  00089	ff d0		 call	 eax
  0008b	83 c4 08	 add	 esp, 8
$LN11@inflateCop:
  0008e	5d		 pop	 ebp
  0008f	5f		 pop	 edi
  00090	5e		 pop	 esi

; 1348 :             return Z_MEM_ERROR;

  00091	b8 fc ff ff ff	 mov	 eax, -4			; fffffffcH
  00096	5b		 pop	 ebx

; 1368 : }

  00097	c2 08 00	 ret	 8
$LN3@inflateCop:

; 1349 :         }
; 1350 :     }
; 1351 : 
; 1352 :     /* copy state */
; 1353 :     zmemcpy(dest, source, sizeof(z_stream));
; 1354 :     zmemcpy(copy, state, sizeof(struct inflate_state));

  0009a	68 30 25 00 00	 push	 9520			; 00002530H
  0009f	53		 push	 ebx
  000a0	b9 0e 00 00 00	 mov	 ecx, 14			; 0000000eH
  000a5	55		 push	 ebp
  000a6	f3 a5		 rep movsd
  000a8	e8 00 00 00 00	 call	 _memcpy

; 1355 :     if (state->lencode >= state->codes &&
; 1356 :         state->lencode <= state->codes + ENOUGH - 1) {

  000ad	8b 43 4c	 mov	 eax, DWORD PTR [ebx+76]
  000b0	8d 8b 30 05 00
	00		 lea	 ecx, DWORD PTR [ebx+1328]
  000b6	83 c4 0c	 add	 esp, 12			; 0000000cH
  000b9	3b c1		 cmp	 eax, ecx
  000bb	72 36		 jb	 SHORT $LN2@inflateCop
  000bd	8d 93 2c 25 00
	00		 lea	 edx, DWORD PTR [ebx+9516]
  000c3	3b c2		 cmp	 eax, edx
  000c5	77 2c		 ja	 SHORT $LN2@inflateCop

; 1357 :         copy->lencode = copy->codes + (state->lencode - state->codes);

  000c7	2b c3		 sub	 eax, ebx
  000c9	2d 30 05 00 00	 sub	 eax, 1328		; 00000530H
  000ce	c1 f8 02	 sar	 eax, 2
  000d1	8d 84 85 30 05
	00 00		 lea	 eax, DWORD PTR [ebp+eax*4+1328]
  000d8	89 45 4c	 mov	 DWORD PTR [ebp+76], eax

; 1358 :         copy->distcode = copy->codes + (state->distcode - state->codes);

  000db	8b 4b 50	 mov	 ecx, DWORD PTR [ebx+80]
  000de	2b cb		 sub	 ecx, ebx
  000e0	81 e9 30 05 00
	00		 sub	 ecx, 1328		; 00000530H
  000e6	c1 f9 02	 sar	 ecx, 2
  000e9	8d 94 8d 30 05
	00 00		 lea	 edx, DWORD PTR [ebp+ecx*4+1328]
  000f0	89 55 50	 mov	 DWORD PTR [ebp+80], edx
$LN2@inflateCop:

; 1359 :     }
; 1360 :     copy->next = copy->codes + (state->next - state->codes);

  000f3	8b 43 6c	 mov	 eax, DWORD PTR [ebx+108]

; 1361 :     if (window != Z_NULL) {

  000f6	8b 74 24 18	 mov	 esi, DWORD PTR _window$[esp+12]
  000fa	2b c3		 sub	 eax, ebx
  000fc	2d 30 05 00 00	 sub	 eax, 1328		; 00000530H
  00101	c1 f8 02	 sar	 eax, 2
  00104	85 f6		 test	 esi, esi
  00106	8d 8c 85 30 05
	00 00		 lea	 ecx, DWORD PTR [ebp+eax*4+1328]
  0010d	89 4d 6c	 mov	 DWORD PTR [ebp+108], ecx
  00110	74 18		 je	 SHORT $LN1@inflateCop

; 1362 :         wsize = 1U << state->wbits;

  00112	8b 4b 24	 mov	 ecx, DWORD PTR [ebx+36]

; 1363 :         zmemcpy(window, state->window, wsize);

  00115	8b 43 34	 mov	 eax, DWORD PTR [ebx+52]
  00118	ba 01 00 00 00	 mov	 edx, 1
  0011d	d3 e2		 shl	 edx, cl
  0011f	52		 push	 edx
  00120	50		 push	 eax
  00121	56		 push	 esi
  00122	e8 00 00 00 00	 call	 _memcpy
  00127	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN1@inflateCop:

; 1364 :     }
; 1365 :     copy->window = window;
; 1366 :     dest->state = (struct internal_state FAR *)copy;

  0012a	8b 4c 24 14	 mov	 ecx, DWORD PTR _dest$[esp+12]
  0012e	89 75 34	 mov	 DWORD PTR [ebp+52], esi
  00131	89 69 1c	 mov	 DWORD PTR [ecx+28], ebp
  00134	5d		 pop	 ebp
  00135	5f		 pop	 edi
  00136	5e		 pop	 esi

; 1367 :     return Z_OK;

  00137	33 c0		 xor	 eax, eax
  00139	5b		 pop	 ebx

; 1368 : }

  0013a	c2 08 00	 ret	 8
$LN6@inflateCop:
  0013d	5f		 pop	 edi
  0013e	5e		 pop	 esi

; 1335 :         return Z_STREAM_ERROR;

  0013f	b8 fe ff ff ff	 mov	 eax, -2			; fffffffeH
  00144	5b		 pop	 ebx

; 1368 : }

  00145	c2 08 00	 ret	 8
_inflateCopy@8 ENDP
_TEXT	ENDS
PUBLIC	_inflateSyncPoint@4
; Function compile flags: /Ogtpy
;	COMDAT _inflateSyncPoint@4
_TEXT	SEGMENT
_strm$ = 8						; size = 4
_inflateSyncPoint@4 PROC				; COMDAT

; 1316 :     struct inflate_state FAR *state;
; 1317 : 
; 1318 :     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;

  00000	8b 44 24 04	 mov	 eax, DWORD PTR _strm$[esp-4]
  00004	85 c0		 test	 eax, eax
  00006	74 1f		 je	 SHORT $LN1@inflateSyn
  00008	8b 40 1c	 mov	 eax, DWORD PTR [eax+28]
  0000b	85 c0		 test	 eax, eax
  0000d	74 18		 je	 SHORT $LN1@inflateSyn

; 1319 :     state = (struct inflate_state FAR *)strm->state;
; 1320 :     return state->mode == STORED && state->bits == 0;

  0000f	83 38 0d	 cmp	 DWORD PTR [eax], 13	; 0000000dH
  00012	75 0e		 jne	 SHORT $LN5@inflateSyn
  00014	83 78 3c 00	 cmp	 DWORD PTR [eax+60], 0
  00018	75 08		 jne	 SHORT $LN5@inflateSyn
  0001a	b8 01 00 00 00	 mov	 eax, 1

; 1321 : }

  0001f	c2 04 00	 ret	 4
$LN5@inflateSyn:

; 1319 :     state = (struct inflate_state FAR *)strm->state;
; 1320 :     return state->mode == STORED && state->bits == 0;

  00022	33 c0		 xor	 eax, eax

; 1321 : }

  00024	c2 04 00	 ret	 4
$LN1@inflateSyn:

; 1316 :     struct inflate_state FAR *state;
; 1317 : 
; 1318 :     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;

  00027	b8 fe ff ff ff	 mov	 eax, -2			; fffffffeH

; 1321 : }

  0002c	c2 04 00	 ret	 4
_inflateSyncPoint@4 ENDP
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT _syncsearch
_TEXT	SEGMENT
_len$ = 8						; size = 4
_syncsearch PROC					; COMDAT
; _have$ = edi
; _buf$ = esi

; 1244 :     unsigned got;
; 1245 :     unsigned next;
; 1246 : 
; 1247 :     got = *have;

  00000	8b 0f		 mov	 ecx, DWORD PTR [edi]

; 1248 :     next = 0;

  00002	33 c0		 xor	 eax, eax

; 1249 :     while (next < len && got < 4) {

  00004	39 44 24 04	 cmp	 DWORD PTR _len$[esp-4], eax
  00008	76 47		 jbe	 SHORT $LN11@syncsearch
  0000a	53		 push	 ebx
  0000b	55		 push	 ebp
  0000c	8d 64 24 00	 npad	 4
$LL6@syncsearch:
  00010	83 f9 04	 cmp	 ecx, 4
  00013	73 3a		 jae	 SHORT $LN12@syncsearch

; 1250 :         if ((int)(buf[next]) == (got < 2 ? 0 : 0xff))

  00015	8a 14 30	 mov	 dl, BYTE PTR [eax+esi]
  00018	83 f9 02	 cmp	 ecx, 2
  0001b	1b db		 sbb	 ebx, ebx

⌨️ 快捷键说明

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