📄 zip.cod
字号:
00032 83 c4 04 add esp, 4
$LN5@ziplocal_g@2:
; 412 : x += ((uLong)i)<<8;
00035 8b d1 mov edx, ecx
00037 c1 e2 08 shl edx, 8
0003a 03 da add ebx, edx
; 413 :
; 414 : if (err==ZIP_OK)
0003c 85 c0 test eax, eax
0003e 75 11 jne SHORT $LN4@ziplocal_g@2
; 415 : err = ziplocal_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 _ziplocal_getByte
0004a 8b 4c 24 14 mov ecx, DWORD PTR _i$[esp+24]
0004e 83 c4 04 add esp, 4
$LN4@ziplocal_g@2:
; 416 : x += ((uLong)i)<<16;
00051 c1 e1 10 shl ecx, 16 ; 00000010H
00054 03 d9 add ebx, ecx
; 417 :
; 418 : if (err==ZIP_OK)
00056 85 c0 test eax, eax
00058 75 23 jne SHORT $LN8@ziplocal_g@2
; 419 : err = ziplocal_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 _ziplocal_getByte
00064 83 c4 04 add esp, 4
; 420 : x += ((uLong)i)<<24;
; 421 :
; 422 : if (err==ZIP_OK)
00067 85 c0 test eax, eax
00069 75 12 jne SHORT $LN8@ziplocal_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
; 423 : *pX = x;
00076 89 55 00 mov DWORD PTR [ebp], edx
00079 5d pop ebp
0007a 5b pop ebx
; 426 : return err;
; 427 : }
0007b 59 pop ecx
0007c c3 ret 0
$LN8@ziplocal_g@2:
0007d 5f pop edi
0007e 5e pop esi
; 424 : else
; 425 : *pX = 0;
0007f c7 45 00 00 00
00 00 mov DWORD PTR [ebp], 0
00086 5d pop ebp
00087 5b pop ebx
; 426 : return err;
; 427 : }
00088 59 pop ecx
00089 c3 ret 0
_ziplocal_getLong ENDP
; Function compile flags: /Ogtpy
_TEXT ENDS
; COMDAT _ziplocal_getShort
_TEXT SEGMENT
_i$ = -4 ; size = 4
_pX$ = 8 ; size = 4
_ziplocal_getShort PROC ; COMDAT
; _pzlib_filefunc_def$ = ecx
; _filestream$ = eax
; 374 : {
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
; 375 : uLong x ;
; 376 : int i;
; 377 : int err;
; 378 :
; 379 : err = ziplocal_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 _ziplocal_getByte
; 380 : x = (uLong)i;
00017 8b 5c 24 14 mov ebx, DWORD PTR _i$[esp+24]
0001b 83 c4 04 add esp, 4
; 381 :
; 382 : if (err==ZIP_OK)
0001e 85 c0 test eax, eax
00020 75 23 jne SHORT $LN6@ziplocal_g@3
; 383 : err = ziplocal_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 _ziplocal_getByte
0002c 83 c4 04 add esp, 4
; 384 : x += ((uLong)i)<<8;
; 385 :
; 386 : if (err==ZIP_OK)
0002f 85 c0 test eax, eax
00031 75 12 jne SHORT $LN6@ziplocal_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
; 387 : *pX = x;
0003e 89 55 00 mov DWORD PTR [ebp], edx
00041 5d pop ebp
00042 5b pop ebx
; 390 : return err;
; 391 : }
00043 59 pop ecx
00044 c3 ret 0
$LN6@ziplocal_g@3:
00045 5f pop edi
00046 5e pop esi
; 388 : else
; 389 : *pX = 0;
00047 c7 45 00 00 00
00 00 mov DWORD PTR [ebp], 0
0004e 5d pop ebp
0004f 5b pop ebx
; 390 : return err;
; 391 : }
00050 59 pop ecx
00051 c3 ret 0
_ziplocal_getShort ENDP
; Function compile flags: /Ogtpy
_TEXT ENDS
; COMDAT _add_data_in_datablock
_TEXT SEGMENT
_ll$ = 8 ; size = 4
_buf$ = 12 ; size = 4
_len$ = 16 ; size = 4
_add_data_in_datablock PROC ; COMDAT
; 204 : {
00000 55 push ebp
; 205 : linkedlist_datablock_internal* ldi;
; 206 : const unsigned char* from_copy;
; 207 :
; 208 : if (ll==NULL)
00001 8b 6c 24 08 mov ebp, DWORD PTR _ll$[esp]
00005 85 ed test ebp, ebp
00007 75 07 jne SHORT $LN12@add_data_i
$LN24@add_data_i:
; 209 : return ZIP_INTERNALERROR;
00009 b8 98 ff ff ff mov eax, -104 ; ffffff98H
0000e 5d pop ebp
; 252 : }
0000f c3 ret 0
$LN12@add_data_i:
; 210 :
; 211 : if (ll->last_block == NULL)
00010 83 7d 04 00 cmp DWORD PTR [ebp+4], 0
00014 75 0f jne SHORT $LN10@add_data_i
; 212 : {
; 213 : ll->first_block = ll->last_block = allocate_new_datablock();
00016 e8 00 00 00 00 call _allocate_new_datablock
; 214 : if (ll->first_block == NULL)
0001b 85 c0 test eax, eax
0001d 89 45 04 mov DWORD PTR [ebp+4], eax
00020 89 45 00 mov DWORD PTR [ebp], eax
; 215 : return ZIP_INTERNALERROR;
00023 74 e4 je SHORT $LN24@add_data_i
$LN10@add_data_i:
00025 53 push ebx
; 216 : }
; 217 :
; 218 : ldi = ll->last_block;
; 219 : from_copy = (unsigned char*)buf;
00026 8b 5c 24 10 mov ebx, DWORD PTR _buf$[esp+4]
0002a 56 push esi
0002b 8b 75 04 mov esi, DWORD PTR [ebp+4]
0002e 57 push edi
; 220 :
; 221 : while (len>0)
0002f 8b 7c 24 1c mov edi, DWORD PTR _len$[esp+12]
00033 85 ff test edi, edi
00035 76 55 jbe SHORT $LN8@add_data_i
$LL9@add_data_i:
; 222 : {
; 223 : uInt copy_this;
; 224 : uInt i;
; 225 : unsigned char* to_copy;
; 226 :
; 227 : if (ldi->avail_in_this_block==0)
00037 83 7e 04 00 cmp DWORD PTR [esi+4], 0
0003b 75 10 jne SHORT $LN7@add_data_i
; 228 : {
; 229 : ldi->next_datablock = allocate_new_datablock();
0003d e8 00 00 00 00 call _allocate_new_datablock
; 230 : if (ldi->next_datablock == NULL)
00042 85 c0 test eax, eax
00044 89 06 mov DWORD PTR [esi], eax
00046 74 4b je SHORT $LN17@add_data_i
; 232 : ldi = ldi->next_datablock ;
00048 8b f0 mov esi, eax
; 233 : ll->last_block = ldi;
0004a 89 75 04 mov DWORD PTR [ebp+4], esi
$LN7@add_data_i:
; 234 : }
; 235 :
; 236 : if (ldi->avail_in_this_block < len)
0004d 8b 4e 04 mov ecx, DWORD PTR [esi+4]
00050 3b cf cmp ecx, edi
; 237 : copy_this = (uInt)ldi->avail_in_this_block;
; 238 : else
00052 72 02 jb SHORT $LN4@add_data_i
; 239 : copy_this = (uInt)len;
00054 8b cf mov ecx, edi
$LN4@add_data_i:
; 240 :
; 241 : to_copy = &(ldi->data[ldi->filled_in_this_block]);
; 242 :
; 243 : for (i=0;i<copy_this;i++)
00056 85 c9 test ecx, ecx
00058 8b 46 08 mov eax, DWORD PTR [esi+8]
0005b 8d 44 30 10 lea eax, DWORD PTR [eax+esi+16]
0005f 76 1b jbe SHORT $LN1@add_data_i
00061 8b fb mov edi, ebx
00063 2b f8 sub edi, eax
00065 8b e9 mov ebp, ecx
$LL3@add_data_i:
; 244 : *(to_copy+i)=*(from_copy+i);
00067 8a 14 07 mov dl, BYTE PTR [edi+eax]
0006a 88 10 mov BYTE PTR [eax], dl
0006c 83 c0 01 add eax, 1
0006f 83 ed 01 sub ebp, 1
00072 75 f3 jne SHORT $LL3@add_data_i
00074 8b 6c 24 14 mov ebp, DWORD PTR _ll$[esp+12]
00078 8b 7c 24 1c mov edi, DWORD PTR _len$[esp+12]
$LN1@add_data_i:
; 245 :
; 246 : ldi->filled_in_this_block += copy_this;
0007c 01 4e 08 add DWORD PTR [esi+8], ecx
; 247 : ldi->avail_in_this_block -= copy_this;
0007f 29 4e 04 sub DWORD PTR [esi+4], ecx
; 248 : from_copy += copy_this ;
00082 03 d9 add ebx, ecx
; 249 : len -= copy_this;
00084 2b f9 sub edi, ecx
00086 89 7c 24 1c mov DWORD PTR _len$[esp+12], edi
0008a 75 ab jne SHORT $LL9@add_data_i
$LN8@add_data_i:
0008c 5f pop edi
0008d 5e pop esi
0008e 5b pop ebx
; 250 : }
; 251 : return ZIP_OK;
0008f 33 c0 xor eax, eax
00091 5d pop ebp
; 252 : }
00092 c3 ret 0
$LN17@add_data_i:
00093 5f pop edi
00094 5e pop esi
00095 5b pop ebx
; 231 : return ZIP_INTERNALERROR;
00096 b8 98 ff ff ff mov eax, -104 ; ffffff98H
0009b 5d pop ebp
; 252 : }
0009c c3 ret 0
_add_data_in_datablock 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
$LL2@init_keys:
; 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
$LN1@init_keys:
00035 5f pop edi
00036 5e pop esi
00037 5b pop ebx
; 73 : }
; 74 : }
00038 c3 ret 0
_init_keys ENDP
PUBLIC _zipCloseFileInZipRaw@12
; Function compile flags: /Ogtpy
; File d:\src\vs2005\cpp\ceremoteclient\zlib123\contrib\minizip\zip.c
; COMDAT _zipCloseFileInZipRaw@12
_TEXT SEGMENT
_cur_pos_inzip$80989 = 8 ; size = 4
_file$ = 8 ; size = 4
_uncompressed_size$ = 12 ; size = 4
_crc32$ = 16 ; size = 4
_zipCloseFileInZipRaw@12 PROC ; COMDAT
; 1035 : {
00000 55 push ebp
00001 57 push edi
; 1036 : zip_internal* zi;
; 1037 : uLong compressed_size;
; 1038 : int err=ZIP_OK;
; 1039 :
; 1040 : if (file == NULL)
00002 8b 7c 24 0c mov edi, DWORD PTR _file$[esp+4]
00006 33 ed xor ebp, ebp
00008 3b fd cmp edi, ebp
0000a 75 0a jne SHORT $LN20@zipCloseFi
$LN36@zipCloseFi:
0000c 5f pop edi
; 1041 : return ZIP_PARAMERROR;
0000d b8 9a ff ff ff mov eax, -102 ; ffffff9aH
00012 5d pop ebp
; 1125 : }
00013 c2 0c 00 ret 12 ; 0000000cH
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -