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

📄 zip.cod

📁 microsoft visual c++ 2005、windows mobile 5 远程控制PC.通过阅读项目源码能让你熟悉Active Sync RAPI
💻 COD
📖 第 1 页 / 共 5 页
字号:
  00032	83 c4 04	 add	 esp, 4
$LN5@ziplocal_g@2:

; 412  :     x += ((uLong)i)<<8;

  00035	8b d1		 mov	 edx, ecx
  00037	c1 e2 08	 shl	 edx, 8
  0003a	03 da		 add	 ebx, edx

; 413  : 
; 414  :     if (err==ZIP_OK)

  0003c	85 c0		 test	 eax, eax
  0003e	75 11		 jne	 SHORT $LN4@ziplocal_g@2

; 415  :         err = ziplocal_getByte(pzlib_filefunc_def,filestream,&i);

  00040	8d 44 24 10	 lea	 eax, DWORD PTR _i$[esp+20]
  00044	50		 push	 eax
  00045	e8 00 00 00 00	 call	 _ziplocal_getByte
  0004a	8b 4c 24 14	 mov	 ecx, DWORD PTR _i$[esp+24]
  0004e	83 c4 04	 add	 esp, 4
$LN4@ziplocal_g@2:

; 416  :     x += ((uLong)i)<<16;

  00051	c1 e1 10	 shl	 ecx, 16			; 00000010H
  00054	03 d9		 add	 ebx, ecx

; 417  : 
; 418  :     if (err==ZIP_OK)

  00056	85 c0		 test	 eax, eax
  00058	75 23		 jne	 SHORT $LN8@ziplocal_g@2

; 419  :         err = ziplocal_getByte(pzlib_filefunc_def,filestream,&i);

  0005a	8d 4c 24 10	 lea	 ecx, DWORD PTR _i$[esp+20]
  0005e	51		 push	 ecx
  0005f	e8 00 00 00 00	 call	 _ziplocal_getByte
  00064	83 c4 04	 add	 esp, 4

; 420  :     x += ((uLong)i)<<24;
; 421  : 
; 422  :     if (err==ZIP_OK)

  00067	85 c0		 test	 eax, eax
  00069	75 12		 jne	 SHORT $LN8@ziplocal_g@2
  0006b	8b 54 24 10	 mov	 edx, DWORD PTR _i$[esp+20]
  0006f	5f		 pop	 edi
  00070	c1 e2 18	 shl	 edx, 24			; 00000018H
  00073	03 d3		 add	 edx, ebx
  00075	5e		 pop	 esi

; 423  :         *pX = x;

  00076	89 55 00	 mov	 DWORD PTR [ebp], edx
  00079	5d		 pop	 ebp
  0007a	5b		 pop	 ebx

; 426  :     return err;
; 427  : }

  0007b	59		 pop	 ecx
  0007c	c3		 ret	 0
$LN8@ziplocal_g@2:
  0007d	5f		 pop	 edi
  0007e	5e		 pop	 esi

; 424  :     else
; 425  :         *pX = 0;

  0007f	c7 45 00 00 00
	00 00		 mov	 DWORD PTR [ebp], 0
  00086	5d		 pop	 ebp
  00087	5b		 pop	 ebx

; 426  :     return err;
; 427  : }

  00088	59		 pop	 ecx
  00089	c3		 ret	 0
_ziplocal_getLong ENDP
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT _ziplocal_getShort
_TEXT	SEGMENT
_i$ = -4						; size = 4
_pX$ = 8						; size = 4
_ziplocal_getShort PROC					; COMDAT
; _pzlib_filefunc_def$ = ecx
; _filestream$ = eax

; 374  : {

  00000	51		 push	 ecx
  00001	53		 push	 ebx
  00002	55		 push	 ebp
  00003	8b 6c 24 10	 mov	 ebp, DWORD PTR _pX$[esp+8]
  00007	56		 push	 esi
  00008	57		 push	 edi
  00009	8b f8		 mov	 edi, eax

; 375  :     uLong x ;
; 376  :     int i;
; 377  :     int err;
; 378  : 
; 379  :     err = ziplocal_getByte(pzlib_filefunc_def,filestream,&i);

  0000b	8d 44 24 10	 lea	 eax, DWORD PTR _i$[esp+20]
  0000f	8b f1		 mov	 esi, ecx
  00011	50		 push	 eax
  00012	e8 00 00 00 00	 call	 _ziplocal_getByte

; 380  :     x = (uLong)i;

  00017	8b 5c 24 14	 mov	 ebx, DWORD PTR _i$[esp+24]
  0001b	83 c4 04	 add	 esp, 4

; 381  : 
; 382  :     if (err==ZIP_OK)

  0001e	85 c0		 test	 eax, eax
  00020	75 23		 jne	 SHORT $LN6@ziplocal_g@3

; 383  :         err = ziplocal_getByte(pzlib_filefunc_def,filestream,&i);

  00022	8d 4c 24 10	 lea	 ecx, DWORD PTR _i$[esp+20]
  00026	51		 push	 ecx
  00027	e8 00 00 00 00	 call	 _ziplocal_getByte
  0002c	83 c4 04	 add	 esp, 4

; 384  :     x += ((uLong)i)<<8;
; 385  : 
; 386  :     if (err==ZIP_OK)

  0002f	85 c0		 test	 eax, eax
  00031	75 12		 jne	 SHORT $LN6@ziplocal_g@3
  00033	8b 54 24 10	 mov	 edx, DWORD PTR _i$[esp+20]
  00037	5f		 pop	 edi
  00038	c1 e2 08	 shl	 edx, 8
  0003b	03 d3		 add	 edx, ebx
  0003d	5e		 pop	 esi

; 387  :         *pX = x;

  0003e	89 55 00	 mov	 DWORD PTR [ebp], edx
  00041	5d		 pop	 ebp
  00042	5b		 pop	 ebx

; 390  :     return err;
; 391  : }

  00043	59		 pop	 ecx
  00044	c3		 ret	 0
$LN6@ziplocal_g@3:
  00045	5f		 pop	 edi
  00046	5e		 pop	 esi

; 388  :     else
; 389  :         *pX = 0;

  00047	c7 45 00 00 00
	00 00		 mov	 DWORD PTR [ebp], 0
  0004e	5d		 pop	 ebp
  0004f	5b		 pop	 ebx

; 390  :     return err;
; 391  : }

  00050	59		 pop	 ecx
  00051	c3		 ret	 0
_ziplocal_getShort ENDP
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT _add_data_in_datablock
_TEXT	SEGMENT
_ll$ = 8						; size = 4
_buf$ = 12						; size = 4
_len$ = 16						; size = 4
_add_data_in_datablock PROC				; COMDAT

; 204  : {

  00000	55		 push	 ebp

; 205  :     linkedlist_datablock_internal* ldi;
; 206  :     const unsigned char* from_copy;
; 207  : 
; 208  :     if (ll==NULL)

  00001	8b 6c 24 08	 mov	 ebp, DWORD PTR _ll$[esp]
  00005	85 ed		 test	 ebp, ebp
  00007	75 07		 jne	 SHORT $LN12@add_data_i
$LN24@add_data_i:

; 209  :         return ZIP_INTERNALERROR;

  00009	b8 98 ff ff ff	 mov	 eax, -104		; ffffff98H
  0000e	5d		 pop	 ebp

; 252  : }

  0000f	c3		 ret	 0
$LN12@add_data_i:

; 210  : 
; 211  :     if (ll->last_block == NULL)

  00010	83 7d 04 00	 cmp	 DWORD PTR [ebp+4], 0
  00014	75 0f		 jne	 SHORT $LN10@add_data_i

; 212  :     {
; 213  :         ll->first_block = ll->last_block = allocate_new_datablock();

  00016	e8 00 00 00 00	 call	 _allocate_new_datablock

; 214  :         if (ll->first_block == NULL)

  0001b	85 c0		 test	 eax, eax
  0001d	89 45 04	 mov	 DWORD PTR [ebp+4], eax
  00020	89 45 00	 mov	 DWORD PTR [ebp], eax

; 215  :             return ZIP_INTERNALERROR;

  00023	74 e4		 je	 SHORT $LN24@add_data_i
$LN10@add_data_i:
  00025	53		 push	 ebx

; 216  :     }
; 217  : 
; 218  :     ldi = ll->last_block;
; 219  :     from_copy = (unsigned char*)buf;

  00026	8b 5c 24 10	 mov	 ebx, DWORD PTR _buf$[esp+4]
  0002a	56		 push	 esi
  0002b	8b 75 04	 mov	 esi, DWORD PTR [ebp+4]
  0002e	57		 push	 edi

; 220  : 
; 221  :     while (len>0)

  0002f	8b 7c 24 1c	 mov	 edi, DWORD PTR _len$[esp+12]
  00033	85 ff		 test	 edi, edi
  00035	76 55		 jbe	 SHORT $LN8@add_data_i
$LL9@add_data_i:

; 222  :     {
; 223  :         uInt copy_this;
; 224  :         uInt i;
; 225  :         unsigned char* to_copy;
; 226  : 
; 227  :         if (ldi->avail_in_this_block==0)

  00037	83 7e 04 00	 cmp	 DWORD PTR [esi+4], 0
  0003b	75 10		 jne	 SHORT $LN7@add_data_i

; 228  :         {
; 229  :             ldi->next_datablock = allocate_new_datablock();

  0003d	e8 00 00 00 00	 call	 _allocate_new_datablock

; 230  :             if (ldi->next_datablock == NULL)

  00042	85 c0		 test	 eax, eax
  00044	89 06		 mov	 DWORD PTR [esi], eax
  00046	74 4b		 je	 SHORT $LN17@add_data_i

; 232  :             ldi = ldi->next_datablock ;

  00048	8b f0		 mov	 esi, eax

; 233  :             ll->last_block = ldi;

  0004a	89 75 04	 mov	 DWORD PTR [ebp+4], esi
$LN7@add_data_i:

; 234  :         }
; 235  : 
; 236  :         if (ldi->avail_in_this_block < len)

  0004d	8b 4e 04	 mov	 ecx, DWORD PTR [esi+4]
  00050	3b cf		 cmp	 ecx, edi

; 237  :             copy_this = (uInt)ldi->avail_in_this_block;
; 238  :         else

  00052	72 02		 jb	 SHORT $LN4@add_data_i

; 239  :             copy_this = (uInt)len;

  00054	8b cf		 mov	 ecx, edi
$LN4@add_data_i:

; 240  : 
; 241  :         to_copy = &(ldi->data[ldi->filled_in_this_block]);
; 242  : 
; 243  :         for (i=0;i<copy_this;i++)

  00056	85 c9		 test	 ecx, ecx
  00058	8b 46 08	 mov	 eax, DWORD PTR [esi+8]
  0005b	8d 44 30 10	 lea	 eax, DWORD PTR [eax+esi+16]
  0005f	76 1b		 jbe	 SHORT $LN1@add_data_i
  00061	8b fb		 mov	 edi, ebx
  00063	2b f8		 sub	 edi, eax
  00065	8b e9		 mov	 ebp, ecx
$LL3@add_data_i:

; 244  :             *(to_copy+i)=*(from_copy+i);

  00067	8a 14 07	 mov	 dl, BYTE PTR [edi+eax]
  0006a	88 10		 mov	 BYTE PTR [eax], dl
  0006c	83 c0 01	 add	 eax, 1
  0006f	83 ed 01	 sub	 ebp, 1
  00072	75 f3		 jne	 SHORT $LL3@add_data_i
  00074	8b 6c 24 14	 mov	 ebp, DWORD PTR _ll$[esp+12]
  00078	8b 7c 24 1c	 mov	 edi, DWORD PTR _len$[esp+12]
$LN1@add_data_i:

; 245  : 
; 246  :         ldi->filled_in_this_block += copy_this;

  0007c	01 4e 08	 add	 DWORD PTR [esi+8], ecx

; 247  :         ldi->avail_in_this_block -= copy_this;

  0007f	29 4e 04	 sub	 DWORD PTR [esi+4], ecx

; 248  :         from_copy += copy_this ;

  00082	03 d9		 add	 ebx, ecx

; 249  :         len -= copy_this;

  00084	2b f9		 sub	 edi, ecx
  00086	89 7c 24 1c	 mov	 DWORD PTR _len$[esp+12], edi
  0008a	75 ab		 jne	 SHORT $LL9@add_data_i
$LN8@add_data_i:
  0008c	5f		 pop	 edi
  0008d	5e		 pop	 esi
  0008e	5b		 pop	 ebx

; 250  :     }
; 251  :     return ZIP_OK;

  0008f	33 c0		 xor	 eax, eax
  00091	5d		 pop	 ebp

; 252  : }

  00092	c3		 ret	 0
$LN17@add_data_i:
  00093	5f		 pop	 edi
  00094	5e		 pop	 esi
  00095	5b		 pop	 ebx

; 231  :                 return ZIP_INTERNALERROR;

  00096	b8 98 ff ff ff	 mov	 eax, -104		; ffffff98H
  0009b	5d		 pop	 ebp

; 252  : }

  0009c	c3		 ret	 0
_add_data_in_datablock ENDP
; Function compile flags: /Ogtpy
; File d:\src\vs2005\cpp\ceremoteclient\zlib123\contrib\minizip\crypt.h
_TEXT	ENDS
;	COMDAT _init_keys
_TEXT	SEGMENT
_init_keys PROC						; COMDAT
; _passwd$ = edx
; _pkeys$ = ecx
; _pcrc_32_tab$ = eax

; 66   : {

  00000	53		 push	 ebx
  00001	56		 push	 esi
  00002	8b f1		 mov	 esi, ecx
  00004	57		 push	 edi
  00005	8b da		 mov	 ebx, edx
  00007	8b f8		 mov	 edi, eax

; 67   :     *(pkeys+0) = 305419896L;

  00009	c7 06 78 56 34
	12		 mov	 DWORD PTR [esi], 305419896 ; 12345678H

; 68   :     *(pkeys+1) = 591751049L;

  0000f	c7 46 04 89 67
	45 23		 mov	 DWORD PTR [esi+4], 591751049 ; 23456789H

; 69   :     *(pkeys+2) = 878082192L;

  00016	c7 46 08 90 78
	56 34		 mov	 DWORD PTR [esi+8], 878082192 ; 34567890H

; 70   :     while (*passwd != '\0') {

  0001d	8a 03		 mov	 al, BYTE PTR [ebx]
  0001f	84 c0		 test	 al, al
  00021	74 12		 je	 SHORT $LN1@init_keys
$LL2@init_keys:

; 71   :         update_keys(pkeys,pcrc_32_tab,(int)*passwd);

  00023	0f be c0	 movsx	 eax, al
  00026	e8 00 00 00 00	 call	 _update_keys
  0002b	8a 43 01	 mov	 al, BYTE PTR [ebx+1]

; 72   :         passwd++;

  0002e	83 c3 01	 add	 ebx, 1
  00031	84 c0		 test	 al, al
  00033	75 ee		 jne	 SHORT $LL2@init_keys
$LN1@init_keys:
  00035	5f		 pop	 edi
  00036	5e		 pop	 esi
  00037	5b		 pop	 ebx

; 73   :     }
; 74   : }

  00038	c3		 ret	 0
_init_keys ENDP
PUBLIC	_zipCloseFileInZipRaw@12
; Function compile flags: /Ogtpy
; File d:\src\vs2005\cpp\ceremoteclient\zlib123\contrib\minizip\zip.c
;	COMDAT _zipCloseFileInZipRaw@12
_TEXT	SEGMENT
_cur_pos_inzip$80989 = 8				; size = 4
_file$ = 8						; size = 4
_uncompressed_size$ = 12				; size = 4
_crc32$ = 16						; size = 4
_zipCloseFileInZipRaw@12 PROC				; COMDAT

; 1035 : {

  00000	55		 push	 ebp
  00001	57		 push	 edi

; 1036 :     zip_internal* zi;
; 1037 :     uLong compressed_size;
; 1038 :     int err=ZIP_OK;
; 1039 : 
; 1040 :     if (file == NULL)

  00002	8b 7c 24 0c	 mov	 edi, DWORD PTR _file$[esp+4]
  00006	33 ed		 xor	 ebp, ebp
  00008	3b fd		 cmp	 edi, ebp
  0000a	75 0a		 jne	 SHORT $LN20@zipCloseFi
$LN36@zipCloseFi:
  0000c	5f		 pop	 edi

; 1041 :         return ZIP_PARAMERROR;

  0000d	b8 9a ff ff ff	 mov	 eax, -102		; ffffff9aH
  00012	5d		 pop	 ebp

; 1125 : }

  00013	c2 0c 00	 ret	 12			; 0000000cH

⌨️ 快捷键说明

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