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

📄 unzip.cod

📁 microsoft visual c++ 2005、windows mobile 5 远程控制PC.通过阅读项目源码能让你熟悉Active Sync RAPI
💻 COD
📖 第 1 页 / 共 5 页
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 14.00.50727.762 

	TITLE	d:\src\VS2005\cpp\CeRemoteClient\zlib123\contrib\minizip\unzip.c
	.686P
	.XMM
	include listing.inc
	.model	flat

INCLUDELIB OLDNAMES

PUBLIC	_unz_copyright
	ORG $+1
_unz_copyright DB ' unzip 1.01 Copyright 1998-2004 Gilles Vollant - http:'
	DB	'//www.winimage.com/zLibDll', 00H
PUBLIC	_unzGetGlobalComment@12
; Function compile flags: /Ogtpy
; File d:\src\vs2005\cpp\ceremoteclient\zlib123\contrib\minizip\unzip.c
;	COMDAT _unzGetGlobalComment@12
_TEXT	SEGMENT
_file$ = 8						; size = 4
_szComment$ = 12					; size = 4
_uSizeBuf$ = 16						; size = 4
_unzGetGlobalComment@12 PROC				; COMDAT

; 1536 : {

  00000	56		 push	 esi

; 1537 :     int err=UNZ_OK;
; 1538 :     unz_s* s;
; 1539 :     uLong uReadThis ;
; 1540 :     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 $LN6@unzGetGlob

; 1541 :         return UNZ_PARAMERROR;

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

; 1561 : }

  0000d	c2 0c 00	 ret	 12			; 0000000cH
$LN6@unzGetGlob:

; 1542 :     s=(unz_s*)file;
; 1543 : 
; 1544 :     uReadThis = uSizeBuf;
; 1545 :     if (uReadThis>s->gi.size_comment)

  00010	8b 46 28	 mov	 eax, DWORD PTR [esi+40]
  00013	55		 push	 ebp
  00014	8b 6c 24 14	 mov	 ebp, DWORD PTR _uSizeBuf$[esp+4]
  00018	3b e8		 cmp	 ebp, eax
  0001a	57		 push	 edi
  0001b	8b fd		 mov	 edi, ebp
  0001d	76 02		 jbe	 SHORT $LN5@unzGetGlob

; 1546 :         uReadThis = s->gi.size_comment;

  0001f	8b f8		 mov	 edi, eax
$LN5@unzGetGlob:

; 1547 : 
; 1548 :     if (ZSEEK(s->z_filefunc,s->filestream,s->central_pos+22,ZLIB_FILEFUNC_SEEK_SET)!=0)

  00021	8b 46 3c	 mov	 eax, DWORD PTR [esi+60]
  00024	8b 4e 20	 mov	 ecx, DWORD PTR [esi+32]
  00027	8b 56 1c	 mov	 edx, DWORD PTR [esi+28]
  0002a	6a 00		 push	 0
  0002c	83 c0 16	 add	 eax, 22			; 00000016H
  0002f	50		 push	 eax
  00030	8b 46 10	 mov	 eax, DWORD PTR [esi+16]
  00033	51		 push	 ecx
  00034	52		 push	 edx
  00035	ff d0		 call	 eax
  00037	83 c4 10	 add	 esp, 16			; 00000010H
  0003a	85 c0		 test	 eax, eax
  0003c	74 09		 je	 SHORT $LN4@unzGetGlob
  0003e	5f		 pop	 edi
  0003f	5d		 pop	 ebp

; 1549 :         return UNZ_ERRNO;

  00040	83 c8 ff	 or	 eax, -1
  00043	5e		 pop	 esi

; 1561 : }

  00044	c2 0c 00	 ret	 12			; 0000000cH
$LN4@unzGetGlob:

; 1550 : 
; 1551 :     if (uReadThis>0)

  00047	85 ff		 test	 edi, edi
  00049	53		 push	 ebx
  0004a	8b 5c 24 18	 mov	 ebx, DWORD PTR _szComment$[esp+12]
  0004e	76 23		 jbe	 SHORT $LN2@unzGetGlob

; 1552 :     {
; 1553 :       *szComment='\0';

  00050	c6 03 00	 mov	 BYTE PTR [ebx], 0

; 1554 :       if (ZREAD(s->z_filefunc,s->filestream,szComment,uReadThis)!=uReadThis)

  00053	8b 4e 20	 mov	 ecx, DWORD PTR [esi+32]
  00056	8b 56 1c	 mov	 edx, DWORD PTR [esi+28]
  00059	8b 46 04	 mov	 eax, DWORD PTR [esi+4]
  0005c	57		 push	 edi
  0005d	53		 push	 ebx
  0005e	51		 push	 ecx
  0005f	52		 push	 edx
  00060	ff d0		 call	 eax
  00062	83 c4 10	 add	 esp, 16			; 00000010H
  00065	3b c7		 cmp	 eax, edi
  00067	74 0a		 je	 SHORT $LN2@unzGetGlob
  00069	5b		 pop	 ebx
  0006a	5f		 pop	 edi
  0006b	5d		 pop	 ebp

; 1555 :         return UNZ_ERRNO;

  0006c	83 c8 ff	 or	 eax, -1
  0006f	5e		 pop	 esi

; 1561 : }

  00070	c2 0c 00	 ret	 12			; 0000000cH
$LN2@unzGetGlob:

; 1556 :     }
; 1557 : 
; 1558 :     if ((szComment != NULL) && (uSizeBuf > s->gi.size_comment))

  00073	85 db		 test	 ebx, ebx
  00075	74 0b		 je	 SHORT $LN1@unzGetGlob
  00077	8b 76 28	 mov	 esi, DWORD PTR [esi+40]
  0007a	3b ee		 cmp	 ebp, esi
  0007c	76 04		 jbe	 SHORT $LN1@unzGetGlob

; 1559 :         *(szComment+s->gi.size_comment)='\0';

  0007e	c6 04 1e 00	 mov	 BYTE PTR [esi+ebx], 0
$LN1@unzGetGlob:
  00082	5b		 pop	 ebx

; 1560 :     return (int)uReadThis;

  00083	8b c7		 mov	 eax, edi
  00085	5f		 pop	 edi
  00086	5d		 pop	 ebp
  00087	5e		 pop	 esi

; 1561 : }

  00088	c2 0c 00	 ret	 12			; 0000000cH
_unzGetGlobalComment@12 ENDP
_TEXT	ENDS
PUBLIC	_unzGetLocalExtrafield@12
; Function compile flags: /Ogtpy
;	COMDAT _unzGetLocalExtrafield@12
_TEXT	SEGMENT
_file$ = 8						; size = 4
_buf$ = 12						; size = 4
_len$ = 16						; size = 4
_unzGetLocalExtrafield@12 PROC				; COMDAT

; 1443 :     unz_s* s;
; 1444 :     file_in_zip_read_info_s* pfile_in_zip_read_info;
; 1445 :     uInt read_now;
; 1446 :     uLong size_to_read;
; 1447 : 
; 1448 :     if (file==NULL)

  00000	8b 44 24 04	 mov	 eax, DWORD PTR _file$[esp-4]
  00004	85 c0		 test	 eax, eax
  00006	75 08		 jne	 SHORT $LN8@unzGetLoca

; 1449 :         return UNZ_PARAMERROR;

  00008	b8 9a ff ff ff	 mov	 eax, -102		; ffffff9aH

; 1483 : }

  0000d	c2 0c 00	 ret	 12			; 0000000cH
$LN8@unzGetLoca:
  00010	56		 push	 esi

; 1450 :     s=(unz_s*)file;
; 1451 :     pfile_in_zip_read_info=s->pfile_in_zip_read;

  00011	8b b0 9c 00 00
	00		 mov	 esi, DWORD PTR [eax+156]

; 1452 : 
; 1453 :     if (pfile_in_zip_read_info==NULL)

  00017	85 f6		 test	 esi, esi
  00019	75 07		 jne	 SHORT $LN7@unzGetLoca

; 1454 :         return UNZ_PARAMERROR;

  0001b	8d 46 9a	 lea	 eax, DWORD PTR [esi-102]
  0001e	5e		 pop	 esi

; 1483 : }

  0001f	c2 0c 00	 ret	 12			; 0000000cH
$LN7@unzGetLoca:

; 1455 : 
; 1456 :     size_to_read = (pfile_in_zip_read_info->size_local_extrafield -
; 1457 :                 pfile_in_zip_read_info->pos_local_extrafield);

  00022	8b 4e 4c	 mov	 ecx, DWORD PTR [esi+76]
  00025	8b 46 48	 mov	 eax, DWORD PTR [esi+72]
  00028	53		 push	 ebx

; 1458 : 
; 1459 :     if (buf==NULL)

  00029	8b 5c 24 10	 mov	 ebx, DWORD PTR _buf$[esp+4]
  0002d	2b c1		 sub	 eax, ecx
  0002f	85 db		 test	 ebx, ebx

; 1460 :         return (int)size_to_read;

  00031	74 5b		 je	 SHORT $LN12@unzGetLoca
  00033	57		 push	 edi

; 1461 : 
; 1462 :     if (len>size_to_read)

  00034	8b 7c 24 18	 mov	 edi, DWORD PTR _len$[esp+8]
  00038	3b f8		 cmp	 edi, eax
  0003a	76 02		 jbe	 SHORT $LN5@unzGetLoca

; 1463 :         read_now = (uInt)size_to_read;

  0003c	8b f8		 mov	 edi, eax
$LN5@unzGetLoca:

; 1464 :     else
; 1465 :         read_now = (uInt)len ;
; 1466 : 
; 1467 :     if (read_now==0)

  0003e	85 ff		 test	 edi, edi
  00040	75 08		 jne	 SHORT $LN3@unzGetLoca
  00042	5f		 pop	 edi
  00043	5b		 pop	 ebx

; 1468 :         return 0;

  00044	33 c0		 xor	 eax, eax
  00046	5e		 pop	 esi

; 1483 : }

  00047	c2 0c 00	 ret	 12			; 0000000cH
$LN3@unzGetLoca:

; 1469 : 
; 1470 :     if (ZSEEK(pfile_in_zip_read_info->z_filefunc,
; 1471 :               pfile_in_zip_read_info->filestream,
; 1472 :               pfile_in_zip_read_info->offset_local_extrafield +
; 1473 :               pfile_in_zip_read_info->pos_local_extrafield,
; 1474 :               ZLIB_FILEFUNC_SEEK_SET)!=0)

  0004a	8b 46 44	 mov	 eax, DWORD PTR [esi+68]
  0004d	8b 56 7c	 mov	 edx, DWORD PTR [esi+124]
  00050	03 c1		 add	 eax, ecx
  00052	8b 8e 80 00 00
	00		 mov	 ecx, DWORD PTR [esi+128]
  00058	6a 00		 push	 0
  0005a	50		 push	 eax
  0005b	8b 46 70	 mov	 eax, DWORD PTR [esi+112]
  0005e	51		 push	 ecx
  0005f	52		 push	 edx
  00060	ff d0		 call	 eax
  00062	83 c4 10	 add	 esp, 16			; 00000010H
  00065	85 c0		 test	 eax, eax

; 1475 :         return UNZ_ERRNO;

  00067	75 19		 jne	 SHORT $LN14@unzGetLoca

; 1476 : 
; 1477 :     if (ZREAD(pfile_in_zip_read_info->z_filefunc,
; 1478 :               pfile_in_zip_read_info->filestream,
; 1479 :               buf,read_now)!=read_now)

  00069	8b 8e 80 00 00
	00		 mov	 ecx, DWORD PTR [esi+128]
  0006f	8b 56 7c	 mov	 edx, DWORD PTR [esi+124]
  00072	8b 46 64	 mov	 eax, DWORD PTR [esi+100]
  00075	57		 push	 edi
  00076	53		 push	 ebx
  00077	51		 push	 ecx
  00078	52		 push	 edx
  00079	ff d0		 call	 eax
  0007b	83 c4 10	 add	 esp, 16			; 00000010H
  0007e	3b c7		 cmp	 eax, edi
  00080	74 09		 je	 SHORT $LN1@unzGetLoca
$LN14@unzGetLoca:
  00082	5f		 pop	 edi
  00083	5b		 pop	 ebx

; 1480 :         return UNZ_ERRNO;

  00084	83 c8 ff	 or	 eax, -1
  00087	5e		 pop	 esi

; 1483 : }

  00088	c2 0c 00	 ret	 12			; 0000000cH
$LN1@unzGetLoca:

; 1481 : 
; 1482 :     return (int)read_now;

  0008b	8b c7		 mov	 eax, edi
  0008d	5f		 pop	 edi
$LN12@unzGetLoca:
  0008e	5b		 pop	 ebx
  0008f	5e		 pop	 esi

; 1483 : }

  00090	c2 0c 00	 ret	 12			; 0000000cH
_unzGetLocalExtrafield@12 ENDP
_TEXT	ENDS
PUBLIC	_unzeof@4
; Function compile flags: /Ogtpy
;	COMDAT _unzeof@4
_TEXT	SEGMENT
_file$ = 8						; size = 4
_unzeof@4 PROC						; COMDAT

; 1408 :     unz_s* s;
; 1409 :     file_in_zip_read_info_s* pfile_in_zip_read_info;
; 1410 :     if (file==NULL)

  00000	8b 44 24 04	 mov	 eax, DWORD PTR _file$[esp-4]
  00004	85 c0		 test	 eax, eax
  00006	75 08		 jne	 SHORT $LN4@unzeof
$LN7@unzeof:

; 1411 :         return UNZ_PARAMERROR;

  00008	b8 9a ff ff ff	 mov	 eax, -102		; ffffff9aH

; 1419 :         return 1;
; 1420 :     else
; 1421 :         return 0;
; 1422 : }

  0000d	c2 04 00	 ret	 4
$LN4@unzeof:

; 1412 :     s=(unz_s*)file;
; 1413 :     pfile_in_zip_read_info=s->pfile_in_zip_read;

  00010	8b 80 9c 00 00
	00		 mov	 eax, DWORD PTR [eax+156]

; 1414 : 
; 1415 :     if (pfile_in_zip_read_info==NULL)

  00016	85 c0		 test	 eax, eax

; 1416 :         return UNZ_PARAMERROR;

  00018	74 ee		 je	 SHORT $LN7@unzeof

; 1417 : 
; 1418 :     if (pfile_in_zip_read_info->rest_read_uncompressed == 0)

  0001a	33 c9		 xor	 ecx, ecx
  0001c	39 48 5c	 cmp	 DWORD PTR [eax+92], ecx
  0001f	0f 94 c1	 sete	 cl
  00022	8b c1		 mov	 eax, ecx

; 1419 :         return 1;
; 1420 :     else
; 1421 :         return 0;
; 1422 : }

  00024	c2 04 00	 ret	 4
_unzeof@4 ENDP
_TEXT	ENDS
PUBLIC	_unztell@4
; Function compile flags: /Ogtpy
;	COMDAT _unztell@4
_TEXT	SEGMENT
_file$ = 8						; size = 4
_unztell@4 PROC						; COMDAT

; 1388 :     unz_s* s;
; 1389 :     file_in_zip_read_info_s* pfile_in_zip_read_info;
; 1390 :     if (file==NULL)

  00000	8b 44 24 04	 mov	 eax, DWORD PTR _file$[esp-4]
  00004	85 c0		 test	 eax, eax
  00006	75 08		 jne	 SHORT $LN2@unztell
$LN5@unztell:

; 1391 :         return UNZ_PARAMERROR;

  00008	b8 9a ff ff ff	 mov	 eax, -102		; ffffff9aH

; 1399 : }

  0000d	c2 04 00	 ret	 4
$LN2@unztell:

; 1392 :     s=(unz_s*)file;
; 1393 :     pfile_in_zip_read_info=s->pfile_in_zip_read;

  00010	8b 80 9c 00 00
	00		 mov	 eax, DWORD PTR [eax+156]

; 1394 : 
; 1395 :     if (pfile_in_zip_read_info==NULL)

  00016	85 c0		 test	 eax, eax

; 1396 :         return UNZ_PARAMERROR;

  00018	74 ee		 je	 SHORT $LN5@unztell

; 1397 : 
; 1398 :     return (z_off_t)pfile_in_zip_read_info->stream.total_out;

  0001a	8b 40 18	 mov	 eax, DWORD PTR [eax+24]

; 1399 : }

  0001d	c2 04 00	 ret	 4
_unztell@4 ENDP
_TEXT	ENDS
PUBLIC	_unzGetFilePos@8
; Function compile flags: /Ogtpy
;	COMDAT _unzGetFilePos@8
_TEXT	SEGMENT
_file$ = 8						; size = 4
_file_pos$ = 12						; size = 4
_unzGetFilePos@8 PROC					; COMDAT

; 907  :     unz_s* s;
; 908  : 
; 909  :     if (file==NULL || file_pos==NULL)

  00000	8b 44 24 04	 mov	 eax, DWORD PTR _file$[esp-4]
  00004	85 c0		 test	 eax, eax
  00006	74 26		 je	 SHORT $LN2@unzGetFile
  00008	8b 4c 24 08	 mov	 ecx, DWORD PTR _file_pos$[esp-4]
  0000c	85 c9		 test	 ecx, ecx
  0000e	74 1e		 je	 SHORT $LN2@unzGetFile

; 911  :     s=(unz_s*)file;
; 912  :     if (!s->current_file_ok)

  00010	83 78 38 00	 cmp	 DWORD PTR [eax+56], 0
  00014	75 08		 jne	 SHORT $LN1@unzGetFile

; 913  :         return UNZ_END_OF_LIST_OF_FILE;

  00016	b8 9c ff ff ff	 mov	 eax, -100		; ffffff9cH

; 919  : }

  0001b	c2 08 00	 ret	 8
$LN1@unzGetFile:

; 914  : 
; 915  :     file_pos->pos_in_zip_directory  = s->pos_in_central_dir;

  0001e	8b 50 34	 mov	 edx, DWORD PTR [eax+52]
  00021	89 11		 mov	 DWORD PTR [ecx], edx

⌨️ 快捷键说明

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