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

📄 unzip.cod

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

; 275  :             return ((c2=='\0') ? 0 : -1);

  0003f	f6 d8		 neg	 al
  00041	5f		 pop	 edi
  00042	5e		 pop	 esi
  00043	1b c0		 sbb	 eax, eax

; 282  :     }
; 283  : }

  00045	c3		 ret	 0
$LN15@strcmpcase:
  00046	5f		 pop	 edi

; 279  :             return -1;

  00047	83 c8 ff	 or	 eax, -1
  0004a	5e		 pop	 esi

; 282  :     }
; 283  : }

  0004b	c3		 ret	 0
_strcmpcasenosensitive_internal ENDP
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT _unzlocal_getByte
_TEXT	SEGMENT
_c$ = -1						; size = 1
_pi$ = 8						; size = 4
_unzlocal_getByte PROC					; COMDAT
; _pzlib_filefunc_def$ = esi
; _filestream$ = edi

; 175  : {

  00000	51		 push	 ecx

; 176  :     unsigned char c;
; 177  :     int err = (int)ZREAD(*pzlib_filefunc_def,filestream,&c,1);

  00001	8b 4e 1c	 mov	 ecx, DWORD PTR [esi+28]
  00004	8b 56 04	 mov	 edx, DWORD PTR [esi+4]
  00007	6a 01		 push	 1
  00009	8d 44 24 07	 lea	 eax, DWORD PTR _c$[esp+8]
  0000d	50		 push	 eax
  0000e	57		 push	 edi
  0000f	51		 push	 ecx
  00010	ff d2		 call	 edx
  00012	83 c4 10	 add	 esp, 16			; 00000010H

; 178  :     if (err==1)

  00015	83 f8 01	 cmp	 eax, 1
  00018	75 0f		 jne	 SHORT $LN4@unzlocal_g

; 179  :     {
; 180  :         *pi = (int)c;

  0001a	0f b6 44 24 03	 movzx	 eax, BYTE PTR _c$[esp+4]
  0001f	8b 4c 24 08	 mov	 ecx, DWORD PTR _pi$[esp]
  00023	89 01		 mov	 DWORD PTR [ecx], eax

; 181  :         return UNZ_OK;

  00025	33 c0		 xor	 eax, eax

; 186  :             return UNZ_ERRNO;
; 187  :         else
; 188  :             return UNZ_EOF;
; 189  :     }
; 190  : }

  00027	59		 pop	 ecx
  00028	c3		 ret	 0
$LN4@unzlocal_g:

; 182  :     }
; 183  :     else
; 184  :     {
; 185  :         if (ZERROR(*pzlib_filefunc_def,filestream))

  00029	8b 56 1c	 mov	 edx, DWORD PTR [esi+28]
  0002c	8b 46 18	 mov	 eax, DWORD PTR [esi+24]
  0002f	57		 push	 edi
  00030	52		 push	 edx
  00031	ff d0		 call	 eax
  00033	83 c4 08	 add	 esp, 8
  00036	f7 d8		 neg	 eax
  00038	1b c0		 sbb	 eax, eax

; 186  :             return UNZ_ERRNO;
; 187  :         else
; 188  :             return UNZ_EOF;
; 189  :     }
; 190  : }

  0003a	59		 pop	 ecx
  0003b	c3		 ret	 0
_unzlocal_getByte ENDP
; Function compile flags: /Ogtpy
; File d:\src\vs2005\cpp\ceremoteclient\zlib123\contrib\minizip\crypt.h
_TEXT	ENDS
;	COMDAT _update_keys
_TEXT	SEGMENT
_update_keys PROC					; COMDAT
; _pkeys$ = esi
; _pcrc_32_tab$ = edi
; _c$ = eax

; 50   :     (*(pkeys+0)) = CRC32((*(pkeys+0)), c);

  00000	8b 0e		 mov	 ecx, DWORD PTR [esi]
  00002	8b d1		 mov	 edx, ecx
  00004	33 d0		 xor	 edx, eax
  00006	c1 e9 08	 shr	 ecx, 8
  00009	81 e2 ff 00 00
	00		 and	 edx, 255		; 000000ffH
  0000f	8b 14 97	 mov	 edx, DWORD PTR [edi+edx*4]
  00012	33 d1		 xor	 edx, ecx

; 51   :     (*(pkeys+1)) += (*(pkeys+0)) & 0xff;

  00014	0f b6 ca	 movzx	 ecx, dl

; 52   :     (*(pkeys+1)) = (*(pkeys+1)) * 134775813L + 1;

  00017	03 4e 04	 add	 ecx, DWORD PTR [esi+4]
  0001a	89 16		 mov	 DWORD PTR [esi], edx

; 53   :     {
; 54   :       register int keyshift = (int)((*(pkeys+1)) >> 24);
; 55   :       (*(pkeys+2)) = CRC32((*(pkeys+2)), keyshift);

  0001c	8b 56 08	 mov	 edx, DWORD PTR [esi+8]
  0001f	69 c9 05 84 08
	08		 imul	 ecx, 134775813		; 08088405H
  00025	83 c1 01	 add	 ecx, 1
  00028	89 4e 04	 mov	 DWORD PTR [esi+4], ecx
  0002b	c1 e9 18	 shr	 ecx, 24			; 00000018H
  0002e	33 ca		 xor	 ecx, edx
  00030	81 e1 ff 00 00
	00		 and	 ecx, 255		; 000000ffH
  00036	c1 ea 08	 shr	 edx, 8
  00039	33 14 8f	 xor	 edx, DWORD PTR [edi+ecx*4]
  0003c	89 56 08	 mov	 DWORD PTR [esi+8], edx

; 56   :     }
; 57   :     return c;
; 58   : }

  0003f	c3		 ret	 0
_update_keys ENDP
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT _decrypt_byte
_TEXT	SEGMENT
_decrypt_byte PROC					; COMDAT
; _pkeys$ = eax

; 37   :     unsigned temp;  /* POTENTIAL BUG:  temp*(temp^1) may overflow in an
; 38   :                      * unpredictable manner on 16-bit systems; not a problem
; 39   :                      * with any known compiler so far, though */
; 40   : 
; 41   :     temp = ((unsigned)(*(pkeys+2)) & 0xffff) | 2;

  00000	8b 40 08	 mov	 eax, DWORD PTR [eax+8]
  00003	25 fd ff 00 00	 and	 eax, 65533		; 0000fffdH
  00008	83 c8 02	 or	 eax, 2

; 42   :     return (int)(((temp * (temp ^ 1)) >> 8) & 0xff);

  0000b	8b c8		 mov	 ecx, eax
  0000d	83 f1 01	 xor	 ecx, 1
  00010	0f af c8	 imul	 ecx, eax
  00013	0f b6 c5	 movzx	 eax, ch

; 43   : }

  00016	c3		 ret	 0
_decrypt_byte ENDP
PUBLIC	_unzCloseCurrentFile@4
; Function compile flags: /Ogtpy
; File d:\src\vs2005\cpp\ceremoteclient\zlib123\contrib\minizip\unzip.c
;	COMDAT _unzCloseCurrentFile@4
_TEXT	SEGMENT
_err$ = -4						; size = 4
_file$ = 8						; size = 4
_unzCloseCurrentFile@4 PROC				; COMDAT

; 1491 : {

  00000	51		 push	 ecx
  00001	53		 push	 ebx

; 1492 :     int err=UNZ_OK;
; 1493 : 
; 1494 :     unz_s* s;
; 1495 :     file_in_zip_read_info_s* pfile_in_zip_read_info;
; 1496 :     if (file==NULL)

  00002	8b 5c 24 0c	 mov	 ebx, DWORD PTR _file$[esp+4]
  00006	85 db		 test	 ebx, ebx
  00008	c7 44 24 04 00
	00 00 00	 mov	 DWORD PTR _err$[esp+8], 0
  00010	75 08		 jne	 SHORT $LN7@unzCloseCu

; 1497 :         return UNZ_PARAMERROR;

  00012	8d 43 9a	 lea	 eax, DWORD PTR [ebx-102]
  00015	5b		 pop	 ebx

; 1524 : }

  00016	59		 pop	 ecx
  00017	c2 04 00	 ret	 4
$LN7@unzCloseCu:
  0001a	56		 push	 esi

; 1498 :     s=(unz_s*)file;
; 1499 :     pfile_in_zip_read_info=s->pfile_in_zip_read;

  0001b	8b b3 9c 00 00
	00		 mov	 esi, DWORD PTR [ebx+156]

; 1500 : 
; 1501 :     if (pfile_in_zip_read_info==NULL)

  00021	85 f6		 test	 esi, esi
  00023	75 09		 jne	 SHORT $LN6@unzCloseCu

; 1502 :         return UNZ_PARAMERROR;

  00025	8d 46 9a	 lea	 eax, DWORD PTR [esi-102]
  00028	5e		 pop	 esi
  00029	5b		 pop	 ebx

; 1524 : }

  0002a	59		 pop	 ecx
  0002b	c2 04 00	 ret	 4
$LN6@unzCloseCu:

; 1503 : 
; 1504 : 
; 1505 :     if ((pfile_in_zip_read_info->rest_read_uncompressed == 0) &&
; 1506 :         (!pfile_in_zip_read_info->raw))

  0002e	83 7e 5c 00	 cmp	 DWORD PTR [esi+92], 0
  00032	75 19		 jne	 SHORT $LN4@unzCloseCu
  00034	83 be 8c 00 00
	00 00		 cmp	 DWORD PTR [esi+140], 0
  0003b	75 10		 jne	 SHORT $LN4@unzCloseCu

; 1507 :     {
; 1508 :         if (pfile_in_zip_read_info->crc32 != pfile_in_zip_read_info->crc32_wait)

  0003d	8b 46 50	 mov	 eax, DWORD PTR [esi+80]
  00040	3b 46 54	 cmp	 eax, DWORD PTR [esi+84]
  00043	74 08		 je	 SHORT $LN4@unzCloseCu

; 1509 :             err=UNZ_CRCERROR;

  00045	c7 44 24 08 97
	ff ff ff	 mov	 DWORD PTR _err$[esp+12], -105 ; ffffff97H
$LN4@unzCloseCu:

; 1510 :     }
; 1511 : 
; 1512 : 
; 1513 :     TRYFREE(pfile_in_zip_read_info->read_buffer);

  0004d	8b 06		 mov	 eax, DWORD PTR [esi]
  0004f	85 c0		 test	 eax, eax
  00051	57		 push	 edi
  00052	8b 3d 00 00 00
	00		 mov	 edi, DWORD PTR __imp__free
  00058	74 06		 je	 SHORT $LN3@unzCloseCu
  0005a	50		 push	 eax
  0005b	ff d7		 call	 edi
  0005d	83 c4 04	 add	 esp, 4
$LN3@unzCloseCu:

; 1514 :     pfile_in_zip_read_info->read_buffer = NULL;
; 1515 :     if (pfile_in_zip_read_info->stream_initialised)

  00060	83 7e 40 00	 cmp	 DWORD PTR [esi+64], 0
  00064	c7 06 00 00 00
	00		 mov	 DWORD PTR [esi], 0
  0006a	74 09		 je	 SHORT $LN2@unzCloseCu

; 1516 :         inflateEnd(&pfile_in_zip_read_info->stream);

  0006c	8d 4e 04	 lea	 ecx, DWORD PTR [esi+4]
  0006f	51		 push	 ecx
  00070	e8 00 00 00 00	 call	 _inflateEnd@4
$LN2@unzCloseCu:

; 1517 : 
; 1518 :     pfile_in_zip_read_info->stream_initialised = 0;
; 1519 :     TRYFREE(pfile_in_zip_read_info);

  00075	56		 push	 esi
  00076	c7 46 40 00 00
	00 00		 mov	 DWORD PTR [esi+64], 0
  0007d	ff d7		 call	 edi

; 1520 : 
; 1521 :     s->pfile_in_zip_read=NULL;
; 1522 : 
; 1523 :     return err;

  0007f	8b 44 24 10	 mov	 eax, DWORD PTR _err$[esp+20]
  00083	83 c4 04	 add	 esp, 4
  00086	5f		 pop	 edi
  00087	5e		 pop	 esi
  00088	c7 83 9c 00 00
	00 00 00 00 00	 mov	 DWORD PTR [ebx+156], 0
  00092	5b		 pop	 ebx

; 1524 : }

  00093	59		 pop	 ecx
  00094	c2 04 00	 ret	 4
_unzCloseCurrentFile@4 ENDP
_TEXT	ENDS
PUBLIC	_unzClose@4
; Function compile flags: /Ogtpy
;	COMDAT _unzClose@4
_TEXT	SEGMENT
_file$ = 8						; size = 4
_unzClose@4 PROC					; COMDAT

; 513  : {

  00000	56		 push	 esi

; 514  :     unz_s* s;
; 515  :     if (file==NULL)

  00001	8b 74 24 08	 mov	 esi, DWORD PTR _file$[esp]
  00005	85 f6		 test	 esi, esi
  00007	75 07		 jne	 SHORT $LN3@unzClose

; 516  :         return UNZ_PARAMERROR;

  00009	8d 46 9a	 lea	 eax, DWORD PTR [esi-102]
  0000c	5e		 pop	 esi

; 525  : }

  0000d	c2 04 00	 ret	 4
$LN3@unzClose:

; 517  :     s=(unz_s*)file;
; 518  : 
; 519  :     if (s->pfile_in_zip_read!=NULL)

  00010	83 be 9c 00 00
	00 00		 cmp	 DWORD PTR [esi+156], 0
  00017	74 06		 je	 SHORT $LN2@unzClose

; 520  :         unzCloseCurrentFile(file);

  00019	56		 push	 esi
  0001a	e8 00 00 00 00	 call	 _unzCloseCurrentFile@4
$LN2@unzClose:

; 521  : 
; 522  :     ZCLOSE(s->z_filefunc, s->filestream);

  0001f	8b 46 20	 mov	 eax, DWORD PTR [esi+32]
  00022	8b 4e 1c	 mov	 ecx, DWORD PTR [esi+28]
  00025	8b 56 14	 mov	 edx, DWORD PTR [esi+20]
  00028	50		 push	 eax
  00029	51		 push	 ecx
  0002a	ff d2		 call	 edx

; 523  :     TRYFREE(s);

  0002c	56		 push	 esi
  0002d	ff 15 00 00 00
	00		 call	 DWORD PTR __imp__free
  00033	83 c4 0c	 add	 esp, 12			; 0000000cH

; 524  :     return UNZ_OK;

  00036	33 c0		 xor	 eax, eax
  00038	5e		 pop	 esi

; 525  : }

  00039	c2 04 00	 ret	 4
_unzClose@4 ENDP
_TEXT	ENDS
PUBLIC	_unzStringFileNameCompare@12
; Function compile flags: /Ogtpy
;	COMDAT _unzStringFileNameCompare@12
_TEXT	SEGMENT
_fileName1$ = 8						; size = 4
_fileName2$ = 12					; size = 4
_iCaseSensitivity$ = 16					; size = 4
_unzStringFileNameCompare@12 PROC			; COMDAT

; 310  :     if (iCaseSensitivity==0)

  00000	8b 44 24 0c	 mov	 eax, DWORD PTR _iCaseSensitivity$[esp-4]
  00004	85 c0		 test	 eax, eax

; 311  :         iCaseSensitivity=CASESENSITIVITYDEFAULTVALUE;
; 312  : 
; 313  :     if (iCaseSensitivity==1)

  00006	74 36		 je	 SHORT $LN1@unzStringF
  00008	83 f8 01	 cmp	 eax, 1
  0000b	75 31		 jne	 SHORT $LN1@unzStringF

; 314  :         return strcmp(fileName1,fileName2);

  0000d	8b 54 24 08	 mov	 edx, DWORD PTR _fileName2$[esp-4]
  00011	8b 4c 24 04	 mov	 ecx, DWORD PTR _fileName1$[esp-4]
$LL5@unzStringF:
  00015	8a 01		 mov	 al, BYTE PTR [ecx]
  00017	3a 02		 cmp	 al, BYTE PTR [edx]
  00019	75 1b		 jne	 SHORT $LN6@unzStringF
  0001b	84 c0		 test	 al, al
  0001d	74 12		 je	 SHORT $LN7@unzStringF
  0001f	8a 41 01	 mov	 al, BYTE PTR [ecx+1]
  00022	3a 42 01	 cmp	 al, BYTE PTR [edx+1]
  00025	75 0f		 jne	 SHORT $LN6@unzStringF
  00027	83 c1 02	 add	 ecx, 2
  0002a	83 c2 02	 add	 edx, 2
  0002d	84 c0		 test	 al, al
  0002f	75 e4		 jne	 SHORT $LL5@unzStringF
$LN7@unzStringF:
  00031	33 c0		 xor	 eax, eax

; 317  : }

  00033	c2 0c 00	 ret	 12			; 0000000cH
$LN6@unzStringF:

; 314  :         return strcmp(fileName1,fileName2);

  00036	1b c0		 sbb	 eax, eax
  00038	83 d8 ff	 sbb	 eax, -1

; 317  : }

  0003b	c2 0c 00	 ret	 12			; 0000000cH
$LN1@unzStringF:

; 315  : 
; 316  :     return STRCMPCASENOSENTIVEFUNCTION(fileName1,fileName2);

  0003e	8b 44 24 08	 mov	 eax, DWORD PTR _fileName2$[esp-4]
  00042	8b 4c 24 04	 mov	 ecx, DWORD PTR _fileName1$[esp-4]
  00046	e8 00 00 00 00	 call	 _strcmpcasenosensitive_internal

; 317  : }

  0004b	c2 0c 00	 ret	 12			; 0000000cH
_unzStringFileNameCompare@12 ENDP
; Function compile flags: /Ogtpy
_TEXT	ENDS
;	COMDAT _unzlocal_getLong
_TEXT	SEGMENT
_i$ = -4						; size = 4
_pX$ = 8						; size = 4
_unzlocal_getLong PROC					; COMDAT
; _pzlib_filefunc_def$ = ecx
; _filestream$ = eax

; 233  : {

  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

⌨️ 快捷键说明

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