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

📄 ioapi.cod

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

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

INCLUDELIB OLDNAMES

PUBLIC	??_C@_02JDPG@rb?$AA@				; `string'
PUBLIC	??_C@_03HMFOOINA@r?$CLb?$AA@			; `string'
PUBLIC	??_C@_02GMLFBBN@wb?$AA@				; `string'
;	COMDAT ??_C@_02GMLFBBN@wb?$AA@
CONST	SEGMENT
??_C@_02GMLFBBN@wb?$AA@ DB 'wb', 00H			; `string'
CONST	ENDS
;	COMDAT ??_C@_03HMFOOINA@r?$CLb?$AA@
CONST	SEGMENT
??_C@_03HMFOOINA@r?$CLb?$AA@ DB 'r+b', 00H		; `string'
CONST	ENDS
;	COMDAT ??_C@_02JDPG@rb?$AA@
CONST	SEGMENT
??_C@_02JDPG@rb?$AA@ DB 'rb', 00H			; `string'
PUBLIC	_ferror_file_func
; Function compile flags: /Ogtpy
; File d:\src\vs2005\cpp\ceremoteclient\zlib123\contrib\minizip\ioapi.c
;	COMDAT _ferror_file_func
_TEXT	SEGMENT
_opaque$ = 8						; size = 4
_stream$ = 12						; size = 4
_ferror_file_func PROC					; COMDAT

; 161  :     int ret;
; 162  :     ret = ferror((FILE *)stream);

  00000	8b 44 24 08	 mov	 eax, DWORD PTR _stream$[esp-4]
  00004	50		 push	 eax
  00005	e8 00 00 00 00	 call	 _ferror
  0000a	83 c4 04	 add	 esp, 4

; 163  :     return ret;
; 164  : }

  0000d	c3		 ret	 0
_ferror_file_func ENDP
_TEXT	ENDS
PUBLIC	_fclose_file_func
; Function compile flags: /Ogtpy
;	COMDAT _fclose_file_func
_TEXT	SEGMENT
_opaque$ = 8						; size = 4
_stream$ = 12						; size = 4
_fclose_file_func PROC					; COMDAT

; 152  :     int ret;
; 153  :     ret = fclose((FILE *)stream);

  00000	8b 44 24 08	 mov	 eax, DWORD PTR _stream$[esp-4]
  00004	50		 push	 eax
  00005	e8 00 00 00 00	 call	 _fclose
  0000a	83 c4 04	 add	 esp, 4

; 154  :     return ret;
; 155  : }

  0000d	c3		 ret	 0
_fclose_file_func ENDP
_TEXT	ENDS
PUBLIC	_fseek_file_func
; Function compile flags: /Ogtpy
;	COMDAT _fseek_file_func
_TEXT	SEGMENT
_opaque$ = 8						; size = 4
_stream$ = 12						; size = 4
_offset$ = 16						; size = 4
_origin$ = 20						; size = 4
_fseek_file_func PROC					; COMDAT

; 128  :     int fseek_origin=0;
; 129  :     long ret;
; 130  :     switch (origin)

  00000	8b 44 24 10	 mov	 eax, DWORD PTR _origin$[esp-4]
  00004	83 e8 00	 sub	 eax, 0
  00007	74 44		 je	 SHORT $LN2@fseek_file
  00009	83 e8 01	 sub	 eax, 1
  0000c	74 24		 je	 SHORT $LN4@fseek_file
  0000e	83 e8 01	 sub	 eax, 1
  00011	74 04		 je	 SHORT $LN3@fseek_file

; 131  :     {
; 132  :     case ZLIB_FILEFUNC_SEEK_CUR :
; 133  :         fseek_origin = SEEK_CUR;
; 134  :         break;
; 135  :     case ZLIB_FILEFUNC_SEEK_END :
; 136  :         fseek_origin = SEEK_END;
; 137  :         break;
; 138  :     case ZLIB_FILEFUNC_SEEK_SET :
; 139  :         fseek_origin = SEEK_SET;
; 140  :         break;
; 141  :     default: return -1;

  00013	83 c8 ff	 or	 eax, -1

; 146  : }

  00016	c3		 ret	 0
$LN3@fseek_file:

; 142  :     }
; 143  :     ret = 0;
; 144  :     fseek((FILE *)stream, offset, fseek_origin);

  00017	8b 4c 24 08	 mov	 ecx, DWORD PTR _stream$[esp-4]
  0001b	b8 02 00 00 00	 mov	 eax, 2
  00020	50		 push	 eax
  00021	8b 44 24 10	 mov	 eax, DWORD PTR _offset$[esp]
  00025	50		 push	 eax
  00026	51		 push	 ecx
  00027	e8 00 00 00 00	 call	 _fseek
  0002c	83 c4 0c	 add	 esp, 12			; 0000000cH

; 145  :     return ret;

  0002f	33 c0		 xor	 eax, eax

; 146  : }

  00031	c3		 ret	 0
$LN4@fseek_file:

; 142  :     }
; 143  :     ret = 0;
; 144  :     fseek((FILE *)stream, offset, fseek_origin);

  00032	8b 4c 24 08	 mov	 ecx, DWORD PTR _stream$[esp-4]
  00036	b8 01 00 00 00	 mov	 eax, 1
  0003b	50		 push	 eax
  0003c	8b 44 24 10	 mov	 eax, DWORD PTR _offset$[esp]
  00040	50		 push	 eax
  00041	51		 push	 ecx
  00042	e8 00 00 00 00	 call	 _fseek
  00047	83 c4 0c	 add	 esp, 12			; 0000000cH

; 145  :     return ret;

  0004a	33 c0		 xor	 eax, eax

; 146  : }

  0004c	c3		 ret	 0
$LN2@fseek_file:

; 142  :     }
; 143  :     ret = 0;
; 144  :     fseek((FILE *)stream, offset, fseek_origin);

  0004d	8b 4c 24 08	 mov	 ecx, DWORD PTR _stream$[esp-4]
  00051	33 c0		 xor	 eax, eax
  00053	50		 push	 eax
  00054	8b 44 24 10	 mov	 eax, DWORD PTR _offset$[esp]
  00058	50		 push	 eax
  00059	51		 push	 ecx
  0005a	e8 00 00 00 00	 call	 _fseek
  0005f	83 c4 0c	 add	 esp, 12			; 0000000cH

; 145  :     return ret;

  00062	33 c0		 xor	 eax, eax

; 146  : }

  00064	c3		 ret	 0
_fseek_file_func ENDP
_TEXT	ENDS
PUBLIC	_ftell_file_func
; Function compile flags: /Ogtpy
;	COMDAT _ftell_file_func
_TEXT	SEGMENT
_opaque$ = 8						; size = 4
_stream$ = 12						; size = 4
_ftell_file_func PROC					; COMDAT

; 117  :     long ret;
; 118  :     ret = ftell((FILE *)stream);

  00000	8b 44 24 08	 mov	 eax, DWORD PTR _stream$[esp-4]
  00004	50		 push	 eax
  00005	e8 00 00 00 00	 call	 _ftell
  0000a	83 c4 04	 add	 esp, 4

; 119  :     return ret;
; 120  : }

  0000d	c3		 ret	 0
_ftell_file_func ENDP
_TEXT	ENDS
PUBLIC	_fwrite_file_func
; Function compile flags: /Ogtpy
;	COMDAT _fwrite_file_func
_TEXT	SEGMENT
_opaque$ = 8						; size = 4
_stream$ = 12						; size = 4
_buf$ = 16						; size = 4
_size$ = 20						; size = 4
_fwrite_file_func PROC					; COMDAT

; 108  :     uLong ret;
; 109  :     ret = (uLong)fwrite(buf, 1, (size_t)size, (FILE *)stream);

  00000	8b 44 24 08	 mov	 eax, DWORD PTR _stream$[esp-4]
  00004	8b 4c 24 10	 mov	 ecx, DWORD PTR _size$[esp-4]
  00008	8b 54 24 0c	 mov	 edx, DWORD PTR _buf$[esp-4]
  0000c	50		 push	 eax
  0000d	51		 push	 ecx
  0000e	6a 01		 push	 1
  00010	52		 push	 edx
  00011	e8 00 00 00 00	 call	 _fwrite
  00016	83 c4 10	 add	 esp, 16			; 00000010H

; 110  :     return ret;
; 111  : }

  00019	c3		 ret	 0
_fwrite_file_func ENDP
_TEXT	ENDS
PUBLIC	_fread_file_func
; Function compile flags: /Ogtpy
;	COMDAT _fread_file_func
_TEXT	SEGMENT
_opaque$ = 8						; size = 4
_stream$ = 12						; size = 4
_buf$ = 16						; size = 4
_size$ = 20						; size = 4
_fread_file_func PROC					; COMDAT

; 96   :     uLong ret;
; 97   :     ret = (uLong)fread(buf, 1, (size_t)size, (FILE *)stream);

  00000	8b 44 24 08	 mov	 eax, DWORD PTR _stream$[esp-4]
  00004	8b 4c 24 10	 mov	 ecx, DWORD PTR _size$[esp-4]
  00008	8b 54 24 0c	 mov	 edx, DWORD PTR _buf$[esp-4]
  0000c	50		 push	 eax
  0000d	51		 push	 ecx
  0000e	6a 01		 push	 1
  00010	52		 push	 edx
  00011	e8 00 00 00 00	 call	 _fread
  00016	83 c4 10	 add	 esp, 16			; 00000010H

; 98   :     return ret;
; 99   : }

  00019	c3		 ret	 0
_fread_file_func ENDP
_TEXT	ENDS
PUBLIC	_fopen_file_func
; Function compile flags: /Ogtpy
;	COMDAT _fopen_file_func
_TEXT	SEGMENT
_opaque$ = 8						; size = 4
_filename$ = 12						; size = 4
_mode$ = 16						; size = 4
_fopen_file_func PROC					; COMDAT

; 73   :     FILE* file = NULL;
; 74   :     const char* mode_fopen = NULL;
; 75   :     if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ)

  00000	8b 54 24 0c	 mov	 edx, DWORD PTR _mode$[esp-4]
  00004	8b c2		 mov	 eax, edx
  00006	56		 push	 esi
  00007	24 03		 and	 al, 3
  00009	33 f6		 xor	 esi, esi
  0000b	33 c9		 xor	 ecx, ecx
  0000d	3c 01		 cmp	 al, 1
  0000f	75 07		 jne	 SHORT $LN6@fopen_file

; 76   :         mode_fopen = "rb";

  00011	b9 00 00 00 00	 mov	 ecx, OFFSET ??_C@_02JDPG@rb?$AA@

; 77   :     else

  00016	eb 16		 jmp	 SHORT $LN2@fopen_file
$LN6@fopen_file:

; 78   :     if (mode & ZLIB_FILEFUNC_MODE_EXISTING)

  00018	f6 c2 04	 test	 dl, 4
  0001b	74 07		 je	 SHORT $LN4@fopen_file

; 79   :         mode_fopen = "r+b";

  0001d	b9 00 00 00 00	 mov	 ecx, OFFSET ??_C@_03HMFOOINA@r?$CLb?$AA@

; 80   :     else

  00022	eb 0a		 jmp	 SHORT $LN2@fopen_file
$LN4@fopen_file:

; 81   :     if (mode & ZLIB_FILEFUNC_MODE_CREATE)

  00024	f6 c2 08	 test	 dl, 8
  00027	74 05		 je	 SHORT $LN2@fopen_file

; 82   :         mode_fopen = "wb";

  00029	b9 00 00 00 00	 mov	 ecx, OFFSET ??_C@_02GMLFBBN@wb?$AA@
$LN2@fopen_file:

; 83   : 
; 84   :     if ((filename!=NULL) && (mode_fopen != NULL))

  0002e	8b 54 24 0c	 mov	 edx, DWORD PTR _filename$[esp]
  00032	85 d2		 test	 edx, edx
  00034	74 10		 je	 SHORT $LN10@fopen_file
  00036	85 c9		 test	 ecx, ecx
  00038	74 0c		 je	 SHORT $LN10@fopen_file

; 85   :         file = fopen(filename, mode_fopen);

  0003a	51		 push	 ecx
  0003b	52		 push	 edx
  0003c	e8 00 00 00 00	 call	 _fopen
  00041	83 c4 08	 add	 esp, 8
  00044	5e		 pop	 esi

; 87   : }

  00045	c3		 ret	 0
$LN10@fopen_file:

; 86   :     return file;

  00046	8b c6		 mov	 eax, esi
  00048	5e		 pop	 esi

; 87   : }

  00049	c3		 ret	 0
_fopen_file_func ENDP
PUBLIC	_fill_fopen_filefunc
; Function compile flags: /Ogtpy
;	COMDAT _fill_fopen_filefunc
_TEXT	SEGMENT
_fill_fopen_filefunc PROC				; COMDAT
; _pzlib_filefunc_def$ = eax

; 169  :     pzlib_filefunc_def->zopen_file = fopen_file_func;

  00000	c7 00 00 00 00
	00		 mov	 DWORD PTR [eax], OFFSET _fopen_file_func

; 170  :     pzlib_filefunc_def->zread_file = fread_file_func;

  00006	c7 40 04 00 00
	00 00		 mov	 DWORD PTR [eax+4], OFFSET _fread_file_func

; 171  :     pzlib_filefunc_def->zwrite_file = fwrite_file_func;

  0000d	c7 40 08 00 00
	00 00		 mov	 DWORD PTR [eax+8], OFFSET _fwrite_file_func

; 172  :     pzlib_filefunc_def->ztell_file = ftell_file_func;

  00014	c7 40 0c 00 00
	00 00		 mov	 DWORD PTR [eax+12], OFFSET _ftell_file_func

; 173  :     pzlib_filefunc_def->zseek_file = fseek_file_func;

  0001b	c7 40 10 00 00
	00 00		 mov	 DWORD PTR [eax+16], OFFSET _fseek_file_func

; 174  :     pzlib_filefunc_def->zclose_file = fclose_file_func;

  00022	c7 40 14 00 00
	00 00		 mov	 DWORD PTR [eax+20], OFFSET _fclose_file_func

; 175  :     pzlib_filefunc_def->zerror_file = ferror_file_func;

  00029	c7 40 18 00 00
	00 00		 mov	 DWORD PTR [eax+24], OFFSET _ferror_file_func

; 176  :     pzlib_filefunc_def->opaque = NULL;

  00030	c7 40 1c 00 00
	00 00		 mov	 DWORD PTR [eax+28], 0

; 177  : }

  00037	c3		 ret	 0
_fill_fopen_filefunc ENDP
END

⌨️ 快捷键说明

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