1 ; Listing generated by Microsoft (R) Optimizing Compiler Version 16.00.30319.01
\r
3 TITLE C:\Workspaces\Sysdyn\org.simantics.fmu\FMUSolution\zlib-1.2.6\contrib\minizip\zip.c
\r
11 PUBLIC _zip_copyright
\r
12 PUBLIC ??_C@_01JOAMLHOP@?9?$AA@ ; `string'
\r
13 EXTRN __imp__rand:PROC
\r
14 EXTRN __imp__srand:PROC
\r
15 EXTRN __imp___time64:PROC
\r
16 ?calls@?1??crypthead@@9@9 DD 01H DUP (?) ; `crypthead'::`2'::calls
\r
17 ; COMDAT ??_C@_01JOAMLHOP@?9?$AA@
\r
19 ??_C@_01JOAMLHOP@?9?$AA@ DB '-', 00H ; `string'
\r
20 _zip_copyright DB ' zip 1.01 Copyright 1998-2004 Gilles Vollant - http://'
\r
21 DB 'www.winimage.com/zLibDll', 00H
\r
22 ; Function compile flags: /Ogtp
\r
23 ; File c:\workspaces\sysdyn\org.simantics.fmu\fmusolution\zlib-1.2.6\contrib\minizip\zip.c
\r
24 ; COMDAT _zip64local_getByte
\r
28 _zip64local_getByte PROC ; COMDAT
\r
29 ; _pzlib_filefunc_def$ = esi
\r
30 ; _filestream$ = edi
\r
35 00001 8b ec mov ebp, esp
\r
38 ; 351 : unsigned char c;
\r
39 ; 352 : int err = (int)ZREAD64(*pzlib_filefunc_def,filestream,&c,1);
\r
41 00004 8b 4e 1c mov ecx, DWORD PTR [esi+28]
\r
42 00007 8b 56 04 mov edx, DWORD PTR [esi+4]
\r
44 0000c 8d 45 ff lea eax, DWORD PTR _c$[ebp]
\r
48 00012 ff d2 call edx
\r
49 00014 83 c4 10 add esp, 16 ; 00000010H
\r
53 00017 83 f8 01 cmp eax, 1
\r
54 0001a 75 0f jne SHORT $LN4@zip64local
\r
57 ; 355 : *pi = (int)c;
\r
59 0001c 0f b6 45 ff movzx eax, BYTE PTR _c$[ebp]
\r
60 00020 8b 4d 08 mov ecx, DWORD PTR _pi$[ebp]
\r
61 00023 89 01 mov DWORD PTR [ecx], eax
\r
63 ; 356 : return ZIP_OK;
\r
65 00025 33 c0 xor eax, eax
\r
67 ; 361 : return ZIP_ERRNO;
\r
69 ; 363 : return ZIP_EOF;
\r
73 00027 8b e5 mov esp, ebp
\r
81 ; 360 : if (ZERROR64(*pzlib_filefunc_def,filestream))
\r
83 0002b 8b 56 1c mov edx, DWORD PTR [esi+28]
\r
84 0002e 8b 46 18 mov eax, DWORD PTR [esi+24]
\r
87 00033 ff d0 call eax
\r
88 00035 83 c4 08 add esp, 8
\r
90 0003a 1b c0 sbb eax, eax
\r
92 ; 361 : return ZIP_ERRNO;
\r
94 ; 363 : return ZIP_EOF;
\r
98 0003c 8b e5 mov esp, ebp
\r
101 _zip64local_getByte ENDP
\r
102 ; Function compile flags: /Ogtp
\r
104 ; COMDAT _zip64local_TmzDateToDosDate
\r
106 _zip64local_TmzDateToDosDate PROC ; COMDAT
\r
109 ; 334 : uLong year = (uLong)ptm->tm_year;
\r
111 00000 8b 4a 14 mov ecx, DWORD PTR [edx+20]
\r
113 ; 335 : if (year>=1980)
\r
115 00003 81 f9 bc 07 00
\r
116 00 cmp ecx, 1980 ; 000007bcH
\r
117 00009 72 08 jb SHORT $LN3@zip64local@2
\r
119 ; 336 : year-=1980;
\r
121 0000b 81 e9 bc 07 00
\r
122 00 sub ecx, 1980 ; 000007bcH
\r
123 00011 eb 08 jmp SHORT $LN1@zip64local@2
\r
126 ; 337 : else if (year>=80)
\r
128 00013 83 f9 50 cmp ecx, 80 ; 00000050H
\r
129 00016 72 03 jb SHORT $LN1@zip64local@2
\r
133 00018 83 e9 50 sub ecx, 80 ; 00000050H
\r
137 ; 340 : (uLong) (((ptm->tm_mday) + (32 * (ptm->tm_mon+1)) + (512 * year)) << 16) |
\r
138 ; 341 : ((ptm->tm_sec/2) + (32* ptm->tm_min) + (2048 * (uLong)ptm->tm_hour));
\r
140 0001b 8b 42 08 mov eax, DWORD PTR [edx+8]
\r
141 0001e c1 e0 06 shl eax, 6
\r
142 00021 03 42 04 add eax, DWORD PTR [edx+4]
\r
144 00025 8b 32 mov esi, DWORD PTR [edx]
\r
145 00027 d1 ee shr esi, 1
\r
146 00029 c1 e0 05 shl eax, 5
\r
147 0002c 03 c6 add eax, esi
\r
148 0002e 8b 72 10 mov esi, DWORD PTR [edx+16]
\r
149 00031 03 c9 add ecx, ecx
\r
150 00033 8d 4c ce 01 lea ecx, DWORD PTR [esi+ecx*8+1]
\r
151 00037 c1 e1 05 shl ecx, 5
\r
152 0003a 03 4a 0c add ecx, DWORD PTR [edx+12]
\r
154 0003e c1 e1 10 shl ecx, 16 ; 00000010H
\r
155 00041 0b c1 or eax, ecx
\r
160 _zip64local_TmzDateToDosDate ENDP
\r
163 ; Function compile flags: /Ogtp
\r
164 ; COMDAT _zip64local_putValue_inmemory
\r
167 _zip64local_putValue_inmemory PROC ; COMDAT
\r
174 00001 8b ec mov ebp, esp
\r
176 ; 313 : unsigned char* buf=(unsigned char*)dest;
\r
178 ; 315 : for (n = 0; n < nbByte; n++) {
\r
180 00003 8b 55 0c mov edx, DWORD PTR _x$[ebp+4]
\r
181 00006 8b 45 08 mov eax, DWORD PTR _x$[ebp]
\r
182 00009 33 c9 xor ecx, ecx
\r
183 0000b 85 f6 test esi, esi
\r
184 0000d 7e 10 jle SHORT $LN5@zip64local@3
\r
188 ; 316 : buf[n] = (unsigned char)(x & 0xff);
\r
190 00010 88 04 39 mov BYTE PTR [ecx+edi], al
\r
194 00013 0f ac d0 08 shrd eax, edx, 8
\r
196 00018 c1 ea 08 shr edx, 8
\r
197 0001b 3b ce cmp ecx, esi
\r
198 0001d 7c f1 jl SHORT $LL7@zip64local@3
\r
203 ; 320 : if (x != 0)
\r
205 0001f 0b c2 or eax, edx
\r
206 00021 74 13 je SHORT $LN3@zip64local@3
\r
208 ; 321 : { /* data overflow - hack for ZIP64 */
\r
209 ; 322 : for (n = 0; n < nbByte; n++)
\r
211 00023 85 f6 test esi, esi
\r
212 00025 7e 0f jle SHORT $LN3@zip64local@3
\r
214 00028 68 ff 00 00 00 push 255 ; 000000ffH
\r
216 0002e e8 00 00 00 00 call _memset
\r
217 00033 83 c4 0c add esp, 12 ; 0000000cH
\r
221 ; 324 : buf[n] = 0xff;
\r
228 _zip64local_putValue_inmemory ENDP
\r
229 ; Function compile flags: /Ogtp
\r
231 ; COMDAT _zip64local_putValue
\r
233 _filestream$ = 8 ; size = 4
\r
234 _buf$ = 12 ; size = 8
\r
235 _x$ = 12 ; size = 8
\r
236 _zip64local_putValue PROC ; COMDAT
\r
237 ; _pzlib_filefunc_def$ = edi
\r
243 00001 8b ec mov ebp, esp
\r
245 ; 289 : unsigned char buf[8];
\r
247 ; 291 : for (n = 0; n < nbByte; n++)
\r
249 00003 8b 55 10 mov edx, DWORD PTR _x$[ebp+4]
\r
250 00006 8b 45 0c mov eax, DWORD PTR _x$[ebp]
\r
251 00009 33 c9 xor ecx, ecx
\r
252 0000b 85 f6 test esi, esi
\r
253 0000d 7e 11 jle SHORT $LN7@zip64local@4
\r
258 ; 293 : buf[n] = (unsigned char)(x & 0xff);
\r
260 00010 88 44 0d 0c mov BYTE PTR _buf$[ebp+ecx], al
\r
264 00014 0f ac d0 08 shrd eax, edx, 8
\r
266 00019 c1 ea 08 shr edx, 8
\r
267 0001c 3b ce cmp ecx, esi
\r
268 0001e 7c f0 jl SHORT $LL9@zip64local@4
\r
272 ; 296 : if (x != 0)
\r
274 00020 0b c2 or eax, edx
\r
275 00022 74 16 je SHORT $LN5@zip64local@4
\r
277 ; 297 : { /* data overflow - hack for ZIP64 (X Roche) */
\r
278 ; 298 : for (n = 0; n < nbByte; n++)
\r
280 00024 85 f6 test esi, esi
\r
281 00026 7e 12 jle SHORT $LN5@zip64local@4
\r
283 00029 8d 45 0c lea eax, DWORD PTR _buf$[ebp]
\r
284 0002c 68 ff 00 00 00 push 255 ; 000000ffH
\r
286 00032 e8 00 00 00 00 call _memset
\r
287 00037 83 c4 0c add esp, 12 ; 0000000cH
\r
291 ; 300 : buf[n] = 0xff;
\r
295 ; 304 : if (ZWRITE64(*pzlib_filefunc_def,filestream,buf,nbByte)!=(uLong)nbByte)
\r
297 0003a 8b 55 08 mov edx, DWORD PTR _filestream$[ebp]
\r
298 0003d 8b 47 1c mov eax, DWORD PTR [edi+28]
\r
300 00041 8d 4d 0c lea ecx, DWORD PTR _buf$[ebp]
\r
302 00045 8b 4f 08 mov ecx, DWORD PTR [edi+8]
\r
305 0004a ff d1 call ecx
\r
306 0004c 2b c6 sub eax, esi
\r
307 0004e 83 c4 10 add esp, 16 ; 00000010H
\r
308 00051 f7 d8 neg eax
\r
309 00053 1b c0 sbb eax, eax
\r
311 ; 305 : return ZIP_ERRNO;
\r
313 ; 307 : return ZIP_OK;
\r
318 _zip64local_putValue ENDP
\r
319 ; Function compile flags: /Ogtp
\r
321 ; COMDAT _init_linkedlist
\r
323 _init_linkedlist PROC ; COMDAT
\r
326 ; 215 : ll->first_block = ll->last_block = NULL;
\r
328 00000 c7 40 04 00 00
\r
329 00 00 mov DWORD PTR [eax+4], 0
\r
330 00007 c7 00 00 00 00
\r
331 00 mov DWORD PTR [eax], 0
\r
336 _init_linkedlist ENDP
\r
337 ; Function compile flags: /Ogtp
\r
339 ; COMDAT _free_datablock
\r
341 _free_datablock PROC ; COMDAT
\r
344 ; 205 : while (ldi!=NULL)
\r
346 00000 85 c0 test eax, eax
\r
347 00002 74 1c je SHORT $LN2@free_datab
\r
350 00006 8b 3d 00 00 00
\r
351 00 mov edi, DWORD PTR __imp__free
\r
352 0000c 8d 64 24 00 npad 4
\r
356 ; 207 : linkedlist_datablock_internal* ldinext = ldi->next_datablock;
\r
358 00010 8b 30 mov esi, DWORD PTR [eax]
\r
360 ; 208 : TRYFREE(ldi);
\r
363 00013 ff d7 call edi
\r
364 00015 83 c4 04 add esp, 4
\r
366 ; 209 : ldi = ldinext;
\r
368 00018 8b c6 mov eax, esi
\r
369 0001a 85 f6 test esi, esi
\r
370 0001c 75 f2 jne SHORT $LL3@free_datab
\r
379 _free_datablock ENDP
\r
380 ; Function compile flags: /Ogtp
\r
382 ; COMDAT _allocate_new_datablock
\r
384 _allocate_new_datablock PROC ; COMDAT
\r
386 ; 191 : linkedlist_datablock_internal* ldi;
\r
387 ; 192 : ldi = (linkedlist_datablock_internal*)
\r
388 ; 193 : ALLOC(sizeof(linkedlist_datablock_internal));
\r
390 00000 68 00 10 00 00 push 4096 ; 00001000H
\r
391 00005 ff 15 00 00 00
\r
392 00 call DWORD PTR __imp__malloc
\r
393 0000b 83 c4 04 add esp, 4
\r
395 ; 194 : if (ldi!=NULL)
\r
397 0000e 85 c0 test eax, eax
\r
398 00010 74 14 je SHORT $LN1@allocate_n
\r
401 ; 196 : ldi->next_datablock = NULL ;
\r
403 00012 c7 00 00 00 00
\r
404 00 mov DWORD PTR [eax], 0
\r
406 ; 197 : ldi->filled_in_this_block = 0 ;
\r
408 00018 c7 40 08 00 00
\r
409 00 00 mov DWORD PTR [eax+8], 0
\r
411 ; 198 : ldi->avail_in_this_block = SIZEDATA_INDATABLOCK ;
\r
413 0001f c7 40 04 f0 0f
\r
414 00 00 mov DWORD PTR [eax+4], 4080 ; 00000ff0H
\r
418 ; 200 : return ldi;
\r
422 _allocate_new_datablock ENDP
\r
423 ; Function compile flags: /Ogtp
\r
424 ; File c:\workspaces\sysdyn\org.simantics.fmu\fmusolution\zlib-1.2.6\contrib\minizip\crypt.h
\r
426 ; COMDAT _update_keys
\r
428 _update_keys PROC ; COMDAT
\r
430 ; _pcrc_32_tab$ = edi
\r
433 ; 50 : (*(pkeys+0)) = CRC32((*(pkeys+0)), c);
\r
435 00000 8b 0e mov ecx, DWORD PTR [esi]
\r
436 00002 8b d1 mov edx, ecx
\r
437 00004 33 d0 xor edx, eax
\r
438 00006 c1 e9 08 shr ecx, 8
\r
439 00009 81 e2 ff 00 00
\r
440 00 and edx, 255 ; 000000ffH
\r
441 0000f 8b 14 97 mov edx, DWORD PTR [edi+edx*4]
\r
442 00012 33 d1 xor edx, ecx
\r
444 ; 51 : (*(pkeys+1)) += (*(pkeys+0)) & 0xff;
\r
446 00014 0f b6 ca movzx ecx, dl
\r
448 ; 52 : (*(pkeys+1)) = (*(pkeys+1)) * 134775813L + 1;
\r
450 00017 03 4e 04 add ecx, DWORD PTR [esi+4]
\r
451 0001a 89 16 mov DWORD PTR [esi], edx
\r
454 ; 54 : register int keyshift = (int)((*(pkeys+1)) >> 24);
\r
455 ; 55 : (*(pkeys+2)) = CRC32((*(pkeys+2)), keyshift);
\r
457 0001c 8b 56 08 mov edx, DWORD PTR [esi+8]
\r
458 0001f 69 c9 05 84 08
\r
459 08 imul ecx, 134775813 ; 08088405H
\r
461 00026 89 4e 04 mov DWORD PTR [esi+4], ecx
\r
462 00029 c1 e9 18 shr ecx, 24 ; 00000018H
\r
463 0002c 33 ca xor ecx, edx
\r
464 0002e 81 e1 ff 00 00
\r
465 00 and ecx, 255 ; 000000ffH
\r
466 00034 c1 ea 08 shr edx, 8
\r
467 00037 33 14 8f xor edx, DWORD PTR [edi+ecx*4]
\r
468 0003a 89 56 08 mov DWORD PTR [esi+8], edx
\r
476 ; Function compile flags: /Ogtp
\r
478 ; COMDAT _decrypt_byte
\r
480 _decrypt_byte PROC ; COMDAT
\r
483 ; 37 : unsigned temp; /* POTENTIAL BUG: temp*(temp^1) may overflow in an
\r
484 ; 38 : * unpredictable manner on 16-bit systems; not a problem
\r
485 ; 39 : * with any known compiler so far, though */
\r
487 ; 41 : temp = ((unsigned)(*(pkeys+2)) & 0xffff) | 2;
\r
489 00000 8b 48 08 mov ecx, DWORD PTR [eax+8]
\r
490 00003 81 e1 fd ff 00
\r
491 00 and ecx, 65533 ; 0000fffdH
\r
492 00009 83 c9 02 or ecx, 2
\r
494 ; 42 : return (int)(((temp * (temp ^ 1)) >> 8) & 0xff);
\r
496 0000c 8b c1 mov eax, ecx
\r
497 0000e 83 f0 01 xor eax, 1
\r
498 00011 0f af c1 imul eax, ecx
\r
499 00014 c1 e8 08 shr eax, 8
\r
500 00017 25 ff 00 00 00 and eax, 255 ; 000000ffH
\r
506 ; Function compile flags: /Ogtp
\r
507 ; File c:\program files (x86)\microsoft visual studio 10.0\vc\include\time.inl
\r
511 _time PROC ; COMDAT
\r
513 ; 133 : return _time64(_Time);
\r
516 00002 ff 15 00 00 00
\r
517 00 call DWORD PTR __imp___time64
\r
518 00008 83 c4 04 add esp, 4
\r
524 PUBLIC _Write_GlobalComment
\r
525 ; Function compile flags: /Ogtp
\r
526 ; File c:\workspaces\sysdyn\org.simantics.fmu\fmusolution\zlib-1.2.6\contrib\minizip\zip.c
\r
527 ; COMDAT _Write_GlobalComment
\r
529 _global_comment$ = 8 ; size = 4
\r
530 _Write_GlobalComment PROC ; COMDAT
\r
536 00001 8b ec mov ebp, esp
\r
540 00006 8b f8 mov edi, eax
\r
542 ; 1866 : int err = ZIP_OK;
\r
543 ; 1867 : uInt size_global_comment = 0;
\r
545 ; 1869 : if(global_comment != NULL)
\r
547 00008 8b 45 08 mov eax, DWORD PTR _global_comment$[ebp]
\r
548 0000b 33 db xor ebx, ebx
\r
549 0000d 85 c0 test eax, eax
\r
550 0000f 74 0e je SHORT $LN3@Write_Glob
\r
552 ; 1870 : size_global_comment = (uInt)strlen(global_comment);
\r
554 00011 8d 50 01 lea edx, DWORD PTR [eax+1]
\r
556 00014 8a 08 mov cl, BYTE PTR [eax]
\r
558 00017 84 c9 test cl, cl
\r
559 00019 75 f9 jne SHORT $LL6@Write_Glob
\r
560 0001b 2b c2 sub eax, edx
\r
561 0001d 8b d8 mov ebx, eax
\r
565 ; 1872 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)size_global_comment,2);
\r
567 0001f 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
571 00026 be 02 00 00 00 mov esi, 2
\r
572 0002b e8 00 00 00 00 call _zip64local_putValue
\r
573 00030 8b f0 mov esi, eax
\r
574 00032 83 c4 0c add esp, 12 ; 0000000cH
\r
577 ; 1874 : if (err == ZIP_OK && size_global_comment > 0)
\r
579 00035 85 f6 test esi, esi
\r
580 00037 75 25 jne SHORT $LN9@Write_Glob
\r
581 00039 85 db test ebx, ebx
\r
582 0003b 74 21 je SHORT $LN9@Write_Glob
\r
585 ; 1876 : if (ZWRITE64(zi->z_filefunc,zi->filestream, global_comment, size_global_comment) != size_global_comment)
\r
587 0003d 8b 4d 08 mov ecx, DWORD PTR _global_comment$[ebp]
\r
588 00040 8b 57 2c mov edx, DWORD PTR [edi+44]
\r
589 00043 8b 47 1c mov eax, DWORD PTR [edi+28]
\r
592 00048 8b 4f 08 mov ecx, DWORD PTR [edi+8]
\r
595 0004d ff d1 call ecx
\r
596 0004f 83 c4 10 add esp, 16 ; 00000010H
\r
597 00052 3b c3 cmp eax, ebx
\r
598 00054 74 08 je SHORT $LN9@Write_Glob
\r
600 ; 1877 : err = ZIP_ERRNO;
\r
602 00056 83 c8 ff or eax, -1
\r
605 ; 1879 : return err;
\r
615 0005f 8b c6 mov eax, esi
\r
620 _Write_GlobalComment ENDP
\r
622 PUBLIC _Write_EndOfCentralDirectoryRecord
\r
623 ; Function compile flags: /Ogtp
\r
624 ; COMDAT _Write_EndOfCentralDirectoryRecord
\r
626 tv145 = -8 ; size = 8
\r
627 _size_centraldir$ = 8 ; size = 4
\r
628 _centraldir_pos_inzip$ = 12 ; size = 8
\r
629 _Write_EndOfCentralDirectoryRecord PROC ; COMDAT
\r
635 00001 8b ec mov ebp, esp
\r
636 00003 83 ec 08 sub esp, 8
\r
639 00008 8b f8 mov edi, eax
\r
641 ; 1818 : int err = ZIP_OK;
\r
643 ; 1820 : /*signature*/
\r
644 ; 1821 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)ENDHEADERMAGIC,4);
\r
646 0000a 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
648 0000f 68 50 4b 05 06 push 101010256 ; 06054b50H
\r
650 00015 be 04 00 00 00 mov esi, 4
\r
651 0001a e8 00 00 00 00 call _zip64local_putValue
\r
652 0001f 83 c4 0c add esp, 12 ; 0000000cH
\r
655 ; 1823 : if (err==ZIP_OK) /* number of this disk */
\r
657 00022 85 c0 test eax, eax
\r
658 00024 0f 85 0f 01 00
\r
659 00 jne $LN1@Write_EndO
\r
661 ; 1824 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,2);
\r
663 0002a 8b 4f 2c mov ecx, DWORD PTR [edi+44]
\r
667 00030 8d 70 02 lea esi, DWORD PTR [eax+2]
\r
668 00033 e8 00 00 00 00 call _zip64local_putValue
\r
669 00038 83 c4 0c add esp, 12 ; 0000000cH
\r
672 ; 1826 : if (err==ZIP_OK) /* number of the disk with the start of the central directory */
\r
674 0003b 85 c0 test eax, eax
\r
675 0003d 0f 85 f6 00 00
\r
676 00 jne $LN1@Write_EndO
\r
678 ; 1827 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,2);
\r
680 00043 8b 57 2c mov edx, DWORD PTR [edi+44]
\r
684 00049 e8 00 00 00 00 call _zip64local_putValue
\r
685 0004e 83 c4 0c add esp, 12 ; 0000000cH
\r
688 ; 1829 : if (err==ZIP_OK) /* total number of entries in the central dir on this disk */
\r
690 00051 85 c0 test eax, eax
\r
691 00053 0f 85 e0 00 00
\r
692 00 jne $LN1@Write_EndO
\r
696 ; 1832 : if(zi->number_entry >= 0xFFFF)
\r
698 00059 39 87 fc 00 01
\r
699 00 cmp DWORD PTR [edi+65788], eax
\r
700 0005f 77 0c ja SHORT $LN15@Write_EndO
\r
701 00061 81 bf f8 00 01
\r
702 00 ff ff 00 00 cmp DWORD PTR [edi+65784], 65535 ; 0000ffffH
\r
703 0006b 72 0d jb SHORT $LN9@Write_EndO
\r
706 ; 1833 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0xffff,2); // use value in ZIP64 record
\r
708 0006d 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
710 00072 68 ff ff 00 00 push 65535 ; 0000ffffH
\r
715 00078 eb 0d jmp SHORT $LN24@Write_EndO
\r
718 ; 1835 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->number_entry,2);
\r
720 0007a 8b 8f f8 00 01
\r
721 00 mov ecx, DWORD PTR [edi+65784]
\r
722 00080 8b 57 2c mov edx, DWORD PTR [edi+44]
\r
727 00087 e8 00 00 00 00 call _zip64local_putValue
\r
728 0008c 83 c4 0c add esp, 12 ; 0000000cH
\r
733 ; 1839 : if (err==ZIP_OK) /* total number of entries in the central dir */
\r
735 0008f 85 c0 test eax, eax
\r
736 00091 0f 85 a2 00 00
\r
737 00 jne $LN1@Write_EndO
\r
740 ; 1841 : if(zi->number_entry >= 0xFFFF)
\r
742 00097 39 87 fc 00 01
\r
743 00 cmp DWORD PTR [edi+65788], eax
\r
744 0009d 77 0c ja SHORT $LN16@Write_EndO
\r
745 0009f 81 bf f8 00 01
\r
746 00 ff ff 00 00 cmp DWORD PTR [edi+65784], 65535 ; 0000ffffH
\r
747 000a9 72 0d jb SHORT $LN6@Write_EndO
\r
750 ; 1842 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0xffff,2); // use value in ZIP64 record
\r
752 000ab 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
754 000b0 68 ff ff 00 00 push 65535 ; 0000ffffH
\r
759 000b6 eb 0d jmp SHORT $LN25@Write_EndO
\r
762 ; 1844 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->number_entry,2);
\r
764 000b8 8b 8f f8 00 01
\r
765 00 mov ecx, DWORD PTR [edi+65784]
\r
766 000be 8b 57 2c mov edx, DWORD PTR [edi+44]
\r
771 000c5 be 02 00 00 00 mov esi, 2
\r
772 000ca e8 00 00 00 00 call _zip64local_putValue
\r
773 000cf 83 c4 0c add esp, 12 ; 0000000cH
\r
777 ; 1847 : if (err==ZIP_OK) /* size of the central directory */
\r
779 000d2 85 c0 test eax, eax
\r
780 000d4 75 63 jne SHORT $LN1@Write_EndO
\r
782 ; 1848 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)size_centraldir,4);
\r
784 000d6 8b 4f 2c mov ecx, DWORD PTR [edi+44]
\r
786 000da 8b 45 08 mov eax, DWORD PTR _size_centraldir$[ebp]
\r
789 000df be 04 00 00 00 mov esi, 4
\r
790 000e4 e8 00 00 00 00 call _zip64local_putValue
\r
791 000e9 83 c4 0c add esp, 12 ; 0000000cH
\r
794 ; 1850 : if (err==ZIP_OK) /* offset of start of central directory with respect to the starting disk number */
\r
796 000ec 85 c0 test eax, eax
\r
797 000ee 75 49 jne SHORT $LN1@Write_EndO
\r
800 ; 1852 : ZPOS64_T pos = centraldir_pos_inzip - zi->add_position_when_writting_offset;
\r
802 000f0 8b 45 0c mov eax, DWORD PTR _centraldir_pos_inzip$[ebp]
\r
803 000f3 8b 55 10 mov edx, DWORD PTR _centraldir_pos_inzip$[ebp+4]
\r
804 000f6 8b c8 mov ecx, eax
\r
805 000f8 2b 8f f0 00 01
\r
806 00 sub ecx, DWORD PTR [edi+65776]
\r
807 000fe 1b 97 f4 00 01
\r
808 00 sbb edx, DWORD PTR [edi+65780]
\r
810 ; 1853 : if(pos >= 0xffffffff)
\r
812 00104 89 55 fc mov DWORD PTR tv145[ebp+4], edx
\r
813 00107 75 05 jne SHORT $LN17@Write_EndO
\r
814 00109 83 f9 ff cmp ecx, -1
\r
815 0010c 72 16 jb SHORT $LN2@Write_EndO
\r
819 ; 1855 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream, (uLong)0xffffffff,4);
\r
821 0010e 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
823 00113 6a ff push -1
\r
828 ; 1858 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream, (uLong)(centraldir_pos_inzip - zi->add_position_when_writting_offset),4);
\r
830 00116 e8 00 00 00 00 call _zip64local_putValue
\r
831 0011b 83 c4 0c add esp, 12 ; 0000000cH
\r
835 ; 1861 : return err;
\r
840 00120 8b e5 mov esp, ebp
\r
847 ; 1858 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream, (uLong)(centraldir_pos_inzip - zi->add_position_when_writting_offset),4);
\r
849 00124 2b 87 f0 00 01
\r
850 00 sub eax, DWORD PTR [edi+65776]
\r
851 0012a 8b 4f 2c mov ecx, DWORD PTR [edi+44]
\r
855 00131 e8 00 00 00 00 call _zip64local_putValue
\r
856 00136 83 c4 0c add esp, 12 ; 0000000cH
\r
861 ; 1861 : return err;
\r
866 0013b 8b e5 mov esp, ebp
\r
869 _Write_EndOfCentralDirectoryRecord ENDP
\r
871 PUBLIC _Write_Zip64EndOfCentralDirectoryRecord
\r
872 ; Function compile flags: /Ogtp
\r
873 ; COMDAT _Write_Zip64EndOfCentralDirectoryRecord
\r
875 _size_centraldir$ = 8 ; size = 4
\r
876 _centraldir_pos_inzip$ = 12 ; size = 8
\r
877 _Write_Zip64EndOfCentralDirectoryRecord PROC ; COMDAT
\r
883 00001 8b ec mov ebp, esp
\r
886 00005 8b f8 mov edi, eax
\r
888 ; 1779 : int err = ZIP_OK;
\r
890 ; 1781 : uLong Zip64DataSize = 44;
\r
892 ; 1783 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)ZIP64ENDHEADERMAGIC,4);
\r
894 00007 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
896 0000c 68 50 4b 06 06 push 101075792 ; 06064b50H
\r
898 00012 be 04 00 00 00 mov esi, 4
\r
899 00017 e8 00 00 00 00 call _zip64local_putValue
\r
900 0001c 83 c4 0c add esp, 12 ; 0000000cH
\r
903 ; 1785 : if (err==ZIP_OK) /* size of this 'zip64 end of central directory' */
\r
905 0001f 85 c0 test eax, eax
\r
906 00021 0f 85 ec 00 00
\r
907 00 jne $LN1@Write_Zip6
\r
909 ; 1786 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(ZPOS64_T)Zip64DataSize,8); // why ZPOS64_T of this ?
\r
911 00027 8b 4f 2c mov ecx, DWORD PTR [edi+44]
\r
913 0002b 6a 2c push 44 ; 0000002cH
\r
915 0002e 8d 70 08 lea esi, DWORD PTR [eax+8]
\r
916 00031 e8 00 00 00 00 call _zip64local_putValue
\r
917 00036 83 c4 0c add esp, 12 ; 0000000cH
\r
920 ; 1788 : if (err==ZIP_OK) /* version made by */
\r
922 00039 85 c0 test eax, eax
\r
923 0003b 0f 85 d2 00 00
\r
924 00 jne $LN1@Write_Zip6
\r
926 ; 1789 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)45,2);
\r
928 00041 8b 57 2c mov edx, DWORD PTR [edi+44]
\r
930 00045 6a 2d push 45 ; 0000002dH
\r
932 00048 8d 70 02 lea esi, DWORD PTR [eax+2]
\r
933 0004b e8 00 00 00 00 call _zip64local_putValue
\r
934 00050 83 c4 0c add esp, 12 ; 0000000cH
\r
937 ; 1791 : if (err==ZIP_OK) /* version needed */
\r
939 00053 85 c0 test eax, eax
\r
940 00055 0f 85 b8 00 00
\r
941 00 jne $LN1@Write_Zip6
\r
943 ; 1792 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)45,2);
\r
946 0005c 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
947 0005f 6a 2d push 45 ; 0000002dH
\r
949 00062 e8 00 00 00 00 call _zip64local_putValue
\r
950 00067 83 c4 0c add esp, 12 ; 0000000cH
\r
953 ; 1794 : if (err==ZIP_OK) /* number of this disk */
\r
955 0006a 85 c0 test eax, eax
\r
956 0006c 0f 85 a1 00 00
\r
957 00 jne $LN1@Write_Zip6
\r
959 ; 1795 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4);
\r
961 00072 8b 4f 2c mov ecx, DWORD PTR [edi+44]
\r
965 00078 8d 70 04 lea esi, DWORD PTR [eax+4]
\r
966 0007b e8 00 00 00 00 call _zip64local_putValue
\r
967 00080 83 c4 0c add esp, 12 ; 0000000cH
\r
970 ; 1797 : if (err==ZIP_OK) /* number of the disk with the start of the central directory */
\r
972 00083 85 c0 test eax, eax
\r
973 00085 0f 85 88 00 00
\r
974 00 jne $LN1@Write_Zip6
\r
976 ; 1798 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4);
\r
978 0008b 8b 57 2c mov edx, DWORD PTR [edi+44]
\r
982 00091 e8 00 00 00 00 call _zip64local_putValue
\r
983 00096 83 c4 0c add esp, 12 ; 0000000cH
\r
986 ; 1800 : if (err==ZIP_OK) /* total number of entries in the central dir on this disk */
\r
988 00099 85 c0 test eax, eax
\r
989 0009b 75 76 jne SHORT $LN1@Write_Zip6
\r
991 ; 1801 : err = zip64local_putValue(&zi->z_filefunc, zi->filestream, zi->number_entry, 8);
\r
993 0009d 8b 87 fc 00 01
\r
994 00 mov eax, DWORD PTR [edi+65788]
\r
995 000a3 8b 8f f8 00 01
\r
996 00 mov ecx, DWORD PTR [edi+65784]
\r
997 000a9 8b 57 2c mov edx, DWORD PTR [edi+44]
\r
1001 000af be 08 00 00 00 mov esi, 8
\r
1002 000b4 e8 00 00 00 00 call _zip64local_putValue
\r
1003 000b9 83 c4 0c add esp, 12 ; 0000000cH
\r
1006 ; 1803 : if (err==ZIP_OK) /* total number of entries in the central dir */
\r
1008 000bc 85 c0 test eax, eax
\r
1009 000be 75 53 jne SHORT $LN1@Write_Zip6
\r
1011 ; 1804 : err = zip64local_putValue(&zi->z_filefunc, zi->filestream, zi->number_entry, 8);
\r
1013 000c0 8b 87 fc 00 01
\r
1014 00 mov eax, DWORD PTR [edi+65788]
\r
1015 000c6 8b 8f f8 00 01
\r
1016 00 mov ecx, DWORD PTR [edi+65784]
\r
1017 000cc 8b 57 2c mov edx, DWORD PTR [edi+44]
\r
1021 000d2 e8 00 00 00 00 call _zip64local_putValue
\r
1022 000d7 83 c4 0c add esp, 12 ; 0000000cH
\r
1025 ; 1806 : if (err==ZIP_OK) /* size of the central directory */
\r
1027 000da 85 c0 test eax, eax
\r
1028 000dc 75 35 jne SHORT $LN1@Write_Zip6
\r
1030 ; 1807 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(ZPOS64_T)size_centraldir,8);
\r
1032 000de 8b 4f 2c mov ecx, DWORD PTR [edi+44]
\r
1034 000e2 8b 45 08 mov eax, DWORD PTR _size_centraldir$[ebp]
\r
1037 000e7 e8 00 00 00 00 call _zip64local_putValue
\r
1038 000ec 83 c4 0c add esp, 12 ; 0000000cH
\r
1041 ; 1809 : if (err==ZIP_OK) /* offset of start of central directory with respect to the starting disk number */
\r
1043 000ef 85 c0 test eax, eax
\r
1044 000f1 75 20 jne SHORT $LN1@Write_Zip6
\r
1047 ; 1811 : ZPOS64_T pos = centraldir_pos_inzip - zi->add_position_when_writting_offset;
\r
1049 000f3 8b 45 0c mov eax, DWORD PTR _centraldir_pos_inzip$[ebp]
\r
1050 000f6 2b 87 f0 00 01
\r
1051 00 sub eax, DWORD PTR [edi+65776]
\r
1052 000fc 8b 4d 10 mov ecx, DWORD PTR _centraldir_pos_inzip$[ebp+4]
\r
1053 000ff 1b 8f f4 00 01
\r
1054 00 sbb ecx, DWORD PTR [edi+65780]
\r
1056 ; 1812 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream, (ZPOS64_T)pos,8);
\r
1058 00105 8b 57 2c mov edx, DWORD PTR [edi+44]
\r
1062 0010b e8 00 00 00 00 call _zip64local_putValue
\r
1063 00110 83 c4 0c add esp, 12 ; 0000000cH
\r
1067 ; 1814 : return err;
\r
1074 _Write_Zip64EndOfCentralDirectoryRecord ENDP
\r
1076 PUBLIC _Write_Zip64EndOfCentralDirectoryLocator
\r
1077 ; Function compile flags: /Ogtp
\r
1078 ; COMDAT _Write_Zip64EndOfCentralDirectoryLocator
\r
1080 _pos$ = 8 ; size = 8
\r
1081 _zip64eocd_pos_inzip$ = 8 ; size = 8
\r
1082 _Write_Zip64EndOfCentralDirectoryLocator PROC ; COMDAT
\r
1088 00001 8b ec mov ebp, esp
\r
1091 ; 1757 : int err = ZIP_OK;
\r
1092 ; 1758 : ZPOS64_T pos = zip64eocd_pos_inzip - zi->add_position_when_writting_offset;
\r
1094 00004 8b 5d 08 mov ebx, DWORD PTR _zip64eocd_pos_inzip$[ebp]
\r
1097 00009 8b f8 mov edi, eax
\r
1098 0000b 2b 9f f0 00 01
\r
1099 00 sub ebx, DWORD PTR [edi+65776]
\r
1100 00011 8b 45 0c mov eax, DWORD PTR _zip64eocd_pos_inzip$[ebp+4]
\r
1101 00014 1b 87 f4 00 01
\r
1102 00 sbb eax, DWORD PTR [edi+65780]
\r
1105 ; 1760 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)ZIP64ENDLOCHEADERMAGIC,4);
\r
1107 0001a 6a 00 push 0
\r
1108 0001c 89 45 0c mov DWORD PTR _pos$[ebp+4], eax
\r
1109 0001f 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
1110 00022 68 50 4b 06 07 push 117853008 ; 07064b50H
\r
1112 00028 be 04 00 00 00 mov esi, 4
\r
1113 0002d e8 00 00 00 00 call _zip64local_putValue
\r
1114 00032 83 c4 0c add esp, 12 ; 0000000cH
\r
1117 ; 1762 : /*num disks*/
\r
1118 ; 1763 : if (err==ZIP_OK) /* number of the disk with the start of the central directory */
\r
1120 00035 85 c0 test eax, eax
\r
1121 00037 75 3e jne SHORT $LN1@Write_Zip6@2
\r
1123 ; 1764 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4);
\r
1125 00039 8b 4f 2c mov ecx, DWORD PTR [edi+44]
\r
1129 0003f e8 00 00 00 00 call _zip64local_putValue
\r
1130 00044 83 c4 0c add esp, 12 ; 0000000cH
\r
1133 ; 1766 : /*relative offset*/
\r
1134 ; 1767 : if (err==ZIP_OK) /* Relative offset to the Zip64EndOfCentralDirectory */
\r
1136 00047 85 c0 test eax, eax
\r
1137 00049 75 2c jne SHORT $LN1@Write_Zip6@2
\r
1139 ; 1768 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream, pos,8);
\r
1141 0004b 8b 55 0c mov edx, DWORD PTR _pos$[ebp+4]
\r
1142 0004e 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
1146 00054 be 08 00 00 00 mov esi, 8
\r
1147 00059 e8 00 00 00 00 call _zip64local_putValue
\r
1148 0005e 83 c4 0c add esp, 12 ; 0000000cH
\r
1151 ; 1770 : /*total disks*/ /* Do not support spawning of disk so always say 1 here*/
\r
1152 ; 1771 : if (err==ZIP_OK) /* number of the disk with the start of the central directory */
\r
1154 00061 85 c0 test eax, eax
\r
1155 00063 75 12 jne SHORT $LN1@Write_Zip6@2
\r
1157 ; 1772 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)1,4);
\r
1159 00065 8b 4f 2c mov ecx, DWORD PTR [edi+44]
\r
1161 00069 6a 01 push 1
\r
1163 0006c 8d 70 04 lea esi, DWORD PTR [eax+4]
\r
1164 0006f e8 00 00 00 00 call _zip64local_putValue
\r
1165 00074 83 c4 0c add esp, 12 ; 0000000cH
\r
1166 $LN1@Write_Zip6@2:
\r
1169 ; 1774 : return err;
\r
1177 _Write_Zip64EndOfCentralDirectoryLocator ENDP
\r
1178 ; Function compile flags: /Ogtp
\r
1180 ; COMDAT _zip64FlushWriteBuffer
\r
1182 tv232 = -16 ; size = 4
\r
1183 _t$83457 = -12 ; size = 4
\r
1184 _err$ = -8 ; size = 4
\r
1185 tv222 = -4 ; size = 4
\r
1186 _zip64FlushWriteBuffer PROC ; COMDAT
\r
1192 00001 8b ec mov ebp, esp
\r
1193 00003 83 ec 10 sub esp, 16 ; 00000010H
\r
1197 ; 1365 : int err=ZIP_OK;
\r
1199 00008 33 ff xor edi, edi
\r
1200 0000a 89 7d f8 mov DWORD PTR _err$[ebp], edi
\r
1203 ; 1367 : if (zi->ci.encrypt != 0)
\r
1205 0000d 39 bb ac 00 01
\r
1206 00 cmp DWORD PTR [ebx+65708], edi
\r
1207 00013 74 51 je SHORT $LN2@zip64Flush
\r
1210 ; 1369 : #ifndef NOCRYPT
\r
1213 ; 1372 : for (i=0;i<zi->ci.pos_in_buffered_data;i++)
\r
1215 00015 39 7b 7c cmp DWORD PTR [ebx+124], edi
\r
1216 00018 76 4c jbe SHORT $LN2@zip64Flush
\r
1217 0001a 8d 83 a4 00 00
\r
1218 00 lea eax, DWORD PTR [ebx+164]
\r
1219 00020 89 45 fc mov DWORD PTR tv222[ebp], eax
\r
1220 00023 b8 5c ff ff ff mov eax, -164 ; ffffff5cH
\r
1221 00028 2b c3 sub eax, ebx
\r
1222 0002a 8d b3 d0 00 01
\r
1223 00 lea esi, DWORD PTR [ebx+65744]
\r
1224 00030 89 45 f0 mov DWORD PTR tv232[ebp], eax
\r
1227 ; 1373 : zi->ci.buffered_data[i] = zencode(zi->ci.keys, zi->ci.pcrc_32_tab, zi->ci.buffered_data[i],t);
\r
1229 00033 8b c6 mov eax, esi
\r
1230 00035 e8 00 00 00 00 call _decrypt_byte
\r
1231 0003a 8b 4d fc mov ecx, DWORD PTR tv222[ebp]
\r
1232 0003d 8b bb dc 00 01
\r
1233 00 mov edi, DWORD PTR [ebx+65756]
\r
1234 00043 89 45 f4 mov DWORD PTR _t$83457[ebp], eax
\r
1235 00046 0f b6 01 movzx eax, BYTE PTR [ecx]
\r
1236 00049 e8 00 00 00 00 call _update_keys
\r
1237 0004e 8b 45 fc mov eax, DWORD PTR tv222[ebp]
\r
1238 00051 8a 55 f4 mov dl, BYTE PTR _t$83457[ebp]
\r
1239 00054 30 10 xor BYTE PTR [eax], dl
\r
1240 00056 8b 4d f0 mov ecx, DWORD PTR tv232[ebp]
\r
1242 0005a 03 c8 add ecx, eax
\r
1243 0005c 89 45 fc mov DWORD PTR tv222[ebp], eax
\r
1244 0005f 3b 4b 7c cmp ecx, DWORD PTR [ebx+124]
\r
1245 00062 72 cf jb SHORT $LL10@zip64Flush
\r
1248 ; 1369 : #ifndef NOCRYPT
\r
1251 ; 1372 : for (i=0;i<zi->ci.pos_in_buffered_data;i++)
\r
1253 00064 33 ff xor edi, edi
\r
1259 ; 1377 : if (ZWRITE64(zi->z_filefunc,zi->filestream,zi->ci.buffered_data,zi->ci.pos_in_buffered_data) != zi->ci.pos_in_buffered_data)
\r
1261 00066 8b 73 7c mov esi, DWORD PTR [ebx+124]
\r
1262 00069 8b 4b 2c mov ecx, DWORD PTR [ebx+44]
\r
1263 0006c 8b 53 1c mov edx, DWORD PTR [ebx+28]
\r
1265 00070 8d 83 a4 00 00
\r
1266 00 lea eax, DWORD PTR [ebx+164]
\r
1268 00077 8b 43 08 mov eax, DWORD PTR [ebx+8]
\r
1271 0007c ff d0 call eax
\r
1272 0007e 83 c4 10 add esp, 16 ; 00000010H
\r
1273 00081 3b c6 cmp eax, esi
\r
1274 00083 74 07 je SHORT $LN1@zip64Flush
\r
1276 ; 1378 : err = ZIP_ERRNO;
\r
1278 00085 c7 45 f8 ff ff
\r
1279 ff ff mov DWORD PTR _err$[ebp], -1
\r
1283 ; 1380 : zi->ci.totalCompressedData += zi->ci.pos_in_buffered_data;
\r
1285 0008c 01 b3 c0 00 01
\r
1286 00 add DWORD PTR [ebx+65728], esi
\r
1289 ; 1382 : #ifdef HAVE_BZIP2
\r
1290 ; 1383 : if(zi->ci.method == Z_BZIP2ED)
\r
1292 ; 1385 : zi->ci.totalUncompressedData += zi->ci.bstream.total_in_lo32;
\r
1293 ; 1386 : zi->ci.bstream.total_in_lo32 = 0;
\r
1294 ; 1387 : zi->ci.bstream.total_in_hi32 = 0;
\r
1299 ; 1392 : zi->ci.totalUncompressedData += zi->ci.stream.total_in;
\r
1301 00092 8b 4b 48 mov ecx, DWORD PTR [ebx+72]
\r
1303 ; 1393 : zi->ci.stream.total_in = 0;
\r
1307 ; 1397 : zi->ci.pos_in_buffered_data = 0;
\r
1309 ; 1399 : return err;
\r
1311 00095 8b 45 f8 mov eax, DWORD PTR _err$[ebp]
\r
1312 00098 11 bb c4 00 01
\r
1313 00 adc DWORD PTR [ebx+65732], edi
\r
1314 0009e 01 8b c8 00 01
\r
1315 00 add DWORD PTR [ebx+65736], ecx
\r
1316 000a4 89 7b 48 mov DWORD PTR [ebx+72], edi
\r
1317 000a7 89 7b 7c mov DWORD PTR [ebx+124], edi
\r
1318 000aa 11 bb cc 00 01
\r
1319 00 adc DWORD PTR [ebx+65740], edi
\r
1325 000b2 8b e5 mov esp, ebp
\r
1328 _zip64FlushWriteBuffer ENDP
\r
1330 PUBLIC _Write_LocalFileHeader
\r
1331 ; Function compile flags: /Ogtp
\r
1332 ; COMDAT _Write_LocalFileHeader
\r
1334 _size_extrafield$ = -4 ; size = 4
\r
1335 _filename$ = 8 ; size = 4
\r
1336 _size_extrafield_local$ = 12 ; size = 4
\r
1337 _extrafield_local$ = 16 ; size = 4
\r
1338 _Write_LocalFileHeader PROC ; COMDAT
\r
1344 00001 8b ec mov ebp, esp
\r
1349 00007 8b f8 mov edi, eax
\r
1351 ; 960 : /* write the local header */
\r
1353 ; 962 : uInt size_filename = (uInt)strlen(filename);
\r
1355 00009 8b 45 08 mov eax, DWORD PTR _filename$[ebp]
\r
1356 0000c 8d 48 01 lea ecx, DWORD PTR [eax+1]
\r
1359 00010 8a 10 mov dl, BYTE PTR [eax]
\r
1361 00013 84 d2 test dl, dl
\r
1362 00015 75 f9 jne SHORT $LL26@Write_Loca
\r
1363 00017 2b c1 sub eax, ecx
\r
1365 ; 963 : uInt size_extrafield = size_extrafield_local;
\r
1367 ; 965 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)LOCALHEADERMAGIC, 4);
\r
1369 00019 8b 4f 2c mov ecx, DWORD PTR [edi+44]
\r
1370 0001c 6a 00 push 0
\r
1371 0001e 8b d8 mov ebx, eax
\r
1372 00020 8b 45 0c mov eax, DWORD PTR _size_extrafield_local$[ebp]
\r
1373 00023 68 50 4b 03 04 push 67324752 ; 04034b50H
\r
1375 00029 be 04 00 00 00 mov esi, 4
\r
1376 0002e 89 45 fc mov DWORD PTR _size_extrafield$[ebp], eax
\r
1377 00031 e8 00 00 00 00 call _zip64local_putValue
\r
1378 00036 83 c4 0c add esp, 12 ; 0000000cH
\r
1381 ; 967 : if (err==ZIP_OK)
\r
1383 00039 85 c0 test eax, eax
\r
1384 0003b 0f 85 f1 00 00
\r
1385 00 jne $LN8@Write_Loca
\r
1388 ; 969 : if(zi->ci.zip64)
\r
1389 ; 970 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)45,2);/* version needed to extract */
\r
1392 00042 8d 70 02 lea esi, DWORD PTR [eax+2]
\r
1393 00045 39 87 b0 00 01
\r
1394 00 cmp DWORD PTR [edi+65712], eax
\r
1395 0004b 74 08 je SHORT $LN20@Write_Loca
\r
1396 0004d 8b 57 2c mov edx, DWORD PTR [edi+44]
\r
1397 00050 6a 2d push 45 ; 0000002dH
\r
1402 00053 eb 06 jmp SHORT $LN34@Write_Loca
\r
1405 ; 972 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)20,2);/* version needed to extract */
\r
1407 00055 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
1408 00058 6a 14 push 20 ; 00000014H
\r
1411 0005b e8 00 00 00 00 call _zip64local_putValue
\r
1412 00060 83 c4 0c add esp, 12 ; 0000000cH
\r
1416 ; 975 : if (err==ZIP_OK)
\r
1418 00063 85 c0 test eax, eax
\r
1419 00065 0f 85 c7 00 00
\r
1420 00 jne $LN8@Write_Loca
\r
1422 ; 976 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->ci.flag,2);
\r
1424 0006b 8b 8f 98 00 00
\r
1425 00 mov ecx, DWORD PTR [edi+152]
\r
1426 00071 8b 57 2c mov edx, DWORD PTR [edi+44]
\r
1430 00077 8d 70 02 lea esi, DWORD PTR [eax+2]
\r
1431 0007a e8 00 00 00 00 call _zip64local_putValue
\r
1432 0007f 83 c4 0c add esp, 12 ; 0000000cH
\r
1435 ; 978 : if (err==ZIP_OK)
\r
1437 00082 85 c0 test eax, eax
\r
1438 00084 0f 85 a8 00 00
\r
1439 00 jne $LN8@Write_Loca
\r
1441 ; 979 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->ci.method,2);
\r
1443 0008a 8b 87 9c 00 00
\r
1444 00 mov eax, DWORD PTR [edi+156]
\r
1445 00090 8b 4f 2c mov ecx, DWORD PTR [edi+44]
\r
1446 00093 6a 00 push 0
\r
1449 00097 e8 00 00 00 00 call _zip64local_putValue
\r
1450 0009c 83 c4 0c add esp, 12 ; 0000000cH
\r
1453 ; 981 : if (err==ZIP_OK)
\r
1455 0009f 85 c0 test eax, eax
\r
1456 000a1 0f 85 8b 00 00
\r
1457 00 jne $LN8@Write_Loca
\r
1459 ; 982 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->ci.dosDate,4);
\r
1461 000a7 8b 97 a4 00 01
\r
1462 00 mov edx, DWORD PTR [edi+65700]
\r
1464 000ae 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
1467 000b3 be 04 00 00 00 mov esi, 4
\r
1468 000b8 e8 00 00 00 00 call _zip64local_putValue
\r
1469 000bd 83 c4 0c add esp, 12 ; 0000000cH
\r
1472 ; 984 : // CRC / Compressed size / Uncompressed size will be filled in later and rewritten later
\r
1473 ; 985 : if (err==ZIP_OK)
\r
1475 000c0 85 c0 test eax, eax
\r
1476 000c2 75 6e jne SHORT $LN8@Write_Loca
\r
1478 ; 986 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4); /* crc 32, unknown */
\r
1480 000c4 8b 4f 2c mov ecx, DWORD PTR [edi+44]
\r
1484 000ca e8 00 00 00 00 call _zip64local_putValue
\r
1485 000cf 83 c4 0c add esp, 12 ; 0000000cH
\r
1487 ; 987 : if (err==ZIP_OK)
\r
1489 000d2 85 c0 test eax, eax
\r
1490 000d4 75 5c jne SHORT $LN8@Write_Loca
\r
1493 ; 989 : if(zi->ci.zip64)
\r
1494 ; 990 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0xFFFFFFFF,4); /* compressed size, unknown */
\r
1497 000d7 39 87 b0 00 01
\r
1498 00 cmp DWORD PTR [edi+65712], eax
\r
1499 000dd 74 08 je SHORT $LN13@Write_Loca
\r
1500 000df 8b 57 2c mov edx, DWORD PTR [edi+44]
\r
1501 000e2 6a ff push -1
\r
1506 000e5 eb 06 jmp SHORT $LN35@Write_Loca
\r
1509 ; 992 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4); /* compressed size, unknown */
\r
1511 000e7 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
1512 000ea 6a 00 push 0
\r
1515 000ed e8 00 00 00 00 call _zip64local_putValue
\r
1516 000f2 83 c4 0c add esp, 12 ; 0000000cH
\r
1519 ; 994 : if (err==ZIP_OK)
\r
1521 000f5 85 c0 test eax, eax
\r
1522 000f7 75 39 jne SHORT $LN8@Write_Loca
\r
1525 ; 996 : if(zi->ci.zip64)
\r
1526 ; 997 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0xFFFFFFFF,4); /* uncompressed size, unknown */
\r
1529 000fa 8d 70 04 lea esi, DWORD PTR [eax+4]
\r
1530 000fd 39 87 b0 00 01
\r
1531 00 cmp DWORD PTR [edi+65712], eax
\r
1532 00103 74 08 je SHORT $LN10@Write_Loca
\r
1533 00105 8b 4f 2c mov ecx, DWORD PTR [edi+44]
\r
1534 00108 6a ff push -1
\r
1539 0010b eb 06 jmp SHORT $LN36@Write_Loca
\r
1542 ; 999 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4); /* uncompressed size, unknown */
\r
1544 0010d 8b 57 2c mov edx, DWORD PTR [edi+44]
\r
1545 00110 6a 00 push 0
\r
1548 00113 e8 00 00 00 00 call _zip64local_putValue
\r
1549 00118 83 c4 0c add esp, 12 ; 0000000cH
\r
1553 ; 1002 : if (err==ZIP_OK)
\r
1555 0011b 85 c0 test eax, eax
\r
1556 0011d 75 13 jne SHORT $LN8@Write_Loca
\r
1558 ; 1003 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)size_filename,2);
\r
1561 00120 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
1564 00125 be 02 00 00 00 mov esi, 2
\r
1565 0012a e8 00 00 00 00 call _zip64local_putValue
\r
1566 0012f 83 c4 0c add esp, 12 ; 0000000cH
\r
1570 ; 1005 : if(zi->ci.zip64)
\r
1572 00132 83 bf b0 00 01
\r
1573 00 00 cmp DWORD PTR [edi+65712], 0
\r
1574 00139 74 08 je SHORT $LN31@Write_Loca
\r
1577 ; 1007 : size_extrafield += 20;
\r
1579 0013b 8b 4d 0c mov ecx, DWORD PTR _size_extrafield_local$[ebp]
\r
1580 0013e 83 c1 14 add ecx, 20 ; 00000014H
\r
1581 00141 eb 03 jmp SHORT $LN7@Write_Loca
\r
1583 00143 8b 4d fc mov ecx, DWORD PTR _size_extrafield$[ebp]
\r
1588 ; 1010 : if (err==ZIP_OK)
\r
1590 00146 85 c0 test eax, eax
\r
1591 00148 0f 85 cb 00 00
\r
1592 00 jne $LN1@Write_Loca
\r
1594 ; 1011 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)size_extrafield,2);
\r
1598 00150 8b 4f 2c mov ecx, DWORD PTR [edi+44]
\r
1600 00154 8d 70 02 lea esi, DWORD PTR [eax+2]
\r
1601 00157 e8 00 00 00 00 call _zip64local_putValue
\r
1602 0015c 8b f0 mov esi, eax
\r
1603 0015e 83 c4 0c add esp, 12 ; 0000000cH
\r
1606 ; 1013 : if ((err==ZIP_OK) && (size_filename > 0))
\r
1608 00161 85 f6 test esi, esi
\r
1609 00163 0f 85 ae 00 00
\r
1610 00 jne $LN28@Write_Loca
\r
1611 00169 85 db test ebx, ebx
\r
1612 0016b 74 23 je SHORT $LN24@Write_Loca
\r
1615 ; 1015 : if (ZWRITE64(zi->z_filefunc,zi->filestream,filename,size_filename)!=size_filename)
\r
1617 0016d 8b 55 08 mov edx, DWORD PTR _filename$[ebp]
\r
1618 00170 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
1619 00173 8b 4f 1c mov ecx, DWORD PTR [edi+28]
\r
1622 00178 8b 57 08 mov edx, DWORD PTR [edi+8]
\r
1625 0017d ff d2 call edx
\r
1626 0017f 83 c4 10 add esp, 16 ; 00000010H
\r
1627 00182 3b c3 cmp eax, ebx
\r
1628 00184 74 0a je SHORT $LN24@Write_Loca
\r
1631 ; 1016 : err = ZIP_ERRNO;
\r
1633 00186 83 c8 ff or eax, -1
\r
1640 0018c 8b e5 mov esp, ebp
\r
1647 ; 1019 : if ((err==ZIP_OK) && (size_extrafield_local > 0))
\r
1649 00190 8b 5d 0c mov ebx, DWORD PTR _size_extrafield_local$[ebp]
\r
1650 00193 85 db test ebx, ebx
\r
1651 00195 74 19 je SHORT $LN25@Write_Loca
\r
1654 ; 1021 : if (ZWRITE64(zi->z_filefunc, zi->filestream, extrafield_local, size_extrafield_local) != size_extrafield_local)
\r
1656 00197 8b 45 10 mov eax, DWORD PTR _extrafield_local$[ebp]
\r
1657 0019a 8b 4f 2c mov ecx, DWORD PTR [edi+44]
\r
1658 0019d 8b 57 1c mov edx, DWORD PTR [edi+28]
\r
1661 001a2 8b 47 08 mov eax, DWORD PTR [edi+8]
\r
1664 001a7 ff d0 call eax
\r
1665 001a9 83 c4 10 add esp, 16 ; 00000010H
\r
1666 001ac 3b c3 cmp eax, ebx
\r
1668 ; 1022 : err = ZIP_ERRNO;
\r
1672 ; 1026 : if ((err==ZIP_OK) && (zi->ci.zip64))
\r
1674 001ae 75 d6 jne SHORT $LN37@Write_Loca
\r
1676 001b0 83 bf b0 00 01
\r
1677 00 00 cmp DWORD PTR [edi+65712], 0
\r
1678 001b7 74 5e je SHORT $LN28@Write_Loca
\r
1681 ; 1028 : // write the Zip64 extended info
\r
1682 ; 1029 : short HeaderID = 1;
\r
1683 ; 1030 : short DataSize = 16;
\r
1684 ; 1031 : ZPOS64_T CompressedSize = 0;
\r
1685 ; 1032 : ZPOS64_T UncompressedSize = 0;
\r
1687 ; 1034 : // Remember position of Zip64 extended info for the local file header. (needed when we update size after done with file)
\r
1688 ; 1035 : zi->ci.pos_zip64extrainfo = ZTELL64(zi->z_filefunc,zi->filestream);
\r
1690 001b9 8b 4f 2c mov ecx, DWORD PTR [edi+44]
\r
1691 001bc 8b c7 mov eax, edi
\r
1692 001be e8 00 00 00 00 call _call_ztell64
\r
1695 ; 1037 : err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (short)HeaderID,2);
\r
1697 001c3 8b 4f 2c mov ecx, DWORD PTR [edi+44]
\r
1698 001c6 6a 00 push 0
\r
1699 001c8 6a 01 push 1
\r
1701 001cb be 02 00 00 00 mov esi, 2
\r
1702 001d0 89 87 b8 00 01
\r
1703 00 mov DWORD PTR [edi+65720], eax
\r
1704 001d6 89 97 bc 00 01
\r
1705 00 mov DWORD PTR [edi+65724], edx
\r
1706 001dc e8 00 00 00 00 call _zip64local_putValue
\r
1708 ; 1038 : err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (short)DataSize,2);
\r
1710 001e1 8b 57 2c mov edx, DWORD PTR [edi+44]
\r
1711 001e4 6a 00 push 0
\r
1712 001e6 6a 10 push 16 ; 00000010H
\r
1714 001e9 e8 00 00 00 00 call _zip64local_putValue
\r
1717 ; 1040 : err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (ZPOS64_T)UncompressedSize,8);
\r
1719 001ee 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
1720 001f1 6a 00 push 0
\r
1721 001f3 6a 00 push 0
\r
1723 001f6 be 08 00 00 00 mov esi, 8
\r
1724 001fb e8 00 00 00 00 call _zip64local_putValue
\r
1726 ; 1041 : err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (ZPOS64_T)CompressedSize,8);
\r
1728 00200 8b 4f 2c mov ecx, DWORD PTR [edi+44]
\r
1729 00203 6a 00 push 0
\r
1730 00205 6a 00 push 0
\r
1732 00208 e8 00 00 00 00 call _zip64local_putValue
\r
1733 0020d 83 c4 30 add esp, 48 ; 00000030H
\r
1740 00213 8b e5 mov esp, ebp
\r
1747 ; 1044 : return err;
\r
1749 00217 8b c6 mov eax, esi
\r
1757 0021c 8b e5 mov esp, ebp
\r
1760 _Write_LocalFileHeader ENDP
\r
1761 ; Function compile flags: /Ogtp
\r
1763 ; COMDAT _zip64local_SearchCentralDir
\r
1765 _uSizeFile$ = -40 ; size = 8
\r
1766 _uPosFound$ = -32 ; size = 8
\r
1767 _uBackRead$ = -24 ; size = 8
\r
1768 _uMaxBack$ = -16 ; size = 8
\r
1769 _uReadSize$82843 = -8 ; size = 4
\r
1770 _buf$ = -4 ; size = 4
\r
1771 _pzlib_filefunc_def$ = 8 ; size = 4
\r
1772 _filestream$ = 12 ; size = 4
\r
1773 _zip64local_SearchCentralDir PROC ; COMDAT
\r
1778 00001 8b ec mov ebp, esp
\r
1779 00003 83 ec 2c sub esp, 44 ; 0000002cH
\r
1782 ; 482 : unsigned char* buf;
\r
1783 ; 483 : ZPOS64_T uSizeFile;
\r
1784 ; 484 : ZPOS64_T uBackRead;
\r
1785 ; 485 : ZPOS64_T uMaxBack=0xffff; /* maximum size of global comment */
\r
1786 ; 486 : ZPOS64_T uPosFound=0;
\r
1788 ; 488 : if (ZSEEK64(*pzlib_filefunc_def,filestream,0,ZLIB_FILEFUNC_SEEK_END) != 0)
\r
1790 00007 8b 5d 08 mov ebx, DWORD PTR _pzlib_filefunc_def$[ebp]
\r
1792 0000b 8b 75 0c mov esi, DWORD PTR _filestream$[ebp]
\r
1794 0000f 33 ff xor edi, edi
\r
1797 00013 8d 57 02 lea edx, DWORD PTR [edi+2]
\r
1798 00016 8b c3 mov eax, ebx
\r
1799 00018 c7 45 f0 ff ff
\r
1800 00 00 mov DWORD PTR _uMaxBack$[ebp], 65535 ; 0000ffffH
\r
1801 0001f 89 7d f4 mov DWORD PTR _uMaxBack$[ebp+4], edi
\r
1802 00022 89 7d e0 mov DWORD PTR _uPosFound$[ebp], edi
\r
1803 00025 89 7d e4 mov DWORD PTR _uPosFound$[ebp+4], edi
\r
1804 00028 e8 00 00 00 00 call _call_zseek64
\r
1805 0002d 83 c4 08 add esp, 8
\r
1806 00030 85 c0 test eax, eax
\r
1807 00032 74 0b je SHORT $LN14@zip64local@5
\r
1808 $LN40@zip64local@5:
\r
1812 00034 33 c0 xor eax, eax
\r
1813 00036 33 d2 xor edx, edx
\r
1820 0003b 8b e5 mov esp, ebp
\r
1823 $LN14@zip64local@5:
\r
1827 ; 492 : uSizeFile = ZTELL64(*pzlib_filefunc_def,filestream);
\r
1829 0003f 8b ce mov ecx, esi
\r
1830 00041 8b c3 mov eax, ebx
\r
1831 00043 e8 00 00 00 00 call _call_ztell64
\r
1832 00048 8b da mov ebx, edx
\r
1833 0004a 8b f0 mov esi, eax
\r
1834 0004c 89 75 d8 mov DWORD PTR _uSizeFile$[ebp], esi
\r
1835 0004f 89 5d dc mov DWORD PTR _uSizeFile$[ebp+4], ebx
\r
1838 ; 494 : if (uMaxBack>uSizeFile)
\r
1840 00052 85 db test ebx, ebx
\r
1841 00054 77 12 ja SHORT $LN13@zip64local@5
\r
1842 00056 72 08 jb SHORT $LN27@zip64local@5
\r
1843 00058 81 fe ff ff 00
\r
1844 00 cmp esi, 65535 ; 0000ffffH
\r
1845 0005e 73 08 jae SHORT $LN13@zip64local@5
\r
1846 $LN27@zip64local@5:
\r
1848 ; 495 : uMaxBack = uSizeFile;
\r
1850 00060 89 75 f0 mov DWORD PTR _uMaxBack$[ebp], esi
\r
1851 00063 89 5d f4 mov DWORD PTR _uMaxBack$[ebp+4], ebx
\r
1852 00066 8b fb mov edi, ebx
\r
1853 $LN13@zip64local@5:
\r
1856 ; 497 : buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4);
\r
1858 00068 68 04 04 00 00 push 1028 ; 00000404H
\r
1859 0006d ff 15 00 00 00
\r
1860 00 call DWORD PTR __imp__malloc
\r
1861 00073 83 c4 04 add esp, 4
\r
1862 00076 89 45 fc mov DWORD PTR _buf$[ebp], eax
\r
1864 ; 498 : if (buf==NULL)
\r
1866 00079 85 c0 test eax, eax
\r
1870 0007b 74 b7 je SHORT $LN40@zip64local@5
\r
1873 ; 501 : uBackRead = 4;
\r
1875 0007d 33 c9 xor ecx, ecx
\r
1876 0007f ba 04 00 00 00 mov edx, 4
\r
1878 ; 502 : while (uBackRead<uMaxBack)
\r
1880 00084 3b cf cmp ecx, edi
\r
1881 00086 0f 87 02 01 00
\r
1882 00 ja $LN31@zip64local@5
\r
1883 0008c 8b 45 f0 mov eax, DWORD PTR _uMaxBack$[ebp]
\r
1884 0008f 72 21 jb SHORT $LN11@zip64local@5
\r
1885 00091 3b d0 cmp edx, eax
\r
1886 00093 0f 83 f5 00 00
\r
1887 00 jae $LN31@zip64local@5
\r
1888 00099 eb 17 jmp SHORT $LN11@zip64local@5
\r
1889 0009b eb 03 8d 49 00 npad 5
\r
1890 $LL34@zip64local@5:
\r
1891 000a0 8b 75 d8 mov esi, DWORD PTR _uSizeFile$[ebp]
\r
1892 000a3 8b 7d f4 mov edi, DWORD PTR _uMaxBack$[ebp+4]
\r
1893 000a6 8b 55 e8 mov edx, DWORD PTR _uBackRead$[ebp]
\r
1894 000a9 8b 4d ec mov ecx, DWORD PTR _uBackRead$[ebp+4]
\r
1895 000ac 8b 5d dc mov ebx, DWORD PTR _uSizeFile$[ebp+4]
\r
1896 000af 8b 45 f0 mov eax, DWORD PTR _uMaxBack$[ebp]
\r
1897 $LN11@zip64local@5:
\r
1900 ; 504 : uLong uReadSize;
\r
1901 ; 505 : ZPOS64_T uReadPos ;
\r
1903 ; 507 : if (uBackRead+BUFREADCOMMENT>uMaxBack)
\r
1905 000b2 81 c2 00 04 00
\r
1906 00 add edx, 1024 ; 00000400H
\r
1907 000b8 83 d1 00 adc ecx, 0
\r
1908 000bb 3b cf cmp ecx, edi
\r
1909 000bd 72 0e jb SHORT $LN9@zip64local@5
\r
1910 000bf 77 04 ja SHORT $LN29@zip64local@5
\r
1911 000c1 3b d0 cmp edx, eax
\r
1912 000c3 76 08 jbe SHORT $LN9@zip64local@5
\r
1913 $LN29@zip64local@5:
\r
1915 ; 508 : uBackRead = uMaxBack;
\r
1917 000c5 89 45 e8 mov DWORD PTR _uBackRead$[ebp], eax
\r
1918 000c8 89 7d ec mov DWORD PTR _uBackRead$[ebp+4], edi
\r
1922 000cb eb 06 jmp SHORT $LN8@zip64local@5
\r
1923 $LN9@zip64local@5:
\r
1925 ; 510 : uBackRead+=BUFREADCOMMENT;
\r
1927 000cd 89 55 e8 mov DWORD PTR _uBackRead$[ebp], edx
\r
1928 000d0 89 4d ec mov DWORD PTR _uBackRead$[ebp+4], ecx
\r
1929 $LN8@zip64local@5:
\r
1931 ; 511 : uReadPos = uSizeFile-uBackRead ;
\r
1933 ; 513 : uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ?
\r
1934 ; 514 : (BUFREADCOMMENT+4) : (uLong)(uSizeFile-uReadPos);
\r
1936 000d3 8b 45 dc mov eax, DWORD PTR _uSizeFile$[ebp+4]
\r
1937 000d6 8b fe mov edi, esi
\r
1938 000d8 2b 7d e8 sub edi, DWORD PTR _uBackRead$[ebp]
\r
1939 000db 8b ce mov ecx, esi
\r
1940 000dd 1b 5d ec sbb ebx, DWORD PTR _uBackRead$[ebp+4]
\r
1941 000e0 2b cf sub ecx, edi
\r
1942 000e2 1b c3 sbb eax, ebx
\r
1943 000e4 85 c0 test eax, eax
\r
1944 000e6 72 13 jb SHORT $LN17@zip64local@5
\r
1945 000e8 77 08 ja SHORT $LN30@zip64local@5
\r
1946 000ea 81 f9 04 04 00
\r
1947 00 cmp ecx, 1028 ; 00000404H
\r
1948 000f0 76 09 jbe SHORT $LN17@zip64local@5
\r
1949 $LN30@zip64local@5:
\r
1950 000f2 c7 45 f8 04 04
\r
1951 00 00 mov DWORD PTR _uReadSize$82843[ebp], 1028 ; 00000404H
\r
1952 000f9 eb 05 jmp SHORT $LN18@zip64local@5
\r
1953 $LN17@zip64local@5:
\r
1954 000fb 2b f7 sub esi, edi
\r
1955 000fd 89 75 f8 mov DWORD PTR _uReadSize$82843[ebp], esi
\r
1956 $LN18@zip64local@5:
\r
1958 ; 515 : if (ZSEEK64(*pzlib_filefunc_def,filestream,uReadPos,ZLIB_FILEFUNC_SEEK_SET)!=0)
\r
1960 00100 8b 75 0c mov esi, DWORD PTR _filestream$[ebp]
\r
1961 00103 8b 45 08 mov eax, DWORD PTR _pzlib_filefunc_def$[ebp]
\r
1964 00108 33 d2 xor edx, edx
\r
1965 0010a e8 00 00 00 00 call _call_zseek64
\r
1966 0010f 83 c4 08 add esp, 8
\r
1967 00112 85 c0 test eax, eax
\r
1968 00114 75 78 jne SHORT $LN31@zip64local@5
\r
1972 ; 518 : if (ZREAD64(*pzlib_filefunc_def,filestream,buf,uReadSize)!=uReadSize)
\r
1974 00116 8b 75 f8 mov esi, DWORD PTR _uReadSize$82843[ebp]
\r
1975 00119 8b 45 fc mov eax, DWORD PTR _buf$[ebp]
\r
1976 0011c 8b 4d 0c mov ecx, DWORD PTR _filestream$[ebp]
\r
1979 00121 8b 45 08 mov eax, DWORD PTR _pzlib_filefunc_def$[ebp]
\r
1980 00124 8b 50 1c mov edx, DWORD PTR [eax+28]
\r
1981 00127 8b 40 04 mov eax, DWORD PTR [eax+4]
\r
1984 0012c ff d0 call eax
\r
1985 0012e 83 c4 10 add esp, 16 ; 00000010H
\r
1986 00131 3b c6 cmp eax, esi
\r
1987 00133 75 59 jne SHORT $LN31@zip64local@5
\r
1991 ; 521 : for (i=(int)uReadSize-3; (i--)>0;)
\r
1993 00135 8d 46 fd lea eax, DWORD PTR [esi-3]
\r
1994 00138 85 c0 test eax, eax
\r
1995 0013a 7e 38 jle SHORT $LN26@zip64local@5
\r
1996 0013c 8d 64 24 00 npad 4
\r
1997 $LL5@zip64local@5:
\r
1999 ; 522 : if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) &&
\r
2000 ; 523 : ((*(buf+i+2))==0x05) && ((*(buf+i+3))==0x06))
\r
2002 00140 8b 4d fc mov ecx, DWORD PTR _buf$[ebp]
\r
2004 00144 80 3c 08 50 cmp BYTE PTR [eax+ecx], 80 ; 00000050H
\r
2005 00148 75 15 jne SHORT $LN3@zip64local@5
\r
2006 0014a 80 7c 08 01 4b cmp BYTE PTR [eax+ecx+1], 75 ; 0000004bH
\r
2007 0014f 75 0e jne SHORT $LN3@zip64local@5
\r
2008 00151 80 7c 08 02 05 cmp BYTE PTR [eax+ecx+2], 5
\r
2009 00156 75 07 jne SHORT $LN3@zip64local@5
\r
2010 00158 80 7c 08 03 06 cmp BYTE PTR [eax+ecx+3], 6
\r
2011 0015d 74 06 je SHORT $LN21@zip64local@5
\r
2012 $LN3@zip64local@5:
\r
2016 ; 521 : for (i=(int)uReadSize-3; (i--)>0;)
\r
2018 0015f 85 c0 test eax, eax
\r
2019 00161 7f dd jg SHORT $LL5@zip64local@5
\r
2024 ; 529 : if (uPosFound!=0)
\r
2026 00163 eb 0f jmp SHORT $LN26@zip64local@5
\r
2027 $LN21@zip64local@5:
\r
2030 ; 525 : uPosFound = uReadPos+i;
\r
2033 00166 03 c7 add eax, edi
\r
2034 00168 13 d3 adc edx, ebx
\r
2035 0016a 89 45 e0 mov DWORD PTR _uPosFound$[ebp], eax
\r
2040 ; 529 : if (uPosFound!=0)
\r
2042 0016d 0b c2 or eax, edx
\r
2043 0016f 89 55 e4 mov DWORD PTR _uPosFound$[ebp+4], edx
\r
2044 00172 75 1a jne SHORT $LN31@zip64local@5
\r
2045 $LN26@zip64local@5:
\r
2047 ; 502 : while (uBackRead<uMaxBack)
\r
2049 00174 8b 4d f4 mov ecx, DWORD PTR _uMaxBack$[ebp+4]
\r
2050 00177 39 4d ec cmp DWORD PTR _uBackRead$[ebp+4], ecx
\r
2051 0017a 0f 82 20 ff ff
\r
2052 ff jb $LL34@zip64local@5
\r
2053 00180 77 0c ja SHORT $LN31@zip64local@5
\r
2054 00182 8b 55 f0 mov edx, DWORD PTR _uMaxBack$[ebp]
\r
2055 00185 39 55 e8 cmp DWORD PTR _uBackRead$[ebp], edx
\r
2056 00188 0f 82 12 ff ff
\r
2057 ff jb $LL34@zip64local@5
\r
2058 $LN31@zip64local@5:
\r
2062 ; 532 : TRYFREE(buf);
\r
2064 0018e 8b 45 fc mov eax, DWORD PTR _buf$[ebp]
\r
2066 00192 ff 15 00 00 00
\r
2067 00 call DWORD PTR __imp__free
\r
2069 ; 533 : return uPosFound;
\r
2071 00198 8b 45 e0 mov eax, DWORD PTR _uPosFound$[ebp]
\r
2072 0019b 8b 55 e4 mov edx, DWORD PTR _uPosFound$[ebp+4]
\r
2073 0019e 83 c4 04 add esp, 4
\r
2080 001a4 8b e5 mov esp, ebp
\r
2083 _zip64local_SearchCentralDir ENDP
\r
2084 ; Function compile flags: /Ogtp
\r
2086 ; COMDAT _zip64local_getLong64
\r
2088 _x$ = -16 ; size = 8
\r
2089 _i$ = -4 ; size = 4
\r
2090 _pX$ = 8 ; size = 4
\r
2091 _zip64local_getLong64 PROC ; COMDAT
\r
2092 ; _pzlib_filefunc_def$ = ecx
\r
2093 ; _filestream$ = eax
\r
2098 00001 8b ec mov ebp, esp
\r
2099 00003 83 ec 10 sub esp, 16 ; 00000010H
\r
2103 00009 8b f8 mov edi, eax
\r
2105 ; 428 : ZPOS64_T x;
\r
2106 ; 429 : int i = 0;
\r
2109 ; 432 : err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
\r
2111 0000b 8d 45 fc lea eax, DWORD PTR _i$[ebp]
\r
2112 0000e 8b f1 mov esi, ecx
\r
2114 00011 c7 45 fc 00 00
\r
2115 00 00 mov DWORD PTR _i$[ebp], 0
\r
2116 00018 e8 00 00 00 00 call _zip64local_getByte
\r
2117 0001d 8b c8 mov ecx, eax
\r
2119 ; 433 : x = (ZPOS64_T)i;
\r
2121 0001f 8b 45 fc mov eax, DWORD PTR _i$[ebp]
\r
2123 00023 83 c4 04 add esp, 4
\r
2124 00026 8b d8 mov ebx, eax
\r
2125 00028 89 55 f4 mov DWORD PTR _x$[ebp+4], edx
\r
2128 ; 435 : if (err==ZIP_OK)
\r
2130 0002b 85 c9 test ecx, ecx
\r
2131 0002d 75 0e jne SHORT $LN9@zip64local@6
\r
2133 ; 436 : err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
\r
2135 0002f 8d 4d fc lea ecx, DWORD PTR _i$[ebp]
\r
2137 00033 e8 00 00 00 00 call _zip64local_getByte
\r
2138 00038 83 c4 04 add esp, 4
\r
2139 0003b 8b c8 mov ecx, eax
\r
2140 $LN9@zip64local@6:
\r
2142 ; 437 : x += ((ZPOS64_T)i)<<8;
\r
2144 0003d 8b 45 fc mov eax, DWORD PTR _i$[ebp]
\r
2146 00041 0f a4 c2 08 shld edx, eax, 8
\r
2147 00045 c1 e0 08 shl eax, 8
\r
2148 00048 03 d8 add ebx, eax
\r
2149 0004a 11 55 f4 adc DWORD PTR _x$[ebp+4], edx
\r
2152 ; 439 : if (err==ZIP_OK)
\r
2154 0004d 85 c9 test ecx, ecx
\r
2155 0004f 75 0e jne SHORT $LN8@zip64local@6
\r
2157 ; 440 : err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
\r
2159 00051 8d 55 fc lea edx, DWORD PTR _i$[ebp]
\r
2161 00055 e8 00 00 00 00 call _zip64local_getByte
\r
2162 0005a 83 c4 04 add esp, 4
\r
2163 0005d 8b c8 mov ecx, eax
\r
2164 $LN8@zip64local@6:
\r
2166 ; 441 : x += ((ZPOS64_T)i)<<16;
\r
2168 0005f 8b 45 fc mov eax, DWORD PTR _i$[ebp]
\r
2170 00063 0f a4 c2 10 shld edx, eax, 16
\r
2171 00067 c1 e0 10 shl eax, 16 ; 00000010H
\r
2172 0006a 03 d8 add ebx, eax
\r
2173 0006c 11 55 f4 adc DWORD PTR _x$[ebp+4], edx
\r
2176 ; 443 : if (err==ZIP_OK)
\r
2178 0006f 85 c9 test ecx, ecx
\r
2179 00071 75 0e jne SHORT $LN7@zip64local@6
\r
2181 ; 444 : err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
\r
2183 00073 8d 45 fc lea eax, DWORD PTR _i$[ebp]
\r
2185 00077 e8 00 00 00 00 call _zip64local_getByte
\r
2186 0007c 83 c4 04 add esp, 4
\r
2187 0007f 8b c8 mov ecx, eax
\r
2188 $LN7@zip64local@6:
\r
2190 ; 445 : x += ((ZPOS64_T)i)<<24;
\r
2192 00081 8b 45 fc mov eax, DWORD PTR _i$[ebp]
\r
2194 00085 0f a4 c2 18 shld edx, eax, 24
\r
2195 00089 c1 e0 18 shl eax, 24 ; 00000018H
\r
2196 0008c 03 d8 add ebx, eax
\r
2197 0008e 11 55 f4 adc DWORD PTR _x$[ebp+4], edx
\r
2200 ; 447 : if (err==ZIP_OK)
\r
2202 00091 85 c9 test ecx, ecx
\r
2203 00093 75 0e jne SHORT $LN6@zip64local@6
\r
2205 ; 448 : err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
\r
2207 00095 8d 4d fc lea ecx, DWORD PTR _i$[ebp]
\r
2209 00099 e8 00 00 00 00 call _zip64local_getByte
\r
2210 0009e 83 c4 04 add esp, 4
\r
2211 000a1 8b c8 mov ecx, eax
\r
2212 $LN6@zip64local@6:
\r
2214 ; 449 : x += ((ZPOS64_T)i)<<32;
\r
2216 000a3 8b 45 fc mov eax, DWORD PTR _i$[ebp]
\r
2218 000a7 83 c3 00 add ebx, 0
\r
2219 000aa 11 45 f4 adc DWORD PTR _x$[ebp+4], eax
\r
2222 ; 451 : if (err==ZIP_OK)
\r
2224 000ad 85 c9 test ecx, ecx
\r
2225 000af 75 0e jne SHORT $LN5@zip64local@6
\r
2227 ; 452 : err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
\r
2229 000b1 8d 55 fc lea edx, DWORD PTR _i$[ebp]
\r
2231 000b5 e8 00 00 00 00 call _zip64local_getByte
\r
2232 000ba 83 c4 04 add esp, 4
\r
2233 000bd 8b c8 mov ecx, eax
\r
2234 $LN5@zip64local@6:
\r
2236 ; 453 : x += ((ZPOS64_T)i)<<40;
\r
2238 000bf 8b 45 fc mov eax, DWORD PTR _i$[ebp]
\r
2240 000c3 c1 e0 08 shl eax, 8
\r
2241 000c6 83 c3 00 add ebx, 0
\r
2242 000c9 11 45 f4 adc DWORD PTR _x$[ebp+4], eax
\r
2245 ; 455 : if (err==ZIP_OK)
\r
2247 000cc 85 c9 test ecx, ecx
\r
2248 000ce 75 0e jne SHORT $LN4@zip64local@6
\r
2250 ; 456 : err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
\r
2252 000d0 8d 45 fc lea eax, DWORD PTR _i$[ebp]
\r
2254 000d4 e8 00 00 00 00 call _zip64local_getByte
\r
2255 000d9 83 c4 04 add esp, 4
\r
2256 000dc 8b c8 mov ecx, eax
\r
2257 $LN4@zip64local@6:
\r
2259 ; 457 : x += ((ZPOS64_T)i)<<48;
\r
2261 000de 8b 45 fc mov eax, DWORD PTR _i$[ebp]
\r
2263 000e2 c1 e0 10 shl eax, 16 ; 00000010H
\r
2264 000e5 83 c3 00 add ebx, 0
\r
2265 000e8 11 45 f4 adc DWORD PTR _x$[ebp+4], eax
\r
2268 ; 459 : if (err==ZIP_OK)
\r
2270 000eb 85 c9 test ecx, ecx
\r
2271 000ed 75 33 jne SHORT $LN2@zip64local@6
\r
2273 ; 460 : err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
\r
2275 000ef 8d 4d fc lea ecx, DWORD PTR _i$[ebp]
\r
2277 000f3 e8 00 00 00 00 call _zip64local_getByte
\r
2278 000f8 8b c8 mov ecx, eax
\r
2279 000fa 83 c4 04 add esp, 4
\r
2281 ; 461 : x += ((ZPOS64_T)i)<<56;
\r
2283 ; 463 : if (err==ZIP_OK)
\r
2285 000fd 85 c9 test ecx, ecx
\r
2286 000ff 75 21 jne SHORT $LN2@zip64local@6
\r
2290 00101 8b 45 fc mov eax, DWORD PTR _i$[ebp]
\r
2292 00105 8b d0 mov edx, eax
\r
2293 00107 8b 45 08 mov eax, DWORD PTR _pX$[ebp]
\r
2294 0010a 33 f6 xor esi, esi
\r
2295 0010c c1 e2 18 shl edx, 24 ; 00000018H
\r
2296 0010f 03 f3 add esi, ebx
\r
2297 00111 13 55 f4 adc edx, DWORD PTR _x$[ebp+4]
\r
2298 00114 89 30 mov DWORD PTR [eax], esi
\r
2299 00116 89 50 04 mov DWORD PTR [eax+4], edx
\r
2302 ; 468 : return err;
\r
2304 00119 8b c1 mov eax, ecx
\r
2311 0011e 8b e5 mov esp, ebp
\r
2314 $LN2@zip64local@6:
\r
2319 00122 8b 45 08 mov eax, DWORD PTR _pX$[ebp]
\r
2325 00127 c7 00 00 00 00
\r
2326 00 mov DWORD PTR [eax], 0
\r
2327 0012d c7 40 04 00 00
\r
2328 00 00 mov DWORD PTR [eax+4], 0
\r
2329 00134 8b c1 mov eax, ecx
\r
2331 00137 8b e5 mov esp, ebp
\r
2334 _zip64local_getLong64 ENDP
\r
2335 ; Function compile flags: /Ogtp
\r
2337 ; COMDAT _zip64local_getLong
\r
2339 _i$ = -4 ; size = 4
\r
2340 _pX$ = 8 ; size = 4
\r
2341 _zip64local_getLong PROC ; COMDAT
\r
2342 ; _pzlib_filefunc_def$ = ecx
\r
2343 ; _filestream$ = eax
\r
2348 00001 8b ec mov ebp, esp
\r
2353 00007 8b f8 mov edi, eax
\r
2356 ; 398 : int i = 0;
\r
2359 ; 401 : err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
\r
2361 00009 8d 45 fc lea eax, DWORD PTR _i$[ebp]
\r
2362 0000c 8b f1 mov esi, ecx
\r
2364 0000f c7 45 fc 00 00
\r
2365 00 00 mov DWORD PTR _i$[ebp], 0
\r
2366 00016 e8 00 00 00 00 call _zip64local_getByte
\r
2368 ; 402 : x = (uLong)i;
\r
2370 0001b 8b 4d fc mov ecx, DWORD PTR _i$[ebp]
\r
2371 0001e 83 c4 04 add esp, 4
\r
2372 00021 8b d9 mov ebx, ecx
\r
2375 ; 404 : if (err==ZIP_OK)
\r
2377 00023 85 c0 test eax, eax
\r
2378 00025 75 0f jne SHORT $LN5@zip64local@7
\r
2380 ; 405 : err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
\r
2382 00027 8d 4d fc lea ecx, DWORD PTR _i$[ebp]
\r
2384 0002b e8 00 00 00 00 call _zip64local_getByte
\r
2385 00030 8b 4d fc mov ecx, DWORD PTR _i$[ebp]
\r
2386 00033 83 c4 04 add esp, 4
\r
2387 $LN5@zip64local@7:
\r
2389 ; 406 : x += ((uLong)i)<<8;
\r
2391 00036 8b d1 mov edx, ecx
\r
2392 00038 c1 e2 08 shl edx, 8
\r
2393 0003b 03 da add ebx, edx
\r
2396 ; 408 : if (err==ZIP_OK)
\r
2398 0003d 85 c0 test eax, eax
\r
2399 0003f 75 0f jne SHORT $LN4@zip64local@7
\r
2401 ; 409 : err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
\r
2403 00041 8d 45 fc lea eax, DWORD PTR _i$[ebp]
\r
2405 00045 e8 00 00 00 00 call _zip64local_getByte
\r
2406 0004a 8b 4d fc mov ecx, DWORD PTR _i$[ebp]
\r
2407 0004d 83 c4 04 add esp, 4
\r
2408 $LN4@zip64local@7:
\r
2410 ; 410 : x += ((uLong)i)<<16;
\r
2412 00050 c1 e1 10 shl ecx, 16 ; 00000010H
\r
2413 00053 03 d9 add ebx, ecx
\r
2416 ; 412 : if (err==ZIP_OK)
\r
2418 00055 85 c0 test eax, eax
\r
2419 00057 75 24 jne SHORT $LN8@zip64local@7
\r
2421 ; 413 : err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
\r
2423 00059 8d 4d fc lea ecx, DWORD PTR _i$[ebp]
\r
2425 0005d e8 00 00 00 00 call _zip64local_getByte
\r
2426 00062 83 c4 04 add esp, 4
\r
2428 ; 414 : x += ((uLong)i)<<24;
\r
2430 ; 416 : if (err==ZIP_OK)
\r
2432 00065 85 c0 test eax, eax
\r
2433 00067 75 14 jne SHORT $LN8@zip64local@7
\r
2437 00069 8b 55 fc mov edx, DWORD PTR _i$[ebp]
\r
2438 0006c 8b 4d 08 mov ecx, DWORD PTR _pX$[ebp]
\r
2440 00070 c1 e2 18 shl edx, 24 ; 00000018H
\r
2441 00073 03 d3 add edx, ebx
\r
2443 00076 89 11 mov DWORD PTR [ecx], edx
\r
2446 ; 420 : return err;
\r
2449 00079 8b e5 mov esp, ebp
\r
2452 $LN8@zip64local@7:
\r
2457 0007d 8b 55 08 mov edx, DWORD PTR _pX$[ebp]
\r
2460 00082 c7 02 00 00 00
\r
2461 00 mov DWORD PTR [edx], 0
\r
2464 ; 420 : return err;
\r
2467 00089 8b e5 mov esp, ebp
\r
2470 _zip64local_getLong ENDP
\r
2471 ; Function compile flags: /Ogtp
\r
2473 ; COMDAT _zip64local_getShort
\r
2475 _i$ = -4 ; size = 4
\r
2476 _pX$ = 8 ; size = 4
\r
2477 _zip64local_getShort PROC ; COMDAT
\r
2478 ; _pzlib_filefunc_def$ = ecx
\r
2479 ; _filestream$ = eax
\r
2484 00001 8b ec mov ebp, esp
\r
2489 00007 8b f8 mov edi, eax
\r
2492 ; 376 : int i = 0;
\r
2495 ; 379 : err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
\r
2497 00009 8d 45 fc lea eax, DWORD PTR _i$[ebp]
\r
2498 0000c 8b f1 mov esi, ecx
\r
2500 0000f c7 45 fc 00 00
\r
2501 00 00 mov DWORD PTR _i$[ebp], 0
\r
2502 00016 e8 00 00 00 00 call _zip64local_getByte
\r
2504 ; 380 : x = (uLong)i;
\r
2506 0001b 8b 5d fc mov ebx, DWORD PTR _i$[ebp]
\r
2507 0001e 83 c4 04 add esp, 4
\r
2510 ; 382 : if (err==ZIP_OK)
\r
2512 00021 85 c0 test eax, eax
\r
2513 00023 75 24 jne SHORT $LN6@zip64local@8
\r
2515 ; 383 : err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);
\r
2517 00025 8d 4d fc lea ecx, DWORD PTR _i$[ebp]
\r
2519 00029 e8 00 00 00 00 call _zip64local_getByte
\r
2520 0002e 83 c4 04 add esp, 4
\r
2522 ; 384 : x += ((uLong)i)<<8;
\r
2524 ; 386 : if (err==ZIP_OK)
\r
2526 00031 85 c0 test eax, eax
\r
2527 00033 75 14 jne SHORT $LN6@zip64local@8
\r
2531 00035 8b 55 fc mov edx, DWORD PTR _i$[ebp]
\r
2532 00038 8b 4d 08 mov ecx, DWORD PTR _pX$[ebp]
\r
2534 0003c c1 e2 08 shl edx, 8
\r
2535 0003f 03 d3 add edx, ebx
\r
2537 00042 89 11 mov DWORD PTR [ecx], edx
\r
2540 ; 390 : return err;
\r
2543 00045 8b e5 mov esp, ebp
\r
2546 $LN6@zip64local@8:
\r
2551 00049 8b 55 08 mov edx, DWORD PTR _pX$[ebp]
\r
2554 0004e c7 02 00 00 00
\r
2555 00 mov DWORD PTR [edx], 0
\r
2558 ; 390 : return err;
\r
2561 00055 8b e5 mov esp, ebp
\r
2564 _zip64local_getShort ENDP
\r
2565 ; Function compile flags: /Ogtp
\r
2567 ; COMDAT _add_data_in_datablock
\r
2569 _from_copy$ = -4 ; size = 4
\r
2570 _ll$ = 8 ; size = 4
\r
2571 _buf$ = 12 ; size = 4
\r
2572 _len$ = 16 ; size = 4
\r
2573 _add_data_in_datablock PROC ; COMDAT
\r
2578 00001 8b ec mov ebp, esp
\r
2581 00005 8b 5d 08 mov ebx, DWORD PTR _ll$[ebp]
\r
2583 00009 8b 7d 10 mov edi, DWORD PTR _len$[ebp]
\r
2585 ; 227 : linkedlist_datablock_internal* ldi;
\r
2586 ; 228 : const unsigned char* from_copy;
\r
2588 ; 230 : if (ll==NULL)
\r
2590 0000c 85 db test ebx, ebx
\r
2591 0000e 75 0b jne SHORT $LN12@add_data_i
\r
2595 ; 231 : return ZIP_INTERNALERROR;
\r
2597 00011 b8 98 ff ff ff mov eax, -104 ; ffffff98H
\r
2602 00017 8b e5 mov esp, ebp
\r
2608 ; 233 : if (ll->last_block == NULL)
\r
2610 0001b 83 7b 04 00 cmp DWORD PTR [ebx+4], 0
\r
2611 0001f 75 0e jne SHORT $LN10@add_data_i
\r
2614 ; 235 : ll->first_block = ll->last_block = allocate_new_datablock();
\r
2616 00021 e8 00 00 00 00 call _allocate_new_datablock
\r
2617 00026 89 43 04 mov DWORD PTR [ebx+4], eax
\r
2618 00029 89 03 mov DWORD PTR [ebx], eax
\r
2620 ; 236 : if (ll->first_block == NULL)
\r
2622 0002b 85 c0 test eax, eax
\r
2624 ; 237 : return ZIP_INTERNALERROR;
\r
2626 0002d 74 e1 je SHORT $LN22@add_data_i
\r
2631 ; 240 : ldi = ll->last_block;
\r
2632 ; 241 : from_copy = (unsigned char*)buf;
\r
2634 0002f 8b 45 0c mov eax, DWORD PTR _buf$[ebp]
\r
2636 00033 8b 73 04 mov esi, DWORD PTR [ebx+4]
\r
2637 00036 89 45 fc mov DWORD PTR _from_copy$[ebp], eax
\r
2640 ; 243 : while (len>0)
\r
2642 00039 85 ff test edi, edi
\r
2643 0003b 74 53 je SHORT $LN8@add_data_i
\r
2644 0003d 8d 49 00 npad 3
\r
2648 ; 245 : uInt copy_this;
\r
2650 ; 247 : unsigned char* to_copy;
\r
2652 ; 249 : if (ldi->avail_in_this_block==0)
\r
2654 00040 83 7e 04 00 cmp DWORD PTR [esi+4], 0
\r
2655 00044 75 10 jne SHORT $LN7@add_data_i
\r
2658 ; 251 : ldi->next_datablock = allocate_new_datablock();
\r
2660 00046 e8 00 00 00 00 call _allocate_new_datablock
\r
2661 0004b 89 06 mov DWORD PTR [esi], eax
\r
2663 ; 252 : if (ldi->next_datablock == NULL)
\r
2665 0004d 85 c0 test eax, eax
\r
2666 0004f 74 48 je SHORT $LN17@add_data_i
\r
2668 ; 254 : ldi = ldi->next_datablock ;
\r
2670 00051 8b f0 mov esi, eax
\r
2672 ; 255 : ll->last_block = ldi;
\r
2674 00053 89 73 04 mov DWORD PTR [ebx+4], esi
\r
2679 ; 258 : if (ldi->avail_in_this_block < len)
\r
2681 00056 8b 4e 04 mov ecx, DWORD PTR [esi+4]
\r
2682 00059 3b cf cmp ecx, edi
\r
2684 ; 259 : copy_this = (uInt)ldi->avail_in_this_block;
\r
2687 0005b 72 02 jb SHORT $LN4@add_data_i
\r
2689 ; 261 : copy_this = (uInt)len;
\r
2691 0005d 8b cf mov ecx, edi
\r
2695 ; 263 : to_copy = &(ldi->data[ldi->filled_in_this_block]);
\r
2697 0005f 8b 56 08 mov edx, DWORD PTR [esi+8]
\r
2698 00062 8d 44 32 10 lea eax, DWORD PTR [edx+esi+16]
\r
2701 ; 265 : for (i=0;i<copy_this;i++)
\r
2703 00066 85 c9 test ecx, ecx
\r
2704 00068 74 16 je SHORT $LN1@add_data_i
\r
2705 0006a 8b 7d fc mov edi, DWORD PTR _from_copy$[ebp]
\r
2706 0006d 2b f8 sub edi, eax
\r
2707 0006f 8b d1 mov edx, ecx
\r
2710 ; 266 : *(to_copy+i)=*(from_copy+i);
\r
2712 00071 8a 1c 07 mov bl, BYTE PTR [edi+eax]
\r
2713 00074 88 18 mov BYTE PTR [eax], bl
\r
2716 00078 75 f7 jne SHORT $LL3@add_data_i
\r
2719 ; 265 : for (i=0;i<copy_this;i++)
\r
2721 0007a 8b 5d 08 mov ebx, DWORD PTR _ll$[ebp]
\r
2722 0007d 8b 7d 10 mov edi, DWORD PTR _len$[ebp]
\r
2726 ; 268 : ldi->filled_in_this_block += copy_this;
\r
2728 00080 01 4e 08 add DWORD PTR [esi+8], ecx
\r
2730 ; 269 : ldi->avail_in_this_block -= copy_this;
\r
2732 00083 29 4e 04 sub DWORD PTR [esi+4], ecx
\r
2734 ; 270 : from_copy += copy_this ;
\r
2736 00086 01 4d fc add DWORD PTR _from_copy$[ebp], ecx
\r
2738 ; 271 : len -= copy_this;
\r
2740 00089 2b f9 sub edi, ecx
\r
2741 0008b 89 7d 10 mov DWORD PTR _len$[ebp], edi
\r
2742 0008e 75 b0 jne SHORT $LL9@add_data_i
\r
2748 ; 273 : return ZIP_OK;
\r
2750 00092 33 c0 xor eax, eax
\r
2755 00095 8b e5 mov esp, ebp
\r
2762 ; 253 : return ZIP_INTERNALERROR;
\r
2764 0009b b8 98 ff ff ff mov eax, -104 ; ffffff98H
\r
2769 000a1 8b e5 mov esp, ebp
\r
2772 _add_data_in_datablock ENDP
\r
2773 ; Function compile flags: /Ogtp
\r
2775 ; COMDAT _free_linkedlist
\r
2777 _free_linkedlist PROC ; COMDAT
\r
2780 ; 220 : free_datablock(ll->first_block);
\r
2782 00000 8b 06 mov eax, DWORD PTR [esi]
\r
2783 00002 e8 00 00 00 00 call _free_datablock
\r
2785 ; 221 : ll->first_block = ll->last_block = NULL;
\r
2787 00007 c7 46 04 00 00
\r
2788 00 00 mov DWORD PTR [esi+4], 0
\r
2789 0000e c7 06 00 00 00
\r
2790 00 mov DWORD PTR [esi], 0
\r
2795 _free_linkedlist ENDP
\r
2796 ; Function compile flags: /Ogtp
\r
2797 ; File c:\workspaces\sysdyn\org.simantics.fmu\fmusolution\zlib-1.2.6\contrib\minizip\crypt.h
\r
2799 ; COMDAT _init_keys
\r
2801 _init_keys PROC ; COMDAT
\r
2804 ; _pcrc_32_tab$ = eax
\r
2810 00002 8b f1 mov esi, ecx
\r
2812 00005 8b da mov ebx, edx
\r
2813 00007 8b f8 mov edi, eax
\r
2815 ; 67 : *(pkeys+0) = 305419896L;
\r
2817 00009 c7 06 78 56 34
\r
2818 12 mov DWORD PTR [esi], 305419896 ; 12345678H
\r
2820 ; 68 : *(pkeys+1) = 591751049L;
\r
2822 0000f c7 46 04 89 67
\r
2823 45 23 mov DWORD PTR [esi+4], 591751049 ; 23456789H
\r
2825 ; 69 : *(pkeys+2) = 878082192L;
\r
2827 00016 c7 46 08 90 78
\r
2828 56 34 mov DWORD PTR [esi+8], 878082192 ; 34567890H
\r
2830 ; 70 : while (*passwd != '\0') {
\r
2832 0001d 8a 03 mov al, BYTE PTR [ebx]
\r
2833 0001f 84 c0 test al, al
\r
2834 00021 74 10 je SHORT $LN1@init_keys
\r
2837 ; 71 : update_keys(pkeys,pcrc_32_tab,(int)*passwd);
\r
2839 00023 0f be c0 movsx eax, al
\r
2840 00026 e8 00 00 00 00 call _update_keys
\r
2841 0002b 8a 43 01 mov al, BYTE PTR [ebx+1]
\r
2846 0002f 84 c0 test al, al
\r
2847 00031 75 f0 jne SHORT $LL2@init_keys
\r
2858 ; Function compile flags: /Ogtp
\r
2859 ; File c:\workspaces\sysdyn\org.simantics.fmu\fmusolution\zlib-1.2.6\contrib\minizip\zip.c
\r
2860 ; COMDAT _zip64local_SearchCentralDir64
\r
2862 _relativeOffset$ = -40 ; size = 8
\r
2863 _uSizeFile$ = -40 ; size = 8
\r
2864 _uPosFound$ = -32 ; size = 8
\r
2865 _uBackRead$ = -24 ; size = 8
\r
2866 _uMaxBack$ = -16 ; size = 8
\r
2867 _uReadSize$82883 = -8 ; size = 4
\r
2868 _uL$ = -4 ; size = 4
\r
2869 _buf$ = -4 ; size = 4
\r
2870 _pzlib_filefunc_def$ = 8 ; size = 4
\r
2871 _filestream$ = 12 ; size = 4
\r
2872 _zip64local_SearchCentralDir64 PROC ; COMDAT
\r
2877 00001 8b ec mov ebp, esp
\r
2878 00003 83 ec 2c sub esp, 44 ; 0000002cH
\r
2880 ; 544 : unsigned char* buf;
\r
2881 ; 545 : ZPOS64_T uSizeFile;
\r
2882 ; 546 : ZPOS64_T uBackRead;
\r
2883 ; 547 : ZPOS64_T uMaxBack=0xffff; /* maximum size of global comment */
\r
2884 ; 548 : ZPOS64_T uPosFound=0;
\r
2886 ; 550 : ZPOS64_T relativeOffset;
\r
2888 ; 552 : if (ZSEEK64(*pzlib_filefunc_def,filestream,0,ZLIB_FILEFUNC_SEEK_END) != 0)
\r
2890 00006 8b 45 08 mov eax, DWORD PTR _pzlib_filefunc_def$[ebp]
\r
2892 0000a 8b 5d 0c mov ebx, DWORD PTR _filestream$[ebp]
\r
2895 0000f 33 ff xor edi, edi
\r
2898 00013 8d 57 02 lea edx, DWORD PTR [edi+2]
\r
2899 00016 8b f3 mov esi, ebx
\r
2900 00018 c7 45 f0 ff ff
\r
2901 00 00 mov DWORD PTR _uMaxBack$[ebp], 65535 ; 0000ffffH
\r
2902 0001f 89 7d f4 mov DWORD PTR _uMaxBack$[ebp+4], edi
\r
2903 00022 89 7d e0 mov DWORD PTR _uPosFound$[ebp], edi
\r
2904 00025 89 7d e4 mov DWORD PTR _uPosFound$[ebp+4], edi
\r
2905 00028 e8 00 00 00 00 call _call_zseek64
\r
2906 0002d 83 c4 08 add esp, 8
\r
2907 00030 85 c0 test eax, eax
\r
2908 00032 74 0b je SHORT $LN25@zip64local@9
\r
2909 $LN50@zip64local@9:
\r
2913 00034 33 c0 xor eax, eax
\r
2914 00036 33 d2 xor edx, edx
\r
2921 0003b 8b e5 mov esp, ebp
\r
2924 $LN25@zip64local@9:
\r
2927 ; 555 : uSizeFile = ZTELL64(*pzlib_filefunc_def,filestream);
\r
2929 0003f 8b 45 08 mov eax, DWORD PTR _pzlib_filefunc_def$[ebp]
\r
2930 00042 8b cb mov ecx, ebx
\r
2931 00044 e8 00 00 00 00 call _call_ztell64
\r
2932 00049 8b f0 mov esi, eax
\r
2933 0004b 89 75 d8 mov DWORD PTR _uSizeFile$[ebp], esi
\r
2934 0004e 89 55 dc mov DWORD PTR _uSizeFile$[ebp+4], edx
\r
2937 ; 557 : if (uMaxBack>uSizeFile)
\r
2939 00051 85 d2 test edx, edx
\r
2940 00053 77 12 ja SHORT $LN24@zip64local@9
\r
2941 00055 72 08 jb SHORT $LN38@zip64local@9
\r
2942 00057 81 fe ff ff 00
\r
2943 00 cmp esi, 65535 ; 0000ffffH
\r
2944 0005d 73 08 jae SHORT $LN24@zip64local@9
\r
2945 $LN38@zip64local@9:
\r
2947 ; 558 : uMaxBack = uSizeFile;
\r
2949 0005f 89 75 f0 mov DWORD PTR _uMaxBack$[ebp], esi
\r
2950 00062 89 55 f4 mov DWORD PTR _uMaxBack$[ebp+4], edx
\r
2951 00065 8b fa mov edi, edx
\r
2952 $LN24@zip64local@9:
\r
2955 ; 560 : buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4);
\r
2957 00067 68 04 04 00 00 push 1028 ; 00000404H
\r
2958 0006c ff 15 00 00 00
\r
2959 00 call DWORD PTR __imp__malloc
\r
2960 00072 83 c4 04 add esp, 4
\r
2961 00075 89 45 fc mov DWORD PTR _buf$[ebp], eax
\r
2963 ; 561 : if (buf==NULL)
\r
2965 00078 85 c0 test eax, eax
\r
2969 0007a 74 b8 je SHORT $LN50@zip64local@9
\r
2972 ; 564 : uBackRead = 4;
\r
2974 0007c 33 c9 xor ecx, ecx
\r
2975 0007e ba 04 00 00 00 mov edx, 4
\r
2977 ; 565 : while (uBackRead<uMaxBack)
\r
2979 00083 3b cf cmp ecx, edi
\r
2980 00085 0f 87 06 01 00
\r
2981 00 ja $LN42@zip64local@9
\r
2982 0008b 8b 45 f0 mov eax, DWORD PTR _uMaxBack$[ebp]
\r
2983 0008e 72 1f jb SHORT $LN22@zip64local@9
\r
2984 00090 3b d0 cmp edx, eax
\r
2985 00092 0f 83 f9 00 00
\r
2986 00 jae $LN42@zip64local@9
\r
2987 00098 eb 15 jmp SHORT $LN22@zip64local@9
\r
2988 0009a 8d 9b 00 00 00
\r
2990 $LL45@zip64local@9:
\r
2991 000a0 8b 75 d8 mov esi, DWORD PTR _uSizeFile$[ebp]
\r
2992 000a3 8b 7d f4 mov edi, DWORD PTR _uMaxBack$[ebp+4]
\r
2993 000a6 8b 55 e8 mov edx, DWORD PTR _uBackRead$[ebp]
\r
2994 000a9 8b 4d ec mov ecx, DWORD PTR _uBackRead$[ebp+4]
\r
2995 000ac 8b 45 f0 mov eax, DWORD PTR _uMaxBack$[ebp]
\r
2996 $LN22@zip64local@9:
\r
2999 ; 567 : uLong uReadSize;
\r
3000 ; 568 : ZPOS64_T uReadPos;
\r
3002 ; 570 : if (uBackRead+BUFREADCOMMENT>uMaxBack)
\r
3004 000af 81 c2 00 04 00
\r
3005 00 add edx, 1024 ; 00000400H
\r
3006 000b5 83 d1 00 adc ecx, 0
\r
3007 000b8 3b cf cmp ecx, edi
\r
3008 000ba 72 0e jb SHORT $LN20@zip64local@9
\r
3009 000bc 77 04 ja SHORT $LN40@zip64local@9
\r
3010 000be 3b d0 cmp edx, eax
\r
3011 000c0 76 08 jbe SHORT $LN20@zip64local@9
\r
3012 $LN40@zip64local@9:
\r
3014 ; 571 : uBackRead = uMaxBack;
\r
3016 000c2 89 45 e8 mov DWORD PTR _uBackRead$[ebp], eax
\r
3017 000c5 89 7d ec mov DWORD PTR _uBackRead$[ebp+4], edi
\r
3021 000c8 eb 06 jmp SHORT $LN19@zip64local@9
\r
3022 $LN20@zip64local@9:
\r
3024 ; 573 : uBackRead+=BUFREADCOMMENT;
\r
3026 000ca 89 55 e8 mov DWORD PTR _uBackRead$[ebp], edx
\r
3027 000cd 89 4d ec mov DWORD PTR _uBackRead$[ebp+4], ecx
\r
3028 $LN19@zip64local@9:
\r
3030 ; 574 : uReadPos = uSizeFile-uBackRead ;
\r
3032 000d0 8b 5d dc mov ebx, DWORD PTR _uSizeFile$[ebp+4]
\r
3035 ; 576 : uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ?
\r
3036 ; 577 : (BUFREADCOMMENT+4) : (uLong)(uSizeFile-uReadPos);
\r
3038 000d3 8b 45 dc mov eax, DWORD PTR _uSizeFile$[ebp+4]
\r
3039 000d6 8b fe mov edi, esi
\r
3040 000d8 2b 7d e8 sub edi, DWORD PTR _uBackRead$[ebp]
\r
3041 000db 8b ce mov ecx, esi
\r
3042 000dd 1b 5d ec sbb ebx, DWORD PTR _uBackRead$[ebp+4]
\r
3043 000e0 2b cf sub ecx, edi
\r
3044 000e2 1b c3 sbb eax, ebx
\r
3045 000e4 85 c0 test eax, eax
\r
3046 000e6 72 13 jb SHORT $LN28@zip64local@9
\r
3047 000e8 77 08 ja SHORT $LN41@zip64local@9
\r
3048 000ea 81 f9 04 04 00
\r
3049 00 cmp ecx, 1028 ; 00000404H
\r
3050 000f0 76 09 jbe SHORT $LN28@zip64local@9
\r
3051 $LN41@zip64local@9:
\r
3052 000f2 c7 45 f8 04 04
\r
3053 00 00 mov DWORD PTR _uReadSize$82883[ebp], 1028 ; 00000404H
\r
3054 000f9 eb 05 jmp SHORT $LN29@zip64local@9
\r
3055 $LN28@zip64local@9:
\r
3056 000fb 2b f7 sub esi, edi
\r
3057 000fd 89 75 f8 mov DWORD PTR _uReadSize$82883[ebp], esi
\r
3058 $LN29@zip64local@9:
\r
3060 ; 578 : if (ZSEEK64(*pzlib_filefunc_def,filestream,uReadPos,ZLIB_FILEFUNC_SEEK_SET)!=0)
\r
3062 00100 8b 75 0c mov esi, DWORD PTR _filestream$[ebp]
\r
3063 00103 8b 45 08 mov eax, DWORD PTR _pzlib_filefunc_def$[ebp]
\r
3066 00108 33 d2 xor edx, edx
\r
3067 0010a e8 00 00 00 00 call _call_zseek64
\r
3068 0010f 83 c4 08 add esp, 8
\r
3069 00112 85 c0 test eax, eax
\r
3070 00114 75 78 jne SHORT $LN46@zip64local@9
\r
3074 ; 581 : if (ZREAD64(*pzlib_filefunc_def,filestream,buf,uReadSize)!=uReadSize)
\r
3076 00116 8b 75 f8 mov esi, DWORD PTR _uReadSize$82883[ebp]
\r
3077 00119 8b 45 fc mov eax, DWORD PTR _buf$[ebp]
\r
3078 0011c 8b 4d 0c mov ecx, DWORD PTR _filestream$[ebp]
\r
3081 00121 8b 45 08 mov eax, DWORD PTR _pzlib_filefunc_def$[ebp]
\r
3082 00124 8b 50 1c mov edx, DWORD PTR [eax+28]
\r
3083 00127 8b 40 04 mov eax, DWORD PTR [eax+4]
\r
3086 0012c ff d0 call eax
\r
3087 0012e 83 c4 10 add esp, 16 ; 00000010H
\r
3088 00131 3b c6 cmp eax, esi
\r
3089 00133 75 59 jne SHORT $LN46@zip64local@9
\r
3093 ; 584 : for (i=(int)uReadSize-3; (i--)>0;)
\r
3095 00135 8d 46 fd lea eax, DWORD PTR [esi-3]
\r
3096 00138 85 c0 test eax, eax
\r
3097 0013a 7e 38 jle SHORT $LN37@zip64local@9
\r
3098 0013c 8d 64 24 00 npad 4
\r
3099 $LL16@zip64local@9:
\r
3102 ; 586 : // Signature "0x07064b50" Zip64 end of central directory locater
\r
3103 ; 587 : if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) && ((*(buf+i+2))==0x06) && ((*(buf+i+3))==0x07))
\r
3105 00140 8b 4d fc mov ecx, DWORD PTR _buf$[ebp]
\r
3107 00144 80 3c 08 50 cmp BYTE PTR [eax+ecx], 80 ; 00000050H
\r
3108 00148 75 15 jne SHORT $LN14@zip64local@9
\r
3109 0014a 80 7c 08 01 4b cmp BYTE PTR [eax+ecx+1], 75 ; 0000004bH
\r
3110 0014f 75 0e jne SHORT $LN14@zip64local@9
\r
3111 00151 80 7c 08 02 06 cmp BYTE PTR [eax+ecx+2], 6
\r
3112 00156 75 07 jne SHORT $LN14@zip64local@9
\r
3113 00158 80 7c 08 03 07 cmp BYTE PTR [eax+ecx+3], 7
\r
3114 0015d 74 06 je SHORT $LN32@zip64local@9
\r
3115 $LN14@zip64local@9:
\r
3119 ; 584 : for (i=(int)uReadSize-3; (i--)>0;)
\r
3121 0015f 85 c0 test eax, eax
\r
3122 00161 7f dd jg SHORT $LL16@zip64local@9
\r
3128 ; 594 : if (uPosFound!=0)
\r
3130 00163 eb 0f jmp SHORT $LN37@zip64local@9
\r
3131 $LN32@zip64local@9:
\r
3134 ; 589 : uPosFound = uReadPos+i;
\r
3137 00166 03 c7 add eax, edi
\r
3138 00168 13 d3 adc edx, ebx
\r
3139 0016a 89 45 e0 mov DWORD PTR _uPosFound$[ebp], eax
\r
3145 ; 594 : if (uPosFound!=0)
\r
3147 0016d 0b c2 or eax, edx
\r
3148 0016f 89 55 e4 mov DWORD PTR _uPosFound$[ebp+4], edx
\r
3149 00172 75 1a jne SHORT $LN46@zip64local@9
\r
3150 $LN37@zip64local@9:
\r
3152 ; 565 : while (uBackRead<uMaxBack)
\r
3154 00174 8b 4d f4 mov ecx, DWORD PTR _uMaxBack$[ebp+4]
\r
3155 00177 39 4d ec cmp DWORD PTR _uBackRead$[ebp+4], ecx
\r
3156 0017a 0f 82 20 ff ff
\r
3157 ff jb $LL45@zip64local@9
\r
3158 00180 77 0c ja SHORT $LN46@zip64local@9
\r
3159 00182 8b 55 f0 mov edx, DWORD PTR _uMaxBack$[ebp]
\r
3160 00185 39 55 e8 cmp DWORD PTR _uBackRead$[ebp], edx
\r
3161 00188 0f 82 12 ff ff
\r
3162 ff jb $LL45@zip64local@9
\r
3163 $LN46@zip64local@9:
\r
3164 0018e 8b 5d 0c mov ebx, DWORD PTR _filestream$[ebp]
\r
3165 $LN42@zip64local@9:
\r
3170 ; 598 : TRYFREE(buf);
\r
3172 00191 8b 45 fc mov eax, DWORD PTR _buf$[ebp]
\r
3174 00195 ff 15 00 00 00
\r
3175 00 call DWORD PTR __imp__free
\r
3177 ; 599 : if (uPosFound == 0)
\r
3179 0019b 8b 45 e0 mov eax, DWORD PTR _uPosFound$[ebp]
\r
3180 0019e 8b 4d e4 mov ecx, DWORD PTR _uPosFound$[ebp+4]
\r
3181 001a1 8b d0 mov edx, eax
\r
3182 001a3 83 c4 04 add esp, 4
\r
3183 001a6 0b d1 or edx, ecx
\r
3187 001a8 0f 84 86 fe ff
\r
3188 ff je $LN50@zip64local@9
\r
3191 ; 602 : /* Zip64 end of central directory locator */
\r
3192 ; 603 : if (ZSEEK64(*pzlib_filefunc_def,filestream, uPosFound,ZLIB_FILEFUNC_SEEK_SET)!=0)
\r
3194 001ae 8b 7d 08 mov edi, DWORD PTR _pzlib_filefunc_def$[ebp]
\r
3197 001b3 33 d2 xor edx, edx
\r
3198 001b5 8b f3 mov esi, ebx
\r
3199 001b7 8b c7 mov eax, edi
\r
3200 001b9 e8 00 00 00 00 call _call_zseek64
\r
3201 001be 83 c4 08 add esp, 8
\r
3202 001c1 85 c0 test eax, eax
\r
3206 001c3 0f 85 6b fe ff
\r
3207 ff jne $LN50@zip64local@9
\r
3210 ; 606 : /* the signature, already checked */
\r
3211 ; 607 : if (zip64local_getLong(pzlib_filefunc_def,filestream,&uL)!=ZIP_OK)
\r
3213 001c9 8d 45 fc lea eax, DWORD PTR _uL$[ebp]
\r
3215 001cd 8b c3 mov eax, ebx
\r
3216 001cf 8b cf mov ecx, edi
\r
3217 001d1 e8 00 00 00 00 call _zip64local_getLong
\r
3218 001d6 83 c4 04 add esp, 4
\r
3219 001d9 85 c0 test eax, eax
\r
3223 001db 0f 85 53 fe ff
\r
3224 ff jne $LN50@zip64local@9
\r
3227 ; 610 : /* number of the disk with the start of the zip64 end of central directory */
\r
3228 ; 611 : if (zip64local_getLong(pzlib_filefunc_def,filestream,&uL)!=ZIP_OK)
\r
3230 001e1 8d 4d fc lea ecx, DWORD PTR _uL$[ebp]
\r
3232 001e5 8b c3 mov eax, ebx
\r
3233 001e7 8b cf mov ecx, edi
\r
3234 001e9 e8 00 00 00 00 call _zip64local_getLong
\r
3235 001ee 83 c4 04 add esp, 4
\r
3236 001f1 85 c0 test eax, eax
\r
3240 001f3 0f 85 3b fe ff
\r
3241 ff jne $LN50@zip64local@9
\r
3243 ; 613 : if (uL != 0)
\r
3245 001f9 39 45 fc cmp DWORD PTR _uL$[ebp], eax
\r
3249 001fc 0f 85 32 fe ff
\r
3250 ff jne $LN50@zip64local@9
\r
3253 ; 616 : /* relative offset of the zip64 end of central directory record */
\r
3254 ; 617 : if (zip64local_getLong64(pzlib_filefunc_def,filestream,&relativeOffset)!=ZIP_OK)
\r
3256 00202 8d 55 d8 lea edx, DWORD PTR _relativeOffset$[ebp]
\r
3258 00206 8b c3 mov eax, ebx
\r
3259 00208 8b cf mov ecx, edi
\r
3260 0020a e8 00 00 00 00 call _zip64local_getLong64
\r
3261 0020f 83 c4 04 add esp, 4
\r
3262 00212 85 c0 test eax, eax
\r
3266 00214 0f 85 1a fe ff
\r
3267 ff jne $LN50@zip64local@9
\r
3270 ; 620 : /* total number of disks */
\r
3271 ; 621 : if (zip64local_getLong(pzlib_filefunc_def,filestream,&uL)!=ZIP_OK)
\r
3273 0021a 8d 45 fc lea eax, DWORD PTR _uL$[ebp]
\r
3275 0021e 8b c3 mov eax, ebx
\r
3276 00220 8b cf mov ecx, edi
\r
3277 00222 e8 00 00 00 00 call _zip64local_getLong
\r
3278 00227 83 c4 04 add esp, 4
\r
3279 0022a 85 c0 test eax, eax
\r
3283 0022c 0f 85 02 fe ff
\r
3284 ff jne $LN50@zip64local@9
\r
3286 ; 623 : if (uL != 1)
\r
3288 00232 83 7d fc 01 cmp DWORD PTR _uL$[ebp], 1
\r
3292 00236 0f 85 f8 fd ff
\r
3293 ff jne $LN50@zip64local@9
\r
3296 ; 626 : /* Goto Zip64 end of central directory record */
\r
3297 ; 627 : if (ZSEEK64(*pzlib_filefunc_def,filestream, relativeOffset,ZLIB_FILEFUNC_SEEK_SET)!=0)
\r
3299 0023c 8b 4d dc mov ecx, DWORD PTR _relativeOffset$[ebp+4]
\r
3300 0023f 8b 55 d8 mov edx, DWORD PTR _relativeOffset$[ebp]
\r
3303 00244 33 d2 xor edx, edx
\r
3304 00246 8b c7 mov eax, edi
\r
3305 00248 e8 00 00 00 00 call _call_zseek64
\r
3306 0024d 83 c4 08 add esp, 8
\r
3307 00250 85 c0 test eax, eax
\r
3311 00252 0f 85 dc fd ff
\r
3312 ff jne $LN50@zip64local@9
\r
3315 ; 630 : /* the signature */
\r
3316 ; 631 : if (zip64local_getLong(pzlib_filefunc_def,filestream,&uL)!=ZIP_OK)
\r
3318 00258 8d 45 fc lea eax, DWORD PTR _uL$[ebp]
\r
3320 0025c 8b c3 mov eax, ebx
\r
3321 0025e 8b cf mov ecx, edi
\r
3322 00260 e8 00 00 00 00 call _zip64local_getLong
\r
3323 00265 83 c4 04 add esp, 4
\r
3324 00268 85 c0 test eax, eax
\r
3328 0026a 0f 85 c4 fd ff
\r
3329 ff jne $LN50@zip64local@9
\r
3332 ; 634 : if (uL != 0x06064b50) // signature of 'Zip64 end of central directory'
\r
3334 00270 81 7d fc 50 4b
\r
3335 06 06 cmp DWORD PTR _uL$[ebp], 101075792 ; 06064b50H
\r
3339 00277 0f 85 b7 fd ff
\r
3340 ff jne $LN50@zip64local@9
\r
3343 ; 637 : return relativeOffset;
\r
3345 0027d 8b 45 d8 mov eax, DWORD PTR _relativeOffset$[ebp]
\r
3346 00280 8b 55 dc mov edx, DWORD PTR _relativeOffset$[ebp+4]
\r
3353 00286 8b e5 mov esp, ebp
\r
3356 _zip64local_SearchCentralDir64 ENDP
\r
3357 ; Function compile flags: /Ogtp
\r
3358 ; File c:\workspaces\sysdyn\org.simantics.fmu\fmusolution\zlib-1.2.6\contrib\minizip\crypt.h
\r
3360 ; COMDAT _crypthead
\r
3362 _header$ = -24 ; size = 10
\r
3363 tv280 = -12 ; size = 4
\r
3364 tv243 = -12 ; size = 4
\r
3365 _n$ = -12 ; size = 4
\r
3366 _t$ = -8 ; size = 4
\r
3367 tv238 = -1 ; size = 1
\r
3368 _passwd$ = 8 ; size = 4
\r
3369 _buf$ = 12 ; size = 4
\r
3370 _crcForCrypting$ = 16 ; size = 4
\r
3371 _crypthead PROC ; COMDAT
\r
3373 ; _pcrc_32_tab$ = eax
\r
3378 00001 8b ec mov ebp, esp
\r
3379 00003 83 ec 18 sub esp, 24 ; 00000018H
\r
3383 00009 8b f8 mov edi, eax
\r
3385 ; 97 : int n; /* index in random header */
\r
3386 ; 98 : int t; /* temporary */
\r
3387 ; 99 : int c; /* random byte */
\r
3388 ; 100 : unsigned char header[RAND_HEAD_LEN-2]; /* random header */
\r
3389 ; 101 : static unsigned calls = 0; /* ensure different random header each time */
\r
3391 ; 103 : if (bufSize<RAND_HEAD_LEN)
\r
3394 ; 106 : /* First generate RAND_HEAD_LEN-2 random bytes. We encrypt the
\r
3395 ; 107 : * output of rand() to get less predictability, since rand() is
\r
3396 ; 108 : * often poorly implemented.
\r
3398 ; 110 : if (++calls == 1)
\r
3400 0000b a1 00 00 00 00 mov eax, DWORD PTR ?calls@?1??crypthead@@9@9
\r
3402 00011 8b f1 mov esi, ecx
\r
3403 00013 a3 00 00 00 00 mov DWORD PTR ?calls@?1??crypthead@@9@9, eax
\r
3404 00018 83 f8 01 cmp eax, 1
\r
3405 0001b 75 17 jne SHORT $LN17@crypthead
\r
3408 ; 112 : srand((unsigned)(time(NULL) ^ ZCR_SEED2));
\r
3410 0001d 6a 00 push 0
\r
3411 0001f ff 15 00 00 00
\r
3412 00 call DWORD PTR __imp___time64
\r
3413 00025 35 4e e6 40 bb xor eax, -1153374642 ; bb40e64eH
\r
3415 0002b ff 15 00 00 00
\r
3416 00 call DWORD PTR __imp__srand
\r
3417 00031 83 c4 08 add esp, 8
\r
3421 ; 114 : init_keys(passwd, pkeys, pcrc_32_tab);
\r
3423 00034 8b 55 08 mov edx, DWORD PTR _passwd$[ebp]
\r
3424 00037 8b c7 mov eax, edi
\r
3425 00039 8b ce mov ecx, esi
\r
3426 0003b e8 00 00 00 00 call _init_keys
\r
3428 ; 115 : for (n = 0; n < RAND_HEAD_LEN-2; n++)
\r
3430 00040 c7 45 f4 00 00
\r
3431 00 00 mov DWORD PTR _n$[ebp], 0
\r
3435 ; 117 : c = (rand() >> 7) & 0xff;
\r
3437 00047 ff 15 00 00 00
\r
3438 00 call DWORD PTR __imp__rand
\r
3439 0004d 8b d8 mov ebx, eax
\r
3440 0004f c1 fb 07 sar ebx, 7
\r
3442 ; 118 : header[n] = (unsigned char)zencode(pkeys, pcrc_32_tab, c, t);
\r
3444 00052 8b c6 mov eax, esi
\r
3445 00054 81 e3 ff 00 00
\r
3446 00 and ebx, 255 ; 000000ffH
\r
3447 0005a e8 00 00 00 00 call _decrypt_byte
\r
3448 0005f 89 45 f8 mov DWORD PTR _t$[ebp], eax
\r
3449 00062 8b c3 mov eax, ebx
\r
3450 00064 e8 00 00 00 00 call _update_keys
\r
3451 00069 32 5d f8 xor bl, BYTE PTR _t$[ebp]
\r
3452 0006c 8b 45 f4 mov eax, DWORD PTR _n$[ebp]
\r
3453 0006f 88 5c 05 e8 mov BYTE PTR _header$[ebp+eax], bl
\r
3455 00074 89 45 f4 mov DWORD PTR _n$[ebp], eax
\r
3456 00077 83 f8 0a cmp eax, 10 ; 0000000aH
\r
3457 0007a 7c cb jl SHORT $LL6@crypthead
\r
3460 ; 120 : /* Encrypt random header (last two bytes is high word of crc) */
\r
3461 ; 121 : init_keys(passwd, pkeys, pcrc_32_tab);
\r
3463 0007c 8b 55 08 mov edx, DWORD PTR _passwd$[ebp]
\r
3464 0007f 8b c7 mov eax, edi
\r
3465 00081 8b ce mov ecx, esi
\r
3466 00083 e8 00 00 00 00 call _init_keys
\r
3468 ; 122 : for (n = 0; n < RAND_HEAD_LEN-2; n++)
\r
3470 00088 8b 45 0c mov eax, DWORD PTR _buf$[ebp]
\r
3471 0008b 8d 4d e8 lea ecx, DWORD PTR _header$[ebp]
\r
3472 0008e 33 db xor ebx, ebx
\r
3473 00090 2b c1 sub eax, ecx
\r
3474 00092 89 45 f4 mov DWORD PTR tv280[ebp], eax
\r
3478 ; 124 : buf[n] = (unsigned char)zencode(pkeys, pcrc_32_tab, header[n], t);
\r
3480 00095 8b c6 mov eax, esi
\r
3481 00097 e8 00 00 00 00 call _decrypt_byte
\r
3482 0009c 89 45 f8 mov DWORD PTR _t$[ebp], eax
\r
3483 0009f 0f b6 44 1d e8 movzx eax, BYTE PTR _header$[ebp+ebx]
\r
3484 000a4 e8 00 00 00 00 call _update_keys
\r
3485 000a9 8a 44 1d e8 mov al, BYTE PTR _header$[ebp+ebx]
\r
3486 000ad 8b 55 f4 mov edx, DWORD PTR tv280[ebp]
\r
3487 000b0 32 45 f8 xor al, BYTE PTR _t$[ebp]
\r
3488 000b3 03 d3 add edx, ebx
\r
3490 000b6 88 44 15 e8 mov BYTE PTR _header$[ebp+edx], al
\r
3491 000ba 83 fb 0a cmp ebx, 10 ; 0000000aH
\r
3492 000bd 7c d6 jl SHORT $LL3@crypthead
\r
3495 ; 126 : buf[n++] = (unsigned char)zencode(pkeys, pcrc_32_tab, (int)(crcForCrypting >> 16) & 0xff, t);
\r
3497 000bf 8b c6 mov eax, esi
\r
3498 000c1 e8 00 00 00 00 call _decrypt_byte
\r
3499 000c6 89 45 f8 mov DWORD PTR _t$[ebp], eax
\r
3500 000c9 8b 45 10 mov eax, DWORD PTR _crcForCrypting$[ebp]
\r
3501 000cc c1 e8 10 shr eax, 16 ; 00000010H
\r
3502 000cf 89 45 f4 mov DWORD PTR tv243[ebp], eax
\r
3503 000d2 25 ff 00 00 00 and eax, 255 ; 000000ffH
\r
3504 000d7 e8 00 00 00 00 call _update_keys
\r
3505 000dc 8a 45 f4 mov al, BYTE PTR tv243[ebp]
\r
3506 000df 32 45 f8 xor al, BYTE PTR _t$[ebp]
\r
3507 000e2 8b 4d 0c mov ecx, DWORD PTR _buf$[ebp]
\r
3508 000e5 88 04 0b mov BYTE PTR [ebx+ecx], al
\r
3510 ; 127 : buf[n++] = (unsigned char)zencode(pkeys, pcrc_32_tab, (int)(crcForCrypting >> 24) & 0xff, t);
\r
3512 000e8 8b c6 mov eax, esi
\r
3513 000ea e8 00 00 00 00 call _decrypt_byte
\r
3514 000ef 89 45 f8 mov DWORD PTR _t$[ebp], eax
\r
3515 000f2 8b 45 10 mov eax, DWORD PTR _crcForCrypting$[ebp]
\r
3516 000f5 c1 e8 18 shr eax, 24 ; 00000018H
\r
3517 000f8 e8 00 00 00 00 call _update_keys
\r
3518 000fd 32 45 f8 xor al, BYTE PTR _t$[ebp]
\r
3519 00100 8b 55 0c mov edx, DWORD PTR _buf$[ebp]
\r
3521 00104 88 44 13 01 mov BYTE PTR [ebx+edx+1], al
\r
3523 00109 8d 43 02 lea eax, DWORD PTR [ebx+2]
\r
3529 0010d 8b e5 mov esp, ebp
\r
3533 PUBLIC _LoadCentralDirectoryRecord
\r
3534 ; Function compile flags: /Ogtp
\r
3535 ; File c:\workspaces\sysdyn\org.simantics.fmu\fmusolution\zlib-1.2.6\contrib\minizip\zip.c
\r
3536 ; COMDAT _LoadCentralDirectoryRecord
\r
3538 tv439 = -56 ; size = 8
\r
3539 _offset_central_dir$ = -56 ; size = 8
\r
3540 _number_entry$ = -56 ; size = 8
\r
3541 _sizeEndOfCentralDirectory$82931 = -56 ; size = 8
\r
3542 _number_entry_CD$ = -48 ; size = 8
\r
3543 _size_central_dir_to_read$82966 = -40 ; size = 8
\r
3544 _central_pos$ = -40 ; size = 8
\r
3545 _buf_read$82968 = -28 ; size = 4
\r
3546 _size_comment$ = -28 ; size = 4
\r
3547 _number_disk$ = -28 ; size = 4
\r
3548 _VersionNeeded$ = -28 ; size = 4
\r
3549 _VersionMadeBy$ = -28 ; size = 4
\r
3550 _read_this$82974 = -24 ; size = 8
\r
3551 _size_central_dir$ = -24 ; size = 8
\r
3552 _number_disk_with_CD$ = -20 ; size = 4
\r
3553 _byte_before_the_zipfile$ = -16 ; size = 8
\r
3554 _uL$ = -12 ; size = 4
\r
3555 _err$ = -4 ; size = 4
\r
3556 _LoadCentralDirectoryRecord PROC ; COMDAT
\r
3562 00001 8b ec mov ebp, esp
\r
3563 00003 83 ec 38 sub esp, 56 ; 00000038H
\r
3565 ; 642 : int err=ZIP_OK;
\r
3566 ; 643 : ZPOS64_T byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/
\r
3568 ; 645 : ZPOS64_T size_central_dir; /* size of the central directory */
\r
3569 ; 646 : ZPOS64_T offset_central_dir; /* offset of start of central directory */
\r
3570 ; 647 : ZPOS64_T central_pos;
\r
3573 ; 650 : uLong number_disk; /* number of the current dist, used for
\r
3574 ; 651 : spaning ZIP, unsupported, always 0*/
\r
3575 ; 652 : uLong number_disk_with_CD; /* number the the disk with central dir, used
\r
3576 ; 653 : for spaning ZIP, unsupported, always 0*/
\r
3577 ; 654 : ZPOS64_T number_entry;
\r
3578 ; 655 : ZPOS64_T number_entry_CD; /* total number of entries in
\r
3579 ; 656 : the central dir
\r
3580 ; 657 : (same than number_entry on nospan) */
\r
3581 ; 658 : uLong VersionMadeBy;
\r
3582 ; 659 : uLong VersionNeeded;
\r
3583 ; 660 : uLong size_comment;
\r
3585 ; 662 : int hasZIP64Record = 0;
\r
3587 ; 664 : // check first if we find a ZIP64 record
\r
3588 ; 665 : central_pos = zip64local_SearchCentralDir64(&pziinit->z_filefunc,pziinit->filestream);
\r
3590 00006 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
3594 0000c 33 db xor ebx, ebx
\r
3596 0000f 89 5d fc mov DWORD PTR _err$[ebp], ebx
\r
3597 00012 e8 00 00 00 00 call _zip64local_SearchCentralDir64
\r
3598 00017 83 c4 08 add esp, 8
\r
3599 0001a 89 45 d8 mov DWORD PTR _central_pos$[ebp], eax
\r
3600 0001d 89 55 dc mov DWORD PTR _central_pos$[ebp+4], edx
\r
3602 ; 666 : if(central_pos > 0)
\r
3604 00020 3b d3 cmp edx, ebx
\r
3605 00022 0f 87 ad 00 00
\r
3606 00 ja $LN51@LoadCentra
\r
3607 00028 72 08 jb SHORT $LN53@LoadCentra
\r
3608 0002a 3b c3 cmp eax, ebx
\r
3611 ; 668 : hasZIP64Record = 1;
\r
3613 0002c 0f 87 a3 00 00
\r
3614 00 ja $LN51@LoadCentra
\r
3618 ; 670 : else if(central_pos == 0)
\r
3620 00032 8b c8 mov ecx, eax
\r
3621 00034 0b ca or ecx, edx
\r
3622 00036 75 13 jne SHORT $LN42@LoadCentra
\r
3625 ; 672 : central_pos = zip64local_SearchCentralDir(&pziinit->z_filefunc,pziinit->filestream);
\r
3627 00038 8b 57 2c mov edx, DWORD PTR [edi+44]
\r
3630 0003d e8 00 00 00 00 call _zip64local_SearchCentralDir
\r
3631 00042 83 c4 08 add esp, 8
\r
3632 00045 89 45 d8 mov DWORD PTR _central_pos$[ebp], eax
\r
3633 00048 89 55 dc mov DWORD PTR _central_pos$[ebp+4], edx
\r
3637 ; 736 : // Read End of central Directory info
\r
3638 ; 737 : if (ZSEEK64(pziinit->z_filefunc, pziinit->filestream, central_pos,ZLIB_FILEFUNC_SEEK_SET)!=0)
\r
3640 0004b 8b 77 2c mov esi, DWORD PTR [edi+44]
\r
3643 00050 33 d2 xor edx, edx
\r
3644 00052 8b c7 mov eax, edi
\r
3645 00054 e8 00 00 00 00 call _call_zseek64
\r
3646 00059 83 c4 08 add esp, 8
\r
3648 ; 738 : err=ZIP_ERRNO;
\r
3650 0005c 83 ce ff or esi, -1
\r
3651 0005f 85 c0 test eax, eax
\r
3652 00061 74 03 je SHORT $LN27@LoadCentra
\r
3653 00063 89 75 fc mov DWORD PTR _err$[ebp], esi
\r
3657 ; 740 : /* the signature, already checked */
\r
3658 ; 741 : if (zip64local_getLong(&pziinit->z_filefunc, pziinit->filestream,&uL)!=ZIP_OK)
\r
3660 00066 8d 45 f4 lea eax, DWORD PTR _uL$[ebp]
\r
3662 0006a 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
3663 0006d 8b cf mov ecx, edi
\r
3664 0006f e8 00 00 00 00 call _zip64local_getLong
\r
3665 00074 83 c4 04 add esp, 4
\r
3666 00077 85 c0 test eax, eax
\r
3667 00079 74 03 je SHORT $LN26@LoadCentra
\r
3669 ; 742 : err=ZIP_ERRNO;
\r
3671 0007b 89 75 fc mov DWORD PTR _err$[ebp], esi
\r
3675 ; 744 : /* number of this disk */
\r
3676 ; 745 : if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream,&number_disk)!=ZIP_OK)
\r
3678 0007e 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
3679 00081 8d 4d e4 lea ecx, DWORD PTR _number_disk$[ebp]
\r
3681 00085 8b cf mov ecx, edi
\r
3682 00087 e8 00 00 00 00 call _zip64local_getShort
\r
3683 0008c 83 c4 04 add esp, 4
\r
3684 0008f 85 c0 test eax, eax
\r
3685 00091 74 03 je SHORT $LN25@LoadCentra
\r
3687 ; 746 : err=ZIP_ERRNO;
\r
3689 00093 89 75 fc mov DWORD PTR _err$[ebp], esi
\r
3693 ; 748 : /* number of the disk with the start of the central directory */
\r
3694 ; 749 : if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream,&number_disk_with_CD)!=ZIP_OK)
\r
3696 00096 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
3697 00099 8d 55 ec lea edx, DWORD PTR _number_disk_with_CD$[ebp]
\r
3699 0009d 8b cf mov ecx, edi
\r
3700 0009f e8 00 00 00 00 call _zip64local_getShort
\r
3701 000a4 83 c4 04 add esp, 4
\r
3702 000a7 85 c0 test eax, eax
\r
3703 000a9 74 03 je SHORT $LN24@LoadCentra
\r
3705 ; 750 : err=ZIP_ERRNO;
\r
3707 000ab 89 75 fc mov DWORD PTR _err$[ebp], esi
\r
3711 ; 752 : /* total number of entries in the central dir on this disk */
\r
3712 ; 753 : number_entry = 0;
\r
3713 ; 754 : if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream, &uL)!=ZIP_OK)
\r
3715 000ae 8d 45 f4 lea eax, DWORD PTR _uL$[ebp]
\r
3717 000b2 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
3718 000b5 8b cf mov ecx, edi
\r
3719 000b7 33 f6 xor esi, esi
\r
3720 000b9 e8 00 00 00 00 call _zip64local_getShort
\r
3721 000be 83 c4 04 add esp, 4
\r
3722 000c1 85 c0 test eax, eax
\r
3723 000c3 0f 84 46 01 00
\r
3724 00 je $LN23@LoadCentra
\r
3726 ; 755 : err=ZIP_ERRNO;
\r
3728 000c9 c7 45 fc ff ff
\r
3729 ff ff mov DWORD PTR _err$[ebp], -1
\r
3733 000d0 e9 3f 01 00 00 jmp $LN22@LoadCentra
\r
3738 ; 675 : /* disable to allow appending to empty ZIP archive
\r
3739 ; 676 : if (central_pos==0)
\r
3740 ; 677 : err=ZIP_ERRNO;
\r
3743 ; 680 : if(hasZIP64Record)
\r
3745 ; 682 : ZPOS64_T sizeEndOfCentralDirectory;
\r
3746 ; 683 : if (ZSEEK64(pziinit->z_filefunc, pziinit->filestream, central_pos, ZLIB_FILEFUNC_SEEK_SET) != 0)
\r
3748 000d5 8b 77 2c mov esi, DWORD PTR [edi+44]
\r
3751 000da 33 d2 xor edx, edx
\r
3752 000dc 8b c7 mov eax, edi
\r
3753 000de e8 00 00 00 00 call _call_zseek64
\r
3754 000e3 83 c4 08 add esp, 8
\r
3756 ; 684 : err=ZIP_ERRNO;
\r
3758 000e6 83 ce ff or esi, -1
\r
3759 000e9 85 c0 test eax, eax
\r
3760 000eb 74 03 je SHORT $LN41@LoadCentra
\r
3761 000ed 89 75 fc mov DWORD PTR _err$[ebp], esi
\r
3765 ; 686 : /* the signature, already checked */
\r
3766 ; 687 : if (zip64local_getLong(&pziinit->z_filefunc, pziinit->filestream,&uL)!=ZIP_OK)
\r
3768 000f0 8d 45 f4 lea eax, DWORD PTR _uL$[ebp]
\r
3770 000f4 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
3771 000f7 8b cf mov ecx, edi
\r
3772 000f9 e8 00 00 00 00 call _zip64local_getLong
\r
3773 000fe 83 c4 04 add esp, 4
\r
3774 00101 85 c0 test eax, eax
\r
3775 00103 74 03 je SHORT $LN40@LoadCentra
\r
3777 ; 688 : err=ZIP_ERRNO;
\r
3779 00105 89 75 fc mov DWORD PTR _err$[ebp], esi
\r
3783 ; 690 : /* size of zip64 end of central directory record */
\r
3784 ; 691 : if (zip64local_getLong64(&pziinit->z_filefunc, pziinit->filestream, &sizeEndOfCentralDirectory)!=ZIP_OK)
\r
3786 00108 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
3787 0010b 8d 4d c8 lea ecx, DWORD PTR _sizeEndOfCentralDirectory$82931[ebp]
\r
3789 0010f 8b cf mov ecx, edi
\r
3790 00111 e8 00 00 00 00 call _zip64local_getLong64
\r
3791 00116 83 c4 04 add esp, 4
\r
3792 00119 85 c0 test eax, eax
\r
3793 0011b 74 03 je SHORT $LN39@LoadCentra
\r
3795 ; 692 : err=ZIP_ERRNO;
\r
3797 0011d 89 75 fc mov DWORD PTR _err$[ebp], esi
\r
3801 ; 694 : /* version made by */
\r
3802 ; 695 : if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream, &VersionMadeBy)!=ZIP_OK)
\r
3804 00120 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
3805 00123 8d 55 e4 lea edx, DWORD PTR _VersionMadeBy$[ebp]
\r
3807 00127 8b cf mov ecx, edi
\r
3808 00129 e8 00 00 00 00 call _zip64local_getShort
\r
3809 0012e 83 c4 04 add esp, 4
\r
3810 00131 85 c0 test eax, eax
\r
3811 00133 74 03 je SHORT $LN38@LoadCentra
\r
3813 ; 696 : err=ZIP_ERRNO;
\r
3815 00135 89 75 fc mov DWORD PTR _err$[ebp], esi
\r
3819 ; 698 : /* version needed to extract */
\r
3820 ; 699 : if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream, &VersionNeeded)!=ZIP_OK)
\r
3822 00138 8d 45 e4 lea eax, DWORD PTR _VersionNeeded$[ebp]
\r
3824 0013c 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
3825 0013f 8b cf mov ecx, edi
\r
3826 00141 e8 00 00 00 00 call _zip64local_getShort
\r
3827 00146 83 c4 04 add esp, 4
\r
3828 00149 85 c0 test eax, eax
\r
3829 0014b 74 03 je SHORT $LN37@LoadCentra
\r
3831 ; 700 : err=ZIP_ERRNO;
\r
3833 0014d 89 75 fc mov DWORD PTR _err$[ebp], esi
\r
3837 ; 702 : /* number of this disk */
\r
3838 ; 703 : if (zip64local_getLong(&pziinit->z_filefunc, pziinit->filestream,&number_disk)!=ZIP_OK)
\r
3840 00150 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
3841 00153 8d 4d e4 lea ecx, DWORD PTR _number_disk$[ebp]
\r
3843 00157 8b cf mov ecx, edi
\r
3844 00159 e8 00 00 00 00 call _zip64local_getLong
\r
3845 0015e 83 c4 04 add esp, 4
\r
3846 00161 85 c0 test eax, eax
\r
3847 00163 74 03 je SHORT $LN36@LoadCentra
\r
3849 ; 704 : err=ZIP_ERRNO;
\r
3851 00165 89 75 fc mov DWORD PTR _err$[ebp], esi
\r
3855 ; 706 : /* number of the disk with the start of the central directory */
\r
3856 ; 707 : if (zip64local_getLong(&pziinit->z_filefunc, pziinit->filestream,&number_disk_with_CD)!=ZIP_OK)
\r
3858 00168 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
3859 0016b 8d 55 ec lea edx, DWORD PTR _number_disk_with_CD$[ebp]
\r
3861 0016f 8b cf mov ecx, edi
\r
3862 00171 e8 00 00 00 00 call _zip64local_getLong
\r
3863 00176 83 c4 04 add esp, 4
\r
3864 00179 85 c0 test eax, eax
\r
3865 0017b 74 03 je SHORT $LN35@LoadCentra
\r
3867 ; 708 : err=ZIP_ERRNO;
\r
3869 0017d 89 75 fc mov DWORD PTR _err$[ebp], esi
\r
3873 ; 710 : /* total number of entries in the central directory on this disk */
\r
3874 ; 711 : if (zip64local_getLong64(&pziinit->z_filefunc, pziinit->filestream, &number_entry)!=ZIP_OK)
\r
3876 00180 8d 45 c8 lea eax, DWORD PTR _number_entry$[ebp]
\r
3878 00184 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
3879 00187 8b cf mov ecx, edi
\r
3880 00189 e8 00 00 00 00 call _zip64local_getLong64
\r
3881 0018e 83 c4 04 add esp, 4
\r
3882 00191 85 c0 test eax, eax
\r
3883 00193 74 03 je SHORT $LN34@LoadCentra
\r
3885 ; 712 : err=ZIP_ERRNO;
\r
3887 00195 89 75 fc mov DWORD PTR _err$[ebp], esi
\r
3891 ; 714 : /* total number of entries in the central directory */
\r
3892 ; 715 : if (zip64local_getLong64(&pziinit->z_filefunc, pziinit->filestream,&number_entry_CD)!=ZIP_OK)
\r
3894 00198 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
3895 0019b 8d 4d d0 lea ecx, DWORD PTR _number_entry_CD$[ebp]
\r
3897 0019f 8b cf mov ecx, edi
\r
3898 001a1 e8 00 00 00 00 call _zip64local_getLong64
\r
3899 001a6 83 c4 04 add esp, 4
\r
3900 001a9 85 c0 test eax, eax
\r
3901 001ab 74 03 je SHORT $LN33@LoadCentra
\r
3903 ; 716 : err=ZIP_ERRNO;
\r
3905 001ad 89 75 fc mov DWORD PTR _err$[ebp], esi
\r
3909 ; 718 : if ((number_entry_CD!=number_entry) || (number_disk_with_CD!=0) || (number_disk!=0))
\r
3911 001b0 8b 55 d0 mov edx, DWORD PTR _number_entry_CD$[ebp]
\r
3912 001b3 3b 55 c8 cmp edx, DWORD PTR _number_entry$[ebp]
\r
3913 001b6 75 12 jne SHORT $LN31@LoadCentra
\r
3914 001b8 8b 45 d4 mov eax, DWORD PTR _number_entry_CD$[ebp+4]
\r
3915 001bb 3b 45 cc cmp eax, DWORD PTR _number_entry$[ebp+4]
\r
3916 001be 75 0a jne SHORT $LN31@LoadCentra
\r
3917 001c0 39 5d ec cmp DWORD PTR _number_disk_with_CD$[ebp], ebx
\r
3918 001c3 75 05 jne SHORT $LN31@LoadCentra
\r
3919 001c5 39 5d e4 cmp DWORD PTR _number_disk$[ebp], ebx
\r
3920 001c8 74 07 je SHORT $LN32@LoadCentra
\r
3923 ; 719 : err=ZIP_BADZIPFILE;
\r
3925 001ca c7 45 fc 99 ff
\r
3926 ff ff mov DWORD PTR _err$[ebp], -103 ; ffffff99H
\r
3930 ; 721 : /* size of the central directory */
\r
3931 ; 722 : if (zip64local_getLong64(&pziinit->z_filefunc, pziinit->filestream,&size_central_dir)!=ZIP_OK)
\r
3933 001d1 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
3934 001d4 8d 4d e8 lea ecx, DWORD PTR _size_central_dir$[ebp]
\r
3936 001d8 8b cf mov ecx, edi
\r
3937 001da e8 00 00 00 00 call _zip64local_getLong64
\r
3938 001df 83 c4 04 add esp, 4
\r
3939 001e2 85 c0 test eax, eax
\r
3940 001e4 74 03 je SHORT $LN30@LoadCentra
\r
3942 ; 723 : err=ZIP_ERRNO;
\r
3944 001e6 89 75 fc mov DWORD PTR _err$[ebp], esi
\r
3948 ; 725 : /* offset of start of central directory with respect to the
\r
3949 ; 726 : starting disk number */
\r
3950 ; 727 : if (zip64local_getLong64(&pziinit->z_filefunc, pziinit->filestream,&offset_central_dir)!=ZIP_OK)
\r
3952 001e9 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
3953 001ec 8d 55 c8 lea edx, DWORD PTR _offset_central_dir$[ebp]
\r
3955 001f0 8b cf mov ecx, edi
\r
3956 001f2 e8 00 00 00 00 call _zip64local_getLong64
\r
3957 001f7 83 c4 04 add esp, 4
\r
3958 001fa 85 c0 test eax, eax
\r
3959 001fc 74 03 je SHORT $LN29@LoadCentra
\r
3961 ; 728 : err=ZIP_ERRNO;
\r
3963 001fe 89 75 fc mov DWORD PTR _err$[ebp], esi
\r
3968 ; 731 : // read the comment from the standard central header.
\r
3969 ; 732 : size_comment = 0;
\r
3973 00201 8b 75 c8 mov esi, DWORD PTR _offset_central_dir$[ebp]
\r
3974 00204 89 5d e4 mov DWORD PTR _size_comment$[ebp], ebx
\r
3975 00207 8b 5d cc mov ebx, DWORD PTR _offset_central_dir$[ebp+4]
\r
3976 0020a e9 c7 00 00 00 jmp $LN13@LoadCentra
\r
3979 ; 757 : number_entry = uL;
\r
3981 0020f 8b 75 f4 mov esi, DWORD PTR _uL$[ebp]
\r
3982 00212 33 db xor ebx, ebx
\r
3986 ; 759 : /* total number of entries in the central dir */
\r
3987 ; 760 : number_entry_CD = 0;
\r
3989 00214 33 c0 xor eax, eax
\r
3991 ; 761 : if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream, &uL)!=ZIP_OK)
\r
3993 00216 8d 4d f4 lea ecx, DWORD PTR _uL$[ebp]
\r
3994 00219 89 45 d0 mov DWORD PTR _number_entry_CD$[ebp], eax
\r
3995 0021c 89 45 d4 mov DWORD PTR _number_entry_CD$[ebp+4], eax
\r
3996 0021f 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
3998 00223 8b cf mov ecx, edi
\r
3999 00225 e8 00 00 00 00 call _zip64local_getShort
\r
4000 0022a 83 c4 04 add esp, 4
\r
4001 0022d 85 c0 test eax, eax
\r
4002 0022f 74 0b je SHORT $LN21@LoadCentra
\r
4004 ; 762 : err=ZIP_ERRNO;
\r
4006 00231 c7 45 fc ff ff
\r
4007 ff ff mov DWORD PTR _err$[ebp], -1
\r
4011 00238 33 c0 xor eax, eax
\r
4012 0023a eb 0b jmp SHORT $LN20@LoadCentra
\r
4015 ; 764 : number_entry_CD = uL;
\r
4017 0023c 8b 55 f4 mov edx, DWORD PTR _uL$[ebp]
\r
4018 0023f 33 c0 xor eax, eax
\r
4019 00241 89 55 d0 mov DWORD PTR _number_entry_CD$[ebp], edx
\r
4020 00244 89 45 d4 mov DWORD PTR _number_entry_CD$[ebp+4], eax
\r
4024 ; 766 : if ((number_entry_CD!=number_entry) || (number_disk_with_CD!=0) || (number_disk!=0))
\r
4026 00247 39 75 d0 cmp DWORD PTR _number_entry_CD$[ebp], esi
\r
4027 0024a 75 0f jne SHORT $LN18@LoadCentra
\r
4028 0024c 39 5d d4 cmp DWORD PTR _number_entry_CD$[ebp+4], ebx
\r
4029 0024f 75 0a jne SHORT $LN18@LoadCentra
\r
4030 00251 39 45 ec cmp DWORD PTR _number_disk_with_CD$[ebp], eax
\r
4031 00254 75 05 jne SHORT $LN18@LoadCentra
\r
4032 00256 39 45 e4 cmp DWORD PTR _number_disk$[ebp], eax
\r
4033 00259 74 07 je SHORT $LN19@LoadCentra
\r
4036 ; 767 : err=ZIP_BADZIPFILE;
\r
4038 0025b c7 45 fc 99 ff
\r
4039 ff ff mov DWORD PTR _err$[ebp], -103 ; ffffff99H
\r
4043 ; 769 : /* size of the central directory */
\r
4044 ; 770 : size_central_dir = 0;
\r
4046 00262 89 45 e8 mov DWORD PTR _size_central_dir$[ebp], eax
\r
4047 00265 89 45 ec mov DWORD PTR _size_central_dir$[ebp+4], eax
\r
4049 ; 771 : if (zip64local_getLong(&pziinit->z_filefunc, pziinit->filestream, &uL)!=ZIP_OK)
\r
4051 00268 8d 45 f4 lea eax, DWORD PTR _uL$[ebp]
\r
4053 0026c 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
4054 0026f 8b cf mov ecx, edi
\r
4055 00271 e8 00 00 00 00 call _zip64local_getLong
\r
4056 00276 83 c4 04 add esp, 4
\r
4057 00279 85 c0 test eax, eax
\r
4058 0027b 74 09 je SHORT $LN17@LoadCentra
\r
4060 ; 772 : err=ZIP_ERRNO;
\r
4062 0027d c7 45 fc ff ff
\r
4063 ff ff mov DWORD PTR _err$[ebp], -1
\r
4067 00284 eb 0d jmp SHORT $LN16@LoadCentra
\r
4070 ; 774 : size_central_dir = uL;
\r
4072 00286 8b 4d f4 mov ecx, DWORD PTR _uL$[ebp]
\r
4073 00289 89 4d e8 mov DWORD PTR _size_central_dir$[ebp], ecx
\r
4074 0028c c7 45 ec 00 00
\r
4075 00 00 mov DWORD PTR _size_central_dir$[ebp+4], 0
\r
4079 ; 776 : /* offset of start of central directory with respect to the starting disk number */
\r
4080 ; 777 : offset_central_dir = 0;
\r
4081 ; 778 : if (zip64local_getLong(&pziinit->z_filefunc, pziinit->filestream, &uL)!=ZIP_OK)
\r
4083 00293 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
4084 00296 8d 55 f4 lea edx, DWORD PTR _uL$[ebp]
\r
4086 0029a 8b cf mov ecx, edi
\r
4087 0029c 33 f6 xor esi, esi
\r
4088 0029e 33 db xor ebx, ebx
\r
4089 002a0 e8 00 00 00 00 call _zip64local_getLong
\r
4090 002a5 83 c4 04 add esp, 4
\r
4091 002a8 85 c0 test eax, eax
\r
4092 002aa 74 09 je SHORT $LN15@LoadCentra
\r
4094 ; 779 : err=ZIP_ERRNO;
\r
4096 002ac c7 45 fc ff ff
\r
4097 ff ff mov DWORD PTR _err$[ebp], -1
\r
4101 002b3 eb 05 jmp SHORT $LN14@LoadCentra
\r
4104 ; 781 : offset_central_dir = uL;
\r
4106 002b5 8b 75 f4 mov esi, DWORD PTR _uL$[ebp]
\r
4107 002b8 33 db xor ebx, ebx
\r
4112 ; 784 : /* zipfile global comment length */
\r
4113 ; 785 : if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream, &size_comment)!=ZIP_OK)
\r
4115 002ba 8d 45 e4 lea eax, DWORD PTR _size_comment$[ebp]
\r
4117 002be 8b 47 2c mov eax, DWORD PTR [edi+44]
\r
4118 002c1 8b cf mov ecx, edi
\r
4119 002c3 e8 00 00 00 00 call _zip64local_getShort
\r
4120 002c8 83 c4 04 add esp, 4
\r
4121 002cb 85 c0 test eax, eax
\r
4122 002cd 74 07 je SHORT $LN13@LoadCentra
\r
4124 ; 786 : err=ZIP_ERRNO;
\r
4126 002cf c7 45 fc ff ff
\r
4127 ff ff mov DWORD PTR _err$[ebp], -1
\r
4132 ; 789 : if ((central_pos<offset_central_dir+size_central_dir) &&
\r
4133 ; 790 : (err==ZIP_OK))
\r
4135 002d6 8b 45 dc mov eax, DWORD PTR _central_pos$[ebp+4]
\r
4136 002d9 8b d6 mov edx, esi
\r
4137 002db 03 55 e8 add edx, DWORD PTR _size_central_dir$[ebp]
\r
4138 002de 8b cb mov ecx, ebx
\r
4139 002e0 13 4d ec adc ecx, DWORD PTR _size_central_dir$[ebp+4]
\r
4140 002e3 3b c1 cmp eax, ecx
\r
4141 002e5 72 0f jb SHORT $LN50@LoadCentra
\r
4142 002e7 8b 4d d8 mov ecx, DWORD PTR _central_pos$[ebp]
\r
4143 002ea 77 04 ja SHORT $LN54@LoadCentra
\r
4144 002ec 3b ca cmp ecx, edx
\r
4146 ; 791 : err=ZIP_BADZIPFILE;
\r
4148 ; 793 : if (err!=ZIP_OK)
\r
4150 002ee 72 06 jb SHORT $LN50@LoadCentra
\r
4152 002f0 83 7d fc 00 cmp DWORD PTR _err$[ebp], 0
\r
4153 002f4 74 19 je SHORT $LN11@LoadCentra
\r
4157 ; 795 : ZCLOSE64(pziinit->z_filefunc, pziinit->filestream);
\r
4159 002f6 8b 4f 2c mov ecx, DWORD PTR [edi+44]
\r
4160 002f9 8b 57 1c mov edx, DWORD PTR [edi+28]
\r
4161 002fc 8b 47 14 mov eax, DWORD PTR [edi+20]
\r
4164 00301 ff d0 call eax
\r
4165 00303 83 c4 08 add esp, 8
\r
4167 ; 796 : return ZIP_ERRNO;
\r
4169 00306 83 c8 ff or eax, -1
\r
4175 0030b 8b e5 mov esp, ebp
\r
4182 ; 799 : if (size_comment>0)
\r
4184 0030f 8b 55 e4 mov edx, DWORD PTR _size_comment$[ebp]
\r
4185 00312 85 d2 test edx, edx
\r
4186 00314 74 3a je SHORT $LN9@LoadCentra
\r
4189 ; 801 : pziinit->globalcomment = (char*)ALLOC(size_comment+1);
\r
4193 00318 ff 15 00 00 00
\r
4194 00 call DWORD PTR __imp__malloc
\r
4195 0031e 83 c4 04 add esp, 4
\r
4196 00321 89 87 00 01 01
\r
4197 00 mov DWORD PTR [edi+65792], eax
\r
4199 ; 802 : if (pziinit->globalcomment)
\r
4201 00327 85 c0 test eax, eax
\r
4202 00329 74 1f je SHORT $LN64@LoadCentra
\r
4205 ; 804 : size_comment = ZREAD64(pziinit->z_filefunc, pziinit->filestream, pziinit->globalcomment,size_comment);
\r
4207 0032b 8b 4d e4 mov ecx, DWORD PTR _size_comment$[ebp]
\r
4208 0032e 8b 57 2c mov edx, DWORD PTR [edi+44]
\r
4210 00332 8b 4f 04 mov ecx, DWORD PTR [edi+4]
\r
4212 00336 8b 47 1c mov eax, DWORD PTR [edi+28]
\r
4215 0033b ff d1 call ecx
\r
4217 ; 805 : pziinit->globalcomment[size_comment]=0;
\r
4219 0033d 8b 97 00 01 01
\r
4220 00 mov edx, DWORD PTR [edi+65792]
\r
4221 00343 83 c4 10 add esp, 16 ; 00000010H
\r
4222 00346 c6 04 10 00 mov BYTE PTR [eax+edx], 0
\r
4224 0034a 8b 45 dc mov eax, DWORD PTR _central_pos$[ebp+4]
\r
4225 0034d 8b 4d d8 mov ecx, DWORD PTR _central_pos$[ebp]
\r
4231 ; 809 : byte_before_the_zipfile = central_pos - (offset_central_dir+size_central_dir);
\r
4233 00350 8b 55 ec mov edx, DWORD PTR _size_central_dir$[ebp+4]
\r
4234 00353 2b ce sub ecx, esi
\r
4235 00355 1b c3 sbb eax, ebx
\r
4236 00357 2b 4d e8 sub ecx, DWORD PTR _size_central_dir$[ebp]
\r
4238 ; 810 : pziinit->add_position_when_writting_offset = byte_before_the_zipfile;
\r
4241 ; 813 : ZPOS64_T size_central_dir_to_read = size_central_dir;
\r
4242 ; 814 : size_t buf_size = SIZEDATA_INDATABLOCK;
\r
4243 ; 815 : void* buf_read = (void*)ALLOC(buf_size);
\r
4245 0035a 68 f0 0f 00 00 push 4080 ; 00000ff0H
\r
4246 0035f 1b c2 sbb eax, edx
\r
4247 00361 89 45 f4 mov DWORD PTR _byte_before_the_zipfile$[ebp+4], eax
\r
4248 00364 89 87 f4 00 01
\r
4249 00 mov DWORD PTR [edi+65780], eax
\r
4250 0036a 8b 45 e8 mov eax, DWORD PTR _size_central_dir$[ebp]
\r
4251 0036d 89 4d f0 mov DWORD PTR _byte_before_the_zipfile$[ebp], ecx
\r
4252 00370 89 8f f0 00 01
\r
4253 00 mov DWORD PTR [edi+65776], ecx
\r
4254 00376 89 45 d8 mov DWORD PTR _size_central_dir_to_read$82966[ebp], eax
\r
4255 00379 89 55 dc mov DWORD PTR _size_central_dir_to_read$82966[ebp+4], edx
\r
4256 0037c ff 15 00 00 00
\r
4257 00 call DWORD PTR __imp__malloc
\r
4259 ; 816 : if (ZSEEK64(pziinit->z_filefunc, pziinit->filestream, offset_central_dir + byte_before_the_zipfile, ZLIB_FILEFUNC_SEEK_SET) != 0)
\r
4261 00382 8b 4d f4 mov ecx, DWORD PTR _byte_before_the_zipfile$[ebp+4]
\r
4262 00385 89 45 e4 mov DWORD PTR _buf_read$82968[ebp], eax
\r
4263 00388 8b 45 f0 mov eax, DWORD PTR _byte_before_the_zipfile$[ebp]
\r
4264 0038b 83 c4 04 add esp, 4
\r
4265 0038e 03 c6 add eax, esi
\r
4266 00390 8b 77 2c mov esi, DWORD PTR [edi+44]
\r
4267 00393 13 cb adc ecx, ebx
\r
4269 00396 89 45 c8 mov DWORD PTR tv439[ebp], eax
\r
4271 0039a 33 d2 xor edx, edx
\r
4272 0039c 8b c7 mov eax, edi
\r
4273 0039e 89 4d cc mov DWORD PTR tv439[ebp+4], ecx
\r
4274 003a1 e8 00 00 00 00 call _call_zseek64
\r
4275 003a6 83 c4 08 add esp, 8
\r
4276 003a9 85 c0 test eax, eax
\r
4277 003ab 74 07 je SHORT $LN48@LoadCentra
\r
4279 ; 817 : err=ZIP_ERRNO;
\r
4281 003ad c7 45 fc ff ff
\r
4282 ff ff mov DWORD PTR _err$[ebp], -1
\r
4286 ; 819 : while ((size_central_dir_to_read>0) && (err==ZIP_OK))
\r
4288 003b4 83 7d ec 00 cmp DWORD PTR _size_central_dir$[ebp+4], 0
\r
4289 003b8 77 06 ja SHORT $LN7@LoadCentra
\r
4290 003ba 83 7d e8 00 cmp DWORD PTR _size_central_dir$[ebp], 0
\r
4291 003be 76 78 jbe SHORT $LN58@LoadCentra
\r
4293 003c0 83 7d fc 00 cmp DWORD PTR _err$[ebp], 0
\r
4294 003c4 75 72 jne SHORT $LN58@LoadCentra
\r
4297 ; 821 : ZPOS64_T read_this = SIZEDATA_INDATABLOCK;
\r
4298 ; 822 : if (read_this > size_central_dir_to_read)
\r
4300 003c6 8b 5d dc mov ebx, DWORD PTR _size_central_dir_to_read$82966[ebp+4]
\r
4301 003c9 be f0 0f 00 00 mov esi, 4080 ; 00000ff0H
\r
4302 003ce c7 45 ec 00 00
\r
4303 00 00 mov DWORD PTR _read_this$82974[ebp+4], 0
\r
4304 003d5 85 db test ebx, ebx
\r
4305 003d7 77 0d ja SHORT $LN5@LoadCentra
\r
4306 003d9 72 05 jb SHORT $LN56@LoadCentra
\r
4307 003db 39 75 d8 cmp DWORD PTR _size_central_dir_to_read$82966[ebp], esi
\r
4308 003de 73 06 jae SHORT $LN5@LoadCentra
\r
4311 ; 823 : read_this = size_central_dir_to_read;
\r
4313 003e0 8b 75 d8 mov esi, DWORD PTR _size_central_dir_to_read$82966[ebp]
\r
4314 003e3 89 5d ec mov DWORD PTR _read_this$82974[ebp+4], ebx
\r
4318 ; 825 : if (ZREAD64(pziinit->z_filefunc, pziinit->filestream,buf_read,(uLong)read_this) != read_this)
\r
4320 003e6 8b 4d e4 mov ecx, DWORD PTR _buf_read$82968[ebp]
\r
4321 003e9 8b 57 2c mov edx, DWORD PTR [edi+44]
\r
4322 003ec 8b 47 1c mov eax, DWORD PTR [edi+28]
\r
4325 003f1 8b 4f 04 mov ecx, DWORD PTR [edi+4]
\r
4328 003f6 ff d1 call ecx
\r
4329 003f8 83 c4 10 add esp, 16 ; 00000010H
\r
4330 003fb 33 c9 xor ecx, ecx
\r
4331 003fd 3b c6 cmp eax, esi
\r
4332 003ff 75 05 jne SHORT $LN57@LoadCentra
\r
4333 00401 3b 4d ec cmp ecx, DWORD PTR _read_this$82974[ebp+4]
\r
4334 00404 74 09 je SHORT $LN52@LoadCentra
\r
4337 ; 826 : err=ZIP_ERRNO;
\r
4339 00406 c7 45 fc ff ff
\r
4340 ff ff mov DWORD PTR _err$[ebp], -1
\r
4343 ; 828 : if (err==ZIP_OK)
\r
4345 0040d eb 14 jmp SHORT $LN3@LoadCentra
\r
4348 ; 829 : err = add_data_in_datablock(&pziinit->central_dir,buf_read, (uLong)read_this);
\r
4350 0040f 8b 55 e4 mov edx, DWORD PTR _buf_read$82968[ebp]
\r
4353 00414 8d 47 30 lea eax, DWORD PTR [edi+48]
\r
4355 00418 e8 00 00 00 00 call _add_data_in_datablock
\r
4356 0041d 83 c4 0c add esp, 12 ; 0000000cH
\r
4357 00420 89 45 fc mov DWORD PTR _err$[ebp], eax
\r
4361 ; 831 : size_central_dir_to_read-=read_this;
\r
4363 00423 29 75 d8 sub DWORD PTR _size_central_dir_to_read$82966[ebp], esi
\r
4364 00426 1b 5d ec sbb ebx, DWORD PTR _read_this$82974[ebp+4]
\r
4365 00429 89 5d dc mov DWORD PTR _size_central_dir_to_read$82966[ebp+4], ebx
\r
4366 0042c 85 db test ebx, ebx
\r
4367 0042e 77 90 ja SHORT $LN7@LoadCentra
\r
4370 ; 819 : while ((size_central_dir_to_read>0) && (err==ZIP_OK))
\r
4372 00430 72 06 jb SHORT $LN58@LoadCentra
\r
4373 00432 83 7d d8 00 cmp DWORD PTR _size_central_dir_to_read$82966[ebp], 0
\r
4374 00436 77 88 ja SHORT $LN7@LoadCentra
\r
4378 ; 833 : TRYFREE(buf_read);
\r
4380 00438 8b 45 e4 mov eax, DWORD PTR _buf_read$82968[ebp]
\r
4381 0043b 85 c0 test eax, eax
\r
4382 0043d 74 0a je SHORT $LN2@LoadCentra
\r
4384 00440 ff 15 00 00 00
\r
4385 00 call DWORD PTR __imp__free
\r
4386 00446 83 c4 04 add esp, 4
\r
4390 ; 835 : pziinit->begin_pos = byte_before_the_zipfile;
\r
4392 00449 8b 55 f4 mov edx, DWORD PTR _byte_before_the_zipfile$[ebp+4]
\r
4394 ; 836 : pziinit->number_entry = number_entry_CD;
\r
4396 0044c 8b 45 d0 mov eax, DWORD PTR _number_entry_CD$[ebp]
\r
4397 0044f 8b 4d f0 mov ecx, DWORD PTR _byte_before_the_zipfile$[ebp]
\r
4400 ; 838 : if (ZSEEK64(pziinit->z_filefunc, pziinit->filestream, offset_central_dir+byte_before_the_zipfile,ZLIB_FILEFUNC_SEEK_SET) != 0)
\r
4402 00452 8b 77 2c mov esi, DWORD PTR [edi+44]
\r
4403 00455 89 97 ec 00 01
\r
4404 00 mov DWORD PTR [edi+65772], edx
\r
4405 0045b 8b 55 cc mov edx, DWORD PTR tv439[ebp+4]
\r
4406 0045e 89 87 f8 00 01
\r
4407 00 mov DWORD PTR [edi+65784], eax
\r
4408 00464 8b 45 c8 mov eax, DWORD PTR tv439[ebp]
\r
4410 00468 89 8f e8 00 01
\r
4411 00 mov DWORD PTR [edi+65768], ecx
\r
4412 0046e 8b 4d d4 mov ecx, DWORD PTR _number_entry_CD$[ebp+4]
\r
4414 00472 33 d2 xor edx, edx
\r
4415 00474 8b c7 mov eax, edi
\r
4416 00476 89 8f fc 00 01
\r
4417 00 mov DWORD PTR [edi+65788], ecx
\r
4418 0047c e8 00 00 00 00 call _call_zseek64
\r
4419 00481 83 c4 08 add esp, 8
\r
4420 00484 85 c0 test eax, eax
\r
4421 00486 74 07 je SHORT $LN1@LoadCentra
\r
4423 ; 839 : err=ZIP_ERRNO;
\r
4425 00488 c7 45 fc ff ff
\r
4426 ff ff mov DWORD PTR _err$[ebp], -1
\r
4430 ; 841 : return err;
\r
4432 0048f 8b 45 fc mov eax, DWORD PTR _err$[ebp]
\r
4438 00494 8b e5 mov esp, ebp
\r
4441 _LoadCentralDirectoryRecord ENDP
\r
4442 PUBLIC _zipCloseFileInZipRaw64@16
\r
4443 ; Function compile flags: /Ogtp
\r
4444 ; COMDAT _zipCloseFileInZipRaw64@16
\r
4446 _err$ = -28 ; size = 4
\r
4447 tv525 = -24 ; size = 4
\r
4448 _datasize$ = -24 ; size = 2
\r
4449 _cur_pos_inzip$83566 = -24 ; size = 8
\r
4450 _compressed_size$ = -16 ; size = 8
\r
4451 tv511 = -8 ; size = 8
\r
4452 _file$ = 8 ; size = 4
\r
4453 _uncompressed_size$ = 12 ; size = 8
\r
4454 _crc32$ = 20 ; size = 4
\r
4455 _zipCloseFileInZipRaw64@16 PROC ; COMDAT
\r
4460 00001 8b ec mov ebp, esp
\r
4461 00003 83 e4 f8 and esp, -8 ; fffffff8H
\r
4462 00006 83 ec 1c sub esp, 28 ; 0000001cH
\r
4465 ; 1516 : zip64_internal* zi;
\r
4466 ; 1517 : ZPOS64_T compressed_size;
\r
4467 ; 1518 : uLong invalidValue = 0xffffffff;
\r
4468 ; 1519 : short datasize = 0;
\r
4469 ; 1520 : int err=ZIP_OK;
\r
4471 ; 1522 : if (file == NULL)
\r
4473 0000a 8b 5d 08 mov ebx, DWORD PTR _file$[ebp]
\r
4474 0000d 33 c0 xor eax, eax
\r
4477 00011 89 44 24 10 mov DWORD PTR _datasize$[esp+40], eax
\r
4478 00015 89 44 24 0c mov DWORD PTR _err$[esp+40], eax
\r
4479 00019 3b d8 cmp ebx, eax
\r
4480 0001b 75 0e jne SHORT $LN45@zipCloseFi
\r
4483 ; 1523 : return ZIP_PARAMERROR;
\r
4485 0001d b8 9a ff ff ff mov eax, -102 ; ffffff9aH
\r
4487 ; 1745 : zi->in_opened_file_inzip = 0;
\r
4489 ; 1747 : return err;
\r
4495 00025 8b e5 mov esp, ebp
\r
4497 00028 c2 10 00 ret 16 ; 00000010H
\r
4500 ; 1524 : zi = (zip64_internal*)file;
\r
4502 ; 1526 : if (zi->in_opened_file_inzip == 0)
\r
4504 0002b 39 43 38 cmp DWORD PTR [ebx+56], eax
\r
4506 ; 1527 : return ZIP_PARAMERROR;
\r
4508 0002e 74 ed je SHORT $LN89@zipCloseFi
\r
4510 ; 1528 : zi->ci.stream.avail_in = 0;
\r
4512 ; 1530 : if ((zi->ci.method == Z_DEFLATED) && (!zi->ci.raw))
\r
4514 00030 83 bb 9c 00 00
\r
4515 00 08 cmp DWORD PTR [ebx+156], 8
\r
4516 00037 89 43 44 mov DWORD PTR [ebx+68], eax
\r
4517 0003a 75 4e jne SHORT $LN36@zipCloseFi
\r
4518 0003c 39 83 a0 00 00
\r
4519 00 cmp DWORD PTR [ebx+160], eax
\r
4520 00042 75 46 jne SHORT $LN36@zipCloseFi
\r
4521 00044 8d 7b 40 lea edi, DWORD PTR [ebx+64]
\r
4525 ; 1532 : while (err==ZIP_OK)
\r
4527 ; 1534 : uLong uTotalOutBefore;
\r
4528 ; 1535 : if (zi->ci.stream.avail_out == 0)
\r
4530 00047 83 7b 50 00 cmp DWORD PTR [ebx+80], 0
\r
4531 0004b 75 15 jne SHORT $LN40@zipCloseFi
\r
4534 ; 1537 : if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO)
\r
4536 0004d e8 00 00 00 00 call _zip64FlushWriteBuffer
\r
4538 ; 1538 : err = ZIP_ERRNO;
\r
4539 ; 1539 : zi->ci.stream.avail_out = (uInt)Z_BUFSIZE;
\r
4540 ; 1540 : zi->ci.stream.next_out = zi->ci.buffered_data;
\r
4542 00052 8d 83 a4 00 00
\r
4543 00 lea eax, DWORD PTR [ebx+164]
\r
4544 00058 c7 43 50 00 00
\r
4545 01 00 mov DWORD PTR [ebx+80], 65536 ; 00010000H
\r
4546 0005f 89 43 4c mov DWORD PTR [ebx+76], eax
\r
4550 ; 1542 : uTotalOutBefore = zi->ci.stream.total_out;
\r
4552 00062 8b 73 54 mov esi, DWORD PTR [ebx+84]
\r
4554 ; 1543 : err=deflate(&zi->ci.stream, Z_FINISH);
\r
4556 00065 6a 04 push 4
\r
4558 00068 e8 00 00 00 00 call _deflate@8
\r
4560 ; 1544 : zi->ci.pos_in_buffered_data += (uInt)(zi->ci.stream.total_out - uTotalOutBefore) ;
\r
4562 0006d 8b 4b 54 mov ecx, DWORD PTR [ebx+84]
\r
4563 00070 2b ce sub ecx, esi
\r
4564 00072 01 4b 7c add DWORD PTR [ebx+124], ecx
\r
4565 00075 89 44 24 0c mov DWORD PTR _err$[esp+40], eax
\r
4566 00079 85 c0 test eax, eax
\r
4567 0007b 74 ca je SHORT $LN42@zipCloseFi
\r
4571 ; 1547 : else if ((zi->ci.method == Z_BZIP2ED) && (!zi->ci.raw))
\r
4573 ; 1549 : #ifdef HAVE_BZIP2
\r
4574 ; 1550 : err = BZ_FINISH_OK;
\r
4575 ; 1551 : while (err==BZ_FINISH_OK)
\r
4577 ; 1553 : uLong uTotalOutBefore;
\r
4578 ; 1554 : if (zi->ci.bstream.avail_out == 0)
\r
4580 ; 1556 : if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO)
\r
4581 ; 1557 : err = ZIP_ERRNO;
\r
4582 ; 1558 : zi->ci.bstream.avail_out = (uInt)Z_BUFSIZE;
\r
4583 ; 1559 : zi->ci.bstream.next_out = (char*)zi->ci.buffered_data;
\r
4585 ; 1561 : uTotalOutBefore = zi->ci.bstream.total_out_lo32;
\r
4586 ; 1562 : err=BZ2_bzCompress(&zi->ci.bstream, BZ_FINISH);
\r
4587 ; 1563 : if(err == BZ_STREAM_END)
\r
4588 ; 1564 : err = Z_STREAM_END;
\r
4590 ; 1566 : zi->ci.pos_in_buffered_data += (uInt)(zi->ci.bstream.total_out_lo32 - uTotalOutBefore);
\r
4593 ; 1569 : if(err == BZ_FINISH_OK)
\r
4594 ; 1570 : err = ZIP_OK;
\r
4598 ; 1574 : if (err==Z_STREAM_END)
\r
4600 0007d 83 f8 01 cmp eax, 1
\r
4601 00080 75 08 jne SHORT $LN36@zipCloseFi
\r
4603 ; 1575 : err=ZIP_OK; /* this is normal */
\r
4605 00082 c7 44 24 0c 00
\r
4606 00 00 00 mov DWORD PTR _err$[esp+40], 0
\r
4610 ; 1577 : if ((zi->ci.pos_in_buffered_data>0) && (err==ZIP_OK))
\r
4612 0008a 83 7b 7c 00 cmp DWORD PTR [ebx+124], 0
\r
4613 0008e 76 19 jbe SHORT $LN69@zipCloseFi
\r
4614 00090 83 7c 24 0c 00 cmp DWORD PTR _err$[esp+40], 0
\r
4615 00095 75 12 jne SHORT $LN69@zipCloseFi
\r
4618 ; 1579 : if (zip64FlushWriteBuffer(zi)==ZIP_ERRNO)
\r
4620 00097 e8 00 00 00 00 call _zip64FlushWriteBuffer
\r
4621 0009c 83 ce ff or esi, -1
\r
4622 0009f 3b c6 cmp eax, esi
\r
4623 000a1 75 09 jne SHORT $LN34@zipCloseFi
\r
4625 ; 1580 : err = ZIP_ERRNO;
\r
4627 000a3 89 74 24 0c mov DWORD PTR _err$[esp+40], esi
\r
4628 000a7 eb 03 jmp SHORT $LN34@zipCloseFi
\r
4630 000a9 83 ce ff or esi, -1
\r
4635 ; 1583 : if ((zi->ci.method == Z_DEFLATED) && (!zi->ci.raw))
\r
4637 000ac 83 bb 9c 00 00
\r
4638 00 08 cmp DWORD PTR [ebx+156], 8
\r
4639 000b3 75 24 jne SHORT $LN33@zipCloseFi
\r
4640 000b5 83 bb a0 00 00
\r
4641 00 00 cmp DWORD PTR [ebx+160], 0
\r
4642 000bc 75 3f jne SHORT $LN31@zipCloseFi
\r
4645 ; 1585 : int tmp_err = deflateEnd(&zi->ci.stream);
\r
4647 000be 8d 53 40 lea edx, DWORD PTR [ebx+64]
\r
4649 000c2 e8 00 00 00 00 call _deflateEnd@4
\r
4651 ; 1586 : if (err == ZIP_OK)
\r
4653 000c7 83 7c 24 0c 00 cmp DWORD PTR _err$[esp+40], 0
\r
4654 000cc 75 04 jne SHORT $LN32@zipCloseFi
\r
4656 ; 1587 : err = tmp_err;
\r
4658 000ce 89 44 24 0c mov DWORD PTR _err$[esp+40], eax
\r
4661 ; 1588 : zi->ci.stream_initialised = 0;
\r
4663 000d2 c7 43 78 00 00
\r
4664 00 00 mov DWORD PTR [ebx+120], 0
\r
4668 ; 1590 : #ifdef HAVE_BZIP2
\r
4669 ; 1591 : else if((zi->ci.method == Z_BZIP2ED) && (!zi->ci.raw))
\r
4671 ; 1593 : int tmperr = BZ2_bzCompressEnd(&zi->ci.bstream);
\r
4672 ; 1594 : if (err==ZIP_OK)
\r
4673 ; 1595 : err = tmperr;
\r
4674 ; 1596 : zi->ci.stream_initialised = 0;
\r
4678 ; 1600 : if (!zi->ci.raw)
\r
4680 000d9 83 bb a0 00 00
\r
4681 00 00 cmp DWORD PTR [ebx+160], 0
\r
4682 000e0 75 1b jne SHORT $LN31@zipCloseFi
\r
4685 ; 1602 : crc32 = (uLong)zi->ci.crc32;
\r
4687 000e2 8b 83 a8 00 01
\r
4688 00 mov eax, DWORD PTR [ebx+65704]
\r
4690 ; 1603 : uncompressed_size = zi->ci.totalUncompressedData;
\r
4692 000e8 8b 8b c8 00 01
\r
4693 00 mov ecx, DWORD PTR [ebx+65736]
\r
4694 000ee 8b 93 cc 00 01
\r
4695 00 mov edx, DWORD PTR [ebx+65740]
\r
4696 000f4 89 45 14 mov DWORD PTR _crc32$[ebp], eax
\r
4697 000f7 89 4d 0c mov DWORD PTR _uncompressed_size$[ebp], ecx
\r
4698 000fa 89 55 10 mov DWORD PTR _uncompressed_size$[ebp+4], edx
\r
4702 ; 1605 : compressed_size = zi->ci.totalCompressedData;
\r
4704 ; 1607 : # ifndef NOCRYPT
\r
4705 ; 1608 : compressed_size += zi->ci.crypt_header_size;
\r
4707 000fd 8b 83 e0 00 01
\r
4708 00 mov eax, DWORD PTR [ebx+65760]
\r
4710 00104 03 83 c0 00 01
\r
4711 00 add eax, DWORD PTR [ebx+65728]
\r
4712 0010a 13 93 c4 00 01
\r
4713 00 adc edx, DWORD PTR [ebx+65732]
\r
4714 00110 89 44 24 18 mov DWORD PTR _compressed_size$[esp+40], eax
\r
4715 00114 89 54 24 1c mov DWORD PTR _compressed_size$[esp+44], edx
\r
4719 ; 1611 : // update Current Item crc and sizes,
\r
4720 ; 1612 : if(compressed_size >= 0xffffffff || uncompressed_size >= 0xffffffff || zi->ci.pos_local_header >= 0xffffffff)
\r
4722 00118 85 d2 test edx, edx
\r
4723 0011a 77 24 ja SHORT $LN55@zipCloseFi
\r
4724 0011c 72 04 jb SHORT $LN53@zipCloseFi
\r
4725 0011e 3b c6 cmp eax, esi
\r
4726 00120 73 1e jae SHORT $LN55@zipCloseFi
\r
4728 00122 83 7d 10 00 cmp DWORD PTR _uncompressed_size$[ebp+4], 0
\r
4729 00126 77 18 ja SHORT $LN55@zipCloseFi
\r
4730 00128 72 05 jb SHORT $LN54@zipCloseFi
\r
4731 0012a 39 75 0c cmp DWORD PTR _uncompressed_size$[ebp], esi
\r
4732 0012d 73 11 jae SHORT $LN55@zipCloseFi
\r
4734 0012f 83 bb 84 00 00
\r
4735 00 00 cmp DWORD PTR [ebx+132], 0
\r
4736 00136 77 08 ja SHORT $LN55@zipCloseFi
\r
4737 00138 39 b3 80 00 00
\r
4738 00 cmp DWORD PTR [ebx+128], esi
\r
4739 0013e 72 2c jb SHORT $LN30@zipCloseFi
\r
4743 ; 1614 : /*version Made by*/
\r
4744 ; 1615 : zip64local_putValue_inmemory(zi->ci.central_header+4,(uLong)45,2);
\r
4746 00140 8b bb 88 00 00
\r
4747 00 mov edi, DWORD PTR [ebx+136]
\r
4748 00146 6a 00 push 0
\r
4749 00148 6a 2d push 45 ; 0000002dH
\r
4750 0014a 83 c7 04 add edi, 4
\r
4751 0014d be 02 00 00 00 mov esi, 2
\r
4752 00152 e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
4754 ; 1616 : /*version needed*/
\r
4755 ; 1617 : zip64local_putValue_inmemory(zi->ci.central_header+6,(uLong)45,2);
\r
4757 00157 8b bb 88 00 00
\r
4758 00 mov edi, DWORD PTR [ebx+136]
\r
4759 0015d 6a 00 push 0
\r
4760 0015f 6a 2d push 45 ; 0000002dH
\r
4761 00161 83 c7 06 add edi, 6
\r
4762 00164 e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
4763 00169 83 c4 10 add esp, 16 ; 00000010H
\r
4769 ; 1621 : zip64local_putValue_inmemory(zi->ci.central_header+16,crc32,4); /*crc*/
\r
4771 0016c 8b bb 88 00 00
\r
4772 00 mov edi, DWORD PTR [ebx+136]
\r
4773 00172 33 c0 xor eax, eax
\r
4775 00175 89 44 24 28 mov DWORD PTR tv511[esp+48], eax
\r
4776 00179 8b 45 14 mov eax, DWORD PTR _crc32$[ebp]
\r
4778 0017d 83 c7 10 add edi, 16 ; 00000010H
\r
4779 00180 be 04 00 00 00 mov esi, 4
\r
4780 00185 e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
4784 ; 1624 : if(compressed_size >= 0xffffffff)
\r
4786 0018a 8b 44 24 24 mov eax, DWORD PTR _compressed_size$[esp+52]
\r
4787 0018e 83 c4 08 add esp, 8
\r
4788 00191 85 c0 test eax, eax
\r
4789 00193 75 09 jne SHORT $LN56@zipCloseFi
\r
4790 00195 8b 4c 24 18 mov ecx, DWORD PTR _compressed_size$[esp+40]
\r
4791 00199 83 f9 ff cmp ecx, -1
\r
4792 0019c 72 06 jb SHORT $LN28@zipCloseFi
\r
4795 ; 1625 : zip64local_putValue_inmemory(zi->ci.central_header+20, invalidValue,4); /*compr size*/
\r
4797 0019e 6a 00 push 0
\r
4798 001a0 6a ff push -1
\r
4802 001a2 eb 02 jmp SHORT $LN86@zipCloseFi
\r
4805 ; 1627 : zip64local_putValue_inmemory(zi->ci.central_header+20, compressed_size,4); /*compr size*/
\r
4810 001a6 8b bb 88 00 00
\r
4811 00 mov edi, DWORD PTR [ebx+136]
\r
4812 001ac 83 c7 14 add edi, 20 ; 00000014H
\r
4813 001af e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
4814 001b4 83 c4 08 add esp, 8
\r
4817 ; 1629 : /// set internal file attributes field
\r
4818 ; 1630 : if (zi->ci.stream.data_type == Z_ASCII)
\r
4820 001b7 83 7b 6c 01 cmp DWORD PTR [ebx+108], 1
\r
4821 001bb 75 1a jne SHORT $LN26@zipCloseFi
\r
4823 ; 1631 : zip64local_putValue_inmemory(zi->ci.central_header+36,(uLong)Z_ASCII,2);
\r
4825 001bd 8b bb 88 00 00
\r
4826 00 mov edi, DWORD PTR [ebx+136]
\r
4827 001c3 6a 00 push 0
\r
4828 001c5 6a 01 push 1
\r
4829 001c7 83 c7 24 add edi, 36 ; 00000024H
\r
4830 001ca be 02 00 00 00 mov esi, 2
\r
4831 001cf e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
4832 001d4 83 c4 08 add esp, 8
\r
4836 ; 1633 : if(uncompressed_size >= 0xffffffff)
\r
4838 001d7 8b 4d 10 mov ecx, DWORD PTR _uncompressed_size$[ebp+4]
\r
4839 001da 85 c9 test ecx, ecx
\r
4840 001dc 75 08 jne SHORT $LN57@zipCloseFi
\r
4841 001de 8b 45 0c mov eax, DWORD PTR _uncompressed_size$[ebp]
\r
4842 001e1 83 f8 ff cmp eax, -1
\r
4843 001e4 72 06 jb SHORT $LN25@zipCloseFi
\r
4846 ; 1634 : zip64local_putValue_inmemory(zi->ci.central_header+24, invalidValue,4); /*uncompr size*/
\r
4848 001e6 6a 00 push 0
\r
4849 001e8 6a ff push -1
\r
4853 001ea eb 02 jmp SHORT $LN87@zipCloseFi
\r
4856 ; 1636 : zip64local_putValue_inmemory(zi->ci.central_header+24, uncompressed_size,4); /*uncompr size*/
\r
4861 001ee 8b bb 88 00 00
\r
4862 00 mov edi, DWORD PTR [ebx+136]
\r
4863 001f4 be 04 00 00 00 mov esi, 4
\r
4864 001f9 83 c7 18 add edi, 24 ; 00000018H
\r
4865 001fc e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
4866 00201 83 c4 08 add esp, 8
\r
4869 ; 1638 : // Add ZIP64 extra info field for uncompressed size
\r
4870 ; 1639 : if(uncompressed_size >= 0xffffffff)
\r
4872 00204 83 7d 10 00 cmp DWORD PTR _uncompressed_size$[ebp+4], 0
\r
4873 00208 77 08 ja SHORT $LN58@zipCloseFi
\r
4874 0020a 83 c9 ff or ecx, -1
\r
4875 0020d 39 4d 0c cmp DWORD PTR _uncompressed_size$[ebp], ecx
\r
4876 00210 72 0a jb SHORT $LN71@zipCloseFi
\r
4879 ; 1640 : datasize += 8;
\r
4881 00212 b8 08 00 00 00 mov eax, 8
\r
4882 00217 83 c9 ff or ecx, -1
\r
4883 0021a eb 04 jmp SHORT $LN23@zipCloseFi
\r
4885 0021c 8b 44 24 10 mov eax, DWORD PTR _datasize$[esp+40]
\r
4889 ; 1642 : // Add ZIP64 extra info field for compressed size
\r
4890 ; 1643 : if(compressed_size >= 0xffffffff)
\r
4892 00220 83 7c 24 1c 00 cmp DWORD PTR _compressed_size$[esp+44], 0
\r
4893 00225 77 06 ja SHORT $LN59@zipCloseFi
\r
4894 00227 39 4c 24 18 cmp DWORD PTR _compressed_size$[esp+40], ecx
\r
4895 0022b 72 03 jb SHORT $LN22@zipCloseFi
\r
4898 ; 1644 : datasize += 8;
\r
4900 0022d 83 c0 08 add eax, 8
\r
4904 ; 1646 : // Add ZIP64 extra info field for relative offset to local file header of current file
\r
4905 ; 1647 : if(zi->ci.pos_local_header >= 0xffffffff)
\r
4907 00230 83 bb 84 00 00
\r
4908 00 00 cmp DWORD PTR [ebx+132], 0
\r
4909 00237 77 08 ja SHORT $LN60@zipCloseFi
\r
4910 00239 39 8b 80 00 00
\r
4911 00 cmp DWORD PTR [ebx+128], ecx
\r
4912 0023f 72 03 jb SHORT $LN21@zipCloseFi
\r
4915 ; 1648 : datasize += 8;
\r
4917 00241 83 c0 08 add eax, 8
\r
4921 ; 1650 : if(datasize > 0)
\r
4923 00244 66 85 c0 test ax, ax
\r
4924 00247 0f 8e f6 00 00
\r
4925 00 jle $LN20@zipCloseFi
\r
4928 ; 1652 : char* p = NULL;
\r
4930 ; 1654 : if((uLong)(datasize + 4) > zi->ci.size_centralExtraFree)
\r
4933 0024e 89 44 24 10 mov DWORD PTR tv525[esp+40], eax
\r
4934 00252 83 c0 04 add eax, 4
\r
4935 00255 3b 83 94 00 00
\r
4936 00 cmp eax, DWORD PTR [ebx+148]
\r
4937 0025b 76 0e jbe SHORT $LN19@zipCloseFi
\r
4940 ; 1656 : // we can not write more data to the buffer that we have room for.
\r
4941 ; 1657 : return ZIP_BADZIPFILE;
\r
4943 0025d b8 99 ff ff ff mov eax, -103 ; ffffff99H
\r
4945 ; 1745 : zi->in_opened_file_inzip = 0;
\r
4947 ; 1747 : return err;
\r
4953 00265 8b e5 mov esp, ebp
\r
4955 00268 c2 10 00 ret 16 ; 00000010H
\r
4960 ; 1660 : p = zi->ci.central_header + zi->ci.size_centralheader;
\r
4962 0026b 8b bb 88 00 00
\r
4963 00 mov edi, DWORD PTR [ebx+136]
\r
4964 00271 03 bb 90 00 00
\r
4965 00 add edi, DWORD PTR [ebx+144]
\r
4968 ; 1662 : // Add Extra Information Header for 'ZIP64 information'
\r
4969 ; 1663 : zip64local_putValue_inmemory(p, 0x0001, 2); // HeaderID
\r
4971 00277 6a 00 push 0
\r
4972 00279 6a 01 push 1
\r
4973 0027b be 02 00 00 00 mov esi, 2
\r
4974 00280 e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
4977 ; 1665 : zip64local_putValue_inmemory(p, datasize, 2); // DataSize
\r
4979 00285 8b 44 24 18 mov eax, DWORD PTR tv525[esp+48]
\r
4982 0028b 03 fe add edi, esi
\r
4984 0028e e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
4988 ; 1668 : if(uncompressed_size >= 0xffffffff)
\r
4990 00293 8b 45 10 mov eax, DWORD PTR _uncompressed_size$[ebp+4]
\r
4991 00296 83 c4 10 add esp, 16 ; 00000010H
\r
4992 00299 03 fe add edi, esi
\r
4993 0029b 85 c0 test eax, eax
\r
4994 0029d 75 06 jne SHORT $LN61@zipCloseFi
\r
4995 0029f 83 7d 0c ff cmp DWORD PTR _uncompressed_size$[ebp], -1
\r
4996 002a3 72 14 jb SHORT $LN18@zipCloseFi
\r
5000 ; 1670 : zip64local_putValue_inmemory(p, uncompressed_size, 8);
\r
5002 002a5 8b 4d 0c mov ecx, DWORD PTR _uncompressed_size$[ebp]
\r
5005 002aa be 08 00 00 00 mov esi, 8
\r
5006 002af e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
5007 002b4 83 c4 08 add esp, 8
\r
5011 002b7 03 fe add edi, esi
\r
5016 ; 1674 : if(compressed_size >= 0xffffffff)
\r
5018 002b9 8b 44 24 1c mov eax, DWORD PTR _compressed_size$[esp+44]
\r
5019 002bd 85 c0 test eax, eax
\r
5020 002bf 75 07 jne SHORT $LN62@zipCloseFi
\r
5021 002c1 83 7c 24 18 ff cmp DWORD PTR _compressed_size$[esp+40], -1
\r
5022 002c6 72 15 jb SHORT $LN17@zipCloseFi
\r
5026 ; 1676 : zip64local_putValue_inmemory(p, compressed_size, 8);
\r
5028 002c8 8b 54 24 18 mov edx, DWORD PTR _compressed_size$[esp+40]
\r
5031 002ce be 08 00 00 00 mov esi, 8
\r
5032 002d3 e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
5033 002d8 83 c4 08 add esp, 8
\r
5037 002db 03 fe add edi, esi
\r
5042 ; 1680 : if(zi->ci.pos_local_header >= 0xffffffff)
\r
5044 002dd 8b 83 84 00 00
\r
5045 00 mov eax, DWORD PTR [ebx+132]
\r
5046 002e3 8b 8b 80 00 00
\r
5047 00 mov ecx, DWORD PTR [ebx+128]
\r
5048 002e9 85 c0 test eax, eax
\r
5049 002eb 75 05 jne SHORT $LN63@zipCloseFi
\r
5050 002ed 83 f9 ff cmp ecx, -1
\r
5051 002f0 72 0f jb SHORT $LN16@zipCloseFi
\r
5055 ; 1682 : zip64local_putValue_inmemory(p, zi->ci.pos_local_header, 8);
\r
5059 002f4 be 08 00 00 00 mov esi, 8
\r
5060 002f9 e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
5061 002fe 83 c4 08 add esp, 8
\r
5067 ; 1686 : // Update how much extra free space we got in the memory buffer
\r
5068 ; 1687 : // and increase the centralheader size so the new ZIP64 fields are included
\r
5069 ; 1688 : // ( 4 below is the size of HeaderID and DataSize field )
\r
5070 ; 1689 : zi->ci.size_centralExtraFree -= datasize + 4;
\r
5072 00301 8b 44 24 10 mov eax, DWORD PTR tv525[esp+40]
\r
5074 ; 1690 : zi->ci.size_centralheader += datasize + 4;
\r
5076 ; 1692 : // Update the extra info size field
\r
5077 ; 1693 : zi->ci.size_centralExtra += datasize + 4;
\r
5078 ; 1694 : zip64local_putValue_inmemory(zi->ci.central_header+30,(uLong)zi->ci.size_centralExtra,2);
\r
5080 00305 8b bb 88 00 00
\r
5081 00 mov edi, DWORD PTR [ebx+136]
\r
5082 0030b 8d 50 04 lea edx, DWORD PTR [eax+4]
\r
5083 0030e 01 93 90 00 00
\r
5084 00 add DWORD PTR [ebx+144], edx
\r
5085 00314 b9 fc ff ff ff mov ecx, -4 ; fffffffcH
\r
5086 00319 2b c8 sub ecx, eax
\r
5087 0031b 01 8b 94 00 00
\r
5088 00 add DWORD PTR [ebx+148], ecx
\r
5089 00321 83 c0 04 add eax, 4
\r
5090 00324 01 83 8c 00 00
\r
5091 00 add DWORD PTR [ebx+140], eax
\r
5092 0032a 8b 83 8c 00 00
\r
5093 00 mov eax, DWORD PTR [ebx+140]
\r
5094 00330 6a 00 push 0
\r
5096 00333 83 c7 1e add edi, 30 ; 0000001eH
\r
5097 00336 be 02 00 00 00 mov esi, 2
\r
5098 0033b e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
5099 00340 83 c4 08 add esp, 8
\r
5104 ; 1697 : if (err==ZIP_OK)
\r
5106 00343 83 7c 24 0c 00 cmp DWORD PTR _err$[esp+40], 0
\r
5107 00348 75 1e jne SHORT $LN15@zipCloseFi
\r
5109 ; 1698 : err = add_data_in_datablock(&zi->central_dir, zi->ci.central_header, (uLong)zi->ci.size_centralheader);
\r
5111 0034a 8b 83 90 00 00
\r
5112 00 mov eax, DWORD PTR [ebx+144]
\r
5113 00350 8b 8b 88 00 00
\r
5114 00 mov ecx, DWORD PTR [ebx+136]
\r
5117 00358 8d 53 30 lea edx, DWORD PTR [ebx+48]
\r
5119 0035c e8 00 00 00 00 call _add_data_in_datablock
\r
5120 00361 83 c4 0c add esp, 12 ; 0000000cH
\r
5121 00364 89 44 24 0c mov DWORD PTR _err$[esp+40], eax
\r
5125 ; 1700 : free(zi->ci.central_header);
\r
5127 00368 8b 83 88 00 00
\r
5128 00 mov eax, DWORD PTR [ebx+136]
\r
5130 0036f ff 15 00 00 00
\r
5131 00 call DWORD PTR __imp__free
\r
5132 00375 83 c4 04 add esp, 4
\r
5135 ; 1702 : if (err==ZIP_OK)
\r
5137 00378 83 7c 24 0c 00 cmp DWORD PTR _err$[esp+40], 0
\r
5138 0037d 0f 85 5d 01 00
\r
5139 00 jne $LN1@zipCloseFi
\r
5142 ; 1704 : // Update the LocalFileHeader with the new values.
\r
5144 ; 1706 : ZPOS64_T cur_pos_inzip = ZTELL64(zi->z_filefunc,zi->filestream);
\r
5146 00383 8b 4b 2c mov ecx, DWORD PTR [ebx+44]
\r
5147 00386 8b c3 mov eax, ebx
\r
5148 00388 e8 00 00 00 00 call _call_ztell64
\r
5151 ; 1708 : if (ZSEEK64(zi->z_filefunc,zi->filestream, zi->ci.pos_local_header + 14,ZLIB_FILEFUNC_SEEK_SET)!=0)
\r
5153 0038d 8b 8b 80 00 00
\r
5154 00 mov ecx, DWORD PTR [ebx+128]
\r
5155 00393 8b 73 2c mov esi, DWORD PTR [ebx+44]
\r
5156 00396 89 54 24 14 mov DWORD PTR _cur_pos_inzip$83566[esp+44], edx
\r
5157 0039a 8b 93 84 00 00
\r
5158 00 mov edx, DWORD PTR [ebx+132]
\r
5159 003a0 83 c1 0e add ecx, 14 ; 0000000eH
\r
5160 003a3 83 d2 00 adc edx, 0
\r
5162 003a7 89 44 24 14 mov DWORD PTR _cur_pos_inzip$83566[esp+44], eax
\r
5164 003ac 33 d2 xor edx, edx
\r
5165 003ae 8b c3 mov eax, ebx
\r
5166 003b0 e8 00 00 00 00 call _call_zseek64
\r
5167 003b5 83 c4 08 add esp, 8
\r
5168 003b8 85 c0 test eax, eax
\r
5169 003ba 74 09 je SHORT $LN51@zipCloseFi
\r
5171 ; 1709 : err = ZIP_ERRNO;
\r
5173 003bc 83 cf ff or edi, -1
\r
5174 003bf 89 7c 24 0c mov DWORD PTR _err$[esp+40], edi
\r
5177 ; 1711 : if (err==ZIP_OK)
\r
5179 003c3 eb 22 jmp SHORT $LN12@zipCloseFi
\r
5182 ; 1712 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,crc32,4); /* crc 32, unknown */
\r
5184 003c5 8b 44 24 24 mov eax, DWORD PTR tv511[esp+44]
\r
5185 003c9 8b 4d 14 mov ecx, DWORD PTR _crc32$[ebp]
\r
5186 003cc 8b 53 2c mov edx, DWORD PTR [ebx+44]
\r
5190 003d2 be 04 00 00 00 mov esi, 4
\r
5191 003d7 8b fb mov edi, ebx
\r
5192 003d9 e8 00 00 00 00 call _zip64local_putValue
\r
5193 003de 83 c4 0c add esp, 12 ; 0000000cH
\r
5194 003e1 89 44 24 0c mov DWORD PTR _err$[esp+40], eax
\r
5195 003e5 8b f8 mov edi, eax
\r
5199 ; 1714 : if(uncompressed_size >= 0xffffffff || compressed_size >= 0xffffffff )
\r
5201 003e7 83 7d 10 00 cmp DWORD PTR _uncompressed_size$[ebp+4], 0
\r
5202 003eb 77 4c ja SHORT $LN10@zipCloseFi
\r
5203 003ed 72 06 jb SHORT $LN64@zipCloseFi
\r
5204 003ef 83 7d 0c ff cmp DWORD PTR _uncompressed_size$[ebp], -1
\r
5205 003f3 73 44 jae SHORT $LN10@zipCloseFi
\r
5207 003f5 8b 44 24 1c mov eax, DWORD PTR _compressed_size$[esp+44]
\r
5208 003f9 85 c0 test eax, eax
\r
5209 003fb 77 3c ja SHORT $LN10@zipCloseFi
\r
5210 003fd 72 07 jb SHORT $LN65@zipCloseFi
\r
5211 003ff 83 7c 24 18 ff cmp DWORD PTR _compressed_size$[esp+40], -1
\r
5212 00404 73 33 jae SHORT $LN10@zipCloseFi
\r
5218 ; 1733 : if (err==ZIP_OK) /* compressed size, unknown */
\r
5220 00406 85 ff test edi, edi
\r
5221 00408 0f 85 ad 00 00
\r
5222 00 jne $LN5@zipCloseFi
\r
5224 ; 1734 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,compressed_size,4);
\r
5226 0040e 8b 4b 2c mov ecx, DWORD PTR [ebx+44]
\r
5228 00412 8b 44 24 1c mov eax, DWORD PTR _compressed_size$[esp+44]
\r
5230 00417 8d 77 04 lea esi, DWORD PTR [edi+4]
\r
5232 0041b 8b fb mov edi, ebx
\r
5233 0041d e8 00 00 00 00 call _zip64local_putValue
\r
5234 00422 83 c4 0c add esp, 12 ; 0000000cH
\r
5235 00425 89 44 24 0c mov DWORD PTR _err$[esp+40], eax
\r
5238 ; 1736 : if (err==ZIP_OK) /* uncompressed size, unknown */
\r
5240 00429 85 c0 test eax, eax
\r
5241 0042b 0f 85 8a 00 00
\r
5242 00 jne $LN5@zipCloseFi
\r
5244 ; 1737 : err = zip64local_putValue(&zi->z_filefunc,zi->filestream,uncompressed_size,4);
\r
5246 00431 8b 55 10 mov edx, DWORD PTR _uncompressed_size$[ebp+4]
\r
5247 00434 8b 45 0c mov eax, DWORD PTR _uncompressed_size$[ebp]
\r
5248 00437 eb 66 jmp SHORT $LN90@zipCloseFi
\r
5252 ; 1716 : if(zi->ci.pos_zip64extrainfo > 0)
\r
5254 00439 8b 83 bc 00 01
\r
5255 00 mov eax, DWORD PTR [ebx+65724]
\r
5256 0043f 8b 8b b8 00 01
\r
5257 00 mov ecx, DWORD PTR [ebx+65720]
\r
5258 00445 85 c0 test eax, eax
\r
5259 00447 75 04 jne SHORT $LN66@zipCloseFi
\r
5260 00449 85 c9 test ecx, ecx
\r
5261 0044b 74 66 je SHORT $LN9@zipCloseFi
\r
5265 ; 1718 : // Update the size in the ZIP64 extended field.
\r
5266 ; 1719 : if (ZSEEK64(zi->z_filefunc,zi->filestream, zi->ci.pos_zip64extrainfo + 4,ZLIB_FILEFUNC_SEEK_SET)!=0)
\r
5268 0044d 8b 73 2c mov esi, DWORD PTR [ebx+44]
\r
5269 00450 83 c1 04 add ecx, 4
\r
5270 00453 83 d0 00 adc eax, 0
\r
5273 00458 33 d2 xor edx, edx
\r
5274 0045a 8b c3 mov eax, ebx
\r
5275 0045c e8 00 00 00 00 call _call_zseek64
\r
5276 00461 83 c4 08 add esp, 8
\r
5277 00464 85 c0 test eax, eax
\r
5278 00466 74 0a je SHORT $LN8@zipCloseFi
\r
5280 ; 1720 : err = ZIP_ERRNO;
\r
5282 00468 c7 44 24 0c ff
\r
5283 ff ff ff mov DWORD PTR _err$[esp+40], -1
\r
5286 ; 1722 : if (err==ZIP_OK) /* compressed size, unknown */
\r
5288 00470 eb 49 jmp SHORT $LN5@zipCloseFi
\r
5290 00472 85 ff test edi, edi
\r
5291 00474 75 45 jne SHORT $LN5@zipCloseFi
\r
5293 ; 1723 : err = zip64local_putValue(&zi->z_filefunc, zi->filestream, uncompressed_size, 8);
\r
5295 00476 8b 55 10 mov edx, DWORD PTR _uncompressed_size$[ebp+4]
\r
5296 00479 8b 45 0c mov eax, DWORD PTR _uncompressed_size$[ebp]
\r
5297 0047c 8b 4b 2c mov ecx, DWORD PTR [ebx+44]
\r
5300 00481 8d 77 08 lea esi, DWORD PTR [edi+8]
\r
5302 00485 8b fb mov edi, ebx
\r
5303 00487 e8 00 00 00 00 call _zip64local_putValue
\r
5304 0048c 83 c4 0c add esp, 12 ; 0000000cH
\r
5305 0048f 89 44 24 0c mov DWORD PTR _err$[esp+40], eax
\r
5308 ; 1725 : if (err==ZIP_OK) /* uncompressed size, unknown */
\r
5310 00493 85 c0 test eax, eax
\r
5311 00495 75 24 jne SHORT $LN5@zipCloseFi
\r
5313 ; 1726 : err = zip64local_putValue(&zi->z_filefunc, zi->filestream, compressed_size, 8);
\r
5315 00497 8b 54 24 1c mov edx, DWORD PTR _compressed_size$[esp+44]
\r
5316 0049b 8b 44 24 18 mov eax, DWORD PTR _compressed_size$[esp+40]
\r
5318 0049f 8b 4b 2c mov ecx, DWORD PTR [ebx+44]
\r
5322 004a5 e8 00 00 00 00 call _zip64local_putValue
\r
5323 004aa 83 c4 0c add esp, 12 ; 0000000cH
\r
5324 004ad 89 44 24 0c mov DWORD PTR _err$[esp+40], eax
\r
5329 004b1 eb 08 jmp SHORT $LN5@zipCloseFi
\r
5332 ; 1729 : err = ZIP_BADZIPFILE; // Caller passed zip64 = 0, so no room for zip64 info -> fatal
\r
5334 004b3 c7 44 24 0c 99
\r
5335 ff ff ff mov DWORD PTR _err$[esp+40], -103 ; ffffff99H
\r
5340 ; 1740 : if (ZSEEK64(zi->z_filefunc,zi->filestream, cur_pos_inzip,ZLIB_FILEFUNC_SEEK_SET)!=0)
\r
5342 004bb 8b 54 24 14 mov edx, DWORD PTR _cur_pos_inzip$83566[esp+44]
\r
5343 004bf 8b 44 24 10 mov eax, DWORD PTR _cur_pos_inzip$83566[esp+40]
\r
5344 004c3 8b 73 2c mov esi, DWORD PTR [ebx+44]
\r
5347 004c8 33 d2 xor edx, edx
\r
5348 004ca 8b c3 mov eax, ebx
\r
5349 004cc e8 00 00 00 00 call _call_zseek64
\r
5350 004d1 83 c4 08 add esp, 8
\r
5351 004d4 85 c0 test eax, eax
\r
5352 004d6 74 08 je SHORT $LN1@zipCloseFi
\r
5354 ; 1741 : err = ZIP_ERRNO;
\r
5356 004d8 c7 44 24 0c ff
\r
5357 ff ff ff mov DWORD PTR _err$[esp+40], -1
\r
5362 ; 1744 : zi->number_entry ++;
\r
5364 004e0 83 83 f8 00 01
\r
5365 00 01 add DWORD PTR [ebx+65784], 1
\r
5366 004e7 b8 00 00 00 00 mov eax, 0
\r
5368 ; 1745 : zi->in_opened_file_inzip = 0;
\r
5370 ; 1747 : return err;
\r
5374 004ed 11 83 fc 00 01
\r
5375 00 adc DWORD PTR [ebx+65788], eax
\r
5376 004f3 89 43 38 mov DWORD PTR [ebx+56], eax
\r
5377 004f6 8b 44 24 08 mov eax, DWORD PTR _err$[esp+36]
\r
5380 004fc 8b e5 mov esp, ebp
\r
5382 004ff c2 10 00 ret 16 ; 00000010H
\r
5383 _zipCloseFileInZipRaw64@16 ENDP
\r
5385 PUBLIC _zipCloseFileInZipRaw@12
\r
5386 ; Function compile flags: /Ogtp
\r
5387 ; COMDAT _zipCloseFileInZipRaw@12
\r
5389 _file$ = 8 ; size = 4
\r
5390 _uncompressed_size$ = 12 ; size = 4
\r
5391 _crc32$ = 16 ; size = 4
\r
5392 _zipCloseFileInZipRaw@12 PROC ; COMDAT
\r
5397 00001 8b ec mov ebp, esp
\r
5398 00003 83 e4 f8 and esp, -8 ; fffffff8H
\r
5400 ; 1511 : return zipCloseFileInZipRaw64 (file, uncompressed_size, crc32);
\r
5402 00006 8b 45 10 mov eax, DWORD PTR _crc32$[ebp]
\r
5403 00009 8b 4d 0c mov ecx, DWORD PTR _uncompressed_size$[ebp]
\r
5404 0000c 8b 55 08 mov edx, DWORD PTR _file$[ebp]
\r
5406 00010 6a 00 push 0
\r
5409 00014 e8 00 00 00 00 call _zipCloseFileInZipRaw64@16
\r
5413 00019 8b e5 mov esp, ebp
\r
5415 0001c c2 0c 00 ret 12 ; 0000000cH
\r
5416 _zipCloseFileInZipRaw@12 ENDP
\r
5418 PUBLIC _zipWriteInFileInZip@12
\r
5419 ; Function compile flags: /Ogtp
\r
5420 ; COMDAT _zipWriteInFileInZip@12
\r
5422 _err$ = -4 ; size = 4
\r
5423 _file$ = 8 ; size = 4
\r
5424 _buf$ = 12 ; size = 4
\r
5425 _len$ = 16 ; size = 4
\r
5426 _zipWriteInFileInZip@12 PROC ; COMDAT
\r
5431 00001 8b ec mov ebp, esp
\r
5435 ; 1404 : zip64_internal* zi;
\r
5436 ; 1405 : int err=ZIP_OK;
\r
5438 ; 1407 : if (file == NULL)
\r
5440 00005 8b 5d 08 mov ebx, DWORD PTR _file$[ebp]
\r
5441 00008 c7 45 fc 00 00
\r
5442 00 00 mov DWORD PTR _err$[ebp], 0
\r
5443 0000f 85 db test ebx, ebx
\r
5444 00011 75 0c jne SHORT $LN15@zipWriteIn
\r
5447 ; 1408 : return ZIP_PARAMERROR;
\r
5449 00013 b8 9a ff ff ff mov eax, -102 ; ffffff9aH
\r
5454 00019 8b e5 mov esp, ebp
\r
5456 0001c c2 0c 00 ret 12 ; 0000000cH
\r
5459 ; 1409 : zi = (zip64_internal*)file;
\r
5461 ; 1411 : if (zi->in_opened_file_inzip == 0)
\r
5463 0001f 83 7b 38 00 cmp DWORD PTR [ebx+56], 0
\r
5465 ; 1412 : return ZIP_PARAMERROR;
\r
5467 00023 74 ee je SHORT $LN24@zipWriteIn
\r
5470 ; 1414 : zi->ci.crc32 = crc32(zi->ci.crc32,buf,(uInt)len);
\r
5472 00025 8b 45 0c mov eax, DWORD PTR _buf$[ebp]
\r
5473 00028 8b 8b a8 00 01
\r
5474 00 mov ecx, DWORD PTR [ebx+65704]
\r
5476 0002f 8b 75 10 mov esi, DWORD PTR _len$[ebp]
\r
5481 00036 e8 00 00 00 00 call _crc32@12
\r
5484 ; 1416 : #ifdef HAVE_BZIP2
\r
5485 ; 1417 : if(zi->ci.method == Z_BZIP2ED && (!zi->ci.raw))
\r
5487 ; 1419 : zi->ci.bstream.next_in = (void*)buf;
\r
5488 ; 1420 : zi->ci.bstream.avail_in = len;
\r
5489 ; 1421 : err = BZ_RUN_OK;
\r
5491 ; 1423 : while ((err==BZ_RUN_OK) && (zi->ci.bstream.avail_in>0))
\r
5493 ; 1425 : if (zi->ci.bstream.avail_out == 0)
\r
5495 ; 1427 : if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO)
\r
5496 ; 1428 : err = ZIP_ERRNO;
\r
5497 ; 1429 : zi->ci.bstream.avail_out = (uInt)Z_BUFSIZE;
\r
5498 ; 1430 : zi->ci.bstream.next_out = (char*)zi->ci.buffered_data;
\r
5502 ; 1434 : if(err != BZ_RUN_OK)
\r
5505 ; 1437 : if ((zi->ci.method == Z_BZIP2ED) && (!zi->ci.raw))
\r
5507 ; 1439 : uLong uTotalOutBefore_lo = zi->ci.bstream.total_out_lo32;
\r
5508 ; 1440 : // uLong uTotalOutBefore_hi = zi->ci.bstream.total_out_hi32;
\r
5509 ; 1441 : err=BZ2_bzCompress(&zi->ci.bstream, BZ_RUN);
\r
5511 ; 1443 : zi->ci.pos_in_buffered_data += (uInt)(zi->ci.bstream.total_out_lo32 - uTotalOutBefore_lo) ;
\r
5515 ; 1447 : if(err == BZ_RUN_OK)
\r
5516 ; 1448 : err = ZIP_OK;
\r
5521 ; 1453 : zi->ci.stream.next_in = (Bytef*)buf;
\r
5523 0003b 8b 55 0c mov edx, DWORD PTR _buf$[ebp]
\r
5524 0003e 8d 7b 40 lea edi, DWORD PTR [ebx+64]
\r
5525 00041 89 83 a8 00 01
\r
5526 00 mov DWORD PTR [ebx+65704], eax
\r
5527 00047 89 17 mov DWORD PTR [edi], edx
\r
5529 ; 1454 : zi->ci.stream.avail_in = len;
\r
5531 00049 89 73 44 mov DWORD PTR [ebx+68], esi
\r
5532 0004c 8d 64 24 00 npad 4
\r
5536 ; 1456 : while ((err==ZIP_OK) && (zi->ci.stream.avail_in>0))
\r
5538 00050 83 7b 44 00 cmp DWORD PTR [ebx+68], 0
\r
5539 00054 76 55 jbe SHORT $LN23@zipWriteIn
\r
5542 ; 1458 : if (zi->ci.stream.avail_out == 0)
\r
5544 00056 83 7b 50 00 cmp DWORD PTR [ebx+80], 0
\r
5545 0005a 75 1d jne SHORT $LN11@zipWriteIn
\r
5548 ; 1460 : if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO)
\r
5550 0005c e8 00 00 00 00 call _zip64FlushWriteBuffer
\r
5551 00061 83 f8 ff cmp eax, -1
\r
5552 00064 75 03 jne SHORT $LN10@zipWriteIn
\r
5554 ; 1461 : err = ZIP_ERRNO;
\r
5556 00066 89 45 fc mov DWORD PTR _err$[ebp], eax
\r
5559 ; 1462 : zi->ci.stream.avail_out = (uInt)Z_BUFSIZE;
\r
5560 ; 1463 : zi->ci.stream.next_out = zi->ci.buffered_data;
\r
5562 00069 8d 83 a4 00 00
\r
5563 00 lea eax, DWORD PTR [ebx+164]
\r
5564 0006f c7 43 50 00 00
\r
5565 01 00 mov DWORD PTR [ebx+80], 65536 ; 00010000H
\r
5566 00076 89 43 4c mov DWORD PTR [ebx+76], eax
\r
5572 ; 1467 : if(err != ZIP_OK)
\r
5574 00079 83 7d fc 00 cmp DWORD PTR _err$[ebp], 0
\r
5575 0007d 75 2c jne SHORT $LN23@zipWriteIn
\r
5579 ; 1470 : if ((zi->ci.method == Z_DEFLATED) && (!zi->ci.raw))
\r
5581 0007f 83 bb 9c 00 00
\r
5582 00 08 cmp DWORD PTR [ebx+156], 8
\r
5583 00086 75 2f jne SHORT $LN8@zipWriteIn
\r
5584 00088 83 bb a0 00 00
\r
5585 00 00 cmp DWORD PTR [ebx+160], 0
\r
5586 0008f 75 26 jne SHORT $LN8@zipWriteIn
\r
5589 ; 1472 : uLong uTotalOutBefore = zi->ci.stream.total_out;
\r
5591 00091 8b 73 54 mov esi, DWORD PTR [ebx+84]
\r
5593 ; 1473 : err=deflate(&zi->ci.stream, Z_NO_FLUSH);
\r
5595 00094 6a 00 push 0
\r
5597 00097 e8 00 00 00 00 call _deflate@8
\r
5599 ; 1474 : if(uTotalOutBefore > zi->ci.stream.total_out)
\r
5601 ; 1476 : int bBreak = 0;
\r
5602 ; 1477 : bBreak++;
\r
5605 ; 1480 : zi->ci.pos_in_buffered_data += (uInt)(zi->ci.stream.total_out - uTotalOutBefore) ;
\r
5607 0009c 8b 4b 54 mov ecx, DWORD PTR [ebx+84]
\r
5608 0009f 2b ce sub ecx, esi
\r
5609 000a1 01 4b 7c add DWORD PTR [ebx+124], ecx
\r
5610 000a4 89 45 fc mov DWORD PTR _err$[ebp], eax
\r
5611 000a7 85 c0 test eax, eax
\r
5612 000a9 74 a5 je SHORT $LL13@zipWriteIn
\r
5617 ; 1503 : }// while(...)
\r
5620 ; 1506 : return err;
\r
5622 000ab 8b 45 fc mov eax, DWORD PTR _err$[ebp]
\r
5629 000b1 8b e5 mov esp, ebp
\r
5631 000b4 c2 0c 00 ret 12 ; 0000000cH
\r
5637 ; 1484 : uInt copy_this,i;
\r
5638 ; 1485 : if (zi->ci.stream.avail_in < zi->ci.stream.avail_out)
\r
5640 000b7 8b 43 50 mov eax, DWORD PTR [ebx+80]
\r
5641 000ba 8b 73 44 mov esi, DWORD PTR [ebx+68]
\r
5642 000bd 3b f0 cmp esi, eax
\r
5644 ; 1486 : copy_this = zi->ci.stream.avail_in;
\r
5647 000bf 72 02 jb SHORT $LN4@zipWriteIn
\r
5649 ; 1488 : copy_this = zi->ci.stream.avail_out;
\r
5651 000c1 8b f0 mov esi, eax
\r
5655 ; 1490 : for (i = 0; i < copy_this; i++)
\r
5657 000c3 33 c0 xor eax, eax
\r
5658 000c5 85 f6 test esi, esi
\r
5659 000c7 74 17 je SHORT $LN1@zipWriteIn
\r
5660 000c9 8d a4 24 00 00
\r
5664 ; 1491 : *(((char*)zi->ci.stream.next_out)+i) =
\r
5665 ; 1492 : *(((const char*)zi->ci.stream.next_in)+i);
\r
5667 000d0 8b 17 mov edx, DWORD PTR [edi]
\r
5668 000d2 8a 14 10 mov dl, BYTE PTR [eax+edx]
\r
5669 000d5 8b 4b 4c mov ecx, DWORD PTR [ebx+76]
\r
5670 000d8 88 14 08 mov BYTE PTR [eax+ecx], dl
\r
5672 000dc 3b c6 cmp eax, esi
\r
5673 000de 72 f0 jb SHORT $LL3@zipWriteIn
\r
5677 ; 1494 : zi->ci.stream.avail_in -= copy_this;
\r
5679 000e0 29 73 44 sub DWORD PTR [ebx+68], esi
\r
5681 ; 1495 : zi->ci.stream.avail_out-= copy_this;
\r
5683 000e3 29 73 50 sub DWORD PTR [ebx+80], esi
\r
5685 ; 1496 : zi->ci.stream.next_in+= copy_this;
\r
5687 000e6 01 37 add DWORD PTR [edi], esi
\r
5689 ; 1497 : zi->ci.stream.next_out+= copy_this;
\r
5691 000e8 01 73 4c add DWORD PTR [ebx+76], esi
\r
5693 ; 1498 : zi->ci.stream.total_in+= copy_this;
\r
5695 000eb 01 73 48 add DWORD PTR [ebx+72], esi
\r
5697 ; 1499 : zi->ci.stream.total_out+= copy_this;
\r
5699 000ee 01 73 54 add DWORD PTR [ebx+84], esi
\r
5701 ; 1500 : zi->ci.pos_in_buffered_data += copy_this;
\r
5703 000f1 01 73 7c add DWORD PTR [ebx+124], esi
\r
5704 000f4 e9 57 ff ff ff jmp $LL13@zipWriteIn
\r
5705 _zipWriteInFileInZip@12 ENDP
\r
5707 PUBLIC _zipOpen3@16
\r
5708 EXTRN __chkstk:PROC
\r
5709 ; Function compile flags: /Ogtp
\r
5710 ; COMDAT _zipOpen3@16
\r
5712 _ziinit$ = -65800 ; size = 65800
\r
5713 _pathname$ = 8 ; size = 4
\r
5714 _append$ = 12 ; size = 4
\r
5715 _globalcomment$ = 16 ; size = 4
\r
5716 _zipOpen3@16 PROC ; COMDAT
\r
5717 ; _pzlib_filefunc64_32_def$ = ecx
\r
5722 00001 8b ec mov ebp, esp
\r
5723 00003 83 e4 f8 and esp, -8 ; fffffff8H
\r
5724 00006 b8 0c 01 01 00 mov eax, 65804 ; 0001010cH
\r
5725 0000b e8 00 00 00 00 call __chkstk
\r
5729 ; 851 : zip64_internal ziinit;
\r
5730 ; 852 : zip64_internal* zi;
\r
5731 ; 853 : int err=ZIP_OK;
\r
5733 00012 33 db xor ebx, ebx
\r
5734 00014 8b f1 mov esi, ecx
\r
5738 ; 855 : ziinit.z_filefunc.zseek32_file = NULL;
\r
5740 00017 89 5c 24 38 mov DWORD PTR _ziinit$[esp+65856], ebx
\r
5742 ; 856 : ziinit.z_filefunc.ztell32_file = NULL;
\r
5744 0001b 89 5c 24 34 mov DWORD PTR _ziinit$[esp+65852], ebx
\r
5746 ; 857 : if (pzlib_filefunc64_32_def==NULL)
\r
5748 0001f 3b f3 cmp esi, ebx
\r
5749 00021 75 0b jne SHORT $LN11@zipOpen3
\r
5751 ; 858 : fill_fopen64_filefunc(&ziinit.z_filefunc.zfile_func64);
\r
5753 00023 8d 44 24 10 lea eax, DWORD PTR _ziinit$[esp+65816]
\r
5754 00027 e8 00 00 00 00 call _fill_fopen64_filefunc
\r
5758 0002c eb 0b jmp SHORT $LN10@zipOpen3
\r
5761 ; 860 : ziinit.z_filefunc = *pzlib_filefunc64_32_def;
\r
5763 0002e b9 0b 00 00 00 mov ecx, 11 ; 0000000bH
\r
5764 00033 8d 7c 24 10 lea edi, DWORD PTR _ziinit$[esp+65816]
\r
5765 00037 f3 a5 rep movsd
\r
5769 ; 862 : ziinit.filestream = ZOPEN64(ziinit.z_filefunc,
\r
5771 ; 864 : (append == APPEND_STATUS_CREATE) ?
\r
5772 ; 865 : (ZLIB_FILEFUNC_MODE_READ | ZLIB_FILEFUNC_MODE_WRITE | ZLIB_FILEFUNC_MODE_CREATE) :
\r
5773 ; 866 : (ZLIB_FILEFUNC_MODE_READ | ZLIB_FILEFUNC_MODE_WRITE | ZLIB_FILEFUNC_MODE_EXISTING));
\r
5775 00039 8b 7d 0c mov edi, DWORD PTR _append$[ebp]
\r
5776 0003c 8b 75 08 mov esi, DWORD PTR _pathname$[ebp]
\r
5777 0003f 33 d2 xor edx, edx
\r
5778 00041 3b fb cmp edi, ebx
\r
5779 00043 0f 94 c2 sete dl
\r
5780 00046 8d 44 24 10 lea eax, DWORD PTR _ziinit$[esp+65816]
\r
5781 0004a 8d 14 95 07 00
\r
5782 00 00 lea edx, DWORD PTR [edx*4+7]
\r
5783 00051 e8 00 00 00 00 call _call_zopen64
\r
5784 00056 8b f0 mov esi, eax
\r
5785 00058 89 74 24 3c mov DWORD PTR _ziinit$[esp+65860], esi
\r
5788 ; 868 : if (ziinit.filestream == NULL)
\r
5790 0005c 3b f3 cmp esi, ebx
\r
5792 ; 869 : return NULL;
\r
5794 0005e 0f 84 84 00 00
\r
5795 00 je $LN15@zipOpen3
\r
5798 ; 871 : if (append == APPEND_STATUS_CREATEAFTER)
\r
5800 00064 83 ff 01 cmp edi, 1
\r
5801 00067 75 11 jne SHORT $LN8@zipOpen3
\r
5803 ; 872 : ZSEEK64(ziinit.z_filefunc,ziinit.filestream,0,SEEK_END);
\r
5807 0006b 8d 57 01 lea edx, DWORD PTR [edi+1]
\r
5808 0006e 8d 44 24 18 lea eax, DWORD PTR _ziinit$[esp+65824]
\r
5809 00072 e8 00 00 00 00 call _call_zseek64
\r
5810 00077 83 c4 08 add esp, 8
\r
5814 ; 874 : ziinit.begin_pos = ZTELL64(ziinit.z_filefunc,ziinit.filestream);
\r
5816 0007a 8b ce mov ecx, esi
\r
5817 0007c 8d 44 24 10 lea eax, DWORD PTR _ziinit$[esp+65816]
\r
5818 00080 e8 00 00 00 00 call _call_ztell64
\r
5819 00085 89 84 24 f8 00
\r
5820 01 00 mov DWORD PTR _ziinit$[esp+131584], eax
\r
5822 ; 875 : ziinit.in_opened_file_inzip = 0;
\r
5823 ; 876 : ziinit.ci.stream_initialised = 0;
\r
5824 ; 877 : ziinit.number_entry = 0;
\r
5825 ; 878 : ziinit.add_position_when_writting_offset = 0;
\r
5826 ; 879 : init_linkedlist(&(ziinit.central_dir));
\r
5828 0008c 8d 44 24 40 lea eax, DWORD PTR _ziinit$[esp+65864]
\r
5829 00090 89 94 24 fc 00
\r
5830 01 00 mov DWORD PTR _ziinit$[esp+131588], edx
\r
5831 00097 89 5c 24 48 mov DWORD PTR _ziinit$[esp+65872], ebx
\r
5832 0009b 89 9c 24 88 00
\r
5833 00 00 mov DWORD PTR _ziinit$[esp+65936], ebx
\r
5834 000a2 89 9c 24 08 01
\r
5835 01 00 mov DWORD PTR _ziinit$[esp+131600], ebx
\r
5836 000a9 89 9c 24 0c 01
\r
5837 01 00 mov DWORD PTR _ziinit$[esp+131604], ebx
\r
5838 000b0 89 9c 24 00 01
\r
5839 01 00 mov DWORD PTR _ziinit$[esp+131592], ebx
\r
5840 000b7 89 9c 24 04 01
\r
5841 01 00 mov DWORD PTR _ziinit$[esp+131596], ebx
\r
5842 000be e8 00 00 00 00 call _init_linkedlist
\r
5847 ; 883 : zi = (zip64_internal*)ALLOC(sizeof(zip64_internal));
\r
5849 000c3 68 08 01 01 00 push 65800 ; 00010108H
\r
5850 000c8 ff 15 00 00 00
\r
5851 00 call DWORD PTR __imp__malloc
\r
5852 000ce 8b f0 mov esi, eax
\r
5853 000d0 83 c4 04 add esp, 4
\r
5855 ; 884 : if (zi==NULL)
\r
5857 000d3 3b f3 cmp esi, ebx
\r
5858 000d5 75 1c jne SHORT $LN7@zipOpen3
\r
5861 ; 886 : ZCLOSE64(ziinit.z_filefunc,ziinit.filestream);
\r
5863 000d7 8b 44 24 3c mov eax, DWORD PTR _ziinit$[esp+65860]
\r
5864 000db 8b 4c 24 2c mov ecx, DWORD PTR _ziinit$[esp+65844]
\r
5867 000e1 ff 54 24 2c call DWORD PTR _ziinit$[esp+65844]
\r
5868 000e5 83 c4 08 add esp, 8
\r
5871 ; 887 : return NULL;
\r
5873 000e8 33 c0 xor eax, eax
\r
5875 ; 916 : return (zipFile)zi;
\r
5882 000ed 8b e5 mov esp, ebp
\r
5884 000f0 c2 0c 00 ret 12 ; 0000000cH
\r
5889 ; 890 : /* now we add file in a zipfile */
\r
5890 ; 891 : # ifndef NO_ADDFILEINEXISTINGZIP
\r
5891 ; 892 : ziinit.globalcomment = NULL;
\r
5893 000f3 33 c9 xor ecx, ecx
\r
5894 000f5 89 8c 24 10 01
\r
5895 01 00 mov DWORD PTR _ziinit$[esp+131608], ecx
\r
5897 ; 893 : if (append == APPEND_STATUS_ADDINZIP)
\r
5899 000fc 83 ff 02 cmp edi, 2
\r
5900 000ff 75 12 jne SHORT $LN14@zipOpen3
\r
5903 ; 895 : // Read and Cache Central Directory Records
\r
5904 ; 896 : err = LoadCentralDirectoryRecord(&ziinit);
\r
5906 00101 8d 7c 24 10 lea edi, DWORD PTR _ziinit$[esp+65816]
\r
5907 00105 e8 00 00 00 00 call _LoadCentralDirectoryRecord
\r
5908 0010a 8b 8c 24 10 01
\r
5909 01 00 mov ecx, DWORD PTR _ziinit$[esp+131608]
\r
5910 00111 eb 02 jmp SHORT $LN6@zipOpen3
\r
5912 00113 8b c1 mov eax, ecx
\r
5917 ; 899 : if (globalcomment)
\r
5919 00115 8b 55 10 mov edx, DWORD PTR _globalcomment$[ebp]
\r
5920 00118 3b d3 cmp edx, ebx
\r
5921 0011a 74 02 je SHORT $LN5@zipOpen3
\r
5924 ; 901 : *globalcomment = ziinit.globalcomment;
\r
5926 0011c 89 0a mov DWORD PTR [edx], ecx
\r
5930 ; 903 : # endif /* !NO_ADDFILEINEXISTINGZIP*/
\r
5932 ; 905 : if (err != ZIP_OK)
\r
5934 0011e 3b c3 cmp eax, ebx
\r
5935 00120 74 21 je SHORT $LN4@zipOpen3
\r
5938 ; 907 : # ifndef NO_ADDFILEINEXISTINGZIP
\r
5939 ; 908 : TRYFREE(ziinit.globalcomment);
\r
5941 00122 8b 3d 00 00 00
\r
5942 00 mov edi, DWORD PTR __imp__free
\r
5943 00128 3b cb cmp ecx, ebx
\r
5944 0012a 74 06 je SHORT $LN3@zipOpen3
\r
5946 0012d ff d7 call edi
\r
5947 0012f 83 c4 04 add esp, 4
\r
5950 ; 909 : # endif /* !NO_ADDFILEINEXISTINGZIP*/
\r
5951 ; 910 : TRYFREE(zi);
\r
5954 00133 ff d7 call edi
\r
5955 00135 83 c4 04 add esp, 4
\r
5957 ; 911 : return NULL;
\r
5959 00138 33 c0 xor eax, eax
\r
5961 ; 916 : return (zipFile)zi;
\r
5968 0013d 8b e5 mov esp, ebp
\r
5970 00140 c2 0c 00 ret 12 ; 0000000cH
\r
5976 ; 915 : *zi = ziinit;
\r
5978 00143 68 08 01 01 00 push 65800 ; 00010108H
\r
5979 00148 8d 54 24 14 lea edx, DWORD PTR _ziinit$[esp+65820]
\r
5982 0014e e8 00 00 00 00 call _memcpy
\r
5983 00153 83 c4 0c add esp, 12 ; 0000000cH
\r
5985 ; 916 : return (zipFile)zi;
\r
5990 00157 8b c6 mov eax, esi
\r
5993 0015b 8b e5 mov esp, ebp
\r
5995 0015e c2 0c 00 ret 12 ; 0000000cH
\r
5997 PUBLIC _zipCloseFileInZip@4
\r
5998 ; Function compile flags: /Ogtp
\r
5999 ; COMDAT _zipCloseFileInZip@4
\r
6001 _file$ = 8 ; size = 4
\r
6002 _zipCloseFileInZip@4 PROC ; COMDAT
\r
6007 00001 8b ec mov ebp, esp
\r
6009 ; 1752 : return zipCloseFileInZipRaw (file,0,0);
\r
6011 00003 8b 45 08 mov eax, DWORD PTR _file$[ebp]
\r
6012 00006 6a 00 push 0
\r
6013 00008 6a 00 push 0
\r
6015 0000b e8 00 00 00 00 call _zipCloseFileInZipRaw@12
\r
6020 00011 c2 04 00 ret 4
\r
6021 _zipCloseFileInZip@4 ENDP
\r
6023 PUBLIC _zipOpenNewFileInZip4_64@76
\r
6024 ; Function compile flags: /Ogtp
\r
6025 ; COMDAT _zipOpenNewFileInZip4_64@76
\r
6027 _size_comment$ = -20 ; size = 4
\r
6028 tv878 = -16 ; size = 4
\r
6029 _size_filename$ = -16 ; size = 4
\r
6030 _bufHead$83245 = -12 ; size = 12
\r
6031 _file$ = 8 ; size = 4
\r
6032 _filename$ = 12 ; size = 4
\r
6033 _zipfi$ = 16 ; size = 4
\r
6034 _extrafield_local$ = 20 ; size = 4
\r
6035 _size_extrafield_local$ = 24 ; size = 4
\r
6036 _extrafield_global$ = 28 ; size = 4
\r
6037 _size_extrafield_global$ = 32 ; size = 4
\r
6038 _comment$ = 36 ; size = 4
\r
6039 _method$ = 40 ; size = 4
\r
6040 _level$ = 44 ; size = 4
\r
6041 _raw$ = 48 ; size = 4
\r
6042 _windowBits$ = 52 ; size = 4
\r
6043 _memLevel$ = 56 ; size = 4
\r
6044 _strategy$ = 60 ; size = 4
\r
6045 _password$ = 64 ; size = 4
\r
6046 _crcForCrypting$ = 68 ; size = 4
\r
6047 _versionMadeBy$ = 72 ; size = 4
\r
6048 _flagBase$ = 76 ; size = 4
\r
6049 _zip64$ = 80 ; size = 4
\r
6050 _zipOpenNewFileInZip4_64@76 PROC ; COMDAT
\r
6055 00001 8b ec mov ebp, esp
\r
6056 00003 83 e4 f8 and esp, -8 ; fffffff8H
\r
6057 00006 83 ec 14 sub esp, 20 ; 00000014H
\r
6060 ; 1063 : zip64_internal* zi;
\r
6061 ; 1064 : uInt size_filename;
\r
6062 ; 1065 : uInt size_comment;
\r
6064 ; 1067 : int err = ZIP_OK;
\r
6066 ; 1069 : # ifdef NOCRYPT
\r
6067 ; 1070 : (crcForCrypting);
\r
6068 ; 1071 : if (password != NULL)
\r
6069 ; 1072 : return ZIP_PARAMERROR;
\r
6072 ; 1075 : if (file == NULL)
\r
6074 0000a 8b 5d 08 mov ebx, DWORD PTR _file$[ebp]
\r
6077 0000f 33 ff xor edi, edi
\r
6078 00011 3b df cmp ebx, edi
\r
6079 00013 75 0e jne SHORT $LN41@zipOpenNew
\r
6082 ; 1076 : return ZIP_PARAMERROR;
\r
6084 00015 b8 9a ff ff ff mov eax, -102 ; ffffff9aH
\r
6091 0001d 8b e5 mov esp, ebp
\r
6093 00020 c2 4c 00 ret 76 ; 0000004cH
\r
6097 ; 1078 : #ifdef HAVE_BZIP2
\r
6098 ; 1079 : if ((method!=0) && (method!=Z_DEFLATED) && (method!=Z_BZIP2ED))
\r
6099 ; 1080 : return ZIP_PARAMERROR;
\r
6101 ; 1082 : if ((method!=0) && (method!=Z_DEFLATED))
\r
6103 00023 8b 45 28 mov eax, DWORD PTR _method$[ebp]
\r
6104 00026 3b c7 cmp eax, edi
\r
6105 00028 74 05 je SHORT $LN40@zipOpenNew
\r
6106 0002a 83 f8 08 cmp eax, 8
\r
6108 ; 1083 : return ZIP_PARAMERROR;
\r
6110 0002d 75 e6 jne SHORT $LN64@zipOpenNew
\r
6115 ; 1086 : zi = (zip64_internal*)file;
\r
6117 ; 1088 : if (zi->in_opened_file_inzip == 1)
\r
6119 0002f 83 7b 38 01 cmp DWORD PTR [ebx+56], 1
\r
6120 00033 75 0e jne SHORT $LN38@zipOpenNew
\r
6123 ; 1090 : err = zipCloseFileInZip (file);
\r
6126 00036 e8 00 00 00 00 call _zipCloseFileInZip@4
\r
6128 ; 1091 : if (err != ZIP_OK)
\r
6130 0003b 3b c7 cmp eax, edi
\r
6132 ; 1092 : return err;
\r
6134 0003d 0f 85 7d 04 00
\r
6135 00 jne $LN42@zipOpenNew
\r
6140 ; 1095 : if (filename==NULL)
\r
6142 00043 39 7d 0c cmp DWORD PTR _filename$[ebp], edi
\r
6143 00046 75 07 jne SHORT $LN37@zipOpenNew
\r
6145 ; 1096 : filename="-";
\r
6147 00048 c7 45 0c 00 00
\r
6148 00 00 mov DWORD PTR _filename$[ebp], OFFSET ??_C@_01JOAMLHOP@?9?$AA@
\r
6152 ; 1098 : if (comment==NULL)
\r
6154 0004f 8b 45 24 mov eax, DWORD PTR _comment$[ebp]
\r
6155 00052 3b c7 cmp eax, edi
\r
6156 00054 75 06 jne SHORT $LN36@zipOpenNew
\r
6158 ; 1099 : size_comment = 0;
\r
6160 00056 89 7c 24 0c mov DWORD PTR _size_comment$[esp+32], edi
\r
6164 0005a eb 11 jmp SHORT $LN35@zipOpenNew
\r
6167 ; 1101 : size_comment = (uInt)strlen(comment);
\r
6169 0005c 8d 50 01 lea edx, DWORD PTR [eax+1]
\r
6172 00060 8a 08 mov cl, BYTE PTR [eax]
\r
6174 00063 84 c9 test cl, cl
\r
6175 00065 75 f9 jne SHORT $LL52@zipOpenNew
\r
6176 00067 2b c2 sub eax, edx
\r
6177 00069 89 44 24 0c mov DWORD PTR _size_comment$[esp+32], eax
\r
6181 ; 1103 : size_filename = (uInt)strlen(filename);
\r
6183 0006d 8b 45 0c mov eax, DWORD PTR _filename$[ebp]
\r
6184 00070 8d 50 01 lea edx, DWORD PTR [eax+1]
\r
6186 00073 8a 08 mov cl, BYTE PTR [eax]
\r
6188 00076 84 c9 test cl, cl
\r
6189 00078 75 f9 jne SHORT $LL53@zipOpenNew
\r
6190 0007a 2b c2 sub eax, edx
\r
6193 ; 1105 : if (zipfi == NULL)
\r
6195 0007c 8b 55 10 mov edx, DWORD PTR _zipfi$[ebp]
\r
6196 0007f 8b f0 mov esi, eax
\r
6197 00081 89 74 24 10 mov DWORD PTR _size_filename$[esp+32], esi
\r
6198 00085 3b d7 cmp edx, edi
\r
6199 00087 75 08 jne SHORT $LN34@zipOpenNew
\r
6201 ; 1106 : zi->ci.dosDate = 0;
\r
6203 00089 89 bb a4 00 01
\r
6204 00 mov DWORD PTR [ebx+65700], edi
\r
6208 0008f eb 12 jmp SHORT $LN31@zipOpenNew
\r
6212 ; 1109 : if (zipfi->dosDate != 0)
\r
6214 00091 8b 42 18 mov eax, DWORD PTR [edx+24]
\r
6215 00094 3b c7 cmp eax, edi
\r
6217 ; 1110 : zi->ci.dosDate = zipfi->dosDate;
\r
6220 00096 75 05 jne SHORT $LN61@zipOpenNew
\r
6222 ; 1112 : zi->ci.dosDate = zip64local_TmzDateToDosDate(&zipfi->tmz_date);
\r
6224 00098 e8 00 00 00 00 call _zip64local_TmzDateToDosDate
\r
6226 0009d 89 83 a4 00 01
\r
6227 00 mov DWORD PTR [ebx+65700], eax
\r
6232 ; 1115 : zi->ci.flag = flagBase;
\r
6233 ; 1116 : if ((level==8) || (level==9))
\r
6235 000a3 8b 4d 2c mov ecx, DWORD PTR _level$[ebp]
\r
6236 000a6 8b 45 4c mov eax, DWORD PTR _flagBase$[ebp]
\r
6237 000a9 89 83 98 00 00
\r
6238 00 mov DWORD PTR [ebx+152], eax
\r
6239 000af 83 f9 08 cmp ecx, 8
\r
6240 000b2 74 05 je SHORT $LN29@zipOpenNew
\r
6241 000b4 83 f9 09 cmp ecx, 9
\r
6242 000b7 75 09 jne SHORT $LN30@zipOpenNew
\r
6245 ; 1117 : zi->ci.flag |= 2;
\r
6247 000b9 83 c8 02 or eax, 2
\r
6248 000bc 89 83 98 00 00
\r
6249 00 mov DWORD PTR [ebx+152], eax
\r
6252 ; 1118 : if ((level==2))
\r
6254 000c2 83 f9 02 cmp ecx, 2
\r
6255 000c5 75 09 jne SHORT $LN28@zipOpenNew
\r
6257 ; 1119 : zi->ci.flag |= 4;
\r
6259 000c7 83 8b 98 00 00
\r
6260 00 04 or DWORD PTR [ebx+152], 4
\r
6262 ; 1120 : if ((level==1))
\r
6264 000ce eb 0c jmp SHORT $LN27@zipOpenNew
\r
6266 000d0 83 f9 01 cmp ecx, 1
\r
6267 000d3 75 07 jne SHORT $LN27@zipOpenNew
\r
6269 ; 1121 : zi->ci.flag |= 6;
\r
6271 000d5 83 8b 98 00 00
\r
6272 00 06 or DWORD PTR [ebx+152], 6
\r
6275 ; 1122 : if (password != NULL)
\r
6277 000dc 39 7d 40 cmp DWORD PTR _password$[ebp], edi
\r
6278 000df 74 07 je SHORT $LN26@zipOpenNew
\r
6280 ; 1123 : zi->ci.flag |= 1;
\r
6282 000e1 83 8b 98 00 00
\r
6283 00 01 or DWORD PTR [ebx+152], 1
\r
6287 ; 1125 : zi->ci.crc32 = 0;
\r
6288 ; 1126 : zi->ci.method = method;
\r
6290 000e8 8b 45 28 mov eax, DWORD PTR _method$[ebp]
\r
6292 ; 1127 : zi->ci.encrypt = 0;
\r
6293 ; 1128 : zi->ci.stream_initialised = 0;
\r
6294 ; 1129 : zi->ci.pos_in_buffered_data = 0;
\r
6295 ; 1130 : zi->ci.raw = raw;
\r
6297 000eb 8b 4d 30 mov ecx, DWORD PTR _raw$[ebp]
\r
6298 000ee 89 83 9c 00 00
\r
6299 00 mov DWORD PTR [ebx+156], eax
\r
6300 000f4 89 8b a0 00 00
\r
6301 00 mov DWORD PTR [ebx+160], ecx
\r
6303 ; 1131 : zi->ci.pos_local_header = ZTELL64(zi->z_filefunc,zi->filestream);
\r
6305 000fa 8b 4b 2c mov ecx, DWORD PTR [ebx+44]
\r
6306 000fd 8b c3 mov eax, ebx
\r
6307 000ff 89 bb a8 00 01
\r
6308 00 mov DWORD PTR [ebx+65704], edi
\r
6309 00105 89 bb ac 00 01
\r
6310 00 mov DWORD PTR [ebx+65708], edi
\r
6311 0010b 89 7b 78 mov DWORD PTR [ebx+120], edi
\r
6312 0010e 89 7b 7c mov DWORD PTR [ebx+124], edi
\r
6313 00111 e8 00 00 00 00 call _call_ztell64
\r
6314 00116 89 83 80 00 00
\r
6315 00 mov DWORD PTR [ebx+128], eax
\r
6316 0011c 89 93 84 00 00
\r
6317 00 mov DWORD PTR [ebx+132], edx
\r
6320 ; 1133 : zi->ci.size_centralheader = SIZECENTRALHEADER + size_filename + size_extrafield_global + size_comment;
\r
6322 00122 8b 54 24 0c mov edx, DWORD PTR _size_comment$[esp+32]
\r
6323 00126 8d 04 16 lea eax, DWORD PTR [esi+edx]
\r
6324 00129 8b 75 20 mov esi, DWORD PTR _size_extrafield_global$[ebp]
\r
6325 0012c 8d 44 30 2e lea eax, DWORD PTR [eax+esi+46]
\r
6326 00130 89 83 90 00 00
\r
6327 00 mov DWORD PTR [ebx+144], eax
\r
6329 ; 1134 : zi->ci.size_centralExtraFree = 32; // Extra space we have reserved in case we need to add ZIP64 extra info data
\r
6331 ; 1136 : zi->ci.central_header = (char*)ALLOC((uInt)zi->ci.size_centralheader + zi->ci.size_centralExtraFree);
\r
6333 00136 83 c0 20 add eax, 32 ; 00000020H
\r
6335 0013a c7 83 94 00 00
\r
6336 00 20 00 00 00 mov DWORD PTR [ebx+148], 32 ; 00000020H
\r
6337 00144 ff 15 00 00 00
\r
6338 00 call DWORD PTR __imp__malloc
\r
6339 0014a 83 c4 04 add esp, 4
\r
6342 ; 1138 : zi->ci.size_centralExtra = size_extrafield_global;
\r
6343 ; 1139 : zip64local_putValue_inmemory(zi->ci.central_header,(uLong)CENTRALHEADERMAGIC,4);
\r
6346 0014e 89 b3 8c 00 00
\r
6347 00 mov DWORD PTR [ebx+140], esi
\r
6348 00154 68 50 4b 01 02 push 33639248 ; 02014b50H
\r
6349 00159 be 04 00 00 00 mov esi, 4
\r
6350 0015e 8b f8 mov edi, eax
\r
6351 00160 89 83 88 00 00
\r
6352 00 mov DWORD PTR [ebx+136], eax
\r
6353 00166 e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
6355 ; 1140 : /* version info */
\r
6356 ; 1141 : zip64local_putValue_inmemory(zi->ci.central_header+4,(uLong)versionMadeBy,2);
\r
6358 0016b 8b bb 88 00 00
\r
6359 00 mov edi, DWORD PTR [ebx+136]
\r
6360 00171 8b 4d 48 mov ecx, DWORD PTR _versionMadeBy$[ebp]
\r
6361 00174 6a 00 push 0
\r
6362 00176 03 fe add edi, esi
\r
6364 00179 be 02 00 00 00 mov esi, 2
\r
6365 0017e e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
6367 ; 1142 : zip64local_putValue_inmemory(zi->ci.central_header+6,(uLong)20,2);
\r
6369 00183 8b bb 88 00 00
\r
6370 00 mov edi, DWORD PTR [ebx+136]
\r
6371 00189 6a 00 push 0
\r
6372 0018b 6a 14 push 20 ; 00000014H
\r
6373 0018d 83 c7 06 add edi, 6
\r
6374 00190 e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
6376 ; 1143 : zip64local_putValue_inmemory(zi->ci.central_header+8,(uLong)zi->ci.flag,2);
\r
6378 00195 8b 93 98 00 00
\r
6379 00 mov edx, DWORD PTR [ebx+152]
\r
6380 0019b 8b bb 88 00 00
\r
6381 00 mov edi, DWORD PTR [ebx+136]
\r
6382 001a1 6a 00 push 0
\r
6384 001a4 83 c7 08 add edi, 8
\r
6385 001a7 e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
6387 ; 1144 : zip64local_putValue_inmemory(zi->ci.central_header+10,(uLong)zi->ci.method,2);
\r
6389 001ac 8b 83 9c 00 00
\r
6390 00 mov eax, DWORD PTR [ebx+156]
\r
6391 001b2 8b bb 88 00 00
\r
6392 00 mov edi, DWORD PTR [ebx+136]
\r
6393 001b8 6a 00 push 0
\r
6395 001bb 83 c7 0a add edi, 10 ; 0000000aH
\r
6396 001be e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
6398 ; 1145 : zip64local_putValue_inmemory(zi->ci.central_header+12,(uLong)zi->ci.dosDate,4);
\r
6400 001c3 8b 8b a4 00 01
\r
6401 00 mov ecx, DWORD PTR [ebx+65700]
\r
6402 001c9 8b bb 88 00 00
\r
6403 00 mov edi, DWORD PTR [ebx+136]
\r
6404 001cf 6a 00 push 0
\r
6406 001d2 83 c7 0c add edi, 12 ; 0000000cH
\r
6407 001d5 be 04 00 00 00 mov esi, 4
\r
6408 001da e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
6410 ; 1146 : zip64local_putValue_inmemory(zi->ci.central_header+16,(uLong)0,4); /*crc*/
\r
6412 001df 8b bb 88 00 00
\r
6413 00 mov edi, DWORD PTR [ebx+136]
\r
6414 001e5 6a 00 push 0
\r
6415 001e7 6a 00 push 0
\r
6416 001e9 83 c7 10 add edi, 16 ; 00000010H
\r
6417 001ec e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
6419 ; 1147 : zip64local_putValue_inmemory(zi->ci.central_header+20,(uLong)0,4); /*compr size*/
\r
6421 001f1 8b bb 88 00 00
\r
6422 00 mov edi, DWORD PTR [ebx+136]
\r
6423 001f7 6a 00 push 0
\r
6424 001f9 6a 00 push 0
\r
6425 001fb 83 c7 14 add edi, 20 ; 00000014H
\r
6426 001fe e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
6428 ; 1148 : zip64local_putValue_inmemory(zi->ci.central_header+24,(uLong)0,4); /*uncompr size*/
\r
6430 00203 8b bb 88 00 00
\r
6431 00 mov edi, DWORD PTR [ebx+136]
\r
6432 00209 83 c4 40 add esp, 64 ; 00000040H
\r
6433 0020c 6a 00 push 0
\r
6434 0020e 6a 00 push 0
\r
6435 00210 83 c7 18 add edi, 24 ; 00000018H
\r
6436 00213 e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
6438 ; 1149 : zip64local_putValue_inmemory(zi->ci.central_header+28,(uLong)size_filename,2);
\r
6440 00218 8b 54 24 18 mov edx, DWORD PTR _size_filename$[esp+40]
\r
6441 0021c 8b bb 88 00 00
\r
6442 00 mov edi, DWORD PTR [ebx+136]
\r
6443 00222 6a 00 push 0
\r
6445 00225 83 c7 1c add edi, 28 ; 0000001cH
\r
6446 00228 be 02 00 00 00 mov esi, 2
\r
6447 0022d e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
6449 ; 1150 : zip64local_putValue_inmemory(zi->ci.central_header+30,(uLong)size_extrafield_global,2);
\r
6451 00232 8b 45 20 mov eax, DWORD PTR _size_extrafield_global$[ebp]
\r
6452 00235 8b bb 88 00 00
\r
6453 00 mov edi, DWORD PTR [ebx+136]
\r
6454 0023b 6a 00 push 0
\r
6456 0023e 83 c7 1e add edi, 30 ; 0000001eH
\r
6457 00241 e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
6459 ; 1151 : zip64local_putValue_inmemory(zi->ci.central_header+32,(uLong)size_comment,2);
\r
6461 00246 8b 4c 24 24 mov ecx, DWORD PTR _size_comment$[esp+56]
\r
6462 0024a 8b bb 88 00 00
\r
6463 00 mov edi, DWORD PTR [ebx+136]
\r
6464 00250 6a 00 push 0
\r
6466 00253 83 c7 20 add edi, 32 ; 00000020H
\r
6467 00256 e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
6469 ; 1152 : zip64local_putValue_inmemory(zi->ci.central_header+34,(uLong)0,2); /*disk nm start*/
\r
6471 0025b 8b bb 88 00 00
\r
6472 00 mov edi, DWORD PTR [ebx+136]
\r
6473 00261 6a 00 push 0
\r
6474 00263 6a 00 push 0
\r
6475 00265 83 c7 22 add edi, 34 ; 00000022H
\r
6476 00268 e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
6479 ; 1154 : if (zipfi==NULL)
\r
6480 ; 1155 : zip64local_putValue_inmemory(zi->ci.central_header+36,(uLong)0,2);
\r
6482 0026d 8b bb 88 00 00
\r
6483 00 mov edi, DWORD PTR [ebx+136]
\r
6484 00273 8b 45 10 mov eax, DWORD PTR _zipfi$[ebp]
\r
6485 00276 83 c4 28 add esp, 40 ; 00000028H
\r
6486 00279 83 c7 24 add edi, 36 ; 00000024H
\r
6487 0027c 6a 00 push 0
\r
6488 0027e 85 c0 test eax, eax
\r
6489 00280 75 0f jne SHORT $LN25@zipOpenNew
\r
6491 00283 e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
6492 00288 83 c4 08 add esp, 8
\r
6495 ; 1159 : if (zipfi==NULL)
\r
6496 ; 1160 : zip64local_putValue_inmemory(zi->ci.central_header+38,(uLong)0,4);
\r
6498 0028b 6a 00 push 0
\r
6499 0028d 6a 00 push 0
\r
6503 0028f eb 15 jmp SHORT $LN62@zipOpenNew
\r
6507 ; 1157 : zip64local_putValue_inmemory(zi->ci.central_header+36,(uLong)zipfi->internal_fa,2);
\r
6509 00291 8b 50 1c mov edx, DWORD PTR [eax+28]
\r
6511 00295 e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
6513 ; 1162 : zip64local_putValue_inmemory(zi->ci.central_header+38,(uLong)zipfi->external_fa,4);
\r
6515 0029a 8b 45 10 mov eax, DWORD PTR _zipfi$[ebp]
\r
6516 0029d 8b 48 20 mov ecx, DWORD PTR [eax+32]
\r
6517 002a0 83 c4 08 add esp, 8
\r
6518 002a3 6a 00 push 0
\r
6521 002a6 8b bb 88 00 00
\r
6522 00 mov edi, DWORD PTR [ebx+136]
\r
6523 002ac be 04 00 00 00 mov esi, 4
\r
6524 002b1 83 c7 26 add edi, 38 ; 00000026H
\r
6525 002b4 e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
6526 002b9 83 c4 08 add esp, 8
\r
6529 ; 1164 : if(zi->ci.pos_local_header >= 0xffffffff)
\r
6531 002bc 83 bb 84 00 00
\r
6532 00 00 cmp DWORD PTR [ebx+132], 0
\r
6533 002c3 77 09 ja SHORT $LN54@zipOpenNew
\r
6534 002c5 83 bb 80 00 00
\r
6535 00 ff cmp DWORD PTR [ebx+128], -1
\r
6536 002cc 72 06 jb SHORT $LN21@zipOpenNew
\r
6539 ; 1165 : zip64local_putValue_inmemory(zi->ci.central_header+42,(uLong)0xffffffff,4);
\r
6541 002ce 6a 00 push 0
\r
6542 002d0 6a ff push -1
\r
6546 002d2 eb 16 jmp SHORT $LN63@zipOpenNew
\r
6549 ; 1167 : zip64local_putValue_inmemory(zi->ci.central_header+42,(uLong)zi->ci.pos_local_header - zi->add_position_when_writting_offset,4);
\r
6551 002d4 8b 93 80 00 00
\r
6552 00 mov edx, DWORD PTR [ebx+128]
\r
6553 002da 33 c0 xor eax, eax
\r
6554 002dc 2b 93 f0 00 01
\r
6555 00 sub edx, DWORD PTR [ebx+65776]
\r
6556 002e2 1b 83 f4 00 01
\r
6557 00 sbb eax, DWORD PTR [ebx+65780]
\r
6561 002ea 8b bb 88 00 00
\r
6562 00 mov edi, DWORD PTR [ebx+136]
\r
6563 002f0 be 04 00 00 00 mov esi, 4
\r
6564 002f5 83 c7 2a add edi, 42 ; 0000002aH
\r
6565 002f8 e8 00 00 00 00 call _zip64local_putValue_inmemory
\r
6568 ; 1169 : for (i=0;i<size_filename;i++)
\r
6570 002fd 8b 74 24 18 mov esi, DWORD PTR _size_filename$[esp+40]
\r
6571 00301 33 c9 xor ecx, ecx
\r
6572 00303 83 c4 08 add esp, 8
\r
6573 00306 33 c0 xor eax, eax
\r
6574 00308 3b f1 cmp esi, ecx
\r
6575 0030a 76 21 jbe SHORT $LN17@zipOpenNew
\r
6576 0030c 8d 64 24 00 npad 4
\r
6579 ; 1170 : *(zi->ci.central_header+SIZECENTRALHEADER+i) = *(filename+i);
\r
6581 00310 8b 7d 0c mov edi, DWORD PTR _filename$[ebp]
\r
6582 00313 8b 93 88 00 00
\r
6583 00 mov edx, DWORD PTR [ebx+136]
\r
6584 00319 89 4c 24 10 mov DWORD PTR tv878[esp+32], ecx
\r
6585 0031d 8a 0c 38 mov cl, BYTE PTR [eax+edi]
\r
6586 00320 88 4c 02 2e mov BYTE PTR [edx+eax+46], cl
\r
6587 00324 8b 4c 24 10 mov ecx, DWORD PTR tv878[esp+32]
\r
6589 00329 3b c6 cmp eax, esi
\r
6590 0032b 72 e3 jb SHORT $LL19@zipOpenNew
\r
6594 ; 1172 : for (i=0;i<size_extrafield_global;i++)
\r
6596 0032d 8b 7d 20 mov edi, DWORD PTR _size_extrafield_global$[ebp]
\r
6597 00330 33 c0 xor eax, eax
\r
6598 00332 3b f9 cmp edi, ecx
\r
6599 00334 76 19 jbe SHORT $LN14@zipOpenNew
\r
6602 ; 1173 : *(zi->ci.central_header+SIZECENTRALHEADER+size_filename+i) =
\r
6603 ; 1174 : *(((const char*)extrafield_global)+i);
\r
6605 00336 8b 8b 88 00 00
\r
6606 00 mov ecx, DWORD PTR [ebx+136]
\r
6607 0033c 8b 55 1c mov edx, DWORD PTR _extrafield_global$[ebp]
\r
6608 0033f 8a 14 10 mov dl, BYTE PTR [eax+edx]
\r
6609 00342 03 c8 add ecx, eax
\r
6611 00345 88 54 31 2e mov BYTE PTR [ecx+esi+46], dl
\r
6612 00349 3b c7 cmp eax, edi
\r
6613 0034b 72 e9 jb SHORT $LN16@zipOpenNew
\r
6616 ; 1172 : for (i=0;i<size_extrafield_global;i++)
\r
6618 0034d 33 c9 xor ecx, ecx
\r
6622 ; 1176 : for (i=0;i<size_comment;i++)
\r
6624 0034f 33 c0 xor eax, eax
\r
6625 00351 39 4c 24 0c cmp DWORD PTR _size_comment$[esp+32], ecx
\r
6626 00355 76 26 jbe SHORT $LN11@zipOpenNew
\r
6627 00357 eb 07 8d a4 24
\r
6628 00 00 00 00 npad 9
\r
6631 ; 1177 : *(zi->ci.central_header+SIZECENTRALHEADER+size_filename+
\r
6632 ; 1178 : size_extrafield_global+i) = *(comment+i);
\r
6634 00360 8b 8b 88 00 00
\r
6635 00 mov ecx, DWORD PTR [ebx+136]
\r
6636 00366 8b 55 24 mov edx, DWORD PTR _comment$[ebp]
\r
6637 00369 8a 14 10 mov dl, BYTE PTR [eax+edx]
\r
6638 0036c 03 c8 add ecx, eax
\r
6639 0036e 03 ce add ecx, esi
\r
6641 00371 88 54 39 2e mov BYTE PTR [ecx+edi+46], dl
\r
6642 00375 3b 44 24 0c cmp eax, DWORD PTR _size_comment$[esp+32]
\r
6643 00379 72 e5 jb SHORT $LL13@zipOpenNew
\r
6646 ; 1176 : for (i=0;i<size_comment;i++)
\r
6648 0037b 33 c9 xor ecx, ecx
\r
6651 ; 1179 : if (zi->ci.central_header == NULL)
\r
6653 0037d 39 8b 88 00 00
\r
6654 00 cmp DWORD PTR [ebx+136], ecx
\r
6655 00383 75 0e jne SHORT $LN10@zipOpenNew
\r
6657 ; 1180 : return ZIP_INTERNALERROR;
\r
6659 00385 b8 98 ff ff ff mov eax, -104 ; ffffff98H
\r
6666 0038d 8b e5 mov esp, ebp
\r
6668 00390 c2 4c 00 ret 76 ; 0000004cH
\r
6672 ; 1182 : zi->ci.zip64 = zip64;
\r
6674 00393 8b 45 50 mov eax, DWORD PTR _zip64$[ebp]
\r
6676 ; 1183 : zi->ci.totalCompressedData = 0;
\r
6677 ; 1184 : zi->ci.totalUncompressedData = 0;
\r
6678 ; 1185 : zi->ci.pos_zip64extrainfo = 0;
\r
6680 ; 1187 : err = Write_LocalFileHeader(zi, filename, size_extrafield_local, extrafield_local);
\r
6682 00396 8b 55 18 mov edx, DWORD PTR _size_extrafield_local$[ebp]
\r
6683 00399 89 8b c0 00 01
\r
6684 00 mov DWORD PTR [ebx+65728], ecx
\r
6685 0039f 89 8b c4 00 01
\r
6686 00 mov DWORD PTR [ebx+65732], ecx
\r
6687 003a5 89 8b c8 00 01
\r
6688 00 mov DWORD PTR [ebx+65736], ecx
\r
6689 003ab 89 8b cc 00 01
\r
6690 00 mov DWORD PTR [ebx+65740], ecx
\r
6691 003b1 89 8b b8 00 01
\r
6692 00 mov DWORD PTR [ebx+65720], ecx
\r
6693 003b7 89 8b bc 00 01
\r
6694 00 mov DWORD PTR [ebx+65724], ecx
\r
6695 003bd 8b 4d 14 mov ecx, DWORD PTR _extrafield_local$[ebp]
\r
6697 003c1 89 83 b0 00 01
\r
6698 00 mov DWORD PTR [ebx+65712], eax
\r
6699 003c7 8b 45 0c mov eax, DWORD PTR _filename$[ebp]
\r
6702 003cc 8b c3 mov eax, ebx
\r
6703 003ce e8 00 00 00 00 call _Write_LocalFileHeader
\r
6706 ; 1189 : #ifdef HAVE_BZIP2
\r
6707 ; 1190 : zi->ci.bstream.avail_in = (uInt)0;
\r
6708 ; 1191 : zi->ci.bstream.avail_out = (uInt)Z_BUFSIZE;
\r
6709 ; 1192 : zi->ci.bstream.next_out = (char*)zi->ci.buffered_data;
\r
6710 ; 1193 : zi->ci.bstream.total_in_hi32 = 0;
\r
6711 ; 1194 : zi->ci.bstream.total_in_lo32 = 0;
\r
6712 ; 1195 : zi->ci.bstream.total_out_hi32 = 0;
\r
6713 ; 1196 : zi->ci.bstream.total_out_lo32 = 0;
\r
6716 ; 1199 : zi->ci.stream.avail_in = (uInt)0;
\r
6718 003d3 33 f6 xor esi, esi
\r
6719 003d5 8b f8 mov edi, eax
\r
6720 003d7 83 c4 0c add esp, 12 ; 0000000cH
\r
6722 ; 1200 : zi->ci.stream.avail_out = (uInt)Z_BUFSIZE;
\r
6723 ; 1201 : zi->ci.stream.next_out = zi->ci.buffered_data;
\r
6725 003da 8d 8b a4 00 00
\r
6726 00 lea ecx, DWORD PTR [ebx+164]
\r
6727 003e0 89 73 44 mov DWORD PTR [ebx+68], esi
\r
6728 003e3 c7 43 50 00 00
\r
6729 01 00 mov DWORD PTR [ebx+80], 65536 ; 00010000H
\r
6730 003ea 89 4b 4c mov DWORD PTR [ebx+76], ecx
\r
6732 ; 1202 : zi->ci.stream.total_in = 0;
\r
6734 003ed 89 73 48 mov DWORD PTR [ebx+72], esi
\r
6736 ; 1203 : zi->ci.stream.total_out = 0;
\r
6738 003f0 89 73 54 mov DWORD PTR [ebx+84], esi
\r
6740 ; 1204 : zi->ci.stream.data_type = Z_BINARY;
\r
6742 003f3 89 73 6c mov DWORD PTR [ebx+108], esi
\r
6745 ; 1206 : #ifdef HAVE_BZIP2
\r
6746 ; 1207 : if ((err==ZIP_OK) && (zi->ci.method == Z_DEFLATED || zi->ci.method == Z_BZIP2ED) && (!zi->ci.raw))
\r
6748 ; 1209 : if ((err==ZIP_OK) && (zi->ci.method == Z_DEFLATED) && (!zi->ci.raw))
\r
6750 003f6 3b fe cmp edi, esi
\r
6751 003f8 75 4f jne SHORT $LN6@zipOpenNew
\r
6752 003fa 83 bb 9c 00 00
\r
6753 00 08 cmp DWORD PTR [ebx+156], 8
\r
6754 00401 75 46 jne SHORT $LN6@zipOpenNew
\r
6755 00403 39 b3 a0 00 00
\r
6756 00 cmp DWORD PTR [ebx+160], esi
\r
6757 00409 75 3e jne SHORT $LN6@zipOpenNew
\r
6761 ; 1212 : if(zi->ci.method == Z_DEFLATED)
\r
6763 ; 1214 : zi->ci.stream.zalloc = (alloc_func)0;
\r
6764 ; 1215 : zi->ci.stream.zfree = (free_func)0;
\r
6765 ; 1216 : zi->ci.stream.opaque = (voidpf)0;
\r
6767 ; 1218 : if (windowBits>0)
\r
6769 0040b 8b 45 34 mov eax, DWORD PTR _windowBits$[ebp]
\r
6770 0040e 89 73 60 mov DWORD PTR [ebx+96], esi
\r
6771 00411 89 73 64 mov DWORD PTR [ebx+100], esi
\r
6772 00414 89 73 68 mov DWORD PTR [ebx+104], esi
\r
6773 00417 3b c6 cmp eax, esi
\r
6774 00419 7e 02 jle SHORT $LN7@zipOpenNew
\r
6776 ; 1219 : windowBits = -windowBits;
\r
6778 0041b f7 d8 neg eax
\r
6782 ; 1221 : err = deflateInit2(&zi->ci.stream, level, Z_DEFLATED, windowBits, memLevel, strategy);
\r
6784 0041d 8b 55 3c mov edx, DWORD PTR _strategy$[ebp]
\r
6785 00420 8b 4d 38 mov ecx, DWORD PTR _memLevel$[ebp]
\r
6786 00423 6a 38 push 56 ; 00000038H
\r
6787 00425 68 00 00 00 00 push OFFSET ??_C@_05BOAHNBIE@1?42?46?$AA@
\r
6789 0042b 8b 55 2c mov edx, DWORD PTR _level$[ebp]
\r
6792 00430 6a 08 push 8
\r
6794 00433 8d 43 40 lea eax, DWORD PTR [ebx+64]
\r
6796 00437 e8 00 00 00 00 call _deflateInit2_@32
\r
6797 0043c 8b f8 mov edi, eax
\r
6800 ; 1223 : if (err==Z_OK)
\r
6802 0043e 3b fe cmp edi, esi
\r
6803 00440 75 07 jne SHORT $LN6@zipOpenNew
\r
6805 ; 1224 : zi->ci.stream_initialised = Z_DEFLATED;
\r
6807 00442 c7 43 78 08 00
\r
6808 00 00 mov DWORD PTR [ebx+120], 8
\r
6812 ; 1226 : else if(zi->ci.method == Z_BZIP2ED)
\r
6814 ; 1228 : #ifdef HAVE_BZIP2
\r
6815 ; 1229 : // Init BZip stuff here
\r
6816 ; 1230 : zi->ci.bstream.bzalloc = 0;
\r
6817 ; 1231 : zi->ci.bstream.bzfree = 0;
\r
6818 ; 1232 : zi->ci.bstream.opaque = (voidpf)0;
\r
6820 ; 1234 : err = BZ2_bzCompressInit(&zi->ci.bstream, level, 0,35);
\r
6821 ; 1235 : if(err == BZ_OK)
\r
6822 ; 1236 : zi->ci.stream_initialised = Z_BZIP2ED;
\r
6828 ; 1242 : # ifndef NOCRYPT
\r
6829 ; 1243 : zi->ci.crypt_header_size = 0;
\r
6831 00449 89 b3 e0 00 01
\r
6832 00 mov DWORD PTR [ebx+65760], esi
\r
6834 ; 1244 : if ((err==Z_OK) && (password != NULL))
\r
6836 0044f 3b fe cmp edi, esi
\r
6837 00451 75 6b jne SHORT $LN1@zipOpenNew
\r
6838 00453 8b 55 40 mov edx, DWORD PTR _password$[ebp]
\r
6839 00456 3b d6 cmp edx, esi
\r
6840 00458 74 5d je SHORT $LN51@zipOpenNew
\r
6843 ; 1246 : unsigned char bufHead[RAND_HEAD_LEN];
\r
6844 ; 1247 : unsigned int sizeHead;
\r
6845 ; 1248 : zi->ci.encrypt = 1;
\r
6847 0045a c7 83 ac 00 01
\r
6848 00 01 00 00 00 mov DWORD PTR [ebx+65708], 1
\r
6850 ; 1249 : zi->ci.pcrc_32_tab = get_crc_table();
\r
6852 00464 e8 00 00 00 00 call _get_crc_table@0
\r
6854 ; 1250 : /*init_keys(password,zi->ci.keys,zi->ci.pcrc_32_tab);*/
\r
6856 ; 1252 : sizeHead=crypthead(password,bufHead,RAND_HEAD_LEN,zi->ci.keys,zi->ci.pcrc_32_tab,crcForCrypting);
\r
6858 00469 8b 4d 44 mov ecx, DWORD PTR _crcForCrypting$[ebp]
\r
6860 0046d 8d 74 24 18 lea esi, DWORD PTR _bufHead$83245[esp+36]
\r
6862 00472 8d 8b d0 00 01
\r
6863 00 lea ecx, DWORD PTR [ebx+65744]
\r
6865 00479 89 83 dc 00 01
\r
6866 00 mov DWORD PTR [ebx+65756], eax
\r
6867 0047f e8 00 00 00 00 call _crypthead
\r
6869 ; 1253 : zi->ci.crypt_header_size = sizeHead;
\r
6871 ; 1255 : if (ZWRITE64(zi->z_filefunc,zi->filestream,bufHead,sizeHead) != sizeHead)
\r
6873 00484 8b 4b 1c mov ecx, DWORD PTR [ebx+28]
\r
6874 00487 83 c4 0c add esp, 12 ; 0000000cH
\r
6875 0048a 8b f0 mov esi, eax
\r
6876 0048c 8b 43 2c mov eax, DWORD PTR [ebx+44]
\r
6878 00490 8d 54 24 18 lea edx, DWORD PTR _bufHead$83245[esp+36]
\r
6880 00495 8b 53 08 mov edx, DWORD PTR [ebx+8]
\r
6883 0049a 89 b3 e0 00 01
\r
6884 00 mov DWORD PTR [ebx+65760], esi
\r
6885 004a0 ff d2 call edx
\r
6886 004a2 83 c4 10 add esp, 16 ; 00000010H
\r
6887 004a5 3b c6 cmp eax, esi
\r
6888 004a7 74 0e je SHORT $LN51@zipOpenNew
\r
6890 ; 1256 : err = ZIP_ERRNO;
\r
6892 004a9 83 cf ff or edi, -1
\r
6894 ; 1262 : return err;
\r
6896 004ac 8b c7 mov eax, edi
\r
6903 004b1 8b e5 mov esp, ebp
\r
6905 004b4 c2 4c 00 ret 76 ; 0000004cH
\r
6911 ; 1260 : if (err==Z_OK)
\r
6912 ; 1261 : zi->in_opened_file_inzip = 1;
\r
6914 004b7 c7 43 38 01 00
\r
6915 00 00 mov DWORD PTR [ebx+56], 1
\r
6918 ; 1262 : return err;
\r
6920 004be 8b c7 mov eax, edi
\r
6928 004c3 8b e5 mov esp, ebp
\r
6930 004c6 c2 4c 00 ret 76 ; 0000004cH
\r
6931 _zipOpenNewFileInZip4_64@76 ENDP
\r
6933 PUBLIC _zipOpen64@8
\r
6934 ; Function compile flags: /Ogtp
\r
6935 ; COMDAT _zipOpen64@8
\r
6937 _pathname$ = 8 ; size = 4
\r
6938 _append$ = 12 ; size = 4
\r
6939 _zipOpen64@8 PROC ; COMDAT
\r
6944 00001 8b ec mov ebp, esp
\r
6946 ; 955 : return zipOpen3(pathname,append,NULL,NULL);
\r
6948 00003 8b 45 0c mov eax, DWORD PTR _append$[ebp]
\r
6949 00006 8b 4d 08 mov ecx, DWORD PTR _pathname$[ebp]
\r
6950 00009 6a 00 push 0
\r
6953 0000d 33 c9 xor ecx, ecx
\r
6954 0000f e8 00 00 00 00 call _zipOpen3@16
\r
6959 00015 c2 08 00 ret 8
\r
6963 ; Function compile flags: /Ogtp
\r
6964 ; COMDAT _zipOpen@8
\r
6966 _pathname$ = 8 ; size = 4
\r
6967 _append$ = 12 ; size = 4
\r
6968 _zipOpen@8 PROC ; COMDAT
\r
6973 00001 8b ec mov ebp, esp
\r
6975 ; 950 : return zipOpen3((const void*)pathname,append,NULL,NULL);
\r
6977 00003 8b 45 0c mov eax, DWORD PTR _append$[ebp]
\r
6978 00006 8b 4d 08 mov ecx, DWORD PTR _pathname$[ebp]
\r
6979 00009 6a 00 push 0
\r
6982 0000d 33 c9 xor ecx, ecx
\r
6983 0000f e8 00 00 00 00 call _zipOpen3@16
\r
6988 00015 c2 08 00 ret 8
\r
6991 PUBLIC _zipOpen2_64@16
\r
6992 ; Function compile flags: /Ogtp
\r
6993 ; COMDAT _zipOpen2_64@16
\r
6995 _zlib_filefunc64_32_def_fill$83043 = -44 ; size = 44
\r
6996 _pathname$ = 8 ; size = 4
\r
6997 _append$ = 12 ; size = 4
\r
6998 _globalcomment$ = 16 ; size = 4
\r
6999 _pzlib_filefunc_def$ = 20 ; size = 4
\r
7000 _zipOpen2_64@16 PROC ; COMDAT
\r
7005 00001 8b ec mov ebp, esp
\r
7006 00003 83 e4 f8 and esp, -8 ; fffffff8H
\r
7008 ; 938 : zlib_filefunc64_32_def_fill.ztell32_file = NULL;
\r
7009 ; 939 : zlib_filefunc64_32_def_fill.zseek32_file = NULL;
\r
7010 ; 940 : return zipOpen3(pathname, append, globalcomment, &zlib_filefunc64_32_def_fill);
\r
7012 00006 8b 55 08 mov edx, DWORD PTR _pathname$[ebp]
\r
7013 00009 83 ec 30 sub esp, 48 ; 00000030H
\r
7015 0000d 8b 75 14 mov esi, DWORD PTR _pzlib_filefunc_def$[ebp]
\r
7016 00010 33 c0 xor eax, eax
\r
7018 00013 3b f0 cmp esi, eax
\r
7019 00015 74 2d je SHORT $LN2@zipOpen2_6
\r
7021 ; 934 : if (pzlib_filefunc_def != NULL)
\r
7023 ; 936 : zlib_filefunc64_32_def zlib_filefunc64_32_def_fill;
\r
7024 ; 937 : zlib_filefunc64_32_def_fill.zfile_func64 = *pzlib_filefunc_def;
\r
7026 00017 b9 08 00 00 00 mov ecx, 8
\r
7027 0001c 8d 7c 24 0c lea edi, DWORD PTR _zlib_filefunc64_32_def_fill$83043[esp+56]
\r
7028 00020 f3 a5 rep movsd
\r
7030 ; 938 : zlib_filefunc64_32_def_fill.ztell32_file = NULL;
\r
7031 ; 939 : zlib_filefunc64_32_def_fill.zseek32_file = NULL;
\r
7032 ; 940 : return zipOpen3(pathname, append, globalcomment, &zlib_filefunc64_32_def_fill);
\r
7034 00022 8b 4d 0c mov ecx, DWORD PTR _append$[ebp]
\r
7035 00025 89 44 24 30 mov DWORD PTR _zlib_filefunc64_32_def_fill$83043[esp+92], eax
\r
7036 00029 89 44 24 34 mov DWORD PTR _zlib_filefunc64_32_def_fill$83043[esp+96], eax
\r
7037 0002d 8b 45 10 mov eax, DWORD PTR _globalcomment$[ebp]
\r
7040 00032 8d 4c 24 14 lea ecx, DWORD PTR _zlib_filefunc64_32_def_fill$83043[esp+64]
\r
7044 ; 943 : return zipOpen3(pathname, append, globalcomment, NULL);
\r
7047 00037 e8 00 00 00 00 call _zipOpen3@16
\r
7053 0003e 8b e5 mov esp, ebp
\r
7055 00041 c2 10 00 ret 16 ; 00000010H
\r
7060 ; 943 : return zipOpen3(pathname, append, globalcomment, NULL);
\r
7062 00044 8b 45 10 mov eax, DWORD PTR _globalcomment$[ebp]
\r
7063 00047 8b 4d 0c mov ecx, DWORD PTR _append$[ebp]
\r
7066 0004c 33 c9 xor ecx, ecx
\r
7068 0004f e8 00 00 00 00 call _zipOpen3@16
\r
7074 00056 8b e5 mov esp, ebp
\r
7076 00059 c2 10 00 ret 16 ; 00000010H
\r
7077 _zipOpen2_64@16 ENDP
\r
7079 PUBLIC _zipOpen2@16
\r
7080 ; Function compile flags: /Ogtp
\r
7081 ; COMDAT _zipOpen2@16
\r
7083 _zlib_filefunc64_32_def_fill$83029 = -44 ; size = 44
\r
7084 _pathname$ = 8 ; size = 4
\r
7085 _append$ = 12 ; size = 4
\r
7086 _globalcomment$ = 16 ; size = 4
\r
7087 _pzlib_filefunc32_def$ = 20 ; size = 4
\r
7088 _zipOpen2@16 PROC ; COMDAT
\r
7093 00001 8b ec mov ebp, esp
\r
7094 00003 83 e4 f8 and esp, -8 ; fffffff8H
\r
7096 ; 922 : if (pzlib_filefunc32_def != NULL)
\r
7098 00006 8b 4d 14 mov ecx, DWORD PTR _pzlib_filefunc32_def$[ebp]
\r
7099 00009 83 ec 30 sub esp, 48 ; 00000030H
\r
7100 0000c 85 c9 test ecx, ecx
\r
7101 0000e 74 24 je SHORT $LN2@zipOpen2
\r
7104 ; 924 : zlib_filefunc64_32_def zlib_filefunc64_32_def_fill;
\r
7105 ; 925 : fill_zlib_filefunc64_32_def_from_filefunc32(&zlib_filefunc64_32_def_fill,pzlib_filefunc32_def);
\r
7107 00010 8d 44 24 04 lea eax, DWORD PTR _zlib_filefunc64_32_def_fill$83029[esp+48]
\r
7108 00014 e8 00 00 00 00 call _fill_zlib_filefunc64_32_def_from_filefunc32
\r
7110 ; 926 : return zipOpen3(pathname, append, globalcomment, &zlib_filefunc64_32_def_fill);
\r
7112 00019 8b 45 10 mov eax, DWORD PTR _globalcomment$[ebp]
\r
7113 0001c 8b 4d 0c mov ecx, DWORD PTR _append$[ebp]
\r
7117 ; 929 : return zipOpen3(pathname, append, globalcomment, NULL);
\r
7119 0001f 8b 55 08 mov edx, DWORD PTR _pathname$[ebp]
\r
7122 00024 8d 4c 24 0c lea ecx, DWORD PTR _zlib_filefunc64_32_def_fill$83029[esp+56]
\r
7124 00029 e8 00 00 00 00 call _zipOpen3@16
\r
7128 0002e 8b e5 mov esp, ebp
\r
7130 00031 c2 10 00 ret 16 ; 00000010H
\r
7135 ; 929 : return zipOpen3(pathname, append, globalcomment, NULL);
\r
7137 00034 8b 45 10 mov eax, DWORD PTR _globalcomment$[ebp]
\r
7138 00037 8b 4d 0c mov ecx, DWORD PTR _append$[ebp]
\r
7139 0003a 8b 55 08 mov edx, DWORD PTR _pathname$[ebp]
\r
7142 0003f 33 c9 xor ecx, ecx
\r
7144 00042 e8 00 00 00 00 call _zipOpen3@16
\r
7148 00047 8b e5 mov esp, ebp
\r
7150 0004a c2 10 00 ret 16 ; 00000010H
\r
7152 PUBLIC _zipClose@8
\r
7153 ; Function compile flags: /Ogtp
\r
7154 ; COMDAT _zipClose@8
\r
7156 _size_centraldir$ = -20 ; size = 4
\r
7157 _centraldir_pos_inzip$ = -16 ; size = 8
\r
7158 _Zip64EOCDpos$83697 = -8 ; size = 8
\r
7159 _file$ = 8 ; size = 4
\r
7160 _global_comment$ = 12 ; size = 4
\r
7161 _zipClose@8 PROC ; COMDAT
\r
7166 00001 8b ec mov ebp, esp
\r
7167 00003 83 e4 f8 and esp, -8 ; fffffff8H
\r
7168 00006 83 ec 14 sub esp, 20 ; 00000014H
\r
7173 ; 1884 : zip64_internal* zi;
\r
7174 ; 1885 : int err = 0;
\r
7175 ; 1886 : uLong size_centraldir = 0;
\r
7176 ; 1887 : ZPOS64_T centraldir_pos_inzip;
\r
7177 ; 1888 : ZPOS64_T pos;
\r
7179 ; 1890 : if (file == NULL)
\r
7181 0000c 8b 7d 08 mov edi, DWORD PTR _file$[ebp]
\r
7182 0000f 33 db xor ebx, ebx
\r
7183 00011 89 5c 24 0c mov DWORD PTR _size_centraldir$[esp+32], ebx
\r
7184 00015 85 ff test edi, edi
\r
7185 00017 75 0c jne SHORT $LN16@zipClose
\r
7187 ; 1891 : return ZIP_PARAMERROR;
\r
7189 00019 8d 43 9a lea eax, DWORD PTR [ebx-102]
\r
7192 ; 1948 : return err;
\r
7198 0001f 8b e5 mov esp, ebp
\r
7200 00022 c2 08 00 ret 8
\r
7204 ; 1893 : zi = (zip64_internal*)file;
\r
7206 ; 1895 : if (zi->in_opened_file_inzip == 1)
\r
7208 00025 83 7f 38 01 cmp DWORD PTR [edi+56], 1
\r
7209 00029 75 08 jne SHORT $LN15@zipClose
\r
7212 ; 1897 : err = zipCloseFileInZip (file);
\r
7215 0002c e8 00 00 00 00 call _zipCloseFileInZip@4
\r
7216 00031 8b d8 mov ebx, eax
\r
7221 ; 1900 : #ifndef NO_ADDFILEINEXISTINGZIP
\r
7222 ; 1901 : if (global_comment==NULL)
\r
7224 00033 83 7d 0c 00 cmp DWORD PTR _global_comment$[ebp], 0
\r
7225 00037 75 09 jne SHORT $LN14@zipClose
\r
7227 ; 1902 : global_comment = zi->globalcomment;
\r
7229 00039 8b 87 00 01 01
\r
7230 00 mov eax, DWORD PTR [edi+65792]
\r
7231 0003f 89 45 0c mov DWORD PTR _global_comment$[ebp], eax
\r
7236 ; 1905 : centraldir_pos_inzip = ZTELL64(zi->z_filefunc,zi->filestream);
\r
7238 00042 8b 4f 2c mov ecx, DWORD PTR [edi+44]
\r
7239 00045 8b c7 mov eax, edi
\r
7240 00047 e8 00 00 00 00 call _call_ztell64
\r
7241 0004c 89 44 24 10 mov DWORD PTR _centraldir_pos_inzip$[esp+32], eax
\r
7242 00050 89 54 24 14 mov DWORD PTR _centraldir_pos_inzip$[esp+36], edx
\r
7245 ; 1907 : if (err==ZIP_OK)
\r
7247 00054 85 db test ebx, ebx
\r
7248 00056 75 3d jne SHORT $LN11@zipClose
\r
7251 ; 1909 : linkedlist_datablock_internal* ldi = zi->central_dir.first_block;
\r
7253 00058 8b 77 30 mov esi, DWORD PTR [edi+48]
\r
7255 ; 1910 : while (ldi!=NULL)
\r
7257 0005b 85 f6 test esi, esi
\r
7258 0005d 74 36 je SHORT $LN11@zipClose
\r
7263 ; 1912 : if ((err==ZIP_OK) && (ldi->filled_in_this_block>0))
\r
7265 00060 85 db test ebx, ebx
\r
7266 00062 75 24 jne SHORT $LN9@zipClose
\r
7267 00064 8b 46 08 mov eax, DWORD PTR [esi+8]
\r
7268 00067 85 c0 test eax, eax
\r
7269 00069 74 1d je SHORT $LN9@zipClose
\r
7272 ; 1914 : if (ZWRITE64(zi->z_filefunc,zi->filestream, ldi->data, ldi->filled_in_this_block) != ldi->filled_in_this_block)
\r
7274 0006b 8b 57 2c mov edx, DWORD PTR [edi+44]
\r
7276 0006f 8b 47 1c mov eax, DWORD PTR [edi+28]
\r
7277 00072 8d 4e 10 lea ecx, DWORD PTR [esi+16]
\r
7279 00076 8b 4f 08 mov ecx, DWORD PTR [edi+8]
\r
7282 0007b ff d1 call ecx
\r
7283 0007d 83 c4 10 add esp, 16 ; 00000010H
\r
7284 00080 3b 46 08 cmp eax, DWORD PTR [esi+8]
\r
7285 00083 74 03 je SHORT $LN9@zipClose
\r
7287 ; 1915 : err = ZIP_ERRNO;
\r
7289 00085 83 cb ff or ebx, -1
\r
7294 ; 1918 : size_centraldir += ldi->filled_in_this_block;
\r
7296 00088 8b 56 08 mov edx, DWORD PTR [esi+8]
\r
7298 ; 1919 : ldi = ldi->next_datablock;
\r
7300 0008b 8b 36 mov esi, DWORD PTR [esi]
\r
7301 0008d 01 54 24 0c add DWORD PTR _size_centraldir$[esp+32], edx
\r
7302 00091 85 f6 test esi, esi
\r
7303 00093 75 cb jne SHORT $LL12@zipClose
\r
7308 ; 1922 : free_linkedlist(&(zi->central_dir));
\r
7310 00095 8d 77 30 lea esi, DWORD PTR [edi+48]
\r
7311 00098 e8 00 00 00 00 call _free_linkedlist
\r
7314 ; 1924 : pos = centraldir_pos_inzip - zi->add_position_when_writting_offset;
\r
7316 0009d 8b 74 24 10 mov esi, DWORD PTR _centraldir_pos_inzip$[esp+32]
\r
7317 000a1 8b 44 24 14 mov eax, DWORD PTR _centraldir_pos_inzip$[esp+36]
\r
7318 000a5 8b ce mov ecx, esi
\r
7319 000a7 2b 8f f0 00 01
\r
7320 00 sub ecx, DWORD PTR [edi+65776]
\r
7321 000ad 1b 87 f4 00 01
\r
7322 00 sbb eax, DWORD PTR [edi+65780]
\r
7324 ; 1925 : if(pos >= 0xffffffff || zi->number_entry > 0xFFFF)
\r
7326 000b3 85 c0 test eax, eax
\r
7327 000b5 77 1c ja SHORT $LN22@zipClose
\r
7328 000b7 72 05 jb SHORT $LN21@zipClose
\r
7329 000b9 83 f9 ff cmp ecx, -1
\r
7330 000bc 73 15 jae SHORT $LN22@zipClose
\r
7332 000be 83 bf fc 00 01
\r
7333 00 00 cmp DWORD PTR [edi+65788], 0
\r
7334 000c5 77 0c ja SHORT $LN22@zipClose
\r
7335 000c7 81 bf f8 00 01
\r
7336 00 ff ff 00 00 cmp DWORD PTR [edi+65784], 65535 ; 0000ffffH
\r
7337 000d1 76 3b jbe SHORT $LN8@zipClose
\r
7341 ; 1927 : ZPOS64_T Zip64EOCDpos = ZTELL64(zi->z_filefunc,zi->filestream);
\r
7343 000d3 8b 4f 2c mov ecx, DWORD PTR [edi+44]
\r
7344 000d6 8b c7 mov eax, edi
\r
7345 000d8 e8 00 00 00 00 call _call_ztell64
\r
7347 ; 1928 : Write_Zip64EndOfCentralDirectoryRecord(zi, size_centraldir, centraldir_pos_inzip);
\r
7349 000dd 8b 4c 24 0c mov ecx, DWORD PTR _size_centraldir$[esp+32]
\r
7350 000e1 89 44 24 18 mov DWORD PTR _Zip64EOCDpos$83697[esp+32], eax
\r
7351 000e5 8b 44 24 14 mov eax, DWORD PTR _centraldir_pos_inzip$[esp+36]
\r
7355 000ec 8b c7 mov eax, edi
\r
7356 000ee 89 54 24 28 mov DWORD PTR _Zip64EOCDpos$83697[esp+48], edx
\r
7357 000f2 e8 00 00 00 00 call _Write_Zip64EndOfCentralDirectoryRecord
\r
7360 ; 1930 : Write_Zip64EndOfCentralDirectoryLocator(zi, Zip64EOCDpos);
\r
7362 000f7 8b 54 24 28 mov edx, DWORD PTR _Zip64EOCDpos$83697[esp+48]
\r
7363 000fb 8b 44 24 24 mov eax, DWORD PTR _Zip64EOCDpos$83697[esp+44]
\r
7364 000ff 83 c4 0c add esp, 12 ; 0000000cH
\r
7367 00104 8b c7 mov eax, edi
\r
7368 00106 e8 00 00 00 00 call _Write_Zip64EndOfCentralDirectoryLocator
\r
7369 0010b 83 c4 08 add esp, 8
\r
7374 ; 1933 : if (err==ZIP_OK)
\r
7376 0010e 85 db test ebx, ebx
\r
7377 00110 75 2b jne SHORT $LN5@zipClose
\r
7379 ; 1934 : err = Write_EndOfCentralDirectoryRecord(zi, size_centraldir, centraldir_pos_inzip);
\r
7381 00112 8b 4c 24 14 mov ecx, DWORD PTR _centraldir_pos_inzip$[esp+36]
\r
7382 00116 8b 54 24 0c mov edx, DWORD PTR _size_centraldir$[esp+32]
\r
7386 0011d 8b c7 mov eax, edi
\r
7387 0011f e8 00 00 00 00 call _Write_EndOfCentralDirectoryRecord
\r
7388 00124 8b d8 mov ebx, eax
\r
7389 00126 83 c4 0c add esp, 12 ; 0000000cH
\r
7392 ; 1936 : if(err == ZIP_OK)
\r
7394 00129 85 db test ebx, ebx
\r
7395 0012b 75 10 jne SHORT $LN5@zipClose
\r
7397 ; 1937 : err = Write_GlobalComment(zi, global_comment);
\r
7399 0012d 8b 45 0c mov eax, DWORD PTR _global_comment$[ebp]
\r
7401 00131 8b c7 mov eax, edi
\r
7402 00133 e8 00 00 00 00 call _Write_GlobalComment
\r
7403 00138 83 c4 04 add esp, 4
\r
7404 0013b 8b d8 mov ebx, eax
\r
7408 ; 1939 : if (ZCLOSE64(zi->z_filefunc,zi->filestream) != 0)
\r
7410 0013d 8b 4f 2c mov ecx, DWORD PTR [edi+44]
\r
7411 00140 8b 57 1c mov edx, DWORD PTR [edi+28]
\r
7412 00143 8b 47 14 mov eax, DWORD PTR [edi+20]
\r
7415 00148 ff d0 call eax
\r
7416 0014a 83 c4 08 add esp, 8
\r
7417 0014d 85 c0 test eax, eax
\r
7418 0014f 74 07 je SHORT $LN3@zipClose
\r
7420 ; 1940 : if (err == ZIP_OK)
\r
7422 00151 85 db test ebx, ebx
\r
7423 00153 75 03 jne SHORT $LN3@zipClose
\r
7425 ; 1941 : err = ZIP_ERRNO;
\r
7427 00155 83 cb ff or ebx, -1
\r
7431 ; 1943 : #ifndef NO_ADDFILEINEXISTINGZIP
\r
7432 ; 1944 : TRYFREE(zi->globalcomment);
\r
7434 00158 8b 87 00 01 01
\r
7435 00 mov eax, DWORD PTR [edi+65792]
\r
7436 0015e 8b 35 00 00 00
\r
7437 00 mov esi, DWORD PTR __imp__free
\r
7438 00164 85 c0 test eax, eax
\r
7439 00166 74 06 je SHORT $LN2@zipClose
\r
7441 00169 ff d6 call esi
\r
7442 0016b 83 c4 04 add esp, 4
\r
7446 ; 1946 : TRYFREE(zi);
\r
7449 0016f ff d6 call esi
\r
7450 00171 83 c4 04 add esp, 4
\r
7453 ; 1948 : return err;
\r
7458 00176 8b c3 mov eax, ebx
\r
7460 00179 8b e5 mov esp, ebp
\r
7462 0017c c2 08 00 ret 8
\r
7465 PUBLIC _zipOpenNewFileInZip@40
\r
7466 ; Function compile flags: /Ogtp
\r
7467 ; COMDAT _zipOpenNewFileInZip@40
\r
7469 _file$ = 8 ; size = 4
\r
7470 _filename$ = 12 ; size = 4
\r
7471 _zipfi$ = 16 ; size = 4
\r
7472 _extrafield_local$ = 20 ; size = 4
\r
7473 _size_extrafield_local$ = 24 ; size = 4
\r
7474 _extrafield_global$ = 28 ; size = 4
\r
7475 _size_extrafield_global$ = 32 ; size = 4
\r
7476 _comment$ = 36 ; size = 4
\r
7477 _method$ = 40 ; size = 4
\r
7478 _level$ = 44 ; size = 4
\r
7479 _zipOpenNewFileInZip@40 PROC ; COMDAT
\r
7484 00001 8b ec mov ebp, esp
\r
7486 ; 1355 : return zipOpenNewFileInZip4_64 (file, filename, zipfi,
\r
7487 ; 1356 : extrafield_local, size_extrafield_local,
\r
7488 ; 1357 : extrafield_global, size_extrafield_global,
\r
7489 ; 1358 : comment, method, level, 0,
\r
7490 ; 1359 : -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY,
\r
7491 ; 1360 : NULL, 0, VERSIONMADEBY, 0, 0);
\r
7493 00003 6a 00 push 0
\r
7494 00005 8b 45 2c mov eax, DWORD PTR _level$[ebp]
\r
7495 00008 6a 00 push 0
\r
7496 0000a 8b 4d 28 mov ecx, DWORD PTR _method$[ebp]
\r
7497 0000d 8b 55 24 mov edx, DWORD PTR _comment$[ebp]
\r
7498 00010 6a 00 push 0
\r
7499 00012 6a 00 push 0
\r
7500 00014 6a 00 push 0
\r
7501 00016 6a 00 push 0
\r
7502 00018 6a 08 push 8
\r
7503 0001a 6a f1 push -15 ; fffffff1H
\r
7504 0001c 6a 00 push 0
\r
7506 0001f 8b 45 20 mov eax, DWORD PTR _size_extrafield_global$[ebp]
\r
7508 00023 8b 4d 1c mov ecx, DWORD PTR _extrafield_global$[ebp]
\r
7510 00027 8b 55 18 mov edx, DWORD PTR _size_extrafield_local$[ebp]
\r
7512 0002b 8b 45 14 mov eax, DWORD PTR _extrafield_local$[ebp]
\r
7514 0002f 8b 4d 10 mov ecx, DWORD PTR _zipfi$[ebp]
\r
7516 00033 8b 55 0c mov edx, DWORD PTR _filename$[ebp]
\r
7518 00037 8b 45 08 mov eax, DWORD PTR _file$[ebp]
\r
7522 0003d e8 00 00 00 00 call _zipOpenNewFileInZip4_64@76
\r
7527 00043 c2 28 00 ret 40 ; 00000028H
\r
7528 _zipOpenNewFileInZip@40 ENDP
\r
7530 PUBLIC _zipOpenNewFileInZip64@44
\r
7531 ; Function compile flags: /Ogtp
\r
7532 ; COMDAT _zipOpenNewFileInZip64@44
\r
7534 _file$ = 8 ; size = 4
\r
7535 _filename$ = 12 ; size = 4
\r
7536 _zipfi$ = 16 ; size = 4
\r
7537 _extrafield_local$ = 20 ; size = 4
\r
7538 _size_extrafield_local$ = 24 ; size = 4
\r
7539 _extrafield_global$ = 28 ; size = 4
\r
7540 _size_extrafield_global$ = 32 ; size = 4
\r
7541 _comment$ = 36 ; size = 4
\r
7542 _method$ = 40 ; size = 4
\r
7543 _level$ = 44 ; size = 4
\r
7544 _zip64$ = 48 ; size = 4
\r
7545 _zipOpenNewFileInZip64@44 PROC ; COMDAT
\r
7550 00001 8b ec mov ebp, esp
\r
7552 ; 1342 : return zipOpenNewFileInZip4_64 (file, filename, zipfi,
\r
7553 ; 1343 : extrafield_local, size_extrafield_local,
\r
7554 ; 1344 : extrafield_global, size_extrafield_global,
\r
7555 ; 1345 : comment, method, level, 0,
\r
7556 ; 1346 : -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY,
\r
7557 ; 1347 : NULL, 0, VERSIONMADEBY, 0, zip64);
\r
7559 00003 8b 45 30 mov eax, DWORD PTR _zip64$[ebp]
\r
7561 00007 8b 4d 2c mov ecx, DWORD PTR _level$[ebp]
\r
7562 0000a 6a 00 push 0
\r
7563 0000c 8b 55 28 mov edx, DWORD PTR _method$[ebp]
\r
7564 0000f 8b 45 24 mov eax, DWORD PTR _comment$[ebp]
\r
7565 00012 6a 00 push 0
\r
7566 00014 6a 00 push 0
\r
7567 00016 6a 00 push 0
\r
7568 00018 6a 00 push 0
\r
7569 0001a 6a 08 push 8
\r
7570 0001c 6a f1 push -15 ; fffffff1H
\r
7571 0001e 6a 00 push 0
\r
7573 00021 8b 4d 20 mov ecx, DWORD PTR _size_extrafield_global$[ebp]
\r
7575 00025 8b 55 1c mov edx, DWORD PTR _extrafield_global$[ebp]
\r
7577 00029 8b 45 18 mov eax, DWORD PTR _size_extrafield_local$[ebp]
\r
7579 0002d 8b 4d 14 mov ecx, DWORD PTR _extrafield_local$[ebp]
\r
7581 00031 8b 55 10 mov edx, DWORD PTR _zipfi$[ebp]
\r
7583 00035 8b 45 0c mov eax, DWORD PTR _filename$[ebp]
\r
7585 00039 8b 4d 08 mov ecx, DWORD PTR _file$[ebp]
\r
7589 0003f e8 00 00 00 00 call _zipOpenNewFileInZip4_64@76
\r
7594 00045 c2 2c 00 ret 44 ; 0000002cH
\r
7595 _zipOpenNewFileInZip64@44 ENDP
\r
7597 PUBLIC _zipOpenNewFileInZip2_64@48
\r
7598 ; Function compile flags: /Ogtp
\r
7599 ; COMDAT _zipOpenNewFileInZip2_64@48
\r
7601 _file$ = 8 ; size = 4
\r
7602 _filename$ = 12 ; size = 4
\r
7603 _zipfi$ = 16 ; size = 4
\r
7604 _extrafield_local$ = 20 ; size = 4
\r
7605 _size_extrafield_local$ = 24 ; size = 4
\r
7606 _extrafield_global$ = 28 ; size = 4
\r
7607 _size_extrafield_global$ = 32 ; size = 4
\r
7608 _comment$ = 36 ; size = 4
\r
7609 _method$ = 40 ; size = 4
\r
7610 _level$ = 44 ; size = 4
\r
7611 _raw$ = 48 ; size = 4
\r
7612 _zip64$ = 52 ; size = 4
\r
7613 _zipOpenNewFileInZip2_64@48 PROC ; COMDAT
\r
7618 00001 8b ec mov ebp, esp
\r
7620 ; 1329 : return zipOpenNewFileInZip4_64 (file, filename, zipfi,
\r
7621 ; 1330 : extrafield_local, size_extrafield_local,
\r
7622 ; 1331 : extrafield_global, size_extrafield_global,
\r
7623 ; 1332 : comment, method, level, raw,
\r
7624 ; 1333 : -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY,
\r
7625 ; 1334 : NULL, 0, VERSIONMADEBY, 0, zip64);
\r
7627 00003 8b 45 34 mov eax, DWORD PTR _zip64$[ebp]
\r
7629 00007 8b 4d 30 mov ecx, DWORD PTR _raw$[ebp]
\r
7630 0000a 8b 55 2c mov edx, DWORD PTR _level$[ebp]
\r
7631 0000d 6a 00 push 0
\r
7632 0000f 8b 45 28 mov eax, DWORD PTR _method$[ebp]
\r
7633 00012 6a 00 push 0
\r
7634 00014 6a 00 push 0
\r
7635 00016 6a 00 push 0
\r
7636 00018 6a 00 push 0
\r
7637 0001a 6a 08 push 8
\r
7638 0001c 6a f1 push -15 ; fffffff1H
\r
7640 0001f 8b 4d 24 mov ecx, DWORD PTR _comment$[ebp]
\r
7642 00023 8b 55 20 mov edx, DWORD PTR _size_extrafield_global$[ebp]
\r
7644 00027 8b 45 1c mov eax, DWORD PTR _extrafield_global$[ebp]
\r
7646 0002b 8b 4d 18 mov ecx, DWORD PTR _size_extrafield_local$[ebp]
\r
7648 0002f 8b 55 14 mov edx, DWORD PTR _extrafield_local$[ebp]
\r
7650 00033 8b 45 10 mov eax, DWORD PTR _zipfi$[ebp]
\r
7652 00037 8b 4d 0c mov ecx, DWORD PTR _filename$[ebp]
\r
7654 0003b 8b 55 08 mov edx, DWORD PTR _file$[ebp]
\r
7658 00041 e8 00 00 00 00 call _zipOpenNewFileInZip4_64@76
\r
7663 00047 c2 30 00 ret 48 ; 00000030H
\r
7664 _zipOpenNewFileInZip2_64@48 ENDP
\r
7666 PUBLIC _zipOpenNewFileInZip2@44
\r
7667 ; Function compile flags: /Ogtp
\r
7668 ; COMDAT _zipOpenNewFileInZip2@44
\r
7670 _file$ = 8 ; size = 4
\r
7671 _filename$ = 12 ; size = 4
\r
7672 _zipfi$ = 16 ; size = 4
\r
7673 _extrafield_local$ = 20 ; size = 4
\r
7674 _size_extrafield_local$ = 24 ; size = 4
\r
7675 _extrafield_global$ = 28 ; size = 4
\r
7676 _size_extrafield_global$ = 32 ; size = 4
\r
7677 _comment$ = 36 ; size = 4
\r
7678 _method$ = 40 ; size = 4
\r
7679 _level$ = 44 ; size = 4
\r
7680 _raw$ = 48 ; size = 4
\r
7681 _zipOpenNewFileInZip2@44 PROC ; COMDAT
\r
7686 00001 8b ec mov ebp, esp
\r
7688 ; 1316 : return zipOpenNewFileInZip4_64 (file, filename, zipfi,
\r
7689 ; 1317 : extrafield_local, size_extrafield_local,
\r
7690 ; 1318 : extrafield_global, size_extrafield_global,
\r
7691 ; 1319 : comment, method, level, raw,
\r
7692 ; 1320 : -MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY,
\r
7693 ; 1321 : NULL, 0, VERSIONMADEBY, 0, 0);
\r
7695 00003 8b 45 30 mov eax, DWORD PTR _raw$[ebp]
\r
7696 00006 6a 00 push 0
\r
7697 00008 8b 4d 2c mov ecx, DWORD PTR _level$[ebp]
\r
7698 0000b 6a 00 push 0
\r
7699 0000d 8b 55 28 mov edx, DWORD PTR _method$[ebp]
\r
7700 00010 6a 00 push 0
\r
7701 00012 6a 00 push 0
\r
7702 00014 6a 00 push 0
\r
7703 00016 6a 00 push 0
\r
7704 00018 6a 08 push 8
\r
7705 0001a 6a f1 push -15 ; fffffff1H
\r
7707 0001d 8b 45 24 mov eax, DWORD PTR _comment$[ebp]
\r
7709 00021 8b 4d 20 mov ecx, DWORD PTR _size_extrafield_global$[ebp]
\r
7711 00025 8b 55 1c mov edx, DWORD PTR _extrafield_global$[ebp]
\r
7713 00029 8b 45 18 mov eax, DWORD PTR _size_extrafield_local$[ebp]
\r
7715 0002d 8b 4d 14 mov ecx, DWORD PTR _extrafield_local$[ebp]
\r
7717 00031 8b 55 10 mov edx, DWORD PTR _zipfi$[ebp]
\r
7719 00035 8b 45 0c mov eax, DWORD PTR _filename$[ebp]
\r
7721 00039 8b 4d 08 mov ecx, DWORD PTR _file$[ebp]
\r
7725 0003f e8 00 00 00 00 call _zipOpenNewFileInZip4_64@76
\r
7730 00045 c2 2c 00 ret 44 ; 0000002cH
\r
7731 _zipOpenNewFileInZip2@44 ENDP
\r
7733 PUBLIC _zipOpenNewFileInZip3_64@68
\r
7734 ; Function compile flags: /Ogtp
\r
7735 ; COMDAT _zipOpenNewFileInZip3_64@68
\r
7737 _file$ = 8 ; size = 4
\r
7738 _filename$ = 12 ; size = 4
\r
7739 _zipfi$ = 16 ; size = 4
\r
7740 _extrafield_local$ = 20 ; size = 4
\r
7741 _size_extrafield_local$ = 24 ; size = 4
\r
7742 _extrafield_global$ = 28 ; size = 4
\r
7743 _size_extrafield_global$ = 32 ; size = 4
\r
7744 _comment$ = 36 ; size = 4
\r
7745 _method$ = 40 ; size = 4
\r
7746 _level$ = 44 ; size = 4
\r
7747 _raw$ = 48 ; size = 4
\r
7748 _windowBits$ = 52 ; size = 4
\r
7749 _memLevel$ = 56 ; size = 4
\r
7750 _strategy$ = 60 ; size = 4
\r
7751 _password$ = 64 ; size = 4
\r
7752 _crcForCrypting$ = 68 ; size = 4
\r
7753 _zip64$ = 72 ; size = 4
\r
7754 _zipOpenNewFileInZip3_64@68 PROC ; COMDAT
\r
7759 00001 8b ec mov ebp, esp
\r
7761 ; 1303 : return zipOpenNewFileInZip4_64 (file, filename, zipfi,
\r
7762 ; 1304 : extrafield_local, size_extrafield_local,
\r
7763 ; 1305 : extrafield_global, size_extrafield_global,
\r
7764 ; 1306 : comment, method, level, raw,
\r
7765 ; 1307 : windowBits, memLevel, strategy,
\r
7766 ; 1308 : password, crcForCrypting, VERSIONMADEBY, 0, zip64);
\r
7768 00003 8b 45 48 mov eax, DWORD PTR _zip64$[ebp]
\r
7769 00006 8b 4d 44 mov ecx, DWORD PTR _crcForCrypting$[ebp]
\r
7770 00009 8b 55 40 mov edx, DWORD PTR _password$[ebp]
\r
7772 0000d 8b 45 3c mov eax, DWORD PTR _strategy$[ebp]
\r
7773 00010 6a 00 push 0
\r
7774 00012 6a 00 push 0
\r
7776 00015 8b 4d 38 mov ecx, DWORD PTR _memLevel$[ebp]
\r
7778 00019 8b 55 34 mov edx, DWORD PTR _windowBits$[ebp]
\r
7780 0001d 8b 45 30 mov eax, DWORD PTR _raw$[ebp]
\r
7782 00021 8b 4d 2c mov ecx, DWORD PTR _level$[ebp]
\r
7784 00025 8b 55 28 mov edx, DWORD PTR _method$[ebp]
\r
7786 00029 8b 45 24 mov eax, DWORD PTR _comment$[ebp]
\r
7788 0002d 8b 4d 20 mov ecx, DWORD PTR _size_extrafield_global$[ebp]
\r
7790 00031 8b 55 1c mov edx, DWORD PTR _extrafield_global$[ebp]
\r
7792 00035 8b 45 18 mov eax, DWORD PTR _size_extrafield_local$[ebp]
\r
7794 00039 8b 4d 14 mov ecx, DWORD PTR _extrafield_local$[ebp]
\r
7796 0003d 8b 55 10 mov edx, DWORD PTR _zipfi$[ebp]
\r
7798 00041 8b 45 0c mov eax, DWORD PTR _filename$[ebp]
\r
7800 00045 8b 4d 08 mov ecx, DWORD PTR _file$[ebp]
\r
7804 0004b e8 00 00 00 00 call _zipOpenNewFileInZip4_64@76
\r
7809 00051 c2 44 00 ret 68 ; 00000044H
\r
7810 _zipOpenNewFileInZip3_64@68 ENDP
\r
7812 PUBLIC _zipOpenNewFileInZip3@64
\r
7813 ; Function compile flags: /Ogtp
\r
7814 ; COMDAT _zipOpenNewFileInZip3@64
\r
7816 _file$ = 8 ; size = 4
\r
7817 _filename$ = 12 ; size = 4
\r
7818 _zipfi$ = 16 ; size = 4
\r
7819 _extrafield_local$ = 20 ; size = 4
\r
7820 _size_extrafield_local$ = 24 ; size = 4
\r
7821 _extrafield_global$ = 28 ; size = 4
\r
7822 _size_extrafield_global$ = 32 ; size = 4
\r
7823 _comment$ = 36 ; size = 4
\r
7824 _method$ = 40 ; size = 4
\r
7825 _level$ = 44 ; size = 4
\r
7826 _raw$ = 48 ; size = 4
\r
7827 _windowBits$ = 52 ; size = 4
\r
7828 _memLevel$ = 56 ; size = 4
\r
7829 _strategy$ = 60 ; size = 4
\r
7830 _password$ = 64 ; size = 4
\r
7831 _crcForCrypting$ = 68 ; size = 4
\r
7832 _zipOpenNewFileInZip3@64 PROC ; COMDAT
\r
7837 00001 8b ec mov ebp, esp
\r
7839 ; 1288 : return zipOpenNewFileInZip4_64 (file, filename, zipfi,
\r
7840 ; 1289 : extrafield_local, size_extrafield_local,
\r
7841 ; 1290 : extrafield_global, size_extrafield_global,
\r
7842 ; 1291 : comment, method, level, raw,
\r
7843 ; 1292 : windowBits, memLevel, strategy,
\r
7844 ; 1293 : password, crcForCrypting, VERSIONMADEBY, 0, 0);
\r
7846 00003 8b 45 44 mov eax, DWORD PTR _crcForCrypting$[ebp]
\r
7847 00006 8b 4d 40 mov ecx, DWORD PTR _password$[ebp]
\r
7848 00009 8b 55 3c mov edx, DWORD PTR _strategy$[ebp]
\r
7849 0000c 6a 00 push 0
\r
7850 0000e 6a 00 push 0
\r
7851 00010 6a 00 push 0
\r
7853 00013 8b 45 38 mov eax, DWORD PTR _memLevel$[ebp]
\r
7855 00017 8b 4d 34 mov ecx, DWORD PTR _windowBits$[ebp]
\r
7857 0001b 8b 55 30 mov edx, DWORD PTR _raw$[ebp]
\r
7859 0001f 8b 45 2c mov eax, DWORD PTR _level$[ebp]
\r
7861 00023 8b 4d 28 mov ecx, DWORD PTR _method$[ebp]
\r
7863 00027 8b 55 24 mov edx, DWORD PTR _comment$[ebp]
\r
7865 0002b 8b 45 20 mov eax, DWORD PTR _size_extrafield_global$[ebp]
\r
7867 0002f 8b 4d 1c mov ecx, DWORD PTR _extrafield_global$[ebp]
\r
7869 00033 8b 55 18 mov edx, DWORD PTR _size_extrafield_local$[ebp]
\r
7871 00037 8b 45 14 mov eax, DWORD PTR _extrafield_local$[ebp]
\r
7873 0003b 8b 4d 10 mov ecx, DWORD PTR _zipfi$[ebp]
\r
7875 0003f 8b 55 0c mov edx, DWORD PTR _filename$[ebp]
\r
7877 00043 8b 45 08 mov eax, DWORD PTR _file$[ebp]
\r
7881 00049 e8 00 00 00 00 call _zipOpenNewFileInZip4_64@76
\r
7886 0004f c2 40 00 ret 64 ; 00000040H
\r
7887 _zipOpenNewFileInZip3@64 ENDP
\r