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

📄 infback.cod

📁 microsoft visual c++ 2005、windows mobile 5 远程控制PC.通过阅读项目源码能让你熟悉Active Sync RAPI
💻 COD
📖 第 1 页 / 共 5 页
字号:
	00 00		 cmp	 DWORD PTR [edi+96], 286	; 0000011eH
  002f2	89 4f 64	 mov	 DWORD PTR [edi+100], ecx
  002f5	89 57 5c	 mov	 DWORD PTR [edi+92], edx
  002f8	0f 87 08 05 00
	00		 ja	 $LN251@inflateBac@3
  002fe	83 f9 1e	 cmp	 ecx, 30			; 0000001eH
  00301	0f 87 ff 04 00
	00		 ja	 $LN251@inflateBac@3

; 363  :             }
; 364  : #endif
; 365  :             Tracev((stderr, "inflate:       table sizes ok\n"));
; 366  : 
; 367  :             /* get code length code lengths (not a typo) */
; 368  :             state->have = 0;
; 369  :             while (state->have < state->ncode) {

  00307	85 d2		 test	 edx, edx
  00309	c7 47 68 00 00
	00 00		 mov	 DWORD PTR [edi+104], 0
  00310	76 6f		 jbe	 SHORT $LN358@inflateBac@3
$LL250@inflateBac@3:

; 370  :                 NEEDBITS(3);

  00312	83 fe 03	 cmp	 esi, 3
  00315	73 3e		 jae	 SHORT $LN247@inflateBac@3
$LL245@inflateBac@3:
  00317	85 ed		 test	 ebp, ebp
  00319	75 1b		 jne	 SHORT $LN239@inflateBac@3
  0031b	8b 4c 24 34	 mov	 ecx, DWORD PTR _in_desc$[esp+36]
  0031f	8d 44 24 10	 lea	 eax, DWORD PTR _next$[esp+40]
  00323	50		 push	 eax
  00324	51		 push	 ecx
  00325	ff 54 24 38	 call	 DWORD PTR _in$[esp+44]
  00329	8b e8		 mov	 ebp, eax
  0032b	83 c4 08	 add	 esp, 8
  0032e	85 ed		 test	 ebp, ebp
  00330	0f 84 e4 09 00
	00		 je	 $LN376@inflateBac@3
$LN239@inflateBac@3:
  00336	8b 44 24 10	 mov	 eax, DWORD PTR _next$[esp+40]
  0033a	0f b6 10	 movzx	 edx, BYTE PTR [eax]
  0033d	8b ce		 mov	 ecx, esi
  0033f	d3 e2		 shl	 edx, cl
  00341	83 c0 01	 add	 eax, 1
  00344	83 c6 08	 add	 esi, 8
  00347	83 ed 01	 sub	 ebp, 1
  0034a	03 da		 add	 ebx, edx
  0034c	83 fe 03	 cmp	 esi, 3
  0034f	89 44 24 10	 mov	 DWORD PTR _next$[esp+40], eax
  00353	72 c2		 jb	 SHORT $LL245@inflateBac@3
$LN247@inflateBac@3:

; 371  :                 state->lens[order[state->have++]] = (unsigned short)BITS(3);

  00355	8b 4f 68	 mov	 ecx, DWORD PTR [edi+104]
  00358	0f b7 14 4d 00
	00 00 00	 movzx	 edx, WORD PTR ?order@?1??inflateBack@@9@9[ecx*2]
  00360	0f b6 c3	 movzx	 eax, bl
  00363	83 e0 07	 and	 eax, 7
  00366	66 89 44 57 70	 mov	 WORD PTR [edi+edx*2+112], ax
  0036b	b8 01 00 00 00	 mov	 eax, 1
  00370	01 47 68	 add	 DWORD PTR [edi+104], eax
  00373	8b 4f 68	 mov	 ecx, DWORD PTR [edi+104]

; 372  :                 DROPBITS(3);

  00376	c1 eb 03	 shr	 ebx, 3
  00379	83 ee 03	 sub	 esi, 3
  0037c	3b 4f 5c	 cmp	 ecx, DWORD PTR [edi+92]
  0037f	72 91		 jb	 SHORT $LL250@inflateBac@3
$LN358@inflateBac@3:

; 373  :             }
; 374  :             while (state->have < 19)

  00381	b9 13 00 00 00	 mov	 ecx, 19			; 00000013H
  00386	39 4f 68	 cmp	 DWORD PTR [edi+104], ecx
  00389	73 1f		 jae	 SHORT $LN231@inflateBac@3
  0038b	eb 03 8d 49 00	 npad	 5
$LL232@inflateBac@3:

; 375  :                 state->lens[order[state->have++]] = 0;

  00390	8b 57 68	 mov	 edx, DWORD PTR [edi+104]
  00393	0f b7 14 55 00
	00 00 00	 movzx	 edx, WORD PTR ?order@?1??inflateBack@@9@9[edx*2]
  0039b	66 c7 44 57 70
	00 00		 mov	 WORD PTR [edi+edx*2+112], 0
  003a2	01 47 68	 add	 DWORD PTR [edi+104], eax
  003a5	39 4f 68	 cmp	 DWORD PTR [edi+104], ecx
  003a8	72 e6		 jb	 SHORT $LL232@inflateBac@3
$LN231@inflateBac@3:

; 376  :             state->next = state->codes;

  003aa	8d 87 30 05 00
	00		 lea	 eax, DWORD PTR [edi+1328]
  003b0	8d 4f 6c	 lea	 ecx, DWORD PTR [edi+108]
  003b3	89 01		 mov	 DWORD PTR [ecx], eax

; 377  :             state->lencode = (code const FAR *)(state->next);

  003b5	89 47 4c	 mov	 DWORD PTR [edi+76], eax

; 378  :             state->lenbits = 7;
; 379  :             ret = inflate_table(CODES, state->lens, 19, &(state->next),
; 380  :                                 &(state->lenbits), state->work);

  003b8	8d 97 f0 02 00
	00		 lea	 edx, DWORD PTR [edi+752]
  003be	52		 push	 edx
  003bf	8d 47 54	 lea	 eax, DWORD PTR [edi+84]
  003c2	50		 push	 eax
  003c3	51		 push	 ecx
  003c4	c7 00 07 00 00
	00		 mov	 DWORD PTR [eax], 7
  003ca	6a 13		 push	 19			; 00000013H
  003cc	8d 47 70	 lea	 eax, DWORD PTR [edi+112]
  003cf	50		 push	 eax
  003d0	6a 00		 push	 0
  003d2	e8 00 00 00 00	 call	 _inflate_table
  003d7	83 c4 18	 add	 esp, 24			; 00000018H

; 381  :             if (ret) {

  003da	85 c0		 test	 eax, eax
  003dc	74 16		 je	 SHORT $LN230@inflateBac@3

; 382  :                 strm->msg = (char *)"invalid code lengths set";

  003de	8b 44 24 2c	 mov	 eax, DWORD PTR _strm$[esp+36]
  003e2	c7 40 18 00 00
	00 00		 mov	 DWORD PTR [eax+24], OFFSET ??_C@_0BJ@HDEPPGOH@invalid?5code?5lengths?5set?$AA@

; 383  :                 state->mode = BAD;

  003e9	c7 07 1b 00 00
	00		 mov	 DWORD PTR [edi], 27	; 0000001bH

; 384  :                 break;

  003ef	e9 fa 08 00 00	 jmp	 $LN453@inflateBac@3
$LN230@inflateBac@3:

; 385  :             }
; 386  :             Tracev((stderr, "inflate:       code lengths ok\n"));
; 387  : 
; 388  :             /* get length and distance code code lengths */
; 389  :             state->have = 0;
; 390  :             while (state->have < state->nlen + state->ndist) {

  003f4	8b 4f 64	 mov	 ecx, DWORD PTR [edi+100]
  003f7	03 4f 60	 add	 ecx, DWORD PTR [edi+96]
  003fa	c7 47 68 00 00
	00 00		 mov	 DWORD PTR [edi+104], 0
  00401	0f 84 bc 02 00
	00		 je	 $LN432@inflateBac@3
  00407	eb 07 8d a4 24
	00 00 00 00	 npad	 9
$LL229@inflateBac@3:

; 391  :                 for (;;) {
; 392  :                     this = state->lencode[BITS(state->lenbits)];

  00410	8b 4f 54	 mov	 ecx, DWORD PTR [edi+84]
  00413	8b 47 4c	 mov	 eax, DWORD PTR [edi+76]
  00416	ba 01 00 00 00	 mov	 edx, 1
  0041b	d3 e2		 shl	 edx, cl
  0041d	83 ea 01	 sub	 edx, 1
  00420	23 d3		 and	 edx, ebx
  00422	8b 04 90	 mov	 eax, DWORD PTR [eax+edx*4]

; 393  :                     if ((unsigned)(this.bits) <= bits) break;

  00425	8b c8		 mov	 ecx, eax
  00427	c1 e9 08	 shr	 ecx, 8
  0042a	0f b6 d1	 movzx	 edx, cl
  0042d	3b d6		 cmp	 edx, esi
  0042f	89 44 24 1c	 mov	 DWORD PTR _this$[esp+40], eax
  00433	76 60		 jbe	 SHORT $LN382@inflateBac@3
$LL227@inflateBac@3:

; 394  :                     PULLBYTE();

  00435	85 ed		 test	 ebp, ebp
  00437	75 1b		 jne	 SHORT $LN220@inflateBac@3
  00439	8b 4c 24 34	 mov	 ecx, DWORD PTR _in_desc$[esp+36]
  0043d	8d 44 24 10	 lea	 eax, DWORD PTR _next$[esp+40]
  00441	50		 push	 eax
  00442	51		 push	 ecx
  00443	ff 54 24 38	 call	 DWORD PTR _in$[esp+44]
  00447	8b e8		 mov	 ebp, eax
  00449	83 c4 08	 add	 esp, 8
  0044c	85 ed		 test	 ebp, ebp
  0044e	0f 84 c6 08 00
	00		 je	 $LN376@inflateBac@3
$LN220@inflateBac@3:
  00454	8b 44 24 10	 mov	 eax, DWORD PTR _next$[esp+40]
  00458	0f b6 10	 movzx	 edx, BYTE PTR [eax]
  0045b	83 c0 01	 add	 eax, 1
  0045e	89 44 24 10	 mov	 DWORD PTR _next$[esp+40], eax
  00462	8b ce		 mov	 ecx, esi
  00464	d3 e2		 shl	 edx, cl
  00466	8b 4f 54	 mov	 ecx, DWORD PTR [edi+84]
  00469	b8 01 00 00 00	 mov	 eax, 1
  0046e	d3 e0		 shl	 eax, cl
  00470	8b 4f 4c	 mov	 ecx, DWORD PTR [edi+76]
  00473	03 da		 add	 ebx, edx
  00475	83 c6 08	 add	 esi, 8
  00478	83 e8 01	 sub	 eax, 1
  0047b	23 c3		 and	 eax, ebx
  0047d	8b 04 81	 mov	 eax, DWORD PTR [ecx+eax*4]
  00480	89 44 24 1c	 mov	 DWORD PTR _this$[esp+40], eax
  00484	c1 e8 08	 shr	 eax, 8
  00487	0f b6 d0	 movzx	 edx, al
  0048a	83 ed 01	 sub	 ebp, 1
  0048d	3b d6		 cmp	 edx, esi
  0048f	77 a4		 ja	 SHORT $LL227@inflateBac@3

; 393  :                     if ((unsigned)(this.bits) <= bits) break;

  00491	8b 44 24 1c	 mov	 eax, DWORD PTR _this$[esp+40]
$LN382@inflateBac@3:

; 395  :                 }
; 396  :                 if (this.val < 16) {

  00495	8b c8		 mov	 ecx, eax
  00497	c1 e9 10	 shr	 ecx, 16			; 00000010H
  0049a	83 f9 10	 cmp	 ecx, 16			; 00000010H
  0049d	73 74		 jae	 SHORT $LN216@inflateBac@3

; 397  :                     NEEDBITS(this.bits);

  0049f	8b d0		 mov	 edx, eax
  004a1	c1 ea 08	 shr	 edx, 8
  004a4	0f b6 ca	 movzx	 ecx, dl
  004a7	3b f1		 cmp	 esi, ecx
  004a9	73 4b		 jae	 SHORT $LN214@inflateBac@3
  004ab	eb 03 8d 49 00	 npad	 5
$LL212@inflateBac@3:
  004b0	85 ed		 test	 ebp, ebp
  004b2	75 1b		 jne	 SHORT $LN206@inflateBac@3
  004b4	8b 44 24 34	 mov	 eax, DWORD PTR _in_desc$[esp+36]
  004b8	8d 54 24 10	 lea	 edx, DWORD PTR _next$[esp+40]
  004bc	52		 push	 edx
  004bd	50		 push	 eax
  004be	ff 54 24 38	 call	 DWORD PTR _in$[esp+44]
  004c2	8b e8		 mov	 ebp, eax
  004c4	83 c4 08	 add	 esp, 8
  004c7	85 ed		 test	 ebp, ebp
  004c9	0f 84 4b 08 00
	00		 je	 $LN376@inflateBac@3
$LN206@inflateBac@3:
  004cf	8b 44 24 10	 mov	 eax, DWORD PTR _next$[esp+40]
  004d3	0f b6 10	 movzx	 edx, BYTE PTR [eax]
  004d6	8b ce		 mov	 ecx, esi
  004d8	83 c0 01	 add	 eax, 1
  004db	d3 e2		 shl	 edx, cl
  004dd	89 44 24 10	 mov	 DWORD PTR _next$[esp+40], eax
  004e1	0f b6 44 24 1d	 movzx	 eax, BYTE PTR _this$[esp+41]
  004e6	83 c6 08	 add	 esi, 8
  004e9	83 ed 01	 sub	 ebp, 1
  004ec	03 da		 add	 ebx, edx
  004ee	3b f0		 cmp	 esi, eax
  004f0	72 be		 jb	 SHORT $LL212@inflateBac@3
  004f2	8b 44 24 1c	 mov	 eax, DWORD PTR _this$[esp+40]
$LN214@inflateBac@3:

; 398  :                     DROPBITS(this.bits);
; 399  :                     state->lens[state->have++] = this.val;

  004f6	66 8b 54 24 1e	 mov	 dx, WORD PTR _this$[esp+42]
  004fb	0f b6 cc	 movzx	 ecx, ah
  004fe	d3 eb		 shr	 ebx, cl
  00500	2b f1		 sub	 esi, ecx
  00502	8b 4f 68	 mov	 ecx, DWORD PTR [edi+104]
  00505	66 89 54 4f 70	 mov	 WORD PTR [edi+ecx*2+112], dx
  0050a	83 47 68 01	 add	 DWORD PTR [edi+104], 1

; 400  :                 }
; 401  :                 else {

  0050e	e9 a1 01 00 00	 jmp	 $LN445@inflateBac@3
$LN216@inflateBac@3:

; 402  :                     if (this.val == 16) {

  00513	66 8b 4c 24 1e	 mov	 cx, WORD PTR _this$[esp+42]
  00518	66 83 f9 10	 cmp	 cx, 16			; 00000010H
  0051c	0f 85 81 00 00
	00		 jne	 $LN198@inflateBac@3

; 403  :                         NEEDBITS(this.bits + 2);

  00522	0f b6 cc	 movzx	 ecx, ah
  00525	8d 41 02	 lea	 eax, DWORD PTR [ecx+2]
  00528	3b f0		 cmp	 esi, eax
  0052a	89 4c 24 1c	 mov	 DWORD PTR tv1438[esp+40], ecx
  0052e	73 48		 jae	 SHORT $LN196@inflateBac@3
$LL194@inflateBac@3:
  00530	85 ed		 test	 ebp, ebp
  00532	75 1b		 jne	 SHORT $LN188@inflateBac@3
  00534	8b 4c 24 34	 mov	 ecx, DWORD PTR _in_desc$[esp+36]
  00538	8d 44 24 10	 lea	 eax, DWORD PTR _next$[esp+40]
  0053c	50		 push	 eax
  0053d	51		 push	 ecx
  0053e	ff 54 24 38	 call	 DWORD PTR _in$[esp+44]
  00542	8b e8		 mov	 ebp, eax
  00544	83 c4 08	 add	 esp, 8
  00547	85 ed		 test	 ebp, ebp
  00549	0f 84 cb 07 00
	00		 je	 $LN376@inflateBac@3
$LN188@inflateBac@3:
  0054f	8b 44 24 10	 mov	 eax, DWORD PTR _next$[esp+40]
  00553	0f b6 10	 movzx	 edx, BYTE PTR [eax]
  00556	83 c0 01	 add	 eax, 1
  00559	8b ce		 mov	 ecx, esi
  0055b	d3 e2		 shl	 edx, cl
  0055d	89 44 24 10	 mov	 DWORD PTR _next$[esp+40], eax
  00561	8b 44 24 1c	 mov	 eax, DWORD PTR tv1438[esp+40]
  00565	83 c6 08	 add	 esi, 8
  00568	83 c0 02	 add	 eax, 2
  0056b	83 ed 01	 sub	 ebp, 1
  0056e	03 da		 add	 ebx, edx
  00570	3b f0		 cmp	 esi, eax
  00572	72 bc		 jb	 SHORT $LL194@inflateBac@3
  00574	8b 4c 24 1c	 mov	 ecx, DWORD PTR tv1438[esp+40]
$LN196@inflateBac@3:

; 404  :                         DROPBITS(this.bits);
; 405  :                         if (state->have == 0) {

  00578	8b 47 68	 mov	 eax, DWORD PTR [edi+104]
  0057b	d3 eb		 shr	 ebx, cl
  0057d	2b f1		 sub	 esi, ecx
  0057f	85 c0		 test	 eax, eax
  00581	0f 84 91 01 00
	00		 je	 $LN388@inflateBac@3

; 409  :                         }
; 410  :                         len = (unsigned)(state->lens[state->have - 1]);

  00587	0f b7 44 47 6e	 movzx	 eax, WORD PTR [edi+eax*2+110]
  0058c	89 44 24 1c	 mov	 DWORD PTR _len$[esp+40], eax

; 411  :                         copy = 3 + BITS(2);

  00590	8b c3		 mov	 eax, ebx
  00592	83 e0 03	 and	 eax, 3
  00595	83 c0 03	 add	 eax, 3

; 412  :                         DROPBITS(2);

  00598	c1 eb 02	 shr	 ebx, 2
  0059b	83 ee 02	 sub	 esi, 2

; 413  :                     }
; 414  :                     else if (this.val == 17) {

  0059e	e9 e3 00 00 00	 jmp	 $LN137@inflateBac@3
$LN198@inflateBac@3:
  005a3	66 83 f9 11	 cmp	 cx, 17			; 00000011H

; 415  :                         NEEDBITS(this.bits + 3);

  005a7	0f b6 cc	 movzx	 ecx, ah
  005aa	89 4c 24 1c	 mov	 DWORD PTR tv1438[esp+40], ecx
  005ae	75 63		 jne	 SHORT $LN155@inflateBac@3
  005b0	8d 41 03	 lea	 eax, DWORD PTR [ecx+3]
  005b3	3b f0		 cmp	 esi, eax
  005b5	73 48		 jae	 SHORT $LN174@inflateBac@3
$LL172@inflateBac@3:
  005b7	85 ed		 test	 ebp, ebp
  005b9	75 1b		 jne	 SHORT $LN166@inflateBac@3
  005bb	8b 54 24 34	 mov	 edx, DWORD PTR _in_desc$[esp+36]
  005bf	8d 4c 24 10	 lea	 ecx, DWORD PTR _next$[esp+40]
  005c3	51		 push	 ecx
  005c4	52		 push	 edx
  005c5	ff 54 24 38	 call	 DWORD PTR _in$[esp+44]
  005c9	8b e8		 mov	 ebp, eax
  005cb	83 c4 08	 add	 esp, 8
  005ce	85 ed		 test	 ebp, ebp
  005d0	0f 84 44 07 00
	00		 je	 $LN376@inflateBac@3
$LN166@inflateBac@3:
  005d6	8b 44 24 10	 mov	 eax, DWORD PTR _next$[esp+40]
  005da	0f b6 10	 movzx	 edx, BYTE PTR [eax]
  005dd	83 c0 01	 add	 eax, 1
  005e0	8b ce		 mov	 ecx, esi
  005e2	d3 e2		 shl	 edx, cl
  005e4	89 44 24 10	 mov	 DWORD PTR _next$[esp+40], eax
  005e8	8b 44 24 1c	 mov	 eax, DWORD PTR tv1438[esp+40]
  005ec	83 c6 08	 add	 esi, 8
  005ef	83 c0 03	 add	 eax, 3
  005f2	83 ed 01	 sub	 ebp, 1
  005f5	03 da		 add	 ebx, edx
  005f7	3b f0		 cmp	 esi, eax
  005f9	72 bc		 jb	 SHORT $LL172@inflateBac@3
  005fb	8b 4c 24 1c	 mov	 ecx, DWORD PTR tv1438[esp+40]
$LN174@inflateBac@3:

; 416  :                         DROPBITS(this.bits);

  005ff	d3 eb		 shr	 ebx, cl

; 417  :                         len = 0;
; 418  :                         copy = 3 + BITS(3);
; 419  :                         DROPBITS(3);

  00601	ba fd ff ff ff	 mov	 edx, -3			; fffffffdH
  00606	8b c3		 mov	 eax, ebx
  00608	83 e0 07	 and	 eax, 7
  0060b	83 c0 03	 add	 eax, 3
  0060e	c1 eb 03	 shr	 ebx, 3

; 420  :                     }
; 421  :                     else {

  00611	eb 67		 jmp	 SHORT $LN467@inflateBac@3
$LN155@inflateBac@3:

; 422  :                         NEEDBITS(this.bits + 7);

  00613	8d 41 07	 lea	 eax, DWORD PTR [ecx+7]
  00616	3b f0		 cmp	 esi, eax
  00618	73 4e		 jae	 SHORT $LN154@inflateBac@3
  0061a	8d 9b 00 00 00
	00		 npad	 6
$LL152@inflateBac@3:
  00620	85 ed		 test	 ebp, ebp
  00622	75 1b		 jne	 SHORT $LN146@inflateBac@3
  00624	8b 4c 24 34	 mov	 ecx, DWORD PTR _in_desc$[esp+36]
  00628	8d 44 24 10	 lea	 eax, DWORD PTR _next$[esp+40]
  0062c	50		 push	 eax
  0062d	51		 push	 ecx
  0062e	ff 54 24 38	 call	 DWORD PTR _in$[esp+44]
  00632	8b e8		 mov	 ebp, eax
  00634	83 c4 08	 add	 esp, 8
  00637	85 ed		 test	 ebp, ebp
  00639	0f 84 db 06 00
	00		 je	 $LN376@inflateBac@3
$LN146@inflateBac@3:
  0063f	8b 44 24 10	 mov	 eax, DWORD PTR _next$[esp+40]
  00643	0f b6 10	 movzx	 edx, BYTE PTR [eax]
  00646	83 c0 01	 add	 eax, 1
  00649	8b ce		 mov	 ecx, esi
  0064b	d3 e2		 shl	 edx, cl
  0064d	89 44 24 10	 mov	 DWORD PTR _next$[esp+40], eax
  00651	8b 44 24 1c	 mov	 eax, DWORD PTR tv1438[esp+40]
  00655	83 c6 08	 add	 esi, 8
  00658	83 c0 07	 add	 eax, 7
  0065b	83 ed 01	 sub	 ebp, 1
  0065e	03 da		 add	 ebx, edx
  00660	3b f0		 cmp	 esi, eax
  00662	72 bc		 jb	 SHORT $LL152@inflateBac@3
  00664	8b 4c 24 1c	 mov	 ecx, DWORD PTR tv1438[esp+40]
$LN154@inflateBac@3:

; 423  :                         DROPBITS(this.bits);

  00668	d3 eb		 shr	 ebx, cl

; 424  :                         len = 0;
; 425  :                         copy = 11 + BITS(7);
; 426  :                         DROPBITS(7);

  0066a	ba f9 ff ff ff	 mov	 edx, -7			; fffffff9H
  0066f	8b c3		 mov	 eax, ebx
  00671	83 e0 7f	 and	 eax, 127		; 0000007fH
  00674	83 c0 0b	 add	 eax, 11			; 0000000bH
  00677	c1 eb 07	 shr	 ebx, 7
$LN467@inflateBac@3:
  0067a	2b d1		 sub	 edx, ecx
  0067c	03 f2		 add	 esi, edx
  0067e	c7 44 24 1c 00
	00 00 00	 mov	 DWORD PTR _len$[esp+40], 0
$LN137@inflateBac@3:

; 427  :                     }
; 428  :                     if (state->have + copy > state->nlen + state->ndist) {

  00686	8b 4f 64	 mov	 ecx, DWORD PTR [edi+100]
  00689	8b 57 68	 mov	 edx, DWORD PTR [edi+104]
  0068c	03 4f 60	 add	 ecx, DWORD PTR [edi+96]
  0068f	03 d0		 add	 edx, eax
  00691	3b d1		 cmp	 edx, ecx
  00693	0f 87 95 00 00
	00		 ja	 $LN389@inflateBac@3

; 431  :                         break;
; 432  :                     }
; 433  :                     while (copy--)

  00699	85 c0		 test	 eax, eax
  0069b	74 17		 je	 SHORT $LN445@inflateBac@3
  0069d	8b 4c 24 1c	 mov	 ecx, DWORD PTR _len$[esp+40]
$LL135@inflateBac@3:

; 434  :                         state->lens[state->have++] = (unsigned short)len;

  006a1	8b 57 68	 mov	 edx, DWORD PTR [edi+104]
  006a4	83 e8 01	 sub	 eax, 1
  006a7	66 89 4c 57 70	 mov	 WORD PTR [edi+edx*2+112], cx
  006ac	83 47 68 01	 add	 DWORD PTR [edi+104], 1
  006b0	85 c0		 test	 eax, eax
  006b2	75 ed		 jne	 SHORT $LL135@inflateBac@3
$LN445@inflateBac@3:

; 385  :             }
; 386  :             Tracev((stderr, "inflate:       code lengths ok\n"));
; 387  : 
; 388  :             /* get length and distance code code lengths */
; 389  :             state->have = 0;
; 390  :             while (state->have < state->nlen + state->ndist) {

  006b4	8b 47 64	 mov	 eax, DWORD PTR [edi+100]
  006b7	03 47 60	 add	 eax, DWORD PTR [edi+96]
  006ba	39 47 68	 cmp	 DWORD PTR [edi+104], eax
  006bd	0f 82 4d fd ff
	ff		 jb	 $LL229@inflateBac@3
$LN432@inflateBac@3:

; 435  :                 }
; 436  :             }
; 437  : 
; 438  :             /* handle error breaks in while */
; 439  :             if (state->mode == BAD) break;

  006c3	83 3f 1b	 cmp	 DWORD PTR [edi], 27	; 0000001bH
  006c6	0f 84 22 06 00
	00		 je	 $LN453@inflateBac@3

; 440  : 
; 441  :             /* build code tables */
; 442  :             state->next = state->codes;

  006cc	8d 87 30 05 00
	00		 lea	 eax, DWORD PTR [edi+1328]
  006d2	8d 4f 6c	 lea	 ecx, DWORD PTR [edi+108]
  006d5	89 01		 mov	 DWORD PTR [ecx], eax

; 443  :             state->lencode = (code const FAR *)(state->next);

  006d7	89 47 4c	 mov	 DWORD PTR [edi+76], eax

; 444  :             state->lenbits = 9;
; 445  :             ret = inflate_table(LENS, state->lens, state->nlen, &(state->next),
; 446  :                                 &(state->lenbits), state->work);

  006da	8d 97 f0 02 00
	00		 lea	 edx, DWORD PTR [edi+752]
  006e0	52		 push	 edx
  006e1	8d 47 54	 lea	 eax, DWORD PTR [edi+84]
  006e4	50		 push	 eax
  006e5	c7 00 09 00 00
	00		 mov	 DWORD PTR [eax], 9
  006eb	8b 47 60	 mov	 eax, DWORD PTR [edi+96]
  006ee	51		 push	 ecx
  006ef	50		 push	 eax
  006f0	8d 47 70	 lea	 eax, DWORD PTR [edi+112]
  006f3	50		 push	 eax
  006f4	6a 01		 push	 1
  006f6	e8 00 00 00 00	 call	 _inflate_table
  006fb	83 c4 18	 add	 esp, 24			; 00000018H

; 447  :             if (ret) {

  006fe	85 c0		 test	 eax, eax
  00700	74 42		 je	 SHORT $LN132@inflateBac@3

; 448  :                 strm->msg = (char *)"invalid literal/lengths set";

  00702	8b 4c 24 2c	 mov	 ecx, DWORD PTR _strm$[esp+36]
  00706	c7 41 18 00 00
	00 00		 mov	 DWORD PTR [ecx+24], OFFSET ??_C@_0BM@IIMGAINC@invalid?5literal?1lengths?5set?$AA@

; 449  :                 state->mode = BAD;

  0070d	c7 07 1b 00 00
	00		 mov	 DWORD PTR [edi], 27	; 0000001bH

; 450  :                 break;

  00713	e9 d6 05 00 00	 jmp	 $LN453@inflateBac@3
$LN388@inflateBac@3:

; 406  :                             strm->msg = (char *)"invalid bit length repeat";

  00718	8b 4c 24 2c	 mov	 ecx, DWORD PTR _strm$[esp+36]
  0071c	c7 41 18 00 00
	00 00		 mov	 DWORD PTR [ecx+24], OFFSET ??_C@_0BK@BMMPFBBH@invalid?5bit?5length?5repeat?$AA@

; 407  :                             state->mode = BAD;

  00723	c7 07 1b 00 00
	00		 mov	 DWORD PTR [edi], 27	; 0000001bH

; 408  :                             break;

  00729	e9 c0 05 00 00	 jmp	 $LN453@inflateBac@3
$LN389@inflateBac@3:

; 429  :                         strm->msg = (char *)"invalid bit length repeat";

  0072e	8b 54 24 2c	 mov	 edx, DWORD PTR _strm$[esp+36]
  00732	c7 42 18 00 00
	00 00		 mov	 DWORD PTR [edx+24], OFFSET ??_C@_0BK@BMMPFBBH@invalid?5bit?5length?5repeat?$AA@

; 430  :                         state->mode = BAD;

  00739	c7 07 1b 00 00
	00		 mov	 DWORD PTR [edi], 27	; 0000001bH

; 435  :                 }
; 436  :             }
; 437  : 
; 438  :             /* handle error breaks in while */
; 439  :             if (state->mode == BAD) break;

  0073f	e9 aa 05 00 00	 jmp	 $LN453@inflateBac@3
$LN132@inflateBac@3:

; 451  :             }
; 452  :             state->distcode = (code const FAR *)(state->next);

  00744	8b 57 6c	 mov	 edx, DWORD PTR [edi+108]
  00747	8d 4f 6c	 lea	 ecx, DWORD PTR [edi+108]
  0074a	89 57 50	 mov	 DWORD PTR [edi+80], edx

; 453  :             state->distbits = 6;
; 454  :             ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist,
; 455  :                             &(state->next), &(state->distbits), state->work);

  0074d	8d 97 f0 02 00
	00		 lea	 edx, DWORD PT

⌨️ 快捷键说明

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