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

📄 unzip.cod

📁 microsoft visual c++ 2005、windows mobile 5 远程控制PC.通过阅读项目源码能让你熟悉Active Sync RAPI
💻 COD
📖 第 1 页 / 共 5 页
字号:

; 234  :     uLong x ;
; 235  :     int i;
; 236  :     int err;
; 237  : 
; 238  :     err = unzlocal_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	 _unzlocal_getByte

; 239  :     x = (uLong)i;

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

; 240  : 
; 241  :     if (err==UNZ_OK)

  0001e	85 c0		 test	 eax, eax
  00020	8b d9		 mov	 ebx, ecx
  00022	75 11		 jne	 SHORT $LN5@unzlocal_g@2

; 242  :         err = unzlocal_getByte(pzlib_filefunc_def,filestream,&i);

  00024	8d 4c 24 10	 lea	 ecx, DWORD PTR _i$[esp+20]
  00028	51		 push	 ecx
  00029	e8 00 00 00 00	 call	 _unzlocal_getByte
  0002e	8b 4c 24 14	 mov	 ecx, DWORD PTR _i$[esp+24]
  00032	83 c4 04	 add	 esp, 4
$LN5@unzlocal_g@2:

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

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

; 244  : 
; 245  :     if (err==UNZ_OK)

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

; 246  :         err = unzlocal_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	 _unzlocal_getByte
  0004a	8b 4c 24 14	 mov	 ecx, DWORD PTR _i$[esp+24]
  0004e	83 c4 04	 add	 esp, 4
$LN4@unzlocal_g@2:

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

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

; 248  : 
; 249  :     if (err==UNZ_OK)

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

; 250  :         err = unzlocal_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	 _unzlocal_getByte
  00064	83 c4 04	 add	 esp, 4

; 251  :     x += ((uLong)i)<<24;
; 252  : 
; 253  :     if (err==UNZ_OK)

  00067	85 c0		 test	 eax, eax
  00069	75 12		 jne	 SHORT $LN8@unzlocal_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

; 254  :         *pX = x;

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

; 257  :     return err;
; 258  : }

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

; 255  :     else
; 256  :         *pX = 0;

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

; 257  :     return err;
; 258  : }

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

; 205  : {

  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

; 206  :     uLong x ;
; 207  :     int i;
; 208  :     int err;
; 209  : 
; 210  :     err = unzlocal_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	 _unzlocal_getByte

; 211  :     x = (uLong)i;

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

; 212  : 
; 213  :     if (err==UNZ_OK)

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

; 214  :         err = unzlocal_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	 _unzlocal_getByte
  0002c	83 c4 04	 add	 esp, 4

; 215  :     x += ((uLong)i)<<8;
; 216  : 
; 217  :     if (err==UNZ_OK)

  0002f	85 c0		 test	 eax, eax
  00031	75 12		 jne	 SHORT $LN6@unzlocal_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

; 218  :         *pX = x;

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

; 221  :     return err;
; 222  : }

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

; 219  :     else
; 220  :         *pX = 0;

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

; 221  :     return err;
; 222  : }

  00050	59		 pop	 ecx
  00051	c3		 ret	 0
_unzlocal_getShort 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@2
$LL2@init_keys@2:

; 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@2
$LN1@init_keys@2:
  00035	5f		 pop	 edi
  00036	5e		 pop	 esi
  00037	5b		 pop	 ebx

; 73   :     }
; 74   : }

  00038	c3		 ret	 0
_init_keys ENDP
PUBLIC	_unzReadCurrentFile@12
; Function compile flags: /Ogtpy
; File d:\src\vs2005\cpp\ceremoteclient\zlib123\contrib\minizip\unzip.c
;	COMDAT _unzReadCurrentFile@12
_TEXT	SEGMENT
_iRead$ = -4						; size = 4
_file$ = 8						; size = 4
_buf$ = 12						; size = 4
_bufBefore$80702 = 16					; size = 4
_uReadThis$80676 = 16					; size = 4
_len$ = 16						; size = 4
_unzReadCurrentFile@12 PROC				; COMDAT

; 1228 : {

  00000	51		 push	 ecx
  00001	57		 push	 edi

; 1229 :     int err=UNZ_OK;
; 1230 :     uInt iRead = 0;
; 1231 :     unz_s* s;
; 1232 :     file_in_zip_read_info_s* pfile_in_zip_read_info;
; 1233 :     if (file==NULL)

  00002	8b 7c 24 0c	 mov	 edi, DWORD PTR _file$[esp+4]
  00006	85 ff		 test	 edi, edi
  00008	c7 44 24 04 00
	00 00 00	 mov	 DWORD PTR _iRead$[esp+8], 0
  00010	75 08		 jne	 SHORT $LN30@unzReadCur

; 1234 :         return UNZ_PARAMERROR;

  00012	8d 47 9a	 lea	 eax, DWORD PTR [edi-102]
  00015	5f		 pop	 edi

; 1379 : }

  00016	59		 pop	 ecx
  00017	c2 0c 00	 ret	 12			; 0000000cH
$LN30@unzReadCur:
  0001a	53		 push	 ebx

; 1235 :     s=(unz_s*)file;
; 1236 :     pfile_in_zip_read_info=s->pfile_in_zip_read;

  0001b	8b 9f 9c 00 00
	00		 mov	 ebx, DWORD PTR [edi+156]

; 1237 : 
; 1238 :     if (pfile_in_zip_read_info==NULL)

  00021	85 db		 test	 ebx, ebx
  00023	75 09		 jne	 SHORT $LN29@unzReadCur

; 1239 :         return UNZ_PARAMERROR;

  00025	8d 43 9a	 lea	 eax, DWORD PTR [ebx-102]
  00028	5b		 pop	 ebx
  00029	5f		 pop	 edi

; 1379 : }

  0002a	59		 pop	 ecx
  0002b	c2 0c 00	 ret	 12			; 0000000cH
$LN29@unzReadCur:

; 1240 : 
; 1241 : 
; 1242 :     if ((pfile_in_zip_read_info->read_buffer == NULL))

  0002e	83 3b 00	 cmp	 DWORD PTR [ebx], 0
  00031	75 0b		 jne	 SHORT $LN28@unzReadCur
  00033	5b		 pop	 ebx

; 1243 :         return UNZ_END_OF_LIST_OF_FILE;

  00034	b8 9c ff ff ff	 mov	 eax, -100		; ffffff9cH
  00039	5f		 pop	 edi

; 1379 : }

  0003a	59		 pop	 ecx
  0003b	c2 0c 00	 ret	 12			; 0000000cH
$LN28@unzReadCur:

; 1244 :     if (len==0)

  0003e	8b 44 24 18	 mov	 eax, DWORD PTR _len$[esp+8]
  00042	85 c0		 test	 eax, eax
  00044	75 06		 jne	 SHORT $LN27@unzReadCur
  00046	5b		 pop	 ebx
  00047	5f		 pop	 edi

; 1379 : }

  00048	59		 pop	 ecx
  00049	c2 0c 00	 ret	 12			; 0000000cH
$LN27@unzReadCur:

; 1245 :         return 0;
; 1246 : 
; 1247 :     pfile_in_zip_read_info->stream.next_out = (Bytef*)buf;

  0004c	8b 4c 24 14	 mov	 ecx, DWORD PTR _buf$[esp+8]
  00050	89 4b 10	 mov	 DWORD PTR [ebx+16], ecx

; 1248 : 
; 1249 :     pfile_in_zip_read_info->stream.avail_out = (uInt)len;
; 1250 : 
; 1251 :     if ((len>pfile_in_zip_read_info->rest_read_uncompressed) &&
; 1252 :         (!(pfile_in_zip_read_info->raw)))

  00053	8b 4b 5c	 mov	 ecx, DWORD PTR [ebx+92]
  00056	3b c1		 cmp	 eax, ecx
  00058	89 43 14	 mov	 DWORD PTR [ebx+20], eax
  0005b	76 0c		 jbe	 SHORT $LN26@unzReadCur
  0005d	83 bb 8c 00 00
	00 00		 cmp	 DWORD PTR [ebx+140], 0
  00064	75 03		 jne	 SHORT $LN26@unzReadCur

; 1253 :         pfile_in_zip_read_info->stream.avail_out =
; 1254 :             (uInt)pfile_in_zip_read_info->rest_read_uncompressed;

  00066	89 4b 14	 mov	 DWORD PTR [ebx+20], ecx
$LN26@unzReadCur:

; 1255 : 
; 1256 :     if ((len>pfile_in_zip_read_info->rest_read_compressed+
; 1257 :            pfile_in_zip_read_info->stream.avail_in) &&
; 1258 :          (pfile_in_zip_read_info->raw))

  00069	8b 53 58	 mov	 edx, DWORD PTR [ebx+88]
  0006c	8b 4b 08	 mov	 ecx, DWORD PTR [ebx+8]
  0006f	03 ca		 add	 ecx, edx
  00071	3b c1		 cmp	 eax, ecx
  00073	76 0c		 jbe	 SHORT $LN33@unzReadCur
  00075	83 bb 8c 00 00
	00 00		 cmp	 DWORD PTR [ebx+140], 0
  0007c	74 03		 je	 SHORT $LN33@unzReadCur

; 1259 :         pfile_in_zip_read_info->stream.avail_out =
; 1260 :             (uInt)pfile_in_zip_read_info->rest_read_compressed+
; 1261 :             pfile_in_zip_read_info->stream.avail_in;

  0007e	89 4b 14	 mov	 DWORD PTR [ebx+20], ecx
$LN33@unzReadCur:

; 1262 : 
; 1263 :     while (pfile_in_zip_read_info->stream.avail_out>0)

  00081	83 7b 14 00	 cmp	 DWORD PTR [ebx+20], 0
  00085	55		 push	 ebp
  00086	56		 push	 esi
  00087	0f 86 8f 01 00
	00		 jbe	 $LN44@unzReadCur
  0008d	8d 49 00	 npad	 3
$LL24@unzReadCur:

; 1264 :     {
; 1265 :         if ((pfile_in_zip_read_info->stream.avail_in==0) &&
; 1266 :             (pfile_in_zip_read_info->rest_read_compressed>0))

  00090	83 7b 08 00	 cmp	 DWORD PTR [ebx+8], 0
  00094	0f 85 bc 00 00
	00		 jne	 $LN22@unzReadCur
  0009a	8b 43 58	 mov	 eax, DWORD PTR [ebx+88]
  0009d	85 c0		 test	 eax, eax
  0009f	0f 86 b1 00 00
	00		 jbe	 $LN22@unzReadCur

; 1267 :         {
; 1268 :             uInt uReadThis = UNZ_BUFSIZE;

  000a5	be 00 40 00 00	 mov	 esi, 16384		; 00004000H

; 1269 :             if (pfile_in_zip_read_info->rest_read_compressed<uReadThis)

  000aa	3b c6		 cmp	 eax, esi
  000ac	89 74 24 20	 mov	 DWORD PTR _uReadThis$80676[esp+16], esi
  000b0	73 06		 jae	 SHORT $LN45@unzReadCur

; 1270 :                 uReadThis = (uInt)pfile_in_zip_read_info->rest_read_compressed;

  000b2	89 44 24 20	 mov	 DWORD PTR _uReadThis$80676[esp+16], eax
  000b6	8b f0		 mov	 esi, eax
$LN45@unzReadCur:

; 1271 :             if (uReadThis == 0)
; 1272 :                 return UNZ_EOF;
; 1273 :             if (ZSEEK(pfile_in_zip_read_info->z_filefunc,
; 1274 :                       pfile_in_zip_read_info->filestream,
; 1275 :                       pfile_in_zip_read_info->pos_in_zipfile +
; 1276 :                          pfile_in_zip_read_info->byte_before_the_zipfile,
; 1277 :                          ZLIB_FILEFUNC_SEEK_SET)!=0)

  000b8	8b 93 88 00 00
	00		 mov	 edx, DWORD PTR [ebx+136]
  000be	03 53 3c	 add	 edx, DWORD PTR [ebx+60]
  000c1	8b 83 80 00 00
	00		 mov	 eax, DWORD PTR [ebx+128]
  000c7	8b 4b 7c	 mov	 ecx, DWORD PTR [ebx+124]
  000ca	6a 00		 push	 0
  000cc	52		 push	 edx
  000cd	8b 53 70	 mov	 edx, DWORD PTR [ebx+112]
  000d0	50		 push	 eax
  000d1	51		 push	 ecx
  000d2	ff d2		 call	 edx
  000d4	83 c4 10	 add	 esp, 16			; 00000010H
  000d7	85 c0		 test	 eax, eax
  000d9	0f 85 49 01 00
	00		 jne	 $LN38@unzReadCur

; 1278 :                 return UNZ_ERRNO;
; 1279 :             if (ZREAD(pfile_in_zip_read_info->z_filefunc,
; 1280 :                       pfile_in_zip_read_info->filestream,
; 1281 :                       pfile_in_zip_read_info->read_buffer,
; 1282 :                       uReadThis)!=uReadThis)

  000df	8b 03		 mov	 eax, DWORD PTR [ebx]

⌨️ 快捷键说明

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