📄 unzip.cod
字号:
; 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 + -