]> gerrit.simantics Code Review - simantics/sysdyn.git/blob
e579fda58812d19f7b345c0db08da242693f66e8
[simantics/sysdyn.git] /
1 ; Listing generated by Microsoft (R) Optimizing Compiler Version 16.00.30319.01 \r
2 \r
3         TITLE   C:\Workspaces\Sysdyn\org.simantics.fmu\FMUSolution\zlib-1.2.6\contrib\minizip\zip.c\r
4         .686P\r
5         .XMM\r
6         include listing.inc\r
7         .model  flat\r
8 \r
9 INCLUDELIB OLDNAMES\r
10 \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
18 CONST   SEGMENT\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
25 _TEXT   SEGMENT\r
26 _c$ = -1                                                ; size = 1\r
27 _pi$ = 8                                                ; size = 4\r
28 _zip64local_getByte PROC                                ; COMDAT\r
29 ; _pzlib_filefunc_def$ = esi\r
30 ; _filestream$ = edi\r
31 \r
32 ; 350  : {\r
33 \r
34   00000 55               push    ebp\r
35   00001 8b ec            mov     ebp, esp\r
36   00003 51               push    ecx\r
37 \r
38 ; 351  :     unsigned char c;\r
39 ; 352  :     int err = (int)ZREAD64(*pzlib_filefunc_def,filestream,&c,1);\r
40 \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
43   0000a 6a 01            push    1\r
44   0000c 8d 45 ff         lea     eax, DWORD PTR _c$[ebp]\r
45   0000f 50               push    eax\r
46   00010 57               push    edi\r
47   00011 51               push    ecx\r
48   00012 ff d2            call    edx\r
49   00014 83 c4 10         add     esp, 16                        ; 00000010H\r
50 \r
51 ; 353  :     if (err==1)\r
52 \r
53   00017 83 f8 01         cmp     eax, 1\r
54   0001a 75 0f            jne     SHORT $LN4@zip64local\r
55 \r
56 ; 354  :     {\r
57 ; 355  :         *pi = (int)c;\r
58 \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
62 \r
63 ; 356  :         return ZIP_OK;\r
64 \r
65   00025 33 c0            xor     eax, eax\r
66 \r
67 ; 361  :             return ZIP_ERRNO;\r
68 ; 362  :         else\r
69 ; 363  :             return ZIP_EOF;\r
70 ; 364  :     }\r
71 ; 365  : }\r
72 \r
73   00027 8b e5            mov     esp, ebp\r
74   00029 5d               pop     ebp\r
75   0002a c3               ret     0\r
76 $LN4@zip64local:\r
77 \r
78 ; 357  :     }\r
79 ; 358  :     else\r
80 ; 359  :     {\r
81 ; 360  :         if (ZERROR64(*pzlib_filefunc_def,filestream))\r
82 \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
85   00031 57               push    edi\r
86   00032 52               push    edx\r
87   00033 ff d0            call    eax\r
88   00035 83 c4 08         add     esp, 8\r
89   00038 f7 d8            neg     eax\r
90   0003a 1b c0            sbb     eax, eax\r
91 \r
92 ; 361  :             return ZIP_ERRNO;\r
93 ; 362  :         else\r
94 ; 363  :             return ZIP_EOF;\r
95 ; 364  :     }\r
96 ; 365  : }\r
97 \r
98   0003c 8b e5            mov     esp, ebp\r
99   0003e 5d               pop     ebp\r
100   0003f c3               ret     0\r
101 _zip64local_getByte ENDP\r
102 ; Function compile flags: /Ogtp\r
103 _TEXT   ENDS\r
104 ;       COMDAT _zip64local_TmzDateToDosDate\r
105 _TEXT   SEGMENT\r
106 _zip64local_TmzDateToDosDate PROC                       ; COMDAT\r
107 ; _ptm$ = edx\r
108 \r
109 ; 334  :     uLong year = (uLong)ptm->tm_year;\r
110 \r
111   00000 8b 4a 14         mov     ecx, DWORD PTR [edx+20]\r
112 \r
113 ; 335  :     if (year>=1980)\r
114 \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
118 \r
119 ; 336  :         year-=1980;\r
120 \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
124 $LN3@zip64local@2:\r
125 \r
126 ; 337  :     else if (year>=80)\r
127 \r
128   00013 83 f9 50         cmp     ecx, 80                        ; 00000050H\r
129   00016 72 03            jb      SHORT $LN1@zip64local@2\r
130 \r
131 ; 338  :         year-=80;\r
132 \r
133   00018 83 e9 50         sub     ecx, 80                        ; 00000050H\r
134 $LN1@zip64local@2:\r
135 \r
136 ; 339  :     return\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
139 \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
143   00024 56               push    esi\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
153   0003d 5e               pop     esi\r
154   0003e c1 e1 10         shl     ecx, 16                        ; 00000010H\r
155   00041 0b c1            or      eax, ecx\r
156 \r
157 ; 342  : }\r
158 \r
159   00043 c3               ret     0\r
160 _zip64local_TmzDateToDosDate ENDP\r
161 _TEXT   ENDS\r
162 EXTRN   _memset:PROC\r
163 ; Function compile flags: /Ogtp\r
164 ;       COMDAT _zip64local_putValue_inmemory\r
165 _TEXT   SEGMENT\r
166 _x$ = 8                                                 ; size = 8\r
167 _zip64local_putValue_inmemory PROC                      ; COMDAT\r
168 ; _dest$ = edi\r
169 ; _nbByte$ = esi\r
170 \r
171 ; 312  : {\r
172 \r
173   00000 55               push    ebp\r
174   00001 8b ec            mov     ebp, esp\r
175 \r
176 ; 313  :     unsigned char* buf=(unsigned char*)dest;\r
177 ; 314  :     int n;\r
178 ; 315  :     for (n = 0; n < nbByte; n++) {\r
179 \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
185   0000f 90               npad    1\r
186 $LL7@zip64local@3:\r
187 \r
188 ; 316  :         buf[n] = (unsigned char)(x & 0xff);\r
189 \r
190   00010 88 04 39         mov     BYTE PTR [ecx+edi], al\r
191 \r
192 ; 317  :         x >>= 8;\r
193 \r
194   00013 0f ac d0 08      shrd    eax, edx, 8\r
195   00017 41               inc     ecx\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
199 $LN5@zip64local@3:\r
200 \r
201 ; 318  :     }\r
202 ; 319  : \r
203 ; 320  :     if (x != 0)\r
204 \r
205   0001f 0b c2            or      eax, edx\r
206   00021 74 13            je      SHORT $LN3@zip64local@3\r
207 \r
208 ; 321  :     {     /* data overflow - hack for ZIP64 */\r
209 ; 322  :        for (n = 0; n < nbByte; n++)\r
210 \r
211   00023 85 f6            test    esi, esi\r
212   00025 7e 0f            jle     SHORT $LN3@zip64local@3\r
213   00027 56               push    esi\r
214   00028 68 ff 00 00 00   push    255                    ; 000000ffH\r
215   0002d 57               push    edi\r
216   0002e e8 00 00 00 00   call    _memset\r
217   00033 83 c4 0c         add     esp, 12                        ; 0000000cH\r
218 $LN3@zip64local@3:\r
219 \r
220 ; 323  :        {\r
221 ; 324  :           buf[n] = 0xff;\r
222 ; 325  :        }\r
223 ; 326  :     }\r
224 ; 327  : }\r
225 \r
226   00036 5d               pop     ebp\r
227   00037 c3               ret     0\r
228 _zip64local_putValue_inmemory ENDP\r
229 ; Function compile flags: /Ogtp\r
230 _TEXT   ENDS\r
231 ;       COMDAT _zip64local_putValue\r
232 _TEXT   SEGMENT\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
238 ; _nbByte$ = esi\r
239 \r
240 ; 288  : {\r
241 \r
242   00000 55               push    ebp\r
243   00001 8b ec            mov     ebp, esp\r
244 \r
245 ; 289  :     unsigned char buf[8];\r
246 ; 290  :     int n;\r
247 ; 291  :     for (n = 0; n < nbByte; n++)\r
248 \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
254   0000f 90               npad    1\r
255 $LL9@zip64local@4:\r
256 \r
257 ; 292  :     {\r
258 ; 293  :         buf[n] = (unsigned char)(x & 0xff);\r
259 \r
260   00010 88 44 0d 0c      mov     BYTE PTR _buf$[ebp+ecx], al\r
261 \r
262 ; 294  :         x >>= 8;\r
263 \r
264   00014 0f ac d0 08      shrd    eax, edx, 8\r
265   00018 41               inc     ecx\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
269 $LN7@zip64local@4:\r
270 \r
271 ; 295  :     }\r
272 ; 296  :     if (x != 0)\r
273 \r
274   00020 0b c2            or      eax, edx\r
275   00022 74 16            je      SHORT $LN5@zip64local@4\r
276 \r
277 ; 297  :       {     /* data overflow - hack for ZIP64 (X Roche) */\r
278 ; 298  :       for (n = 0; n < nbByte; n++)\r
279 \r
280   00024 85 f6            test    esi, esi\r
281   00026 7e 12            jle     SHORT $LN5@zip64local@4\r
282   00028 56               push    esi\r
283   00029 8d 45 0c         lea     eax, DWORD PTR _buf$[ebp]\r
284   0002c 68 ff 00 00 00   push    255                    ; 000000ffH\r
285   00031 50               push    eax\r
286   00032 e8 00 00 00 00   call    _memset\r
287   00037 83 c4 0c         add     esp, 12                        ; 0000000cH\r
288 $LN5@zip64local@4:\r
289 \r
290 ; 299  :         {\r
291 ; 300  :           buf[n] = 0xff;\r
292 ; 301  :         }\r
293 ; 302  :       }\r
294 ; 303  : \r
295 ; 304  :     if (ZWRITE64(*pzlib_filefunc_def,filestream,buf,nbByte)!=(uLong)nbByte)\r
296 \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
299   00040 56               push    esi\r
300   00041 8d 4d 0c         lea     ecx, DWORD PTR _buf$[ebp]\r
301   00044 51               push    ecx\r
302   00045 8b 4f 08         mov     ecx, DWORD PTR [edi+8]\r
303   00048 52               push    edx\r
304   00049 50               push    eax\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
310 \r
311 ; 305  :         return ZIP_ERRNO;\r
312 ; 306  :     else\r
313 ; 307  :         return ZIP_OK;\r
314 ; 308  : }\r
315 \r
316   00055 5d               pop     ebp\r
317   00056 c3               ret     0\r
318 _zip64local_putValue ENDP\r
319 ; Function compile flags: /Ogtp\r
320 _TEXT   ENDS\r
321 ;       COMDAT _init_linkedlist\r
322 _TEXT   SEGMENT\r
323 _init_linkedlist PROC                                   ; COMDAT\r
324 ; _ll$ = eax\r
325 \r
326 ; 215  :     ll->first_block = ll->last_block = NULL;\r
327 \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
332 \r
333 ; 216  : }\r
334 \r
335   0000d c3               ret     0\r
336 _init_linkedlist ENDP\r
337 ; Function compile flags: /Ogtp\r
338 _TEXT   ENDS\r
339 ;       COMDAT _free_datablock\r
340 _TEXT   SEGMENT\r
341 _free_datablock PROC                                    ; COMDAT\r
342 ; _ldi$ = eax\r
343 \r
344 ; 205  :     while (ldi!=NULL)\r
345 \r
346   00000 85 c0            test    eax, eax\r
347   00002 74 1c            je      SHORT $LN2@free_datab\r
348   00004 56               push    esi\r
349   00005 57               push    edi\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
353 $LL3@free_datab:\r
354 \r
355 ; 206  :     {\r
356 ; 207  :         linkedlist_datablock_internal* ldinext = ldi->next_datablock;\r
357 \r
358   00010 8b 30            mov     esi, DWORD PTR [eax]\r
359 \r
360 ; 208  :         TRYFREE(ldi);\r
361 \r
362   00012 50               push    eax\r
363   00013 ff d7            call    edi\r
364   00015 83 c4 04         add     esp, 4\r
365 \r
366 ; 209  :         ldi = ldinext;\r
367 \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
371   0001e 5f               pop     edi\r
372   0001f 5e               pop     esi\r
373 $LN2@free_datab:\r
374 \r
375 ; 210  :     }\r
376 ; 211  : }\r
377 \r
378   00020 c3               ret     0\r
379 _free_datablock ENDP\r
380 ; Function compile flags: /Ogtp\r
381 _TEXT   ENDS\r
382 ;       COMDAT _allocate_new_datablock\r
383 _TEXT   SEGMENT\r
384 _allocate_new_datablock PROC                            ; COMDAT\r
385 \r
386 ; 191  :     linkedlist_datablock_internal* ldi;\r
387 ; 192  :     ldi = (linkedlist_datablock_internal*)\r
388 ; 193  :                  ALLOC(sizeof(linkedlist_datablock_internal));\r
389 \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
394 \r
395 ; 194  :     if (ldi!=NULL)\r
396 \r
397   0000e 85 c0            test    eax, eax\r
398   00010 74 14            je      SHORT $LN1@allocate_n\r
399 \r
400 ; 195  :     {\r
401 ; 196  :         ldi->next_datablock = NULL ;\r
402 \r
403   00012 c7 00 00 00 00\r
404         00               mov     DWORD PTR [eax], 0\r
405 \r
406 ; 197  :         ldi->filled_in_this_block = 0 ;\r
407 \r
408   00018 c7 40 08 00 00\r
409         00 00            mov     DWORD PTR [eax+8], 0\r
410 \r
411 ; 198  :         ldi->avail_in_this_block = SIZEDATA_INDATABLOCK ;\r
412 \r
413   0001f c7 40 04 f0 0f\r
414         00 00            mov     DWORD PTR [eax+4], 4080        ; 00000ff0H\r
415 $LN1@allocate_n:\r
416 \r
417 ; 199  :     }\r
418 ; 200  :     return ldi;\r
419 ; 201  : }\r
420 \r
421   00026 c3               ret     0\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
425 _TEXT   ENDS\r
426 ;       COMDAT _update_keys\r
427 _TEXT   SEGMENT\r
428 _update_keys PROC                                       ; COMDAT\r
429 ; _pkeys$ = esi\r
430 ; _pcrc_32_tab$ = edi\r
431 ; _c$ = eax\r
432 \r
433 ; 50   :     (*(pkeys+0)) = CRC32((*(pkeys+0)), c);\r
434 \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
443 \r
444 ; 51   :     (*(pkeys+1)) += (*(pkeys+0)) & 0xff;\r
445 \r
446   00014 0f b6 ca         movzx   ecx, dl\r
447 \r
448 ; 52   :     (*(pkeys+1)) = (*(pkeys+1)) * 134775813L + 1;\r
449 \r
450   00017 03 4e 04         add     ecx, DWORD PTR [esi+4]\r
451   0001a 89 16            mov     DWORD PTR [esi], edx\r
452 \r
453 ; 53   :     {\r
454 ; 54   :       register int keyshift = (int)((*(pkeys+1)) >> 24);\r
455 ; 55   :       (*(pkeys+2)) = CRC32((*(pkeys+2)), keyshift);\r
456 \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
460   00025 41               inc     ecx\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
469 \r
470 ; 56   :     }\r
471 ; 57   :     return c;\r
472 ; 58   : }\r
473 \r
474   0003d c3               ret     0\r
475 _update_keys ENDP\r
476 ; Function compile flags: /Ogtp\r
477 _TEXT   ENDS\r
478 ;       COMDAT _decrypt_byte\r
479 _TEXT   SEGMENT\r
480 _decrypt_byte PROC                                      ; COMDAT\r
481 ; _pkeys$ = eax\r
482 \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
486 ; 40   : \r
487 ; 41   :     temp = ((unsigned)(*(pkeys+2)) & 0xffff) | 2;\r
488 \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
493 \r
494 ; 42   :     return (int)(((temp * (temp ^ 1)) >> 8) & 0xff);\r
495 \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
501 \r
502 ; 43   : }\r
503 \r
504   0001c c3               ret     0\r
505 _decrypt_byte ENDP\r
506 ; Function compile flags: /Ogtp\r
507 ; File c:\program files (x86)\microsoft visual studio 10.0\vc\include\time.inl\r
508 _TEXT   ENDS\r
509 ;       COMDAT _time\r
510 _TEXT   SEGMENT\r
511 _time   PROC                                            ; COMDAT\r
512 \r
513 ; 133  :     return _time64(_Time);\r
514 \r
515   00000 6a 00            push    0\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
519 \r
520 ; 134  : }\r
521 \r
522   0000b c3               ret     0\r
523 _time   ENDP\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
528 _TEXT   SEGMENT\r
529 _global_comment$ = 8                                    ; size = 4\r
530 _Write_GlobalComment PROC                               ; COMDAT\r
531 ; _zi$ = eax\r
532 \r
533 ; 1865 : {\r
534 \r
535   00000 55               push    ebp\r
536   00001 8b ec            mov     ebp, esp\r
537   00003 53               push    ebx\r
538   00004 56               push    esi\r
539   00005 57               push    edi\r
540   00006 8b f8            mov     edi, eax\r
541 \r
542 ; 1866 :   int err = ZIP_OK;\r
543 ; 1867 :   uInt size_global_comment = 0;\r
544 ; 1868 : \r
545 ; 1869 :   if(global_comment != NULL)\r
546 \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
551 \r
552 ; 1870 :     size_global_comment = (uInt)strlen(global_comment);\r
553 \r
554   00011 8d 50 01         lea     edx, DWORD PTR [eax+1]\r
555 $LL6@Write_Glob:\r
556   00014 8a 08            mov     cl, BYTE PTR [eax]\r
557   00016 40               inc     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
562 $LN3@Write_Glob:\r
563 \r
564 ; 1871 : \r
565 ; 1872 :   err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)size_global_comment,2);\r
566 \r
567   0001f 8b 47 2c         mov     eax, DWORD PTR [edi+44]\r
568   00022 6a 00            push    0\r
569   00024 53               push    ebx\r
570   00025 50               push    eax\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
575 \r
576 ; 1873 : \r
577 ; 1874 :   if (err == ZIP_OK && size_global_comment > 0)\r
578 \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
583 \r
584 ; 1875 :   {\r
585 ; 1876 :     if (ZWRITE64(zi->z_filefunc,zi->filestream, global_comment, size_global_comment) != size_global_comment)\r
586 \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
590   00046 53               push    ebx\r
591   00047 51               push    ecx\r
592   00048 8b 4f 08         mov     ecx, DWORD PTR [edi+8]\r
593   0004b 52               push    edx\r
594   0004c 50               push    eax\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
599 \r
600 ; 1877 :       err = ZIP_ERRNO;\r
601 \r
602   00056 83 c8 ff         or      eax, -1\r
603 \r
604 ; 1878 :   }\r
605 ; 1879 :   return err;\r
606 ; 1880 : }\r
607 \r
608   00059 5f               pop     edi\r
609   0005a 5e               pop     esi\r
610   0005b 5b               pop     ebx\r
611   0005c 5d               pop     ebp\r
612   0005d c3               ret     0\r
613 $LN9@Write_Glob:\r
614   0005e 5f               pop     edi\r
615   0005f 8b c6            mov     eax, esi\r
616   00061 5e               pop     esi\r
617   00062 5b               pop     ebx\r
618   00063 5d               pop     ebp\r
619   00064 c3               ret     0\r
620 _Write_GlobalComment ENDP\r
621 _TEXT   ENDS\r
622 PUBLIC  _Write_EndOfCentralDirectoryRecord\r
623 ; Function compile flags: /Ogtp\r
624 ;       COMDAT _Write_EndOfCentralDirectoryRecord\r
625 _TEXT   SEGMENT\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
630 ; _zi$ = eax\r
631 \r
632 ; 1817 : {\r
633 \r
634   00000 55               push    ebp\r
635   00001 8b ec            mov     ebp, esp\r
636   00003 83 ec 08         sub     esp, 8\r
637   00006 56               push    esi\r
638   00007 57               push    edi\r
639   00008 8b f8            mov     edi, eax\r
640 \r
641 ; 1818 :   int err = ZIP_OK;\r
642 ; 1819 : \r
643 ; 1820 :   /*signature*/\r
644 ; 1821 :   err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)ENDHEADERMAGIC,4);\r
645 \r
646   0000a 8b 47 2c         mov     eax, DWORD PTR [edi+44]\r
647   0000d 6a 00            push    0\r
648   0000f 68 50 4b 05 06   push    101010256              ; 06054b50H\r
649   00014 50               push    eax\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
653 \r
654 ; 1822 : \r
655 ; 1823 :   if (err==ZIP_OK) /* number of this disk */\r
656 \r
657   00022 85 c0            test    eax, eax\r
658   00024 0f 85 0f 01 00\r
659         00               jne     $LN1@Write_EndO\r
660 \r
661 ; 1824 :     err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,2);\r
662 \r
663   0002a 8b 4f 2c         mov     ecx, DWORD PTR [edi+44]\r
664   0002d 50               push    eax\r
665   0002e 50               push    eax\r
666   0002f 51               push    ecx\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
670 \r
671 ; 1825 : \r
672 ; 1826 :   if (err==ZIP_OK) /* number of the disk with the start of the central directory */\r
673 \r
674   0003b 85 c0            test    eax, eax\r
675   0003d 0f 85 f6 00 00\r
676         00               jne     $LN1@Write_EndO\r
677 \r
678 ; 1827 :     err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,2);\r
679 \r
680   00043 8b 57 2c         mov     edx, DWORD PTR [edi+44]\r
681   00046 50               push    eax\r
682   00047 50               push    eax\r
683   00048 52               push    edx\r
684   00049 e8 00 00 00 00   call    _zip64local_putValue\r
685   0004e 83 c4 0c         add     esp, 12                        ; 0000000cH\r
686 \r
687 ; 1828 : \r
688 ; 1829 :   if (err==ZIP_OK) /* total number of entries in the central dir on this disk */\r
689 \r
690   00051 85 c0            test    eax, eax\r
691   00053 0f 85 e0 00 00\r
692         00               jne     $LN1@Write_EndO\r
693 \r
694 ; 1830 :   {\r
695 ; 1831 :     {\r
696 ; 1832 :       if(zi->number_entry >= 0xFFFF)\r
697 \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
704 $LN15@Write_EndO:\r
705 \r
706 ; 1833 :         err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0xffff,2); // use value in ZIP64 record\r
707 \r
708   0006d 8b 47 2c         mov     eax, DWORD PTR [edi+44]\r
709   00070 6a 00            push    0\r
710   00072 68 ff ff 00 00   push    65535                  ; 0000ffffH\r
711   00077 50               push    eax\r
712 \r
713 ; 1834 :       else\r
714 \r
715   00078 eb 0d            jmp     SHORT $LN24@Write_EndO\r
716 $LN9@Write_EndO:\r
717 \r
718 ; 1835 :         err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->number_entry,2);\r
719 \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
723   00083 6a 00            push    0\r
724   00085 51               push    ecx\r
725   00086 52               push    edx\r
726 $LN24@Write_EndO:\r
727   00087 e8 00 00 00 00   call    _zip64local_putValue\r
728   0008c 83 c4 0c         add     esp, 12                        ; 0000000cH\r
729 \r
730 ; 1836 :     }\r
731 ; 1837 :   }\r
732 ; 1838 : \r
733 ; 1839 :   if (err==ZIP_OK) /* total number of entries in the central dir */\r
734 \r
735   0008f 85 c0            test    eax, eax\r
736   00091 0f 85 a2 00 00\r
737         00               jne     $LN1@Write_EndO\r
738 \r
739 ; 1840 :   {\r
740 ; 1841 :     if(zi->number_entry >= 0xFFFF)\r
741 \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
748 $LN16@Write_EndO:\r
749 \r
750 ; 1842 :       err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0xffff,2); // use value in ZIP64 record\r
751 \r
752   000ab 8b 47 2c         mov     eax, DWORD PTR [edi+44]\r
753   000ae 6a 00            push    0\r
754   000b0 68 ff ff 00 00   push    65535                  ; 0000ffffH\r
755   000b5 50               push    eax\r
756 \r
757 ; 1843 :     else\r
758 \r
759   000b6 eb 0d            jmp     SHORT $LN25@Write_EndO\r
760 $LN6@Write_EndO:\r
761 \r
762 ; 1844 :       err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->number_entry,2);\r
763 \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
767   000c1 6a 00            push    0\r
768   000c3 51               push    ecx\r
769   000c4 52               push    edx\r
770 $LN25@Write_EndO:\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
774 \r
775 ; 1845 :   }\r
776 ; 1846 : \r
777 ; 1847 :   if (err==ZIP_OK) /* size of the central directory */\r
778 \r
779   000d2 85 c0            test    eax, eax\r
780   000d4 75 63            jne     SHORT $LN1@Write_EndO\r
781 \r
782 ; 1848 :     err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)size_centraldir,4);\r
783 \r
784   000d6 8b 4f 2c         mov     ecx, DWORD PTR [edi+44]\r
785   000d9 50               push    eax\r
786   000da 8b 45 08         mov     eax, DWORD PTR _size_centraldir$[ebp]\r
787   000dd 50               push    eax\r
788   000de 51               push    ecx\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
792 \r
793 ; 1849 : \r
794 ; 1850 :   if (err==ZIP_OK) /* offset of start of central directory with respect to the starting disk number */\r
795 \r
796   000ec 85 c0            test    eax, eax\r
797   000ee 75 49            jne     SHORT $LN1@Write_EndO\r
798 \r
799 ; 1851 :   {\r
800 ; 1852 :     ZPOS64_T pos = centraldir_pos_inzip - zi->add_position_when_writting_offset;\r
801 \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
809 \r
810 ; 1853 :     if(pos >= 0xffffffff)\r
811 \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
816 $LN17@Write_EndO:\r
817 \r
818 ; 1854 :     {\r
819 ; 1855 :       err = zip64local_putValue(&zi->z_filefunc,zi->filestream, (uLong)0xffffffff,4);\r
820 \r
821   0010e 8b 47 2c         mov     eax, DWORD PTR [edi+44]\r
822   00111 6a 00            push    0\r
823   00113 6a ff            push    -1\r
824   00115 50               push    eax\r
825 \r
826 ; 1856 :     }\r
827 ; 1857 :     else\r
828 ; 1858 :       err = zip64local_putValue(&zi->z_filefunc,zi->filestream, (uLong)(centraldir_pos_inzip - zi->add_position_when_writting_offset),4);\r
829 \r
830   00116 e8 00 00 00 00   call    _zip64local_putValue\r
831   0011b 83 c4 0c         add     esp, 12                        ; 0000000cH\r
832 \r
833 ; 1859 :   }\r
834 ; 1860 : \r
835 ; 1861 :    return err;\r
836 ; 1862 : }\r
837 \r
838   0011e 5f               pop     edi\r
839   0011f 5e               pop     esi\r
840   00120 8b e5            mov     esp, ebp\r
841   00122 5d               pop     ebp\r
842   00123 c3               ret     0\r
843 $LN2@Write_EndO:\r
844 \r
845 ; 1856 :     }\r
846 ; 1857 :     else\r
847 ; 1858 :       err = zip64local_putValue(&zi->z_filefunc,zi->filestream, (uLong)(centraldir_pos_inzip - zi->add_position_when_writting_offset),4);\r
848 \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
852   0012d 6a 00            push    0\r
853   0012f 50               push    eax\r
854   00130 51               push    ecx\r
855   00131 e8 00 00 00 00   call    _zip64local_putValue\r
856   00136 83 c4 0c         add     esp, 12                        ; 0000000cH\r
857 $LN1@Write_EndO:\r
858 \r
859 ; 1859 :   }\r
860 ; 1860 : \r
861 ; 1861 :    return err;\r
862 ; 1862 : }\r
863 \r
864   00139 5f               pop     edi\r
865   0013a 5e               pop     esi\r
866   0013b 8b e5            mov     esp, ebp\r
867   0013d 5d               pop     ebp\r
868   0013e c3               ret     0\r
869 _Write_EndOfCentralDirectoryRecord ENDP\r
870 _TEXT   ENDS\r
871 PUBLIC  _Write_Zip64EndOfCentralDirectoryRecord\r
872 ; Function compile flags: /Ogtp\r
873 ;       COMDAT _Write_Zip64EndOfCentralDirectoryRecord\r
874 _TEXT   SEGMENT\r
875 _size_centraldir$ = 8                                   ; size = 4\r
876 _centraldir_pos_inzip$ = 12                             ; size = 8\r
877 _Write_Zip64EndOfCentralDirectoryRecord PROC            ; COMDAT\r
878 ; _zi$ = eax\r
879 \r
880 ; 1778 : {\r
881 \r
882   00000 55               push    ebp\r
883   00001 8b ec            mov     ebp, esp\r
884   00003 56               push    esi\r
885   00004 57               push    edi\r
886   00005 8b f8            mov     edi, eax\r
887 \r
888 ; 1779 :   int err = ZIP_OK;\r
889 ; 1780 : \r
890 ; 1781 :   uLong Zip64DataSize = 44;\r
891 ; 1782 : \r
892 ; 1783 :   err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)ZIP64ENDHEADERMAGIC,4);\r
893 \r
894   00007 8b 47 2c         mov     eax, DWORD PTR [edi+44]\r
895   0000a 6a 00            push    0\r
896   0000c 68 50 4b 06 06   push    101075792              ; 06064b50H\r
897   00011 50               push    eax\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
901 \r
902 ; 1784 : \r
903 ; 1785 :   if (err==ZIP_OK) /* size of this 'zip64 end of central directory' */\r
904 \r
905   0001f 85 c0            test    eax, eax\r
906   00021 0f 85 ec 00 00\r
907         00               jne     $LN1@Write_Zip6\r
908 \r
909 ; 1786 :     err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(ZPOS64_T)Zip64DataSize,8); // why ZPOS64_T of this ?\r
910 \r
911   00027 8b 4f 2c         mov     ecx, DWORD PTR [edi+44]\r
912   0002a 50               push    eax\r
913   0002b 6a 2c            push    44                     ; 0000002cH\r
914   0002d 51               push    ecx\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
918 \r
919 ; 1787 : \r
920 ; 1788 :   if (err==ZIP_OK) /* version made by */\r
921 \r
922   00039 85 c0            test    eax, eax\r
923   0003b 0f 85 d2 00 00\r
924         00               jne     $LN1@Write_Zip6\r
925 \r
926 ; 1789 :     err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)45,2);\r
927 \r
928   00041 8b 57 2c         mov     edx, DWORD PTR [edi+44]\r
929   00044 50               push    eax\r
930   00045 6a 2d            push    45                     ; 0000002dH\r
931   00047 52               push    edx\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
935 \r
936 ; 1790 : \r
937 ; 1791 :   if (err==ZIP_OK) /* version needed */\r
938 \r
939   00053 85 c0            test    eax, eax\r
940   00055 0f 85 b8 00 00\r
941         00               jne     $LN1@Write_Zip6\r
942 \r
943 ; 1792 :     err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)45,2);\r
944 \r
945   0005b 50               push    eax\r
946   0005c 8b 47 2c         mov     eax, DWORD PTR [edi+44]\r
947   0005f 6a 2d            push    45                     ; 0000002dH\r
948   00061 50               push    eax\r
949   00062 e8 00 00 00 00   call    _zip64local_putValue\r
950   00067 83 c4 0c         add     esp, 12                        ; 0000000cH\r
951 \r
952 ; 1793 : \r
953 ; 1794 :   if (err==ZIP_OK) /* number of this disk */\r
954 \r
955   0006a 85 c0            test    eax, eax\r
956   0006c 0f 85 a1 00 00\r
957         00               jne     $LN1@Write_Zip6\r
958 \r
959 ; 1795 :     err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4);\r
960 \r
961   00072 8b 4f 2c         mov     ecx, DWORD PTR [edi+44]\r
962   00075 50               push    eax\r
963   00076 50               push    eax\r
964   00077 51               push    ecx\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
968 \r
969 ; 1796 : \r
970 ; 1797 :   if (err==ZIP_OK) /* number of the disk with the start of the central directory */\r
971 \r
972   00083 85 c0            test    eax, eax\r
973   00085 0f 85 88 00 00\r
974         00               jne     $LN1@Write_Zip6\r
975 \r
976 ; 1798 :     err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4);\r
977 \r
978   0008b 8b 57 2c         mov     edx, DWORD PTR [edi+44]\r
979   0008e 50               push    eax\r
980   0008f 50               push    eax\r
981   00090 52               push    edx\r
982   00091 e8 00 00 00 00   call    _zip64local_putValue\r
983   00096 83 c4 0c         add     esp, 12                        ; 0000000cH\r
984 \r
985 ; 1799 : \r
986 ; 1800 :   if (err==ZIP_OK) /* total number of entries in the central dir on this disk */\r
987 \r
988   00099 85 c0            test    eax, eax\r
989   0009b 75 76            jne     SHORT $LN1@Write_Zip6\r
990 \r
991 ; 1801 :     err = zip64local_putValue(&zi->z_filefunc, zi->filestream, zi->number_entry, 8);\r
992 \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
998   000ac 50               push    eax\r
999   000ad 51               push    ecx\r
1000   000ae 52               push    edx\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
1004 \r
1005 ; 1802 : \r
1006 ; 1803 :   if (err==ZIP_OK) /* total number of entries in the central dir */\r
1007 \r
1008   000bc 85 c0            test    eax, eax\r
1009   000be 75 53            jne     SHORT $LN1@Write_Zip6\r
1010 \r
1011 ; 1804 :     err = zip64local_putValue(&zi->z_filefunc, zi->filestream, zi->number_entry, 8);\r
1012 \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
1018   000cf 50               push    eax\r
1019   000d0 51               push    ecx\r
1020   000d1 52               push    edx\r
1021   000d2 e8 00 00 00 00   call    _zip64local_putValue\r
1022   000d7 83 c4 0c         add     esp, 12                        ; 0000000cH\r
1023 \r
1024 ; 1805 : \r
1025 ; 1806 :   if (err==ZIP_OK) /* size of the central directory */\r
1026 \r
1027   000da 85 c0            test    eax, eax\r
1028   000dc 75 35            jne     SHORT $LN1@Write_Zip6\r
1029 \r
1030 ; 1807 :     err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(ZPOS64_T)size_centraldir,8);\r
1031 \r
1032   000de 8b 4f 2c         mov     ecx, DWORD PTR [edi+44]\r
1033   000e1 50               push    eax\r
1034   000e2 8b 45 08         mov     eax, DWORD PTR _size_centraldir$[ebp]\r
1035   000e5 50               push    eax\r
1036   000e6 51               push    ecx\r
1037   000e7 e8 00 00 00 00   call    _zip64local_putValue\r
1038   000ec 83 c4 0c         add     esp, 12                        ; 0000000cH\r
1039 \r
1040 ; 1808 : \r
1041 ; 1809 :   if (err==ZIP_OK) /* offset of start of central directory with respect to the starting disk number */\r
1042 \r
1043   000ef 85 c0            test    eax, eax\r
1044   000f1 75 20            jne     SHORT $LN1@Write_Zip6\r
1045 \r
1046 ; 1810 :   {\r
1047 ; 1811 :     ZPOS64_T pos = centraldir_pos_inzip - zi->add_position_when_writting_offset;\r
1048 \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
1055 \r
1056 ; 1812 :     err = zip64local_putValue(&zi->z_filefunc,zi->filestream, (ZPOS64_T)pos,8);\r
1057 \r
1058   00105 8b 57 2c         mov     edx, DWORD PTR [edi+44]\r
1059   00108 51               push    ecx\r
1060   00109 50               push    eax\r
1061   0010a 52               push    edx\r
1062   0010b e8 00 00 00 00   call    _zip64local_putValue\r
1063   00110 83 c4 0c         add     esp, 12                        ; 0000000cH\r
1064 $LN1@Write_Zip6:\r
1065 \r
1066 ; 1813 :   }\r
1067 ; 1814 :   return err;\r
1068 ; 1815 : }\r
1069 \r
1070   00113 5f               pop     edi\r
1071   00114 5e               pop     esi\r
1072   00115 5d               pop     ebp\r
1073   00116 c3               ret     0\r
1074 _Write_Zip64EndOfCentralDirectoryRecord ENDP\r
1075 _TEXT   ENDS\r
1076 PUBLIC  _Write_Zip64EndOfCentralDirectoryLocator\r
1077 ; Function compile flags: /Ogtp\r
1078 ;       COMDAT _Write_Zip64EndOfCentralDirectoryLocator\r
1079 _TEXT   SEGMENT\r
1080 _pos$ = 8                                               ; size = 8\r
1081 _zip64eocd_pos_inzip$ = 8                               ; size = 8\r
1082 _Write_Zip64EndOfCentralDirectoryLocator PROC           ; COMDAT\r
1083 ; _zi$ = eax\r
1084 \r
1085 ; 1756 : {\r
1086 \r
1087   00000 55               push    ebp\r
1088   00001 8b ec            mov     ebp, esp\r
1089   00003 53               push    ebx\r
1090 \r
1091 ; 1757 :   int err = ZIP_OK;\r
1092 ; 1758 :   ZPOS64_T pos = zip64eocd_pos_inzip - zi->add_position_when_writting_offset;\r
1093 \r
1094   00004 8b 5d 08         mov     ebx, DWORD PTR _zip64eocd_pos_inzip$[ebp]\r
1095   00007 56               push    esi\r
1096   00008 57               push    edi\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
1103 \r
1104 ; 1759 : \r
1105 ; 1760 :   err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)ZIP64ENDLOCHEADERMAGIC,4);\r
1106 \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
1111   00027 50               push    eax\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
1115 \r
1116 ; 1761 : \r
1117 ; 1762 :   /*num disks*/\r
1118 ; 1763 :     if (err==ZIP_OK) /* number of the disk with the start of the central directory */\r
1119 \r
1120   00035 85 c0            test    eax, eax\r
1121   00037 75 3e            jne     SHORT $LN1@Write_Zip6@2\r
1122 \r
1123 ; 1764 :       err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4);\r
1124 \r
1125   00039 8b 4f 2c         mov     ecx, DWORD PTR [edi+44]\r
1126   0003c 50               push    eax\r
1127   0003d 50               push    eax\r
1128   0003e 51               push    ecx\r
1129   0003f e8 00 00 00 00   call    _zip64local_putValue\r
1130   00044 83 c4 0c         add     esp, 12                        ; 0000000cH\r
1131 \r
1132 ; 1765 : \r
1133 ; 1766 :   /*relative offset*/\r
1134 ; 1767 :     if (err==ZIP_OK) /* Relative offset to the Zip64EndOfCentralDirectory */\r
1135 \r
1136   00047 85 c0            test    eax, eax\r
1137   00049 75 2c            jne     SHORT $LN1@Write_Zip6@2\r
1138 \r
1139 ; 1768 :       err = zip64local_putValue(&zi->z_filefunc,zi->filestream, pos,8);\r
1140 \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
1143   00051 52               push    edx\r
1144   00052 53               push    ebx\r
1145   00053 50               push    eax\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
1149 \r
1150 ; 1769 : \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
1153 \r
1154   00061 85 c0            test    eax, eax\r
1155   00063 75 12            jne     SHORT $LN1@Write_Zip6@2\r
1156 \r
1157 ; 1772 :       err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)1,4);\r
1158 \r
1159   00065 8b 4f 2c         mov     ecx, DWORD PTR [edi+44]\r
1160   00068 50               push    eax\r
1161   00069 6a 01            push    1\r
1162   0006b 51               push    ecx\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
1167 \r
1168 ; 1773 : \r
1169 ; 1774 :     return err;\r
1170 ; 1775 : }\r
1171 \r
1172   00077 5f               pop     edi\r
1173   00078 5e               pop     esi\r
1174   00079 5b               pop     ebx\r
1175   0007a 5d               pop     ebp\r
1176   0007b c3               ret     0\r
1177 _Write_Zip64EndOfCentralDirectoryLocator ENDP\r
1178 ; Function compile flags: /Ogtp\r
1179 _TEXT   ENDS\r
1180 ;       COMDAT _zip64FlushWriteBuffer\r
1181 _TEXT   SEGMENT\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
1187 ; _zi$ = ebx\r
1188 \r
1189 ; 1364 : {\r
1190 \r
1191   00000 55               push    ebp\r
1192   00001 8b ec            mov     ebp, esp\r
1193   00003 83 ec 10         sub     esp, 16                        ; 00000010H\r
1194   00006 56               push    esi\r
1195   00007 57               push    edi\r
1196 \r
1197 ; 1365 :     int err=ZIP_OK;\r
1198 \r
1199   00008 33 ff            xor     edi, edi\r
1200   0000a 89 7d f8         mov     DWORD PTR _err$[ebp], edi\r
1201 \r
1202 ; 1366 : \r
1203 ; 1367 :     if (zi->ci.encrypt != 0)\r
1204 \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
1208 \r
1209 ; 1368 :     {\r
1210 ; 1369 : #ifndef NOCRYPT\r
1211 ; 1370 :         uInt i;\r
1212 ; 1371 :         int t;\r
1213 ; 1372 :         for (i=0;i<zi->ci.pos_in_buffered_data;i++)\r
1214 \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
1225 $LL10@zip64Flush:\r
1226 \r
1227 ; 1373 :             zi->ci.buffered_data[i] = zencode(zi->ci.keys, zi->ci.pcrc_32_tab, zi->ci.buffered_data[i],t);\r
1228 \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
1241   00059 40               inc     eax\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
1246 \r
1247 ; 1368 :     {\r
1248 ; 1369 : #ifndef NOCRYPT\r
1249 ; 1370 :         uInt i;\r
1250 ; 1371 :         int t;\r
1251 ; 1372 :         for (i=0;i<zi->ci.pos_in_buffered_data;i++)\r
1252 \r
1253   00064 33 ff            xor     edi, edi\r
1254 $LN2@zip64Flush:\r
1255 \r
1256 ; 1374 : #endif\r
1257 ; 1375 :     }\r
1258 ; 1376 : \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
1260 \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
1264   0006f 56               push    esi\r
1265   00070 8d 83 a4 00 00\r
1266         00               lea     eax, DWORD PTR [ebx+164]\r
1267   00076 50               push    eax\r
1268   00077 8b 43 08         mov     eax, DWORD PTR [ebx+8]\r
1269   0007a 51               push    ecx\r
1270   0007b 52               push    edx\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
1275 \r
1276 ; 1378 :       err = ZIP_ERRNO;\r
1277 \r
1278   00085 c7 45 f8 ff ff\r
1279         ff ff            mov     DWORD PTR _err$[ebp], -1\r
1280 $LN1@zip64Flush:\r
1281 \r
1282 ; 1379 : \r
1283 ; 1380 :     zi->ci.totalCompressedData += zi->ci.pos_in_buffered_data;\r
1284 \r
1285   0008c 01 b3 c0 00 01\r
1286         00               add     DWORD PTR [ebx+65728], esi\r
1287 \r
1288 ; 1381 : \r
1289 ; 1382 : #ifdef HAVE_BZIP2\r
1290 ; 1383 :     if(zi->ci.method == Z_BZIP2ED)\r
1291 ; 1384 :     {\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
1295 ; 1388 :     }\r
1296 ; 1389 :     else\r
1297 ; 1390 : #endif\r
1298 ; 1391 :     {\r
1299 ; 1392 :       zi->ci.totalUncompressedData += zi->ci.stream.total_in;\r
1300 \r
1301   00092 8b 4b 48         mov     ecx, DWORD PTR [ebx+72]\r
1302 \r
1303 ; 1393 :       zi->ci.stream.total_in = 0;\r
1304 ; 1394 :     }\r
1305 ; 1395 : \r
1306 ; 1396 : \r
1307 ; 1397 :     zi->ci.pos_in_buffered_data = 0;\r
1308 ; 1398 : \r
1309 ; 1399 :     return err;\r
1310 \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
1320   000b0 5f               pop     edi\r
1321   000b1 5e               pop     esi\r
1322 \r
1323 ; 1400 : }\r
1324 \r
1325   000b2 8b e5            mov     esp, ebp\r
1326   000b4 5d               pop     ebp\r
1327   000b5 c3               ret     0\r
1328 _zip64FlushWriteBuffer ENDP\r
1329 _TEXT   ENDS\r
1330 PUBLIC  _Write_LocalFileHeader\r
1331 ; Function compile flags: /Ogtp\r
1332 ;       COMDAT _Write_LocalFileHeader\r
1333 _TEXT   SEGMENT\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
1339 ; _zi$ = eax\r
1340 \r
1341 ; 959  : {\r
1342 \r
1343   00000 55               push    ebp\r
1344   00001 8b ec            mov     ebp, esp\r
1345   00003 51               push    ecx\r
1346   00004 53               push    ebx\r
1347   00005 56               push    esi\r
1348   00006 57               push    edi\r
1349   00007 8b f8            mov     edi, eax\r
1350 \r
1351 ; 960  :   /* write the local header */\r
1352 ; 961  :   int err;\r
1353 ; 962  :   uInt size_filename = (uInt)strlen(filename);\r
1354 \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
1357   0000f 90               npad    1\r
1358 $LL26@Write_Loca:\r
1359   00010 8a 10            mov     dl, BYTE PTR [eax]\r
1360   00012 40               inc     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
1364 \r
1365 ; 963  :   uInt size_extrafield = size_extrafield_local;\r
1366 ; 964  : \r
1367 ; 965  :   err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)LOCALHEADERMAGIC, 4);\r
1368 \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
1374   00028 51               push    ecx\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
1379 \r
1380 ; 966  : \r
1381 ; 967  :   if (err==ZIP_OK)\r
1382 \r
1383   00039 85 c0            test    eax, eax\r
1384   0003b 0f 85 f1 00 00\r
1385         00               jne     $LN8@Write_Loca\r
1386 \r
1387 ; 968  :   {\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
1390 \r
1391   00041 50               push    eax\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
1398   00052 52               push    edx\r
1399 \r
1400 ; 971  :     else\r
1401 \r
1402   00053 eb 06            jmp     SHORT $LN34@Write_Loca\r
1403 $LN20@Write_Loca:\r
1404 \r
1405 ; 972  :       err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)20,2);/* version needed to extract */\r
1406 \r
1407   00055 8b 47 2c         mov     eax, DWORD PTR [edi+44]\r
1408   00058 6a 14            push    20                     ; 00000014H\r
1409   0005a 50               push    eax\r
1410 $LN34@Write_Loca:\r
1411   0005b e8 00 00 00 00   call    _zip64local_putValue\r
1412   00060 83 c4 0c         add     esp, 12                        ; 0000000cH\r
1413 \r
1414 ; 973  :   }\r
1415 ; 974  : \r
1416 ; 975  :   if (err==ZIP_OK)\r
1417 \r
1418   00063 85 c0            test    eax, eax\r
1419   00065 0f 85 c7 00 00\r
1420         00               jne     $LN8@Write_Loca\r
1421 \r
1422 ; 976  :     err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->ci.flag,2);\r
1423 \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
1427   00074 50               push    eax\r
1428   00075 51               push    ecx\r
1429   00076 52               push    edx\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
1433 \r
1434 ; 977  : \r
1435 ; 978  :   if (err==ZIP_OK)\r
1436 \r
1437   00082 85 c0            test    eax, eax\r
1438   00084 0f 85 a8 00 00\r
1439         00               jne     $LN8@Write_Loca\r
1440 \r
1441 ; 979  :     err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->ci.method,2);\r
1442 \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
1447   00095 50               push    eax\r
1448   00096 51               push    ecx\r
1449   00097 e8 00 00 00 00   call    _zip64local_putValue\r
1450   0009c 83 c4 0c         add     esp, 12                        ; 0000000cH\r
1451 \r
1452 ; 980  : \r
1453 ; 981  :   if (err==ZIP_OK)\r
1454 \r
1455   0009f 85 c0            test    eax, eax\r
1456   000a1 0f 85 8b 00 00\r
1457         00               jne     $LN8@Write_Loca\r
1458 \r
1459 ; 982  :     err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)zi->ci.dosDate,4);\r
1460 \r
1461   000a7 8b 97 a4 00 01\r
1462         00               mov     edx, DWORD PTR [edi+65700]\r
1463   000ad 50               push    eax\r
1464   000ae 8b 47 2c         mov     eax, DWORD PTR [edi+44]\r
1465   000b1 52               push    edx\r
1466   000b2 50               push    eax\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
1470 \r
1471 ; 983  : \r
1472 ; 984  :   // CRC / Compressed size / Uncompressed size will be filled in later and rewritten later\r
1473 ; 985  :   if (err==ZIP_OK)\r
1474 \r
1475   000c0 85 c0            test    eax, eax\r
1476   000c2 75 6e            jne     SHORT $LN8@Write_Loca\r
1477 \r
1478 ; 986  :     err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4); /* crc 32, unknown */\r
1479 \r
1480   000c4 8b 4f 2c         mov     ecx, DWORD PTR [edi+44]\r
1481   000c7 50               push    eax\r
1482   000c8 50               push    eax\r
1483   000c9 51               push    ecx\r
1484   000ca e8 00 00 00 00   call    _zip64local_putValue\r
1485   000cf 83 c4 0c         add     esp, 12                        ; 0000000cH\r
1486 \r
1487 ; 987  :   if (err==ZIP_OK)\r
1488 \r
1489   000d2 85 c0            test    eax, eax\r
1490   000d4 75 5c            jne     SHORT $LN8@Write_Loca\r
1491 \r
1492 ; 988  :   {\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
1495 \r
1496   000d6 50               push    eax\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
1502   000e4 52               push    edx\r
1503 \r
1504 ; 991  :     else\r
1505 \r
1506   000e5 eb 06            jmp     SHORT $LN35@Write_Loca\r
1507 $LN13@Write_Loca:\r
1508 \r
1509 ; 992  :       err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4); /* compressed size, unknown */\r
1510 \r
1511   000e7 8b 47 2c         mov     eax, DWORD PTR [edi+44]\r
1512   000ea 6a 00            push    0\r
1513   000ec 50               push    eax\r
1514 $LN35@Write_Loca:\r
1515   000ed e8 00 00 00 00   call    _zip64local_putValue\r
1516   000f2 83 c4 0c         add     esp, 12                        ; 0000000cH\r
1517 \r
1518 ; 993  :   }\r
1519 ; 994  :   if (err==ZIP_OK)\r
1520 \r
1521   000f5 85 c0            test    eax, eax\r
1522   000f7 75 39            jne     SHORT $LN8@Write_Loca\r
1523 \r
1524 ; 995  :   {\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
1527 \r
1528   000f9 50               push    eax\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
1535   0010a 51               push    ecx\r
1536 \r
1537 ; 998  :     else\r
1538 \r
1539   0010b eb 06            jmp     SHORT $LN36@Write_Loca\r
1540 $LN10@Write_Loca:\r
1541 \r
1542 ; 999  :       err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)0,4); /* uncompressed size, unknown */\r
1543 \r
1544   0010d 8b 57 2c         mov     edx, DWORD PTR [edi+44]\r
1545   00110 6a 00            push    0\r
1546   00112 52               push    edx\r
1547 $LN36@Write_Loca:\r
1548   00113 e8 00 00 00 00   call    _zip64local_putValue\r
1549   00118 83 c4 0c         add     esp, 12                        ; 0000000cH\r
1550 \r
1551 ; 1000 :   }\r
1552 ; 1001 : \r
1553 ; 1002 :   if (err==ZIP_OK)\r
1554 \r
1555   0011b 85 c0            test    eax, eax\r
1556   0011d 75 13            jne     SHORT $LN8@Write_Loca\r
1557 \r
1558 ; 1003 :     err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)size_filename,2);\r
1559 \r
1560   0011f 50               push    eax\r
1561   00120 8b 47 2c         mov     eax, DWORD PTR [edi+44]\r
1562   00123 53               push    ebx\r
1563   00124 50               push    eax\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
1567 $LN8@Write_Loca:\r
1568 \r
1569 ; 1004 : \r
1570 ; 1005 :   if(zi->ci.zip64)\r
1571 \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
1575 \r
1576 ; 1006 :   {\r
1577 ; 1007 :     size_extrafield += 20;\r
1578 \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
1582 $LN31@Write_Loca:\r
1583   00143 8b 4d fc         mov     ecx, DWORD PTR _size_extrafield$[ebp]\r
1584 $LN7@Write_Loca:\r
1585 \r
1586 ; 1008 :   }\r
1587 ; 1009 : \r
1588 ; 1010 :   if (err==ZIP_OK)\r
1589 \r
1590   00146 85 c0            test    eax, eax\r
1591   00148 0f 85 cb 00 00\r
1592         00               jne     $LN1@Write_Loca\r
1593 \r
1594 ; 1011 :     err = zip64local_putValue(&zi->z_filefunc,zi->filestream,(uLong)size_extrafield,2);\r
1595 \r
1596   0014e 50               push    eax\r
1597   0014f 51               push    ecx\r
1598   00150 8b 4f 2c         mov     ecx, DWORD PTR [edi+44]\r
1599   00153 51               push    ecx\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
1604 \r
1605 ; 1012 : \r
1606 ; 1013 :   if ((err==ZIP_OK) && (size_filename > 0))\r
1607 \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
1613 \r
1614 ; 1014 :   {\r
1615 ; 1015 :     if (ZWRITE64(zi->z_filefunc,zi->filestream,filename,size_filename)!=size_filename)\r
1616 \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
1620   00176 53               push    ebx\r
1621   00177 52               push    edx\r
1622   00178 8b 57 08         mov     edx, DWORD PTR [edi+8]\r
1623   0017b 50               push    eax\r
1624   0017c 51               push    ecx\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
1629 $LN37@Write_Loca:\r
1630 \r
1631 ; 1016 :       err = ZIP_ERRNO;\r
1632 \r
1633   00186 83 c8 ff         or      eax, -1\r
1634 \r
1635 ; 1045 : }\r
1636 \r
1637   00189 5f               pop     edi\r
1638   0018a 5e               pop     esi\r
1639   0018b 5b               pop     ebx\r
1640   0018c 8b e5            mov     esp, ebp\r
1641   0018e 5d               pop     ebp\r
1642   0018f c3               ret     0\r
1643 $LN24@Write_Loca:\r
1644 \r
1645 ; 1017 :   }\r
1646 ; 1018 : \r
1647 ; 1019 :   if ((err==ZIP_OK) && (size_extrafield_local > 0))\r
1648 \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
1652 \r
1653 ; 1020 :   {\r
1654 ; 1021 :     if (ZWRITE64(zi->z_filefunc, zi->filestream, extrafield_local, size_extrafield_local) != size_extrafield_local)\r
1655 \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
1659   001a0 53               push    ebx\r
1660   001a1 50               push    eax\r
1661   001a2 8b 47 08         mov     eax, DWORD PTR [edi+8]\r
1662   001a5 51               push    ecx\r
1663   001a6 52               push    edx\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
1667 \r
1668 ; 1022 :       err = ZIP_ERRNO;\r
1669 ; 1023 :   }\r
1670 ; 1024 : \r
1671 ; 1025 : \r
1672 ; 1026 :   if ((err==ZIP_OK) && (zi->ci.zip64))\r
1673 \r
1674   001ae 75 d6            jne     SHORT $LN37@Write_Loca\r
1675 $LN25@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
1679 \r
1680 ; 1027 :   {\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
1686 ; 1033 : \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
1689 \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
1693 \r
1694 ; 1036 : \r
1695 ; 1037 :       err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (short)HeaderID,2);\r
1696 \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
1700   001ca 51               push    ecx\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
1707 \r
1708 ; 1038 :       err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (short)DataSize,2);\r
1709 \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
1713   001e8 52               push    edx\r
1714   001e9 e8 00 00 00 00   call    _zip64local_putValue\r
1715 \r
1716 ; 1039 : \r
1717 ; 1040 :       err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (ZPOS64_T)UncompressedSize,8);\r
1718 \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
1722   001f5 50               push    eax\r
1723   001f6 be 08 00 00 00   mov     esi, 8\r
1724   001fb e8 00 00 00 00   call    _zip64local_putValue\r
1725 \r
1726 ; 1041 :       err = zip64local_putValue(&zi->z_filefunc, zi->filestream, (ZPOS64_T)CompressedSize,8);\r
1727 \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
1731   00207 51               push    ecx\r
1732   00208 e8 00 00 00 00   call    _zip64local_putValue\r
1733   0020d 83 c4 30         add     esp, 48                        ; 00000030H\r
1734 \r
1735 ; 1045 : }\r
1736 \r
1737   00210 5f               pop     edi\r
1738   00211 5e               pop     esi\r
1739   00212 5b               pop     ebx\r
1740   00213 8b e5            mov     esp, ebp\r
1741   00215 5d               pop     ebp\r
1742   00216 c3               ret     0\r
1743 $LN28@Write_Loca:\r
1744 \r
1745 ; 1042 :   }\r
1746 ; 1043 : \r
1747 ; 1044 :   return err;\r
1748 \r
1749   00217 8b c6            mov     eax, esi\r
1750 $LN1@Write_Loca:\r
1751 \r
1752 ; 1045 : }\r
1753 \r
1754   00219 5f               pop     edi\r
1755   0021a 5e               pop     esi\r
1756   0021b 5b               pop     ebx\r
1757   0021c 8b e5            mov     esp, ebp\r
1758   0021e 5d               pop     ebp\r
1759   0021f c3               ret     0\r
1760 _Write_LocalFileHeader ENDP\r
1761 ; Function compile flags: /Ogtp\r
1762 _TEXT   ENDS\r
1763 ;       COMDAT _zip64local_SearchCentralDir\r
1764 _TEXT   SEGMENT\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
1774 \r
1775 ; 481  : {\r
1776 \r
1777   00000 55               push    ebp\r
1778   00001 8b ec            mov     ebp, esp\r
1779   00003 83 ec 2c         sub     esp, 44                        ; 0000002cH\r
1780   00006 53               push    ebx\r
1781 \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
1787 ; 487  : \r
1788 ; 488  :   if (ZSEEK64(*pzlib_filefunc_def,filestream,0,ZLIB_FILEFUNC_SEEK_END) != 0)\r
1789 \r
1790   00007 8b 5d 08         mov     ebx, DWORD PTR _pzlib_filefunc_def$[ebp]\r
1791   0000a 56               push    esi\r
1792   0000b 8b 75 0c         mov     esi, DWORD PTR _filestream$[ebp]\r
1793   0000e 57               push    edi\r
1794   0000f 33 ff            xor     edi, edi\r
1795   00011 57               push    edi\r
1796   00012 57               push    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
1809 \r
1810 ; 489  :     return 0;\r
1811 \r
1812   00034 33 c0            xor     eax, eax\r
1813   00036 33 d2            xor     edx, edx\r
1814 \r
1815 ; 534  : }\r
1816 \r
1817   00038 5f               pop     edi\r
1818   00039 5e               pop     esi\r
1819   0003a 5b               pop     ebx\r
1820   0003b 8b e5            mov     esp, ebp\r
1821   0003d 5d               pop     ebp\r
1822   0003e c3               ret     0\r
1823 $LN14@zip64local@5:\r
1824 \r
1825 ; 490  : \r
1826 ; 491  : \r
1827 ; 492  :   uSizeFile = ZTELL64(*pzlib_filefunc_def,filestream);\r
1828 \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
1836 \r
1837 ; 493  : \r
1838 ; 494  :   if (uMaxBack>uSizeFile)\r
1839 \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
1847 \r
1848 ; 495  :     uMaxBack = uSizeFile;\r
1849 \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
1854 \r
1855 ; 496  : \r
1856 ; 497  :   buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4);\r
1857 \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
1863 \r
1864 ; 498  :   if (buf==NULL)\r
1865 \r
1866   00079 85 c0            test    eax, eax\r
1867 \r
1868 ; 499  :     return 0;\r
1869 \r
1870   0007b 74 b7            je      SHORT $LN40@zip64local@5\r
1871 \r
1872 ; 500  : \r
1873 ; 501  :   uBackRead = 4;\r
1874 \r
1875   0007d 33 c9            xor     ecx, ecx\r
1876   0007f ba 04 00 00 00   mov     edx, 4\r
1877 \r
1878 ; 502  :   while (uBackRead<uMaxBack)\r
1879 \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
1898 \r
1899 ; 503  :   {\r
1900 ; 504  :     uLong uReadSize;\r
1901 ; 505  :     ZPOS64_T uReadPos ;\r
1902 ; 506  :     int i;\r
1903 ; 507  :     if (uBackRead+BUFREADCOMMENT>uMaxBack)\r
1904 \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
1914 \r
1915 ; 508  :       uBackRead = uMaxBack;\r
1916 \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
1919 \r
1920 ; 509  :     else\r
1921 \r
1922   000cb eb 06            jmp     SHORT $LN8@zip64local@5\r
1923 $LN9@zip64local@5:\r
1924 \r
1925 ; 510  :       uBackRead+=BUFREADCOMMENT;\r
1926 \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
1930 \r
1931 ; 511  :     uReadPos = uSizeFile-uBackRead ;\r
1932 ; 512  : \r
1933 ; 513  :     uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ?\r
1934 ; 514  :       (BUFREADCOMMENT+4) : (uLong)(uSizeFile-uReadPos);\r
1935 \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
1957 \r
1958 ; 515  :     if (ZSEEK64(*pzlib_filefunc_def,filestream,uReadPos,ZLIB_FILEFUNC_SEEK_SET)!=0)\r
1959 \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
1962   00106 53               push    ebx\r
1963   00107 57               push    edi\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
1969 \r
1970 ; 516  :       break;\r
1971 ; 517  : \r
1972 ; 518  :     if (ZREAD64(*pzlib_filefunc_def,filestream,buf,uReadSize)!=uReadSize)\r
1973 \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
1977   0011f 56               push    esi\r
1978   00120 50               push    eax\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
1982   0012a 51               push    ecx\r
1983   0012b 52               push    edx\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
1988 \r
1989 ; 519  :       break;\r
1990 ; 520  : \r
1991 ; 521  :     for (i=(int)uReadSize-3; (i--)>0;)\r
1992 \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
1998 \r
1999 ; 522  :       if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) &&\r
2000 ; 523  :         ((*(buf+i+2))==0x05) && ((*(buf+i+3))==0x06))\r
2001 \r
2002   00140 8b 4d fc         mov     ecx, DWORD PTR _buf$[ebp]\r
2003   00143 48               dec     eax\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
2013 \r
2014 ; 519  :       break;\r
2015 ; 520  : \r
2016 ; 521  :     for (i=(int)uReadSize-3; (i--)>0;)\r
2017 \r
2018   0015f 85 c0            test    eax, eax\r
2019   00161 7f dd            jg      SHORT $LL5@zip64local@5\r
2020 \r
2021 ; 526  :         break;\r
2022 ; 527  :       }\r
2023 ; 528  : \r
2024 ; 529  :       if (uPosFound!=0)\r
2025 \r
2026   00163 eb 0f            jmp     SHORT $LN26@zip64local@5\r
2027 $LN21@zip64local@5:\r
2028 \r
2029 ; 524  :       {\r
2030 ; 525  :         uPosFound = uReadPos+i;\r
2031 \r
2032   00165 99               cdq\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
2036 \r
2037 ; 526  :         break;\r
2038 ; 527  :       }\r
2039 ; 528  : \r
2040 ; 529  :       if (uPosFound!=0)\r
2041 \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
2046 \r
2047 ; 502  :   while (uBackRead<uMaxBack)\r
2048 \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
2059 \r
2060 ; 530  :         break;\r
2061 ; 531  :   }\r
2062 ; 532  :   TRYFREE(buf);\r
2063 \r
2064   0018e 8b 45 fc         mov     eax, DWORD PTR _buf$[ebp]\r
2065   00191 50               push    eax\r
2066   00192 ff 15 00 00 00\r
2067         00               call    DWORD PTR __imp__free\r
2068 \r
2069 ; 533  :   return uPosFound;\r
2070 \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
2074 \r
2075 ; 534  : }\r
2076 \r
2077   001a1 5f               pop     edi\r
2078   001a2 5e               pop     esi\r
2079   001a3 5b               pop     ebx\r
2080   001a4 8b e5            mov     esp, ebp\r
2081   001a6 5d               pop     ebp\r
2082   001a7 c3               ret     0\r
2083 _zip64local_SearchCentralDir ENDP\r
2084 ; Function compile flags: /Ogtp\r
2085 _TEXT   ENDS\r
2086 ;       COMDAT _zip64local_getLong64\r
2087 _TEXT   SEGMENT\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
2094 \r
2095 ; 427  : {\r
2096 \r
2097   00000 55               push    ebp\r
2098   00001 8b ec            mov     ebp, esp\r
2099   00003 83 ec 10         sub     esp, 16                        ; 00000010H\r
2100   00006 53               push    ebx\r
2101   00007 56               push    esi\r
2102   00008 57               push    edi\r
2103   00009 8b f8            mov     edi, eax\r
2104 \r
2105 ; 428  :   ZPOS64_T x;\r
2106 ; 429  :   int i = 0;\r
2107 ; 430  :   int err;\r
2108 ; 431  : \r
2109 ; 432  :   err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);\r
2110 \r
2111   0000b 8d 45 fc         lea     eax, DWORD PTR _i$[ebp]\r
2112   0000e 8b f1            mov     esi, ecx\r
2113   00010 50               push    eax\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
2118 \r
2119 ; 433  :   x = (ZPOS64_T)i;\r
2120 \r
2121   0001f 8b 45 fc         mov     eax, DWORD PTR _i$[ebp]\r
2122   00022 99               cdq\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
2126 \r
2127 ; 434  : \r
2128 ; 435  :   if (err==ZIP_OK)\r
2129 \r
2130   0002b 85 c9            test    ecx, ecx\r
2131   0002d 75 0e            jne     SHORT $LN9@zip64local@6\r
2132 \r
2133 ; 436  :     err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);\r
2134 \r
2135   0002f 8d 4d fc         lea     ecx, DWORD PTR _i$[ebp]\r
2136   00032 51               push    ecx\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
2141 \r
2142 ; 437  :   x += ((ZPOS64_T)i)<<8;\r
2143 \r
2144   0003d 8b 45 fc         mov     eax, DWORD PTR _i$[ebp]\r
2145   00040 99               cdq\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
2150 \r
2151 ; 438  : \r
2152 ; 439  :   if (err==ZIP_OK)\r
2153 \r
2154   0004d 85 c9            test    ecx, ecx\r
2155   0004f 75 0e            jne     SHORT $LN8@zip64local@6\r
2156 \r
2157 ; 440  :     err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);\r
2158 \r
2159   00051 8d 55 fc         lea     edx, DWORD PTR _i$[ebp]\r
2160   00054 52               push    edx\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
2165 \r
2166 ; 441  :   x += ((ZPOS64_T)i)<<16;\r
2167 \r
2168   0005f 8b 45 fc         mov     eax, DWORD PTR _i$[ebp]\r
2169   00062 99               cdq\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
2174 \r
2175 ; 442  : \r
2176 ; 443  :   if (err==ZIP_OK)\r
2177 \r
2178   0006f 85 c9            test    ecx, ecx\r
2179   00071 75 0e            jne     SHORT $LN7@zip64local@6\r
2180 \r
2181 ; 444  :     err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);\r
2182 \r
2183   00073 8d 45 fc         lea     eax, DWORD PTR _i$[ebp]\r
2184   00076 50               push    eax\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
2189 \r
2190 ; 445  :   x += ((ZPOS64_T)i)<<24;\r
2191 \r
2192   00081 8b 45 fc         mov     eax, DWORD PTR _i$[ebp]\r
2193   00084 99               cdq\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
2198 \r
2199 ; 446  : \r
2200 ; 447  :   if (err==ZIP_OK)\r
2201 \r
2202   00091 85 c9            test    ecx, ecx\r
2203   00093 75 0e            jne     SHORT $LN6@zip64local@6\r
2204 \r
2205 ; 448  :     err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);\r
2206 \r
2207   00095 8d 4d fc         lea     ecx, DWORD PTR _i$[ebp]\r
2208   00098 51               push    ecx\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
2213 \r
2214 ; 449  :   x += ((ZPOS64_T)i)<<32;\r
2215 \r
2216   000a3 8b 45 fc         mov     eax, DWORD PTR _i$[ebp]\r
2217   000a6 99               cdq\r
2218   000a7 83 c3 00         add     ebx, 0\r
2219   000aa 11 45 f4         adc     DWORD PTR _x$[ebp+4], eax\r
2220 \r
2221 ; 450  : \r
2222 ; 451  :   if (err==ZIP_OK)\r
2223 \r
2224   000ad 85 c9            test    ecx, ecx\r
2225   000af 75 0e            jne     SHORT $LN5@zip64local@6\r
2226 \r
2227 ; 452  :     err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);\r
2228 \r
2229   000b1 8d 55 fc         lea     edx, DWORD PTR _i$[ebp]\r
2230   000b4 52               push    edx\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
2235 \r
2236 ; 453  :   x += ((ZPOS64_T)i)<<40;\r
2237 \r
2238   000bf 8b 45 fc         mov     eax, DWORD PTR _i$[ebp]\r
2239   000c2 99               cdq\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
2243 \r
2244 ; 454  : \r
2245 ; 455  :   if (err==ZIP_OK)\r
2246 \r
2247   000cc 85 c9            test    ecx, ecx\r
2248   000ce 75 0e            jne     SHORT $LN4@zip64local@6\r
2249 \r
2250 ; 456  :     err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);\r
2251 \r
2252   000d0 8d 45 fc         lea     eax, DWORD PTR _i$[ebp]\r
2253   000d3 50               push    eax\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
2258 \r
2259 ; 457  :   x += ((ZPOS64_T)i)<<48;\r
2260 \r
2261   000de 8b 45 fc         mov     eax, DWORD PTR _i$[ebp]\r
2262   000e1 99               cdq\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
2266 \r
2267 ; 458  : \r
2268 ; 459  :   if (err==ZIP_OK)\r
2269 \r
2270   000eb 85 c9            test    ecx, ecx\r
2271   000ed 75 33            jne     SHORT $LN2@zip64local@6\r
2272 \r
2273 ; 460  :     err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);\r
2274 \r
2275   000ef 8d 4d fc         lea     ecx, DWORD PTR _i$[ebp]\r
2276   000f2 51               push    ecx\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
2280 \r
2281 ; 461  :   x += ((ZPOS64_T)i)<<56;\r
2282 ; 462  : \r
2283 ; 463  :   if (err==ZIP_OK)\r
2284 \r
2285   000fd 85 c9            test    ecx, ecx\r
2286   000ff 75 21            jne     SHORT $LN2@zip64local@6\r
2287 \r
2288 ; 464  :     *pX = x;\r
2289 \r
2290   00101 8b 45 fc         mov     eax, DWORD PTR _i$[ebp]\r
2291   00104 99               cdq\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
2300 \r
2301 ; 467  : \r
2302 ; 468  :   return err;\r
2303 \r
2304   00119 8b c1            mov     eax, ecx\r
2305 \r
2306 ; 469  : }\r
2307 \r
2308   0011b 5f               pop     edi\r
2309   0011c 5e               pop     esi\r
2310   0011d 5b               pop     ebx\r
2311   0011e 8b e5            mov     esp, ebp\r
2312   00120 5d               pop     ebp\r
2313   00121 c3               ret     0\r
2314 $LN2@zip64local@6:\r
2315 \r
2316 ; 465  :   else\r
2317 ; 466  :     *pX = 0;\r
2318 \r
2319   00122 8b 45 08         mov     eax, DWORD PTR _pX$[ebp]\r
2320 \r
2321 ; 469  : }\r
2322 \r
2323   00125 5f               pop     edi\r
2324   00126 5e               pop     esi\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
2330   00136 5b               pop     ebx\r
2331   00137 8b e5            mov     esp, ebp\r
2332   00139 5d               pop     ebp\r
2333   0013a c3               ret     0\r
2334 _zip64local_getLong64 ENDP\r
2335 ; Function compile flags: /Ogtp\r
2336 _TEXT   ENDS\r
2337 ;       COMDAT _zip64local_getLong\r
2338 _TEXT   SEGMENT\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
2344 \r
2345 ; 396  : {\r
2346 \r
2347   00000 55               push    ebp\r
2348   00001 8b ec            mov     ebp, esp\r
2349   00003 51               push    ecx\r
2350   00004 53               push    ebx\r
2351   00005 56               push    esi\r
2352   00006 57               push    edi\r
2353   00007 8b f8            mov     edi, eax\r
2354 \r
2355 ; 397  :     uLong x ;\r
2356 ; 398  :     int i = 0;\r
2357 ; 399  :     int err;\r
2358 ; 400  : \r
2359 ; 401  :     err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);\r
2360 \r
2361   00009 8d 45 fc         lea     eax, DWORD PTR _i$[ebp]\r
2362   0000c 8b f1            mov     esi, ecx\r
2363   0000e 50               push    eax\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
2367 \r
2368 ; 402  :     x = (uLong)i;\r
2369 \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
2373 \r
2374 ; 403  : \r
2375 ; 404  :     if (err==ZIP_OK)\r
2376 \r
2377   00023 85 c0            test    eax, eax\r
2378   00025 75 0f            jne     SHORT $LN5@zip64local@7\r
2379 \r
2380 ; 405  :         err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);\r
2381 \r
2382   00027 8d 4d fc         lea     ecx, DWORD PTR _i$[ebp]\r
2383   0002a 51               push    ecx\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
2388 \r
2389 ; 406  :     x += ((uLong)i)<<8;\r
2390 \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
2394 \r
2395 ; 407  : \r
2396 ; 408  :     if (err==ZIP_OK)\r
2397 \r
2398   0003d 85 c0            test    eax, eax\r
2399   0003f 75 0f            jne     SHORT $LN4@zip64local@7\r
2400 \r
2401 ; 409  :         err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);\r
2402 \r
2403   00041 8d 45 fc         lea     eax, DWORD PTR _i$[ebp]\r
2404   00044 50               push    eax\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
2409 \r
2410 ; 410  :     x += ((uLong)i)<<16;\r
2411 \r
2412   00050 c1 e1 10         shl     ecx, 16                        ; 00000010H\r
2413   00053 03 d9            add     ebx, ecx\r
2414 \r
2415 ; 411  : \r
2416 ; 412  :     if (err==ZIP_OK)\r
2417 \r
2418   00055 85 c0            test    eax, eax\r
2419   00057 75 24            jne     SHORT $LN8@zip64local@7\r
2420 \r
2421 ; 413  :         err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);\r
2422 \r
2423   00059 8d 4d fc         lea     ecx, DWORD PTR _i$[ebp]\r
2424   0005c 51               push    ecx\r
2425   0005d e8 00 00 00 00   call    _zip64local_getByte\r
2426   00062 83 c4 04         add     esp, 4\r
2427 \r
2428 ; 414  :     x += ((uLong)i)<<24;\r
2429 ; 415  : \r
2430 ; 416  :     if (err==ZIP_OK)\r
2431 \r
2432   00065 85 c0            test    eax, eax\r
2433   00067 75 14            jne     SHORT $LN8@zip64local@7\r
2434 \r
2435 ; 417  :         *pX = x;\r
2436 \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
2439   0006f 5f               pop     edi\r
2440   00070 c1 e2 18         shl     edx, 24                        ; 00000018H\r
2441   00073 03 d3            add     edx, ebx\r
2442   00075 5e               pop     esi\r
2443   00076 89 11            mov     DWORD PTR [ecx], edx\r
2444   00078 5b               pop     ebx\r
2445 \r
2446 ; 420  :     return err;\r
2447 ; 421  : }\r
2448 \r
2449   00079 8b e5            mov     esp, ebp\r
2450   0007b 5d               pop     ebp\r
2451   0007c c3               ret     0\r
2452 $LN8@zip64local@7:\r
2453 \r
2454 ; 418  :     else\r
2455 ; 419  :         *pX = 0;\r
2456 \r
2457   0007d 8b 55 08         mov     edx, DWORD PTR _pX$[ebp]\r
2458   00080 5f               pop     edi\r
2459   00081 5e               pop     esi\r
2460   00082 c7 02 00 00 00\r
2461         00               mov     DWORD PTR [edx], 0\r
2462   00088 5b               pop     ebx\r
2463 \r
2464 ; 420  :     return err;\r
2465 ; 421  : }\r
2466 \r
2467   00089 8b e5            mov     esp, ebp\r
2468   0008b 5d               pop     ebp\r
2469   0008c c3               ret     0\r
2470 _zip64local_getLong ENDP\r
2471 ; Function compile flags: /Ogtp\r
2472 _TEXT   ENDS\r
2473 ;       COMDAT _zip64local_getShort\r
2474 _TEXT   SEGMENT\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
2480 \r
2481 ; 374  : {\r
2482 \r
2483   00000 55               push    ebp\r
2484   00001 8b ec            mov     ebp, esp\r
2485   00003 51               push    ecx\r
2486   00004 53               push    ebx\r
2487   00005 56               push    esi\r
2488   00006 57               push    edi\r
2489   00007 8b f8            mov     edi, eax\r
2490 \r
2491 ; 375  :     uLong x ;\r
2492 ; 376  :     int i = 0;\r
2493 ; 377  :     int err;\r
2494 ; 378  : \r
2495 ; 379  :     err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);\r
2496 \r
2497   00009 8d 45 fc         lea     eax, DWORD PTR _i$[ebp]\r
2498   0000c 8b f1            mov     esi, ecx\r
2499   0000e 50               push    eax\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
2503 \r
2504 ; 380  :     x = (uLong)i;\r
2505 \r
2506   0001b 8b 5d fc         mov     ebx, DWORD PTR _i$[ebp]\r
2507   0001e 83 c4 04         add     esp, 4\r
2508 \r
2509 ; 381  : \r
2510 ; 382  :     if (err==ZIP_OK)\r
2511 \r
2512   00021 85 c0            test    eax, eax\r
2513   00023 75 24            jne     SHORT $LN6@zip64local@8\r
2514 \r
2515 ; 383  :         err = zip64local_getByte(pzlib_filefunc_def,filestream,&i);\r
2516 \r
2517   00025 8d 4d fc         lea     ecx, DWORD PTR _i$[ebp]\r
2518   00028 51               push    ecx\r
2519   00029 e8 00 00 00 00   call    _zip64local_getByte\r
2520   0002e 83 c4 04         add     esp, 4\r
2521 \r
2522 ; 384  :     x += ((uLong)i)<<8;\r
2523 ; 385  : \r
2524 ; 386  :     if (err==ZIP_OK)\r
2525 \r
2526   00031 85 c0            test    eax, eax\r
2527   00033 75 14            jne     SHORT $LN6@zip64local@8\r
2528 \r
2529 ; 387  :         *pX = x;\r
2530 \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
2533   0003b 5f               pop     edi\r
2534   0003c c1 e2 08         shl     edx, 8\r
2535   0003f 03 d3            add     edx, ebx\r
2536   00041 5e               pop     esi\r
2537   00042 89 11            mov     DWORD PTR [ecx], edx\r
2538   00044 5b               pop     ebx\r
2539 \r
2540 ; 390  :     return err;\r
2541 ; 391  : }\r
2542 \r
2543   00045 8b e5            mov     esp, ebp\r
2544   00047 5d               pop     ebp\r
2545   00048 c3               ret     0\r
2546 $LN6@zip64local@8:\r
2547 \r
2548 ; 388  :     else\r
2549 ; 389  :         *pX = 0;\r
2550 \r
2551   00049 8b 55 08         mov     edx, DWORD PTR _pX$[ebp]\r
2552   0004c 5f               pop     edi\r
2553   0004d 5e               pop     esi\r
2554   0004e c7 02 00 00 00\r
2555         00               mov     DWORD PTR [edx], 0\r
2556   00054 5b               pop     ebx\r
2557 \r
2558 ; 390  :     return err;\r
2559 ; 391  : }\r
2560 \r
2561   00055 8b e5            mov     esp, ebp\r
2562   00057 5d               pop     ebp\r
2563   00058 c3               ret     0\r
2564 _zip64local_getShort ENDP\r
2565 ; Function compile flags: /Ogtp\r
2566 _TEXT   ENDS\r
2567 ;       COMDAT _add_data_in_datablock\r
2568 _TEXT   SEGMENT\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
2574 \r
2575 ; 226  : {\r
2576 \r
2577   00000 55               push    ebp\r
2578   00001 8b ec            mov     ebp, esp\r
2579   00003 51               push    ecx\r
2580   00004 53               push    ebx\r
2581   00005 8b 5d 08         mov     ebx, DWORD PTR _ll$[ebp]\r
2582   00008 57               push    edi\r
2583   00009 8b 7d 10         mov     edi, DWORD PTR _len$[ebp]\r
2584 \r
2585 ; 227  :     linkedlist_datablock_internal* ldi;\r
2586 ; 228  :     const unsigned char* from_copy;\r
2587 ; 229  : \r
2588 ; 230  :     if (ll==NULL)\r
2589 \r
2590   0000c 85 db            test    ebx, ebx\r
2591   0000e 75 0b            jne     SHORT $LN12@add_data_i\r
2592 $LN22@add_data_i:\r
2593   00010 5f               pop     edi\r
2594 \r
2595 ; 231  :         return ZIP_INTERNALERROR;\r
2596 \r
2597   00011 b8 98 ff ff ff   mov     eax, -104              ; ffffff98H\r
2598   00016 5b               pop     ebx\r
2599 \r
2600 ; 274  : }\r
2601 \r
2602   00017 8b e5            mov     esp, ebp\r
2603   00019 5d               pop     ebp\r
2604   0001a c3               ret     0\r
2605 $LN12@add_data_i:\r
2606 \r
2607 ; 232  : \r
2608 ; 233  :     if (ll->last_block == NULL)\r
2609 \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
2612 \r
2613 ; 234  :     {\r
2614 ; 235  :         ll->first_block = ll->last_block = allocate_new_datablock();\r
2615 \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
2619 \r
2620 ; 236  :         if (ll->first_block == NULL)\r
2621 \r
2622   0002b 85 c0            test    eax, eax\r
2623 \r
2624 ; 237  :             return ZIP_INTERNALERROR;\r
2625 \r
2626   0002d 74 e1            je      SHORT $LN22@add_data_i\r
2627 $LN10@add_data_i:\r
2628 \r
2629 ; 238  :     }\r
2630 ; 239  : \r
2631 ; 240  :     ldi = ll->last_block;\r
2632 ; 241  :     from_copy = (unsigned char*)buf;\r
2633 \r
2634   0002f 8b 45 0c         mov     eax, DWORD PTR _buf$[ebp]\r
2635   00032 56               push    esi\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
2638 \r
2639 ; 242  : \r
2640 ; 243  :     while (len>0)\r
2641 \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
2645 $LL9@add_data_i:\r
2646 \r
2647 ; 244  :     {\r
2648 ; 245  :         uInt copy_this;\r
2649 ; 246  :         uInt i;\r
2650 ; 247  :         unsigned char* to_copy;\r
2651 ; 248  : \r
2652 ; 249  :         if (ldi->avail_in_this_block==0)\r
2653 \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
2656 \r
2657 ; 250  :         {\r
2658 ; 251  :             ldi->next_datablock = allocate_new_datablock();\r
2659 \r
2660   00046 e8 00 00 00 00   call    _allocate_new_datablock\r
2661   0004b 89 06            mov     DWORD PTR [esi], eax\r
2662 \r
2663 ; 252  :             if (ldi->next_datablock == NULL)\r
2664 \r
2665   0004d 85 c0            test    eax, eax\r
2666   0004f 74 48            je      SHORT $LN17@add_data_i\r
2667 \r
2668 ; 254  :             ldi = ldi->next_datablock ;\r
2669 \r
2670   00051 8b f0            mov     esi, eax\r
2671 \r
2672 ; 255  :             ll->last_block = ldi;\r
2673 \r
2674   00053 89 73 04         mov     DWORD PTR [ebx+4], esi\r
2675 $LN7@add_data_i:\r
2676 \r
2677 ; 256  :         }\r
2678 ; 257  : \r
2679 ; 258  :         if (ldi->avail_in_this_block < len)\r
2680 \r
2681   00056 8b 4e 04         mov     ecx, DWORD PTR [esi+4]\r
2682   00059 3b cf            cmp     ecx, edi\r
2683 \r
2684 ; 259  :             copy_this = (uInt)ldi->avail_in_this_block;\r
2685 ; 260  :         else\r
2686 \r
2687   0005b 72 02            jb      SHORT $LN4@add_data_i\r
2688 \r
2689 ; 261  :             copy_this = (uInt)len;\r
2690 \r
2691   0005d 8b cf            mov     ecx, edi\r
2692 $LN4@add_data_i:\r
2693 \r
2694 ; 262  : \r
2695 ; 263  :         to_copy = &(ldi->data[ldi->filled_in_this_block]);\r
2696 \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
2699 \r
2700 ; 264  : \r
2701 ; 265  :         for (i=0;i<copy_this;i++)\r
2702 \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
2708 $LL3@add_data_i:\r
2709 \r
2710 ; 266  :             *(to_copy+i)=*(from_copy+i);\r
2711 \r
2712   00071 8a 1c 07         mov     bl, BYTE PTR [edi+eax]\r
2713   00074 88 18            mov     BYTE PTR [eax], bl\r
2714   00076 40               inc     eax\r
2715   00077 4a               dec     edx\r
2716   00078 75 f7            jne     SHORT $LL3@add_data_i\r
2717 \r
2718 ; 264  : \r
2719 ; 265  :         for (i=0;i<copy_this;i++)\r
2720 \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
2723 $LN1@add_data_i:\r
2724 \r
2725 ; 267  : \r
2726 ; 268  :         ldi->filled_in_this_block += copy_this;\r
2727 \r
2728   00080 01 4e 08         add     DWORD PTR [esi+8], ecx\r
2729 \r
2730 ; 269  :         ldi->avail_in_this_block -= copy_this;\r
2731 \r
2732   00083 29 4e 04         sub     DWORD PTR [esi+4], ecx\r
2733 \r
2734 ; 270  :         from_copy += copy_this ;\r
2735 \r
2736   00086 01 4d fc         add     DWORD PTR _from_copy$[ebp], ecx\r
2737 \r
2738 ; 271  :         len -= copy_this;\r
2739 \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
2743 $LN8@add_data_i:\r
2744   00090 5e               pop     esi\r
2745   00091 5f               pop     edi\r
2746 \r
2747 ; 272  :     }\r
2748 ; 273  :     return ZIP_OK;\r
2749 \r
2750   00092 33 c0            xor     eax, eax\r
2751   00094 5b               pop     ebx\r
2752 \r
2753 ; 274  : }\r
2754 \r
2755   00095 8b e5            mov     esp, ebp\r
2756   00097 5d               pop     ebp\r
2757   00098 c3               ret     0\r
2758 $LN17@add_data_i:\r
2759   00099 5e               pop     esi\r
2760   0009a 5f               pop     edi\r
2761 \r
2762 ; 253  :                 return ZIP_INTERNALERROR;\r
2763 \r
2764   0009b b8 98 ff ff ff   mov     eax, -104              ; ffffff98H\r
2765   000a0 5b               pop     ebx\r
2766 \r
2767 ; 274  : }\r
2768 \r
2769   000a1 8b e5            mov     esp, ebp\r
2770   000a3 5d               pop     ebp\r
2771   000a4 c3               ret     0\r
2772 _add_data_in_datablock ENDP\r
2773 ; Function compile flags: /Ogtp\r
2774 _TEXT   ENDS\r
2775 ;       COMDAT _free_linkedlist\r
2776 _TEXT   SEGMENT\r
2777 _free_linkedlist PROC                                   ; COMDAT\r
2778 ; _ll$ = esi\r
2779 \r
2780 ; 220  :     free_datablock(ll->first_block);\r
2781 \r
2782   00000 8b 06            mov     eax, DWORD PTR [esi]\r
2783   00002 e8 00 00 00 00   call    _free_datablock\r
2784 \r
2785 ; 221  :     ll->first_block = ll->last_block = NULL;\r
2786 \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
2791 \r
2792 ; 222  : }\r
2793 \r
2794   00014 c3               ret     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
2798 _TEXT   ENDS\r
2799 ;       COMDAT _init_keys\r
2800 _TEXT   SEGMENT\r
2801 _init_keys PROC                                         ; COMDAT\r
2802 ; _passwd$ = edx\r
2803 ; _pkeys$ = ecx\r
2804 ; _pcrc_32_tab$ = eax\r
2805 \r
2806 ; 66   : {\r
2807 \r
2808   00000 53               push    ebx\r
2809   00001 56               push    esi\r
2810   00002 8b f1            mov     esi, ecx\r
2811   00004 57               push    edi\r
2812   00005 8b da            mov     ebx, edx\r
2813   00007 8b f8            mov     edi, eax\r
2814 \r
2815 ; 67   :     *(pkeys+0) = 305419896L;\r
2816 \r
2817   00009 c7 06 78 56 34\r
2818         12               mov     DWORD PTR [esi], 305419896 ; 12345678H\r
2819 \r
2820 ; 68   :     *(pkeys+1) = 591751049L;\r
2821 \r
2822   0000f c7 46 04 89 67\r
2823         45 23            mov     DWORD PTR [esi+4], 591751049 ; 23456789H\r
2824 \r
2825 ; 69   :     *(pkeys+2) = 878082192L;\r
2826 \r
2827   00016 c7 46 08 90 78\r
2828         56 34            mov     DWORD PTR [esi+8], 878082192 ; 34567890H\r
2829 \r
2830 ; 70   :     while (*passwd != '\0') {\r
2831 \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
2835 $LL2@init_keys:\r
2836 \r
2837 ; 71   :         update_keys(pkeys,pcrc_32_tab,(int)*passwd);\r
2838 \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
2842 \r
2843 ; 72   :         passwd++;\r
2844 \r
2845   0002e 43               inc     ebx\r
2846   0002f 84 c0            test    al, al\r
2847   00031 75 f0            jne     SHORT $LL2@init_keys\r
2848 $LN1@init_keys:\r
2849   00033 5f               pop     edi\r
2850   00034 5e               pop     esi\r
2851   00035 5b               pop     ebx\r
2852 \r
2853 ; 73   :     }\r
2854 ; 74   : }\r
2855 \r
2856   00036 c3               ret     0\r
2857 _init_keys ENDP\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
2861 _TEXT   SEGMENT\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
2873 \r
2874 ; 543  : {\r
2875 \r
2876   00000 55               push    ebp\r
2877   00001 8b ec            mov     ebp, esp\r
2878   00003 83 ec 2c         sub     esp, 44                        ; 0000002cH\r
2879 \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
2885 ; 549  :   uLong uL;\r
2886 ; 550  :   ZPOS64_T relativeOffset;\r
2887 ; 551  : \r
2888 ; 552  :   if (ZSEEK64(*pzlib_filefunc_def,filestream,0,ZLIB_FILEFUNC_SEEK_END) != 0)\r
2889 \r
2890   00006 8b 45 08         mov     eax, DWORD PTR _pzlib_filefunc_def$[ebp]\r
2891   00009 53               push    ebx\r
2892   0000a 8b 5d 0c         mov     ebx, DWORD PTR _filestream$[ebp]\r
2893   0000d 56               push    esi\r
2894   0000e 57               push    edi\r
2895   0000f 33 ff            xor     edi, edi\r
2896   00011 57               push    edi\r
2897   00012 57               push    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
2910 \r
2911 ; 553  :     return 0;\r
2912 \r
2913   00034 33 c0            xor     eax, eax\r
2914   00036 33 d2            xor     edx, edx\r
2915 \r
2916 ; 638  : }\r
2917 \r
2918   00038 5f               pop     edi\r
2919   00039 5e               pop     esi\r
2920   0003a 5b               pop     ebx\r
2921   0003b 8b e5            mov     esp, ebp\r
2922   0003d 5d               pop     ebp\r
2923   0003e c3               ret     0\r
2924 $LN25@zip64local@9:\r
2925 \r
2926 ; 554  : \r
2927 ; 555  :   uSizeFile = ZTELL64(*pzlib_filefunc_def,filestream);\r
2928 \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
2935 \r
2936 ; 556  : \r
2937 ; 557  :   if (uMaxBack>uSizeFile)\r
2938 \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
2946 \r
2947 ; 558  :     uMaxBack = uSizeFile;\r
2948 \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
2953 \r
2954 ; 559  : \r
2955 ; 560  :   buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4);\r
2956 \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
2962 \r
2963 ; 561  :   if (buf==NULL)\r
2964 \r
2965   00078 85 c0            test    eax, eax\r
2966 \r
2967 ; 562  :     return 0;\r
2968 \r
2969   0007a 74 b8            je      SHORT $LN50@zip64local@9\r
2970 \r
2971 ; 563  : \r
2972 ; 564  :   uBackRead = 4;\r
2973 \r
2974   0007c 33 c9            xor     ecx, ecx\r
2975   0007e ba 04 00 00 00   mov     edx, 4\r
2976 \r
2977 ; 565  :   while (uBackRead<uMaxBack)\r
2978 \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
2989         00               npad    6\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
2997 \r
2998 ; 566  :   {\r
2999 ; 567  :     uLong uReadSize;\r
3000 ; 568  :     ZPOS64_T uReadPos;\r
3001 ; 569  :     int i;\r
3002 ; 570  :     if (uBackRead+BUFREADCOMMENT>uMaxBack)\r
3003 \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
3013 \r
3014 ; 571  :       uBackRead = uMaxBack;\r
3015 \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
3018 \r
3019 ; 572  :     else\r
3020 \r
3021   000c8 eb 06            jmp     SHORT $LN19@zip64local@9\r
3022 $LN20@zip64local@9:\r
3023 \r
3024 ; 573  :       uBackRead+=BUFREADCOMMENT;\r
3025 \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
3029 \r
3030 ; 574  :     uReadPos = uSizeFile-uBackRead ;\r
3031 \r
3032   000d0 8b 5d dc         mov     ebx, DWORD PTR _uSizeFile$[ebp+4]\r
3033 \r
3034 ; 575  : \r
3035 ; 576  :     uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ?\r
3036 ; 577  :       (BUFREADCOMMENT+4) : (uLong)(uSizeFile-uReadPos);\r
3037 \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
3059 \r
3060 ; 578  :     if (ZSEEK64(*pzlib_filefunc_def,filestream,uReadPos,ZLIB_FILEFUNC_SEEK_SET)!=0)\r
3061 \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
3064   00106 53               push    ebx\r
3065   00107 57               push    edi\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
3071 \r
3072 ; 579  :       break;\r
3073 ; 580  : \r
3074 ; 581  :     if (ZREAD64(*pzlib_filefunc_def,filestream,buf,uReadSize)!=uReadSize)\r
3075 \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
3079   0011f 56               push    esi\r
3080   00120 50               push    eax\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
3084   0012a 51               push    ecx\r
3085   0012b 52               push    edx\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
3090 \r
3091 ; 582  :       break;\r
3092 ; 583  : \r
3093 ; 584  :     for (i=(int)uReadSize-3; (i--)>0;)\r
3094 \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
3100 \r
3101 ; 585  :     {\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
3104 \r
3105   00140 8b 4d fc         mov     ecx, DWORD PTR _buf$[ebp]\r
3106   00143 48               dec     eax\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
3116 \r
3117 ; 582  :       break;\r
3118 ; 583  : \r
3119 ; 584  :     for (i=(int)uReadSize-3; (i--)>0;)\r
3120 \r
3121   0015f 85 c0            test    eax, eax\r
3122   00161 7f dd            jg      SHORT $LL16@zip64local@9\r
3123 \r
3124 ; 590  :         break;\r
3125 ; 591  :       }\r
3126 ; 592  :     }\r
3127 ; 593  : \r
3128 ; 594  :       if (uPosFound!=0)\r
3129 \r
3130   00163 eb 0f            jmp     SHORT $LN37@zip64local@9\r
3131 $LN32@zip64local@9:\r
3132 \r
3133 ; 588  :       {\r
3134 ; 589  :         uPosFound = uReadPos+i;\r
3135 \r
3136   00165 99               cdq\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
3140 \r
3141 ; 590  :         break;\r
3142 ; 591  :       }\r
3143 ; 592  :     }\r
3144 ; 593  : \r
3145 ; 594  :       if (uPosFound!=0)\r
3146 \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
3151 \r
3152 ; 565  :   while (uBackRead<uMaxBack)\r
3153 \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
3166 \r
3167 ; 595  :         break;\r
3168 ; 596  :   }\r
3169 ; 597  : \r
3170 ; 598  :   TRYFREE(buf);\r
3171 \r
3172   00191 8b 45 fc         mov     eax, DWORD PTR _buf$[ebp]\r
3173   00194 50               push    eax\r
3174   00195 ff 15 00 00 00\r
3175         00               call    DWORD PTR __imp__free\r
3176 \r
3177 ; 599  :   if (uPosFound == 0)\r
3178 \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
3184 \r
3185 ; 600  :     return 0;\r
3186 \r
3187   001a8 0f 84 86 fe ff\r
3188         ff               je      $LN50@zip64local@9\r
3189 \r
3190 ; 601  : \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
3193 \r
3194   001ae 8b 7d 08         mov     edi, DWORD PTR _pzlib_filefunc_def$[ebp]\r
3195   001b1 51               push    ecx\r
3196   001b2 50               push    eax\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
3203 \r
3204 ; 604  :     return 0;\r
3205 \r
3206   001c3 0f 85 6b fe ff\r
3207         ff               jne     $LN50@zip64local@9\r
3208 \r
3209 ; 605  : \r
3210 ; 606  :   /* the signature, already checked */\r
3211 ; 607  :   if (zip64local_getLong(pzlib_filefunc_def,filestream,&uL)!=ZIP_OK)\r
3212 \r
3213   001c9 8d 45 fc         lea     eax, DWORD PTR _uL$[ebp]\r
3214   001cc 50               push    eax\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
3220 \r
3221 ; 608  :     return 0;\r
3222 \r
3223   001db 0f 85 53 fe ff\r
3224         ff               jne     $LN50@zip64local@9\r
3225 \r
3226 ; 609  : \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
3229 \r
3230   001e1 8d 4d fc         lea     ecx, DWORD PTR _uL$[ebp]\r
3231   001e4 51               push    ecx\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
3237 \r
3238 ; 612  :     return 0;\r
3239 \r
3240   001f3 0f 85 3b fe ff\r
3241         ff               jne     $LN50@zip64local@9\r
3242 \r
3243 ; 613  :   if (uL != 0)\r
3244 \r
3245   001f9 39 45 fc         cmp     DWORD PTR _uL$[ebp], eax\r
3246 \r
3247 ; 614  :     return 0;\r
3248 \r
3249   001fc 0f 85 32 fe ff\r
3250         ff               jne     $LN50@zip64local@9\r
3251 \r
3252 ; 615  : \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
3255 \r
3256   00202 8d 55 d8         lea     edx, DWORD PTR _relativeOffset$[ebp]\r
3257   00205 52               push    edx\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
3263 \r
3264 ; 618  :     return 0;\r
3265 \r
3266   00214 0f 85 1a fe ff\r
3267         ff               jne     $LN50@zip64local@9\r
3268 \r
3269 ; 619  : \r
3270 ; 620  :   /* total number of disks */\r
3271 ; 621  :   if (zip64local_getLong(pzlib_filefunc_def,filestream,&uL)!=ZIP_OK)\r
3272 \r
3273   0021a 8d 45 fc         lea     eax, DWORD PTR _uL$[ebp]\r
3274   0021d 50               push    eax\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
3280 \r
3281 ; 622  :     return 0;\r
3282 \r
3283   0022c 0f 85 02 fe ff\r
3284         ff               jne     $LN50@zip64local@9\r
3285 \r
3286 ; 623  :   if (uL != 1)\r
3287 \r
3288   00232 83 7d fc 01      cmp     DWORD PTR _uL$[ebp], 1\r
3289 \r
3290 ; 624  :     return 0;\r
3291 \r
3292   00236 0f 85 f8 fd ff\r
3293         ff               jne     $LN50@zip64local@9\r
3294 \r
3295 ; 625  : \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
3298 \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
3301   00242 51               push    ecx\r
3302   00243 52               push    edx\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
3308 \r
3309 ; 628  :     return 0;\r
3310 \r
3311   00252 0f 85 dc fd ff\r
3312         ff               jne     $LN50@zip64local@9\r
3313 \r
3314 ; 629  : \r
3315 ; 630  :   /* the signature */\r
3316 ; 631  :   if (zip64local_getLong(pzlib_filefunc_def,filestream,&uL)!=ZIP_OK)\r
3317 \r
3318   00258 8d 45 fc         lea     eax, DWORD PTR _uL$[ebp]\r
3319   0025b 50               push    eax\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
3325 \r
3326 ; 632  :     return 0;\r
3327 \r
3328   0026a 0f 85 c4 fd ff\r
3329         ff               jne     $LN50@zip64local@9\r
3330 \r
3331 ; 633  : \r
3332 ; 634  :   if (uL != 0x06064b50) // signature of 'Zip64 end of central directory'\r
3333 \r
3334   00270 81 7d fc 50 4b\r
3335         06 06            cmp     DWORD PTR _uL$[ebp], 101075792 ; 06064b50H\r
3336 \r
3337 ; 635  :     return 0;\r
3338 \r
3339   00277 0f 85 b7 fd ff\r
3340         ff               jne     $LN50@zip64local@9\r
3341 \r
3342 ; 636  : \r
3343 ; 637  :   return relativeOffset;\r
3344 \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
3347 \r
3348 ; 638  : }\r
3349 \r
3350   00283 5f               pop     edi\r
3351   00284 5e               pop     esi\r
3352   00285 5b               pop     ebx\r
3353   00286 8b e5            mov     esp, ebp\r
3354   00288 5d               pop     ebp\r
3355   00289 c3               ret     0\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
3359 _TEXT   ENDS\r
3360 ;       COMDAT _crypthead\r
3361 _TEXT   SEGMENT\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
3372 ; _pkeys$ = ecx\r
3373 ; _pcrc_32_tab$ = eax\r
3374 \r
3375 ; 96   : {\r
3376 \r
3377   00000 55               push    ebp\r
3378   00001 8b ec            mov     ebp, esp\r
3379   00003 83 ec 18         sub     esp, 24                        ; 00000018H\r
3380   00006 53               push    ebx\r
3381   00007 56               push    esi\r
3382   00008 57               push    edi\r
3383   00009 8b f8            mov     edi, eax\r
3384 \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
3390 ; 102  : \r
3391 ; 103  :     if (bufSize<RAND_HEAD_LEN)\r
3392 ; 104  :       return 0;\r
3393 ; 105  : \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
3397 ; 109  :      */\r
3398 ; 110  :     if (++calls == 1)\r
3399 \r
3400   0000b a1 00 00 00 00   mov     eax, DWORD PTR ?calls@?1??crypthead@@9@9\r
3401   00010 40               inc     eax\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
3406 \r
3407 ; 111  :     {\r
3408 ; 112  :         srand((unsigned)(time(NULL) ^ ZCR_SEED2));\r
3409 \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
3414   0002a 50               push    eax\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
3418 $LN17@crypthead:\r
3419 \r
3420 ; 113  :     }\r
3421 ; 114  :     init_keys(passwd, pkeys, pcrc_32_tab);\r
3422 \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
3427 \r
3428 ; 115  :     for (n = 0; n < RAND_HEAD_LEN-2; n++)\r
3429 \r
3430   00040 c7 45 f4 00 00\r
3431         00 00            mov     DWORD PTR _n$[ebp], 0\r
3432 $LL6@crypthead:\r
3433 \r
3434 ; 116  :     {\r
3435 ; 117  :         c = (rand() >> 7) & 0xff;\r
3436 \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
3441 \r
3442 ; 118  :         header[n] = (unsigned char)zencode(pkeys, pcrc_32_tab, c, t);\r
3443 \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
3454   00073 40               inc     eax\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
3458 \r
3459 ; 119  :     }\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
3462 \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
3467 \r
3468 ; 122  :     for (n = 0; n < RAND_HEAD_LEN-2; n++)\r
3469 \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
3475 $LL3@crypthead:\r
3476 \r
3477 ; 123  :     {\r
3478 ; 124  :         buf[n] = (unsigned char)zencode(pkeys, pcrc_32_tab, header[n], t);\r
3479 \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
3489   000b5 43               inc     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
3493 \r
3494 ; 125  :     }\r
3495 ; 126  :     buf[n++] = (unsigned char)zencode(pkeys, pcrc_32_tab, (int)(crcForCrypting >> 16) & 0xff, t);\r
3496 \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
3509 \r
3510 ; 127  :     buf[n++] = (unsigned char)zencode(pkeys, pcrc_32_tab, (int)(crcForCrypting >> 24) & 0xff, t);\r
3511 \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
3520   00103 5f               pop     edi\r
3521   00104 88 44 13 01      mov     BYTE PTR [ebx+edx+1], al\r
3522   00108 5e               pop     esi\r
3523   00109 8d 43 02         lea     eax, DWORD PTR [ebx+2]\r
3524   0010c 5b               pop     ebx\r
3525 \r
3526 ; 128  :     return n;\r
3527 ; 129  : }\r
3528 \r
3529   0010d 8b e5            mov     esp, ebp\r
3530   0010f 5d               pop     ebp\r
3531   00110 c3               ret     0\r
3532 _crypthead ENDP\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
3537 _TEXT   SEGMENT\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
3557 ; _pziinit$ = edi\r
3558 \r
3559 ; 641  : {\r
3560 \r
3561   00000 55               push    ebp\r
3562   00001 8b ec            mov     ebp, esp\r
3563   00003 83 ec 38         sub     esp, 56                        ; 00000038H\r
3564 \r
3565 ; 642  :   int err=ZIP_OK;\r
3566 ; 643  :   ZPOS64_T byte_before_the_zipfile;/* byte before the zipfile, (>0 for sfx)*/\r
3567 ; 644  : \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
3571 ; 648  :   uLong uL;\r
3572 ; 649  : \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
3584 ; 661  : \r
3585 ; 662  :   int hasZIP64Record = 0;\r
3586 ; 663  : \r
3587 ; 664  :   // check first if we find a ZIP64 record\r
3588 ; 665  :   central_pos = zip64local_SearchCentralDir64(&pziinit->z_filefunc,pziinit->filestream);\r
3589 \r
3590   00006 8b 47 2c         mov     eax, DWORD PTR [edi+44]\r
3591   00009 53               push    ebx\r
3592   0000a 56               push    esi\r
3593   0000b 50               push    eax\r
3594   0000c 33 db            xor     ebx, ebx\r
3595   0000e 57               push    edi\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
3601 \r
3602 ; 666  :   if(central_pos > 0)\r
3603 \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
3609 \r
3610 ; 667  :   {\r
3611 ; 668  :     hasZIP64Record = 1;\r
3612 \r
3613   0002c 0f 87 a3 00 00\r
3614         00               ja      $LN51@LoadCentra\r
3615 $LN53@LoadCentra:\r
3616 \r
3617 ; 669  :   }\r
3618 ; 670  :   else if(central_pos == 0)\r
3619 \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
3623 \r
3624 ; 671  :   {\r
3625 ; 672  :     central_pos = zip64local_SearchCentralDir(&pziinit->z_filefunc,pziinit->filestream);\r
3626 \r
3627   00038 8b 57 2c         mov     edx, DWORD PTR [edi+44]\r
3628   0003b 52               push    edx\r
3629   0003c 57               push    edi\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
3634 $LN42@LoadCentra:\r
3635 \r
3636 ; 735  :   {\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
3639 \r
3640   0004b 8b 77 2c         mov     esi, DWORD PTR [edi+44]\r
3641   0004e 52               push    edx\r
3642   0004f 50               push    eax\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
3647 \r
3648 ; 738  :       err=ZIP_ERRNO;\r
3649 \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
3654 $LN27@LoadCentra:\r
3655 \r
3656 ; 739  : \r
3657 ; 740  :     /* the signature, already checked */\r
3658 ; 741  :     if (zip64local_getLong(&pziinit->z_filefunc, pziinit->filestream,&uL)!=ZIP_OK)\r
3659 \r
3660   00066 8d 45 f4         lea     eax, DWORD PTR _uL$[ebp]\r
3661   00069 50               push    eax\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
3668 \r
3669 ; 742  :       err=ZIP_ERRNO;\r
3670 \r
3671   0007b 89 75 fc         mov     DWORD PTR _err$[ebp], esi\r
3672 $LN26@LoadCentra:\r
3673 \r
3674 ; 743  : \r
3675 ; 744  :     /* number of this disk */\r
3676 ; 745  :     if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream,&number_disk)!=ZIP_OK)\r
3677 \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
3680   00084 51               push    ecx\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
3686 \r
3687 ; 746  :       err=ZIP_ERRNO;\r
3688 \r
3689   00093 89 75 fc         mov     DWORD PTR _err$[ebp], esi\r
3690 $LN25@LoadCentra:\r
3691 \r
3692 ; 747  : \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
3695 \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
3698   0009c 52               push    edx\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
3704 \r
3705 ; 750  :       err=ZIP_ERRNO;\r
3706 \r
3707   000ab 89 75 fc         mov     DWORD PTR _err$[ebp], esi\r
3708 $LN24@LoadCentra:\r
3709 \r
3710 ; 751  : \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
3714 \r
3715   000ae 8d 45 f4         lea     eax, DWORD PTR _uL$[ebp]\r
3716   000b1 50               push    eax\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
3725 \r
3726 ; 755  :       err=ZIP_ERRNO;\r
3727 \r
3728   000c9 c7 45 fc ff ff\r
3729         ff ff            mov     DWORD PTR _err$[ebp], -1\r
3730 \r
3731 ; 756  :     else\r
3732 \r
3733   000d0 e9 3f 01 00 00   jmp     $LN22@LoadCentra\r
3734 $LN51@LoadCentra:\r
3735 \r
3736 ; 673  :   }\r
3737 ; 674  : \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
3741 ; 678  : */\r
3742 ; 679  : \r
3743 ; 680  :   if(hasZIP64Record)\r
3744 ; 681  :   {\r
3745 ; 682  :     ZPOS64_T sizeEndOfCentralDirectory;\r
3746 ; 683  :     if (ZSEEK64(pziinit->z_filefunc, pziinit->filestream, central_pos, ZLIB_FILEFUNC_SEEK_SET) != 0)\r
3747 \r
3748   000d5 8b 77 2c         mov     esi, DWORD PTR [edi+44]\r
3749   000d8 52               push    edx\r
3750   000d9 50               push    eax\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
3755 \r
3756 ; 684  :       err=ZIP_ERRNO;\r
3757 \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
3762 $LN41@LoadCentra:\r
3763 \r
3764 ; 685  : \r
3765 ; 686  :     /* the signature, already checked */\r
3766 ; 687  :     if (zip64local_getLong(&pziinit->z_filefunc, pziinit->filestream,&uL)!=ZIP_OK)\r
3767 \r
3768   000f0 8d 45 f4         lea     eax, DWORD PTR _uL$[ebp]\r
3769   000f3 50               push    eax\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
3776 \r
3777 ; 688  :       err=ZIP_ERRNO;\r
3778 \r
3779   00105 89 75 fc         mov     DWORD PTR _err$[ebp], esi\r
3780 $LN40@LoadCentra:\r
3781 \r
3782 ; 689  : \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
3785 \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
3788   0010e 51               push    ecx\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
3794 \r
3795 ; 692  :       err=ZIP_ERRNO;\r
3796 \r
3797   0011d 89 75 fc         mov     DWORD PTR _err$[ebp], esi\r
3798 $LN39@LoadCentra:\r
3799 \r
3800 ; 693  : \r
3801 ; 694  :     /* version made by */\r
3802 ; 695  :     if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream, &VersionMadeBy)!=ZIP_OK)\r
3803 \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
3806   00126 52               push    edx\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
3812 \r
3813 ; 696  :       err=ZIP_ERRNO;\r
3814 \r
3815   00135 89 75 fc         mov     DWORD PTR _err$[ebp], esi\r
3816 $LN38@LoadCentra:\r
3817 \r
3818 ; 697  : \r
3819 ; 698  :     /* version needed to extract */\r
3820 ; 699  :     if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream, &VersionNeeded)!=ZIP_OK)\r
3821 \r
3822   00138 8d 45 e4         lea     eax, DWORD PTR _VersionNeeded$[ebp]\r
3823   0013b 50               push    eax\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
3830 \r
3831 ; 700  :       err=ZIP_ERRNO;\r
3832 \r
3833   0014d 89 75 fc         mov     DWORD PTR _err$[ebp], esi\r
3834 $LN37@LoadCentra:\r
3835 \r
3836 ; 701  : \r
3837 ; 702  :     /* number of this disk */\r
3838 ; 703  :     if (zip64local_getLong(&pziinit->z_filefunc, pziinit->filestream,&number_disk)!=ZIP_OK)\r
3839 \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
3842   00156 51               push    ecx\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
3848 \r
3849 ; 704  :       err=ZIP_ERRNO;\r
3850 \r
3851   00165 89 75 fc         mov     DWORD PTR _err$[ebp], esi\r
3852 $LN36@LoadCentra:\r
3853 \r
3854 ; 705  : \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
3857 \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
3860   0016e 52               push    edx\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
3866 \r
3867 ; 708  :       err=ZIP_ERRNO;\r
3868 \r
3869   0017d 89 75 fc         mov     DWORD PTR _err$[ebp], esi\r
3870 $LN35@LoadCentra:\r
3871 \r
3872 ; 709  : \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
3875 \r
3876   00180 8d 45 c8         lea     eax, DWORD PTR _number_entry$[ebp]\r
3877   00183 50               push    eax\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
3884 \r
3885 ; 712  :       err=ZIP_ERRNO;\r
3886 \r
3887   00195 89 75 fc         mov     DWORD PTR _err$[ebp], esi\r
3888 $LN34@LoadCentra:\r
3889 \r
3890 ; 713  : \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
3893 \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
3896   0019e 51               push    ecx\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
3902 \r
3903 ; 716  :       err=ZIP_ERRNO;\r
3904 \r
3905   001ad 89 75 fc         mov     DWORD PTR _err$[ebp], esi\r
3906 $LN33@LoadCentra:\r
3907 \r
3908 ; 717  : \r
3909 ; 718  :     if ((number_entry_CD!=number_entry) || (number_disk_with_CD!=0) || (number_disk!=0))\r
3910 \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
3921 $LN31@LoadCentra:\r
3922 \r
3923 ; 719  :       err=ZIP_BADZIPFILE;\r
3924 \r
3925   001ca c7 45 fc 99 ff\r
3926         ff ff            mov     DWORD PTR _err$[ebp], -103 ; ffffff99H\r
3927 $LN32@LoadCentra:\r
3928 \r
3929 ; 720  : \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
3932 \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
3935   001d7 51               push    ecx\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
3941 \r
3942 ; 723  :       err=ZIP_ERRNO;\r
3943 \r
3944   001e6 89 75 fc         mov     DWORD PTR _err$[ebp], esi\r
3945 $LN30@LoadCentra:\r
3946 \r
3947 ; 724  : \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
3951 \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
3954   001ef 52               push    edx\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
3960 \r
3961 ; 728  :       err=ZIP_ERRNO;\r
3962 \r
3963   001fe 89 75 fc         mov     DWORD PTR _err$[ebp], esi\r
3964 $LN29@LoadCentra:\r
3965 \r
3966 ; 729  : \r
3967 ; 730  :     // TODO..\r
3968 ; 731  :     // read the comment from the standard central header.\r
3969 ; 732  :     size_comment = 0;\r
3970 ; 733  :   }\r
3971 ; 734  :   else\r
3972 \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
3977 $LN23@LoadCentra:\r
3978 \r
3979 ; 757  :       number_entry = uL;\r
3980 \r
3981   0020f 8b 75 f4         mov     esi, DWORD PTR _uL$[ebp]\r
3982   00212 33 db            xor     ebx, ebx\r
3983 $LN22@LoadCentra:\r
3984 \r
3985 ; 758  : \r
3986 ; 759  :     /* total number of entries in the central dir */\r
3987 ; 760  :     number_entry_CD = 0;\r
3988 \r
3989   00214 33 c0            xor     eax, eax\r
3990 \r
3991 ; 761  :     if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream, &uL)!=ZIP_OK)\r
3992 \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
3997   00222 51               push    ecx\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
4003 \r
4004 ; 762  :       err=ZIP_ERRNO;\r
4005 \r
4006   00231 c7 45 fc ff ff\r
4007         ff ff            mov     DWORD PTR _err$[ebp], -1\r
4008 \r
4009 ; 763  :     else\r
4010 \r
4011   00238 33 c0            xor     eax, eax\r
4012   0023a eb 0b            jmp     SHORT $LN20@LoadCentra\r
4013 $LN21@LoadCentra:\r
4014 \r
4015 ; 764  :       number_entry_CD = uL;\r
4016 \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
4021 $LN20@LoadCentra:\r
4022 \r
4023 ; 765  : \r
4024 ; 766  :     if ((number_entry_CD!=number_entry) || (number_disk_with_CD!=0) || (number_disk!=0))\r
4025 \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
4034 $LN18@LoadCentra:\r
4035 \r
4036 ; 767  :       err=ZIP_BADZIPFILE;\r
4037 \r
4038   0025b c7 45 fc 99 ff\r
4039         ff ff            mov     DWORD PTR _err$[ebp], -103 ; ffffff99H\r
4040 $LN19@LoadCentra:\r
4041 \r
4042 ; 768  : \r
4043 ; 769  :     /* size of the central directory */\r
4044 ; 770  :     size_central_dir = 0;\r
4045 \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
4048 \r
4049 ; 771  :     if (zip64local_getLong(&pziinit->z_filefunc, pziinit->filestream, &uL)!=ZIP_OK)\r
4050 \r
4051   00268 8d 45 f4         lea     eax, DWORD PTR _uL$[ebp]\r
4052   0026b 50               push    eax\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
4059 \r
4060 ; 772  :       err=ZIP_ERRNO;\r
4061 \r
4062   0027d c7 45 fc ff ff\r
4063         ff ff            mov     DWORD PTR _err$[ebp], -1\r
4064 \r
4065 ; 773  :     else\r
4066 \r
4067   00284 eb 0d            jmp     SHORT $LN16@LoadCentra\r
4068 $LN17@LoadCentra:\r
4069 \r
4070 ; 774  :       size_central_dir = uL;\r
4071 \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
4076 $LN16@LoadCentra:\r
4077 \r
4078 ; 775  : \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
4082 \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
4085   00299 52               push    edx\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
4093 \r
4094 ; 779  :       err=ZIP_ERRNO;\r
4095 \r
4096   002ac c7 45 fc ff ff\r
4097         ff ff            mov     DWORD PTR _err$[ebp], -1\r
4098 \r
4099 ; 780  :     else\r
4100 \r
4101   002b3 eb 05            jmp     SHORT $LN14@LoadCentra\r
4102 $LN15@LoadCentra:\r
4103 \r
4104 ; 781  :       offset_central_dir = uL;\r
4105 \r
4106   002b5 8b 75 f4         mov     esi, DWORD PTR _uL$[ebp]\r
4107   002b8 33 db            xor     ebx, ebx\r
4108 $LN14@LoadCentra:\r
4109 \r
4110 ; 782  : \r
4111 ; 783  : \r
4112 ; 784  :     /* zipfile global comment length */\r
4113 ; 785  :     if (zip64local_getShort(&pziinit->z_filefunc, pziinit->filestream, &size_comment)!=ZIP_OK)\r
4114 \r
4115   002ba 8d 45 e4         lea     eax, DWORD PTR _size_comment$[ebp]\r
4116   002bd 50               push    eax\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
4123 \r
4124 ; 786  :       err=ZIP_ERRNO;\r
4125 \r
4126   002cf c7 45 fc ff ff\r
4127         ff ff            mov     DWORD PTR _err$[ebp], -1\r
4128 $LN13@LoadCentra:\r
4129 \r
4130 ; 787  :   }\r
4131 ; 788  : \r
4132 ; 789  :   if ((central_pos<offset_central_dir+size_central_dir) &&\r
4133 ; 790  :     (err==ZIP_OK))\r
4134 \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
4145 \r
4146 ; 791  :     err=ZIP_BADZIPFILE;\r
4147 ; 792  : \r
4148 ; 793  :   if (err!=ZIP_OK)\r
4149 \r
4150   002ee 72 06            jb      SHORT $LN50@LoadCentra\r
4151 $LN54@LoadCentra:\r
4152   002f0 83 7d fc 00      cmp     DWORD PTR _err$[ebp], 0\r
4153   002f4 74 19            je      SHORT $LN11@LoadCentra\r
4154 $LN50@LoadCentra:\r
4155 \r
4156 ; 794  :   {\r
4157 ; 795  :     ZCLOSE64(pziinit->z_filefunc, pziinit->filestream);\r
4158 \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
4162   002ff 51               push    ecx\r
4163   00300 52               push    edx\r
4164   00301 ff d0            call    eax\r
4165   00303 83 c4 08         add     esp, 8\r
4166 \r
4167 ; 796  :     return ZIP_ERRNO;\r
4168 \r
4169   00306 83 c8 ff         or      eax, -1\r
4170 \r
4171 ; 842  : }\r
4172 \r
4173   00309 5e               pop     esi\r
4174   0030a 5b               pop     ebx\r
4175   0030b 8b e5            mov     esp, ebp\r
4176   0030d 5d               pop     ebp\r
4177   0030e c3               ret     0\r
4178 $LN11@LoadCentra:\r
4179 \r
4180 ; 797  :   }\r
4181 ; 798  : \r
4182 ; 799  :   if (size_comment>0)\r
4183 \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
4187 \r
4188 ; 800  :   {\r
4189 ; 801  :     pziinit->globalcomment = (char*)ALLOC(size_comment+1);\r
4190 \r
4191   00316 42               inc     edx\r
4192   00317 52               push    edx\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
4198 \r
4199 ; 802  :     if (pziinit->globalcomment)\r
4200 \r
4201   00327 85 c0            test    eax, eax\r
4202   00329 74 1f            je      SHORT $LN64@LoadCentra\r
4203 \r
4204 ; 803  :     {\r
4205 ; 804  :       size_comment = ZREAD64(pziinit->z_filefunc, pziinit->filestream, pziinit->globalcomment,size_comment);\r
4206 \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
4209   00331 51               push    ecx\r
4210   00332 8b 4f 04         mov     ecx, DWORD PTR [edi+4]\r
4211   00335 50               push    eax\r
4212   00336 8b 47 1c         mov     eax, DWORD PTR [edi+28]\r
4213   00339 52               push    edx\r
4214   0033a 50               push    eax\r
4215   0033b ff d1            call    ecx\r
4216 \r
4217 ; 805  :       pziinit->globalcomment[size_comment]=0;\r
4218 \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
4223 $LN64@LoadCentra:\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
4226 $LN9@LoadCentra:\r
4227 \r
4228 ; 806  :     }\r
4229 ; 807  :   }\r
4230 ; 808  : \r
4231 ; 809  :   byte_before_the_zipfile = central_pos - (offset_central_dir+size_central_dir);\r
4232 \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
4237 \r
4238 ; 810  :   pziinit->add_position_when_writting_offset = byte_before_the_zipfile;\r
4239 ; 811  : \r
4240 ; 812  :   {\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
4244 \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
4258 \r
4259 ; 816  :     if (ZSEEK64(pziinit->z_filefunc, pziinit->filestream, offset_central_dir + byte_before_the_zipfile, ZLIB_FILEFUNC_SEEK_SET) != 0)\r
4260 \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
4268   00395 51               push    ecx\r
4269   00396 89 45 c8         mov     DWORD PTR tv439[ebp], eax\r
4270   00399 50               push    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
4278 \r
4279 ; 817  :       err=ZIP_ERRNO;\r
4280 \r
4281   003ad c7 45 fc ff ff\r
4282         ff ff            mov     DWORD PTR _err$[ebp], -1\r
4283 $LN48@LoadCentra:\r
4284 \r
4285 ; 818  : \r
4286 ; 819  :     while ((size_central_dir_to_read>0) && (err==ZIP_OK))\r
4287 \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
4292 $LN7@LoadCentra:\r
4293   003c0 83 7d fc 00      cmp     DWORD PTR _err$[ebp], 0\r
4294   003c4 75 72            jne     SHORT $LN58@LoadCentra\r
4295 \r
4296 ; 820  :     {\r
4297 ; 821  :       ZPOS64_T read_this = SIZEDATA_INDATABLOCK;\r
4298 ; 822  :       if (read_this > size_central_dir_to_read)\r
4299 \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
4309 $LN56@LoadCentra:\r
4310 \r
4311 ; 823  :         read_this = size_central_dir_to_read;\r
4312 \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
4315 $LN5@LoadCentra:\r
4316 \r
4317 ; 824  : \r
4318 ; 825  :       if (ZREAD64(pziinit->z_filefunc, pziinit->filestream,buf_read,(uLong)read_this) != read_this)\r
4319 \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
4323   003ef 56               push    esi\r
4324   003f0 51               push    ecx\r
4325   003f1 8b 4f 04         mov     ecx, DWORD PTR [edi+4]\r
4326   003f4 52               push    edx\r
4327   003f5 50               push    eax\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
4335 $LN57@LoadCentra:\r
4336 \r
4337 ; 826  :         err=ZIP_ERRNO;\r
4338 \r
4339   00406 c7 45 fc ff ff\r
4340         ff ff            mov     DWORD PTR _err$[ebp], -1\r
4341 \r
4342 ; 827  : \r
4343 ; 828  :       if (err==ZIP_OK)\r
4344 \r
4345   0040d eb 14            jmp     SHORT $LN3@LoadCentra\r
4346 $LN52@LoadCentra:\r
4347 \r
4348 ; 829  :         err = add_data_in_datablock(&pziinit->central_dir,buf_read, (uLong)read_this);\r
4349 \r
4350   0040f 8b 55 e4         mov     edx, DWORD PTR _buf_read$82968[ebp]\r
4351   00412 56               push    esi\r
4352   00413 52               push    edx\r
4353   00414 8d 47 30         lea     eax, DWORD PTR [edi+48]\r
4354   00417 50               push    eax\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
4358 $LN3@LoadCentra:\r
4359 \r
4360 ; 830  : \r
4361 ; 831  :       size_central_dir_to_read-=read_this;\r
4362 \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
4368 \r
4369 ; 818  : \r
4370 ; 819  :     while ((size_central_dir_to_read>0) && (err==ZIP_OK))\r
4371 \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
4375 $LN58@LoadCentra:\r
4376 \r
4377 ; 832  :     }\r
4378 ; 833  :     TRYFREE(buf_read);\r
4379 \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
4383   0043f 50               push    eax\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
4387 $LN2@LoadCentra:\r
4388 \r
4389 ; 834  :   }\r
4390 ; 835  :   pziinit->begin_pos = byte_before_the_zipfile;\r
4391 \r
4392   00449 8b 55 f4         mov     edx, DWORD PTR _byte_before_the_zipfile$[ebp+4]\r
4393 \r
4394 ; 836  :   pziinit->number_entry = number_entry_CD;\r
4395 \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
4398 \r
4399 ; 837  : \r
4400 ; 838  :   if (ZSEEK64(pziinit->z_filefunc, pziinit->filestream, offset_central_dir+byte_before_the_zipfile,ZLIB_FILEFUNC_SEEK_SET) != 0)\r
4401 \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
4409   00467 52               push    edx\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
4413   00471 50               push    eax\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
4422 \r
4423 ; 839  :     err=ZIP_ERRNO;\r
4424 \r
4425   00488 c7 45 fc ff ff\r
4426         ff ff            mov     DWORD PTR _err$[ebp], -1\r
4427 $LN1@LoadCentra:\r
4428 \r
4429 ; 840  : \r
4430 ; 841  :   return err;\r
4431 \r
4432   0048f 8b 45 fc         mov     eax, DWORD PTR _err$[ebp]\r
4433 \r
4434 ; 842  : }\r
4435 \r
4436   00492 5e               pop     esi\r
4437   00493 5b               pop     ebx\r
4438   00494 8b e5            mov     esp, ebp\r
4439   00496 5d               pop     ebp\r
4440   00497 c3               ret     0\r
4441 _LoadCentralDirectoryRecord ENDP\r
4442 PUBLIC  _zipCloseFileInZipRaw64@16\r
4443 ; Function compile flags: /Ogtp\r
4444 ;       COMDAT _zipCloseFileInZipRaw64@16\r
4445 _TEXT   SEGMENT\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
4456 \r
4457 ; 1515 : {\r
4458 \r
4459   00000 55               push    ebp\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
4463   00009 53               push    ebx\r
4464 \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
4470 ; 1521 : \r
4471 ; 1522 :     if (file == NULL)\r
4472 \r
4473   0000a 8b 5d 08         mov     ebx, DWORD PTR _file$[ebp]\r
4474   0000d 33 c0            xor     eax, eax\r
4475   0000f 56               push    esi\r
4476   00010 57               push    edi\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
4481 $LN89@zipCloseFi:\r
4482 \r
4483 ; 1523 :         return ZIP_PARAMERROR;\r
4484 \r
4485   0001d b8 9a ff ff ff   mov     eax, -102              ; ffffff9aH\r
4486 \r
4487 ; 1745 :     zi->in_opened_file_inzip = 0;\r
4488 ; 1746 : \r
4489 ; 1747 :     return err;\r
4490 ; 1748 : }\r
4491 \r
4492   00022 5f               pop     edi\r
4493   00023 5e               pop     esi\r
4494   00024 5b               pop     ebx\r
4495   00025 8b e5            mov     esp, ebp\r
4496   00027 5d               pop     ebp\r
4497   00028 c2 10 00         ret     16                     ; 00000010H\r
4498 $LN45@zipCloseFi:\r
4499 \r
4500 ; 1524 :     zi = (zip64_internal*)file;\r
4501 ; 1525 : \r
4502 ; 1526 :     if (zi->in_opened_file_inzip == 0)\r
4503 \r
4504   0002b 39 43 38         cmp     DWORD PTR [ebx+56], eax\r
4505 \r
4506 ; 1527 :         return ZIP_PARAMERROR;\r
4507 \r
4508   0002e 74 ed            je      SHORT $LN89@zipCloseFi\r
4509 \r
4510 ; 1528 :     zi->ci.stream.avail_in = 0;\r
4511 ; 1529 : \r
4512 ; 1530 :     if ((zi->ci.method == Z_DEFLATED) && (!zi->ci.raw))\r
4513 \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
4522 $LN42@zipCloseFi:\r
4523 \r
4524 ; 1531 :                 {\r
4525 ; 1532 :                         while (err==ZIP_OK)\r
4526 ; 1533 :                         {\r
4527 ; 1534 :                                 uLong uTotalOutBefore;\r
4528 ; 1535 :                                 if (zi->ci.stream.avail_out == 0)\r
4529 \r
4530   00047 83 7b 50 00      cmp     DWORD PTR [ebx+80], 0\r
4531   0004b 75 15            jne     SHORT $LN40@zipCloseFi\r
4532 \r
4533 ; 1536 :                                 {\r
4534 ; 1537 :                                         if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO)\r
4535 \r
4536   0004d e8 00 00 00 00   call    _zip64FlushWriteBuffer\r
4537 \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
4541 \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
4547 $LN40@zipCloseFi:\r
4548 \r
4549 ; 1541 :                                 }\r
4550 ; 1542 :                                 uTotalOutBefore = zi->ci.stream.total_out;\r
4551 \r
4552   00062 8b 73 54         mov     esi, DWORD PTR [ebx+84]\r
4553 \r
4554 ; 1543 :                                 err=deflate(&zi->ci.stream,  Z_FINISH);\r
4555 \r
4556   00065 6a 04            push    4\r
4557   00067 57               push    edi\r
4558   00068 e8 00 00 00 00   call    _deflate@8\r
4559 \r
4560 ; 1544 :                                 zi->ci.pos_in_buffered_data += (uInt)(zi->ci.stream.total_out - uTotalOutBefore) ;\r
4561 \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
4568 \r
4569 ; 1545 :                         }\r
4570 ; 1546 :                 }\r
4571 ; 1547 :     else if ((zi->ci.method == Z_BZIP2ED) && (!zi->ci.raw))\r
4572 ; 1548 :     {\r
4573 ; 1549 : #ifdef HAVE_BZIP2\r
4574 ; 1550 :       err = BZ_FINISH_OK;\r
4575 ; 1551 :       while (err==BZ_FINISH_OK)\r
4576 ; 1552 :       {\r
4577 ; 1553 :         uLong uTotalOutBefore;\r
4578 ; 1554 :         if (zi->ci.bstream.avail_out == 0)\r
4579 ; 1555 :         {\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
4584 ; 1560 :         }\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
4589 ; 1565 : \r
4590 ; 1566 :         zi->ci.pos_in_buffered_data += (uInt)(zi->ci.bstream.total_out_lo32 - uTotalOutBefore);\r
4591 ; 1567 :       }\r
4592 ; 1568 : \r
4593 ; 1569 :       if(err == BZ_FINISH_OK)\r
4594 ; 1570 :         err = ZIP_OK;\r
4595 ; 1571 : #endif\r
4596 ; 1572 :     }\r
4597 ; 1573 : \r
4598 ; 1574 :     if (err==Z_STREAM_END)\r
4599 \r
4600   0007d 83 f8 01         cmp     eax, 1\r
4601   00080 75 08            jne     SHORT $LN36@zipCloseFi\r
4602 \r
4603 ; 1575 :         err=ZIP_OK; /* this is normal */\r
4604 \r
4605   00082 c7 44 24 0c 00\r
4606         00 00 00         mov     DWORD PTR _err$[esp+40], 0\r
4607 $LN36@zipCloseFi:\r
4608 \r
4609 ; 1576 : \r
4610 ; 1577 :     if ((zi->ci.pos_in_buffered_data>0) && (err==ZIP_OK))\r
4611 \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
4616 \r
4617 ; 1578 :                 {\r
4618 ; 1579 :         if (zip64FlushWriteBuffer(zi)==ZIP_ERRNO)\r
4619 \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
4624 \r
4625 ; 1580 :             err = ZIP_ERRNO;\r
4626 \r
4627   000a3 89 74 24 0c      mov     DWORD PTR _err$[esp+40], esi\r
4628   000a7 eb 03            jmp     SHORT $LN34@zipCloseFi\r
4629 $LN69@zipCloseFi:\r
4630   000a9 83 ce ff         or      esi, -1\r
4631 $LN34@zipCloseFi:\r
4632 \r
4633 ; 1581 :                 }\r
4634 ; 1582 : \r
4635 ; 1583 :     if ((zi->ci.method == Z_DEFLATED) && (!zi->ci.raw))\r
4636 \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
4643 \r
4644 ; 1584 :     {\r
4645 ; 1585 :         int tmp_err = deflateEnd(&zi->ci.stream);\r
4646 \r
4647   000be 8d 53 40         lea     edx, DWORD PTR [ebx+64]\r
4648   000c1 52               push    edx\r
4649   000c2 e8 00 00 00 00   call    _deflateEnd@4\r
4650 \r
4651 ; 1586 :         if (err == ZIP_OK)\r
4652 \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
4655 \r
4656 ; 1587 :             err = tmp_err;\r
4657 \r
4658   000ce 89 44 24 0c      mov     DWORD PTR _err$[esp+40], eax\r
4659 $LN32@zipCloseFi:\r
4660 \r
4661 ; 1588 :         zi->ci.stream_initialised = 0;\r
4662 \r
4663   000d2 c7 43 78 00 00\r
4664         00 00            mov     DWORD PTR [ebx+120], 0\r
4665 $LN33@zipCloseFi:\r
4666 \r
4667 ; 1589 :     }\r
4668 ; 1590 : #ifdef HAVE_BZIP2\r
4669 ; 1591 :     else if((zi->ci.method == Z_BZIP2ED) && (!zi->ci.raw))\r
4670 ; 1592 :     {\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
4675 ; 1597 :     }\r
4676 ; 1598 : #endif\r
4677 ; 1599 : \r
4678 ; 1600 :     if (!zi->ci.raw)\r
4679 \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
4683 \r
4684 ; 1601 :     {\r
4685 ; 1602 :         crc32 = (uLong)zi->ci.crc32;\r
4686 \r
4687   000e2 8b 83 a8 00 01\r
4688         00               mov     eax, DWORD PTR [ebx+65704]\r
4689 \r
4690 ; 1603 :         uncompressed_size = zi->ci.totalUncompressedData;\r
4691 \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
4699 $LN31@zipCloseFi:\r
4700 \r
4701 ; 1604 :     }\r
4702 ; 1605 :     compressed_size = zi->ci.totalCompressedData;\r
4703 ; 1606 : \r
4704 ; 1607 : #    ifndef NOCRYPT\r
4705 ; 1608 :     compressed_size += zi->ci.crypt_header_size;\r
4706 \r
4707   000fd 8b 83 e0 00 01\r
4708         00               mov     eax, DWORD PTR [ebx+65760]\r
4709   00103 99               cdq\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
4716 \r
4717 ; 1609 : #    endif\r
4718 ; 1610 : \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
4721 \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
4727 $LN53@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
4733 $LN54@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
4740 $LN55@zipCloseFi:\r
4741 \r
4742 ; 1613 :     {\r
4743 ; 1614 :       /*version Made by*/\r
4744 ; 1615 :       zip64local_putValue_inmemory(zi->ci.central_header+4,(uLong)45,2);\r
4745 \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
4753 \r
4754 ; 1616 :       /*version needed*/\r
4755 ; 1617 :       zip64local_putValue_inmemory(zi->ci.central_header+6,(uLong)45,2);\r
4756 \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
4764 $LN30@zipCloseFi:\r
4765 \r
4766 ; 1618 : \r
4767 ; 1619 :     }\r
4768 ; 1620 : \r
4769 ; 1621 :     zip64local_putValue_inmemory(zi->ci.central_header+16,crc32,4); /*crc*/\r
4770 \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
4774   00174 50               push    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
4777   0017c 50               push    eax\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
4781 \r
4782 ; 1622 : \r
4783 ; 1623 : \r
4784 ; 1624 :     if(compressed_size >= 0xffffffff)\r
4785 \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
4793 $LN56@zipCloseFi:\r
4794 \r
4795 ; 1625 :       zip64local_putValue_inmemory(zi->ci.central_header+20, invalidValue,4); /*compr size*/\r
4796 \r
4797   0019e 6a 00            push    0\r
4798   001a0 6a ff            push    -1\r
4799 \r
4800 ; 1626 :     else\r
4801 \r
4802   001a2 eb 02            jmp     SHORT $LN86@zipCloseFi\r
4803 $LN28@zipCloseFi:\r
4804 \r
4805 ; 1627 :       zip64local_putValue_inmemory(zi->ci.central_header+20, compressed_size,4); /*compr size*/\r
4806 \r
4807   001a4 50               push    eax\r
4808   001a5 51               push    ecx\r
4809 $LN86@zipCloseFi:\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
4815 \r
4816 ; 1628 : \r
4817 ; 1629 :     /// set internal file attributes field\r
4818 ; 1630 :     if (zi->ci.stream.data_type == Z_ASCII)\r
4819 \r
4820   001b7 83 7b 6c 01      cmp     DWORD PTR [ebx+108], 1\r
4821   001bb 75 1a            jne     SHORT $LN26@zipCloseFi\r
4822 \r
4823 ; 1631 :         zip64local_putValue_inmemory(zi->ci.central_header+36,(uLong)Z_ASCII,2);\r
4824 \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
4833 $LN26@zipCloseFi:\r
4834 \r
4835 ; 1632 : \r
4836 ; 1633 :     if(uncompressed_size >= 0xffffffff)\r
4837 \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
4844 $LN57@zipCloseFi:\r
4845 \r
4846 ; 1634 :       zip64local_putValue_inmemory(zi->ci.central_header+24, invalidValue,4); /*uncompr size*/\r
4847 \r
4848   001e6 6a 00            push    0\r
4849   001e8 6a ff            push    -1\r
4850 \r
4851 ; 1635 :     else\r
4852 \r
4853   001ea eb 02            jmp     SHORT $LN87@zipCloseFi\r
4854 $LN25@zipCloseFi:\r
4855 \r
4856 ; 1636 :       zip64local_putValue_inmemory(zi->ci.central_header+24, uncompressed_size,4); /*uncompr size*/\r
4857 \r
4858   001ec 51               push    ecx\r
4859   001ed 50               push    eax\r
4860 $LN87@zipCloseFi:\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
4867 \r
4868 ; 1637 : \r
4869 ; 1638 :     // Add ZIP64 extra info field for uncompressed size\r
4870 ; 1639 :     if(uncompressed_size >= 0xffffffff)\r
4871 \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
4877 $LN58@zipCloseFi:\r
4878 \r
4879 ; 1640 :       datasize += 8;\r
4880 \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
4884 $LN71@zipCloseFi:\r
4885   0021c 8b 44 24 10      mov     eax, DWORD PTR _datasize$[esp+40]\r
4886 $LN23@zipCloseFi:\r
4887 \r
4888 ; 1641 : \r
4889 ; 1642 :     // Add ZIP64 extra info field for compressed size\r
4890 ; 1643 :     if(compressed_size >= 0xffffffff)\r
4891 \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
4896 $LN59@zipCloseFi:\r
4897 \r
4898 ; 1644 :       datasize += 8;\r
4899 \r
4900   0022d 83 c0 08         add     eax, 8\r
4901 $LN22@zipCloseFi:\r
4902 \r
4903 ; 1645 : \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
4906 \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
4913 $LN60@zipCloseFi:\r
4914 \r
4915 ; 1648 :       datasize += 8;\r
4916 \r
4917   00241 83 c0 08         add     eax, 8\r
4918 $LN21@zipCloseFi:\r
4919 \r
4920 ; 1649 : \r
4921 ; 1650 :     if(datasize > 0)\r
4922 \r
4923   00244 66 85 c0         test    ax, ax\r
4924   00247 0f 8e f6 00 00\r
4925         00               jle     $LN20@zipCloseFi\r
4926 \r
4927 ; 1651 :     {\r
4928 ; 1652 :       char* p = NULL;\r
4929 ; 1653 : \r
4930 ; 1654 :       if((uLong)(datasize + 4) > zi->ci.size_centralExtraFree)\r
4931 \r
4932   0024d 98               cwde\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
4938 \r
4939 ; 1655 :       {\r
4940 ; 1656 :         // we can not write more data to the buffer that we have room for.\r
4941 ; 1657 :         return ZIP_BADZIPFILE;\r
4942 \r
4943   0025d b8 99 ff ff ff   mov     eax, -103              ; ffffff99H\r
4944 \r
4945 ; 1745 :     zi->in_opened_file_inzip = 0;\r
4946 ; 1746 : \r
4947 ; 1747 :     return err;\r
4948 ; 1748 : }\r
4949 \r
4950   00262 5f               pop     edi\r
4951   00263 5e               pop     esi\r
4952   00264 5b               pop     ebx\r
4953   00265 8b e5            mov     esp, ebp\r
4954   00267 5d               pop     ebp\r
4955   00268 c2 10 00         ret     16                     ; 00000010H\r
4956 $LN19@zipCloseFi:\r
4957 \r
4958 ; 1658 :       }\r
4959 ; 1659 : \r
4960 ; 1660 :       p = zi->ci.central_header + zi->ci.size_centralheader;\r
4961 \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
4966 \r
4967 ; 1661 : \r
4968 ; 1662 :       // Add Extra Information Header for 'ZIP64 information'\r
4969 ; 1663 :       zip64local_putValue_inmemory(p, 0x0001, 2); // HeaderID\r
4970 \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
4975 \r
4976 ; 1664 :       p += 2;\r
4977 ; 1665 :       zip64local_putValue_inmemory(p, datasize, 2); // DataSize\r
4978 \r
4979   00285 8b 44 24 18      mov     eax, DWORD PTR tv525[esp+48]\r
4980   00289 99               cdq\r
4981   0028a 52               push    edx\r
4982   0028b 03 fe            add     edi, esi\r
4983   0028d 50               push    eax\r
4984   0028e e8 00 00 00 00   call    _zip64local_putValue_inmemory\r
4985 \r
4986 ; 1666 :       p += 2;\r
4987 ; 1667 : \r
4988 ; 1668 :       if(uncompressed_size >= 0xffffffff)\r
4989 \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
4997 $LN61@zipCloseFi:\r
4998 \r
4999 ; 1669 :       {\r
5000 ; 1670 :         zip64local_putValue_inmemory(p, uncompressed_size, 8);\r
5001 \r
5002   002a5 8b 4d 0c         mov     ecx, DWORD PTR _uncompressed_size$[ebp]\r
5003   002a8 50               push    eax\r
5004   002a9 51               push    ecx\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
5008 \r
5009 ; 1671 :         p += 8;\r
5010 \r
5011   002b7 03 fe            add     edi, esi\r
5012 $LN18@zipCloseFi:\r
5013 \r
5014 ; 1672 :       }\r
5015 ; 1673 : \r
5016 ; 1674 :       if(compressed_size >= 0xffffffff)\r
5017 \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
5023 $LN62@zipCloseFi:\r
5024 \r
5025 ; 1675 :       {\r
5026 ; 1676 :         zip64local_putValue_inmemory(p, compressed_size, 8);\r
5027 \r
5028   002c8 8b 54 24 18      mov     edx, DWORD PTR _compressed_size$[esp+40]\r
5029   002cc 50               push    eax\r
5030   002cd 52               push    edx\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
5034 \r
5035 ; 1677 :         p += 8;\r
5036 \r
5037   002db 03 fe            add     edi, esi\r
5038 $LN17@zipCloseFi:\r
5039 \r
5040 ; 1678 :       }\r
5041 ; 1679 : \r
5042 ; 1680 :       if(zi->ci.pos_local_header >= 0xffffffff)\r
5043 \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
5052 $LN63@zipCloseFi:\r
5053 \r
5054 ; 1681 :       {\r
5055 ; 1682 :         zip64local_putValue_inmemory(p, zi->ci.pos_local_header, 8);\r
5056 \r
5057   002f2 50               push    eax\r
5058   002f3 51               push    ecx\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
5062 $LN16@zipCloseFi:\r
5063 \r
5064 ; 1683 :         p += 8;\r
5065 ; 1684 :       }\r
5066 ; 1685 : \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
5071 \r
5072   00301 8b 44 24 10      mov     eax, DWORD PTR tv525[esp+40]\r
5073 \r
5074 ; 1690 :       zi->ci.size_centralheader += datasize + 4;\r
5075 ; 1691 : \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
5079 \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
5095   00332 50               push    eax\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
5100 $LN20@zipCloseFi:\r
5101 \r
5102 ; 1695 :     }\r
5103 ; 1696 : \r
5104 ; 1697 :     if (err==ZIP_OK)\r
5105 \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
5108 \r
5109 ; 1698 :         err = add_data_in_datablock(&zi->central_dir, zi->ci.central_header, (uLong)zi->ci.size_centralheader);\r
5110 \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
5115   00356 50               push    eax\r
5116   00357 51               push    ecx\r
5117   00358 8d 53 30         lea     edx, DWORD PTR [ebx+48]\r
5118   0035b 52               push    edx\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
5122 $LN15@zipCloseFi:\r
5123 \r
5124 ; 1699 : \r
5125 ; 1700 :     free(zi->ci.central_header);\r
5126 \r
5127   00368 8b 83 88 00 00\r
5128         00               mov     eax, DWORD PTR [ebx+136]\r
5129   0036e 50               push    eax\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
5133 \r
5134 ; 1701 : \r
5135 ; 1702 :     if (err==ZIP_OK)\r
5136 \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
5140 \r
5141 ; 1703 :     {\r
5142 ; 1704 :         // Update the LocalFileHeader with the new values.\r
5143 ; 1705 : \r
5144 ; 1706 :         ZPOS64_T cur_pos_inzip = ZTELL64(zi->z_filefunc,zi->filestream);\r
5145 \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
5149 \r
5150 ; 1707 : \r
5151 ; 1708 :         if (ZSEEK64(zi->z_filefunc,zi->filestream, zi->ci.pos_local_header + 14,ZLIB_FILEFUNC_SEEK_SET)!=0)\r
5152 \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
5161   003a6 52               push    edx\r
5162   003a7 89 44 24 14      mov     DWORD PTR _cur_pos_inzip$83566[esp+44], eax\r
5163   003ab 51               push    ecx\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
5170 \r
5171 ; 1709 :             err = ZIP_ERRNO;\r
5172 \r
5173   003bc 83 cf ff         or      edi, -1\r
5174   003bf 89 7c 24 0c      mov     DWORD PTR _err$[esp+40], edi\r
5175 \r
5176 ; 1710 : \r
5177 ; 1711 :         if (err==ZIP_OK)\r
5178 \r
5179   003c3 eb 22            jmp     SHORT $LN12@zipCloseFi\r
5180 $LN51@zipCloseFi:\r
5181 \r
5182 ; 1712 :             err = zip64local_putValue(&zi->z_filefunc,zi->filestream,crc32,4); /* crc 32, unknown */\r
5183 \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
5187   003cf 50               push    eax\r
5188   003d0 51               push    ecx\r
5189   003d1 52               push    edx\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
5196 $LN12@zipCloseFi:\r
5197 \r
5198 ; 1713 : \r
5199 ; 1714 :         if(uncompressed_size >= 0xffffffff || compressed_size >= 0xffffffff )\r
5200 \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
5206 $LN64@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
5213 $LN65@zipCloseFi:\r
5214 \r
5215 ; 1730 :         }\r
5216 ; 1731 :         else\r
5217 ; 1732 :         {\r
5218 ; 1733 :           if (err==ZIP_OK) /* compressed size, unknown */\r
5219 \r
5220   00406 85 ff            test    edi, edi\r
5221   00408 0f 85 ad 00 00\r
5222         00               jne     $LN5@zipCloseFi\r
5223 \r
5224 ; 1734 :               err = zip64local_putValue(&zi->z_filefunc,zi->filestream,compressed_size,4);\r
5225 \r
5226   0040e 8b 4b 2c         mov     ecx, DWORD PTR [ebx+44]\r
5227   00411 50               push    eax\r
5228   00412 8b 44 24 1c      mov     eax, DWORD PTR _compressed_size$[esp+44]\r
5229   00416 50               push    eax\r
5230   00417 8d 77 04         lea     esi, DWORD PTR [edi+4]\r
5231   0041a 51               push    ecx\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
5236 \r
5237 ; 1735 : \r
5238 ; 1736 :           if (err==ZIP_OK) /* uncompressed size, unknown */\r
5239 \r
5240   00429 85 c0            test    eax, eax\r
5241   0042b 0f 85 8a 00 00\r
5242         00               jne     $LN5@zipCloseFi\r
5243 \r
5244 ; 1737 :               err = zip64local_putValue(&zi->z_filefunc,zi->filestream,uncompressed_size,4);\r
5245 \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
5249 $LN10@zipCloseFi:\r
5250 \r
5251 ; 1715 :         {\r
5252 ; 1716 :           if(zi->ci.pos_zip64extrainfo > 0)\r
5253 \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
5262 $LN66@zipCloseFi:\r
5263 \r
5264 ; 1717 :           {\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
5267 \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
5271   00456 50               push    eax\r
5272   00457 51               push    ecx\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
5279 \r
5280 ; 1720 :               err = ZIP_ERRNO;\r
5281 \r
5282   00468 c7 44 24 0c ff\r
5283         ff ff ff         mov     DWORD PTR _err$[esp+40], -1\r
5284 \r
5285 ; 1721 : \r
5286 ; 1722 :             if (err==ZIP_OK) /* compressed size, unknown */\r
5287 \r
5288   00470 eb 49            jmp     SHORT $LN5@zipCloseFi\r
5289 $LN8@zipCloseFi:\r
5290   00472 85 ff            test    edi, edi\r
5291   00474 75 45            jne     SHORT $LN5@zipCloseFi\r
5292 \r
5293 ; 1723 :               err = zip64local_putValue(&zi->z_filefunc, zi->filestream, uncompressed_size, 8);\r
5294 \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
5298   0047f 52               push    edx\r
5299   00480 50               push    eax\r
5300   00481 8d 77 08         lea     esi, DWORD PTR [edi+8]\r
5301   00484 51               push    ecx\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
5306 \r
5307 ; 1724 : \r
5308 ; 1725 :             if (err==ZIP_OK) /* uncompressed size, unknown */\r
5309 \r
5310   00493 85 c0            test    eax, eax\r
5311   00495 75 24            jne     SHORT $LN5@zipCloseFi\r
5312 \r
5313 ; 1726 :               err = zip64local_putValue(&zi->z_filefunc, zi->filestream, compressed_size, 8);\r
5314 \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
5317 $LN90@zipCloseFi:\r
5318   0049f 8b 4b 2c         mov     ecx, DWORD PTR [ebx+44]\r
5319   004a2 52               push    edx\r
5320   004a3 50               push    eax\r
5321   004a4 51               push    ecx\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
5325 \r
5326 ; 1727 :           }\r
5327 ; 1728 :           else\r
5328 \r
5329   004b1 eb 08            jmp     SHORT $LN5@zipCloseFi\r
5330 $LN9@zipCloseFi:\r
5331 \r
5332 ; 1729 :               err = ZIP_BADZIPFILE; // Caller passed zip64 = 0, so no room for zip64 info -> fatal\r
5333 \r
5334   004b3 c7 44 24 0c 99\r
5335         ff ff ff         mov     DWORD PTR _err$[esp+40], -103 ; ffffff99H\r
5336 $LN5@zipCloseFi:\r
5337 \r
5338 ; 1738 :         }\r
5339 ; 1739 : \r
5340 ; 1740 :         if (ZSEEK64(zi->z_filefunc,zi->filestream, cur_pos_inzip,ZLIB_FILEFUNC_SEEK_SET)!=0)\r
5341 \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
5345   004c6 52               push    edx\r
5346   004c7 50               push    eax\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
5353 \r
5354 ; 1741 :             err = ZIP_ERRNO;\r
5355 \r
5356   004d8 c7 44 24 0c ff\r
5357         ff ff ff         mov     DWORD PTR _err$[esp+40], -1\r
5358 $LN1@zipCloseFi:\r
5359 \r
5360 ; 1742 :     }\r
5361 ; 1743 : \r
5362 ; 1744 :     zi->number_entry ++;\r
5363 \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
5367 \r
5368 ; 1745 :     zi->in_opened_file_inzip = 0;\r
5369 ; 1746 : \r
5370 ; 1747 :     return err;\r
5371 ; 1748 : }\r
5372 \r
5373   004ec 5f               pop     edi\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
5378   004fa 5e               pop     esi\r
5379   004fb 5b               pop     ebx\r
5380   004fc 8b e5            mov     esp, ebp\r
5381   004fe 5d               pop     ebp\r
5382   004ff c2 10 00         ret     16                     ; 00000010H\r
5383 _zipCloseFileInZipRaw64@16 ENDP\r
5384 _TEXT   ENDS\r
5385 PUBLIC  _zipCloseFileInZipRaw@12\r
5386 ; Function compile flags: /Ogtp\r
5387 ;       COMDAT _zipCloseFileInZipRaw@12\r
5388 _TEXT   SEGMENT\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
5393 \r
5394 ; 1510 : {\r
5395 \r
5396   00000 55               push    ebp\r
5397   00001 8b ec            mov     ebp, esp\r
5398   00003 83 e4 f8         and     esp, -8                        ; fffffff8H\r
5399 \r
5400 ; 1511 :     return zipCloseFileInZipRaw64 (file, uncompressed_size, crc32);\r
5401 \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
5405   0000f 50               push    eax\r
5406   00010 6a 00            push    0\r
5407   00012 51               push    ecx\r
5408   00013 52               push    edx\r
5409   00014 e8 00 00 00 00   call    _zipCloseFileInZipRaw64@16\r
5410 \r
5411 ; 1512 : }\r
5412 \r
5413   00019 8b e5            mov     esp, ebp\r
5414   0001b 5d               pop     ebp\r
5415   0001c c2 0c 00         ret     12                     ; 0000000cH\r
5416 _zipCloseFileInZipRaw@12 ENDP\r
5417 _TEXT   ENDS\r
5418 PUBLIC  _zipWriteInFileInZip@12\r
5419 ; Function compile flags: /Ogtp\r
5420 ;       COMDAT _zipWriteInFileInZip@12\r
5421 _TEXT   SEGMENT\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
5427 \r
5428 ; 1403 : {\r
5429 \r
5430   00000 55               push    ebp\r
5431   00001 8b ec            mov     ebp, esp\r
5432   00003 51               push    ecx\r
5433   00004 53               push    ebx\r
5434 \r
5435 ; 1404 :     zip64_internal* zi;\r
5436 ; 1405 :     int err=ZIP_OK;\r
5437 ; 1406 : \r
5438 ; 1407 :     if (file == NULL)\r
5439 \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
5445 $LN24@zipWriteIn:\r
5446 \r
5447 ; 1408 :         return ZIP_PARAMERROR;\r
5448 \r
5449   00013 b8 9a ff ff ff   mov     eax, -102              ; ffffff9aH\r
5450   00018 5b               pop     ebx\r
5451 \r
5452 ; 1507 : }\r
5453 \r
5454   00019 8b e5            mov     esp, ebp\r
5455   0001b 5d               pop     ebp\r
5456   0001c c2 0c 00         ret     12                     ; 0000000cH\r
5457 $LN15@zipWriteIn:\r
5458 \r
5459 ; 1409 :     zi = (zip64_internal*)file;\r
5460 ; 1410 : \r
5461 ; 1411 :     if (zi->in_opened_file_inzip == 0)\r
5462 \r
5463   0001f 83 7b 38 00      cmp     DWORD PTR [ebx+56], 0\r
5464 \r
5465 ; 1412 :         return ZIP_PARAMERROR;\r
5466 \r
5467   00023 74 ee            je      SHORT $LN24@zipWriteIn\r
5468 \r
5469 ; 1413 : \r
5470 ; 1414 :     zi->ci.crc32 = crc32(zi->ci.crc32,buf,(uInt)len);\r
5471 \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
5475   0002e 56               push    esi\r
5476   0002f 8b 75 10         mov     esi, DWORD PTR _len$[ebp]\r
5477   00032 57               push    edi\r
5478   00033 56               push    esi\r
5479   00034 50               push    eax\r
5480   00035 51               push    ecx\r
5481   00036 e8 00 00 00 00   call    _crc32@12\r
5482 \r
5483 ; 1415 : \r
5484 ; 1416 : #ifdef HAVE_BZIP2\r
5485 ; 1417 :     if(zi->ci.method == Z_BZIP2ED && (!zi->ci.raw))\r
5486 ; 1418 :     {\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
5490 ; 1422 : \r
5491 ; 1423 :       while ((err==BZ_RUN_OK) && (zi->ci.bstream.avail_in>0))\r
5492 ; 1424 :       {\r
5493 ; 1425 :         if (zi->ci.bstream.avail_out == 0)\r
5494 ; 1426 :         {\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
5499 ; 1431 :         }\r
5500 ; 1432 : \r
5501 ; 1433 : \r
5502 ; 1434 :         if(err != BZ_RUN_OK)\r
5503 ; 1435 :           break;\r
5504 ; 1436 : \r
5505 ; 1437 :         if ((zi->ci.method == Z_BZIP2ED) && (!zi->ci.raw))\r
5506 ; 1438 :         {\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
5510 ; 1442 : \r
5511 ; 1443 :           zi->ci.pos_in_buffered_data += (uInt)(zi->ci.bstream.total_out_lo32 - uTotalOutBefore_lo) ;\r
5512 ; 1444 :         }\r
5513 ; 1445 :       }\r
5514 ; 1446 : \r
5515 ; 1447 :       if(err == BZ_RUN_OK)\r
5516 ; 1448 :         err = ZIP_OK;\r
5517 ; 1449 :     }\r
5518 ; 1450 :     else\r
5519 ; 1451 : #endif\r
5520 ; 1452 :     {\r
5521 ; 1453 :       zi->ci.stream.next_in = (Bytef*)buf;\r
5522 \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
5528 \r
5529 ; 1454 :       zi->ci.stream.avail_in = len;\r
5530 \r
5531   00049 89 73 44         mov     DWORD PTR [ebx+68], esi\r
5532   0004c 8d 64 24 00      npad    4\r
5533 $LL13@zipWriteIn:\r
5534 \r
5535 ; 1455 : \r
5536 ; 1456 :       while ((err==ZIP_OK) && (zi->ci.stream.avail_in>0))\r
5537 \r
5538   00050 83 7b 44 00      cmp     DWORD PTR [ebx+68], 0\r
5539   00054 76 55            jbe     SHORT $LN23@zipWriteIn\r
5540 \r
5541 ; 1457 :       {\r
5542 ; 1458 :           if (zi->ci.stream.avail_out == 0)\r
5543 \r
5544   00056 83 7b 50 00      cmp     DWORD PTR [ebx+80], 0\r
5545   0005a 75 1d            jne     SHORT $LN11@zipWriteIn\r
5546 \r
5547 ; 1459 :           {\r
5548 ; 1460 :               if (zip64FlushWriteBuffer(zi) == ZIP_ERRNO)\r
5549 \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
5553 \r
5554 ; 1461 :                   err = ZIP_ERRNO;\r
5555 \r
5556   00066 89 45 fc         mov     DWORD PTR _err$[ebp], eax\r
5557 $LN10@zipWriteIn:\r
5558 \r
5559 ; 1462 :               zi->ci.stream.avail_out = (uInt)Z_BUFSIZE;\r
5560 ; 1463 :               zi->ci.stream.next_out = zi->ci.buffered_data;\r
5561 \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
5567 $LN11@zipWriteIn:\r
5568 \r
5569 ; 1464 :           }\r
5570 ; 1465 : \r
5571 ; 1466 : \r
5572 ; 1467 :           if(err != ZIP_OK)\r
5573 \r
5574   00079 83 7d fc 00      cmp     DWORD PTR _err$[ebp], 0\r
5575   0007d 75 2c            jne     SHORT $LN23@zipWriteIn\r
5576 \r
5577 ; 1468 :               break;\r
5578 ; 1469 : \r
5579 ; 1470 :           if ((zi->ci.method == Z_DEFLATED) && (!zi->ci.raw))\r
5580 \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
5587 \r
5588 ; 1471 :           {\r
5589 ; 1472 :               uLong uTotalOutBefore = zi->ci.stream.total_out;\r
5590 \r
5591   00091 8b 73 54         mov     esi, DWORD PTR [ebx+84]\r
5592 \r
5593 ; 1473 :               err=deflate(&zi->ci.stream,  Z_NO_FLUSH);\r
5594 \r
5595   00094 6a 00            push    0\r
5596   00096 57               push    edi\r
5597   00097 e8 00 00 00 00   call    _deflate@8\r
5598 \r
5599 ; 1474 :               if(uTotalOutBefore > zi->ci.stream.total_out)\r
5600 ; 1475 :               {\r
5601 ; 1476 :                 int bBreak = 0;\r
5602 ; 1477 :                 bBreak++;\r
5603 ; 1478 :               }\r
5604 ; 1479 : \r
5605 ; 1480 :               zi->ci.pos_in_buffered_data += (uInt)(zi->ci.stream.total_out - uTotalOutBefore) ;\r
5606 \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
5613 $LN23@zipWriteIn:\r
5614 \r
5615 ; 1501 :               }\r
5616 ; 1502 :           }\r
5617 ; 1503 :       }// while(...)\r
5618 ; 1504 :     }\r
5619 ; 1505 : \r
5620 ; 1506 :     return err;\r
5621 \r
5622   000ab 8b 45 fc         mov     eax, DWORD PTR _err$[ebp]\r
5623   000ae 5f               pop     edi\r
5624   000af 5e               pop     esi\r
5625   000b0 5b               pop     ebx\r
5626 \r
5627 ; 1507 : }\r
5628 \r
5629   000b1 8b e5            mov     esp, ebp\r
5630   000b3 5d               pop     ebp\r
5631   000b4 c2 0c 00         ret     12                     ; 0000000cH\r
5632 $LN8@zipWriteIn:\r
5633 \r
5634 ; 1481 :           }\r
5635 ; 1482 :           else\r
5636 ; 1483 :           {\r
5637 ; 1484 :               uInt copy_this,i;\r
5638 ; 1485 :               if (zi->ci.stream.avail_in < zi->ci.stream.avail_out)\r
5639 \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
5643 \r
5644 ; 1486 :                   copy_this = zi->ci.stream.avail_in;\r
5645 ; 1487 :               else\r
5646 \r
5647   000bf 72 02            jb      SHORT $LN4@zipWriteIn\r
5648 \r
5649 ; 1488 :                   copy_this = zi->ci.stream.avail_out;\r
5650 \r
5651   000c1 8b f0            mov     esi, eax\r
5652 $LN4@zipWriteIn:\r
5653 \r
5654 ; 1489 : \r
5655 ; 1490 :               for (i = 0; i < copy_this; i++)\r
5656 \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
5661         00 00            npad    7\r
5662 $LL3@zipWriteIn:\r
5663 \r
5664 ; 1491 :                   *(((char*)zi->ci.stream.next_out)+i) =\r
5665 ; 1492 :                       *(((const char*)zi->ci.stream.next_in)+i);\r
5666 \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
5671   000db 40               inc     eax\r
5672   000dc 3b c6            cmp     eax, esi\r
5673   000de 72 f0            jb      SHORT $LL3@zipWriteIn\r
5674 $LN1@zipWriteIn:\r
5675 \r
5676 ; 1493 :               {\r
5677 ; 1494 :                   zi->ci.stream.avail_in -= copy_this;\r
5678 \r
5679   000e0 29 73 44         sub     DWORD PTR [ebx+68], esi\r
5680 \r
5681 ; 1495 :                   zi->ci.stream.avail_out-= copy_this;\r
5682 \r
5683   000e3 29 73 50         sub     DWORD PTR [ebx+80], esi\r
5684 \r
5685 ; 1496 :                   zi->ci.stream.next_in+= copy_this;\r
5686 \r
5687   000e6 01 37            add     DWORD PTR [edi], esi\r
5688 \r
5689 ; 1497 :                   zi->ci.stream.next_out+= copy_this;\r
5690 \r
5691   000e8 01 73 4c         add     DWORD PTR [ebx+76], esi\r
5692 \r
5693 ; 1498 :                   zi->ci.stream.total_in+= copy_this;\r
5694 \r
5695   000eb 01 73 48         add     DWORD PTR [ebx+72], esi\r
5696 \r
5697 ; 1499 :                   zi->ci.stream.total_out+= copy_this;\r
5698 \r
5699   000ee 01 73 54         add     DWORD PTR [ebx+84], esi\r
5700 \r
5701 ; 1500 :                   zi->ci.pos_in_buffered_data += copy_this;\r
5702 \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
5706 _TEXT   ENDS\r
5707 PUBLIC  _zipOpen3@16\r
5708 EXTRN   __chkstk:PROC\r
5709 ; Function compile flags: /Ogtp\r
5710 ;       COMDAT _zipOpen3@16\r
5711 _TEXT   SEGMENT\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
5718 \r
5719 ; 850  : {\r
5720 \r
5721   00000 55               push    ebp\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
5726   00010 53               push    ebx\r
5727   00011 56               push    esi\r
5728 \r
5729 ; 851  :     zip64_internal ziinit;\r
5730 ; 852  :     zip64_internal* zi;\r
5731 ; 853  :     int err=ZIP_OK;\r
5732 \r
5733   00012 33 db            xor     ebx, ebx\r
5734   00014 8b f1            mov     esi, ecx\r
5735   00016 57               push    edi\r
5736 \r
5737 ; 854  : \r
5738 ; 855  :     ziinit.z_filefunc.zseek32_file = NULL;\r
5739 \r
5740   00017 89 5c 24 38      mov     DWORD PTR _ziinit$[esp+65856], ebx\r
5741 \r
5742 ; 856  :     ziinit.z_filefunc.ztell32_file = NULL;\r
5743 \r
5744   0001b 89 5c 24 34      mov     DWORD PTR _ziinit$[esp+65852], ebx\r
5745 \r
5746 ; 857  :     if (pzlib_filefunc64_32_def==NULL)\r
5747 \r
5748   0001f 3b f3            cmp     esi, ebx\r
5749   00021 75 0b            jne     SHORT $LN11@zipOpen3\r
5750 \r
5751 ; 858  :         fill_fopen64_filefunc(&ziinit.z_filefunc.zfile_func64);\r
5752 \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
5755 \r
5756 ; 859  :     else\r
5757 \r
5758   0002c eb 0b            jmp     SHORT $LN10@zipOpen3\r
5759 $LN11@zipOpen3:\r
5760 \r
5761 ; 860  :         ziinit.z_filefunc = *pzlib_filefunc64_32_def;\r
5762 \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
5766 $LN10@zipOpen3:\r
5767 \r
5768 ; 861  : \r
5769 ; 862  :     ziinit.filestream = ZOPEN64(ziinit.z_filefunc,\r
5770 ; 863  :                   pathname,\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
5774 \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
5786 \r
5787 ; 867  : \r
5788 ; 868  :     if (ziinit.filestream == NULL)\r
5789 \r
5790   0005c 3b f3            cmp     esi, ebx\r
5791 \r
5792 ; 869  :         return NULL;\r
5793 \r
5794   0005e 0f 84 84 00 00\r
5795         00               je      $LN15@zipOpen3\r
5796 \r
5797 ; 870  : \r
5798 ; 871  :     if (append == APPEND_STATUS_CREATEAFTER)\r
5799 \r
5800   00064 83 ff 01         cmp     edi, 1\r
5801   00067 75 11            jne     SHORT $LN8@zipOpen3\r
5802 \r
5803 ; 872  :         ZSEEK64(ziinit.z_filefunc,ziinit.filestream,0,SEEK_END);\r
5804 \r
5805   00069 53               push    ebx\r
5806   0006a 53               push    ebx\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
5811 $LN8@zipOpen3:\r
5812 \r
5813 ; 873  : \r
5814 ; 874  :     ziinit.begin_pos = ZTELL64(ziinit.z_filefunc,ziinit.filestream);\r
5815 \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
5821 \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
5827 \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
5843 \r
5844 ; 880  : \r
5845 ; 881  : \r
5846 ; 882  : \r
5847 ; 883  :     zi = (zip64_internal*)ALLOC(sizeof(zip64_internal));\r
5848 \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
5854 \r
5855 ; 884  :     if (zi==NULL)\r
5856 \r
5857   000d3 3b f3            cmp     esi, ebx\r
5858   000d5 75 1c            jne     SHORT $LN7@zipOpen3\r
5859 \r
5860 ; 885  :     {\r
5861 ; 886  :         ZCLOSE64(ziinit.z_filefunc,ziinit.filestream);\r
5862 \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
5865   000df 50               push    eax\r
5866   000e0 51               push    ecx\r
5867   000e1 ff 54 24 2c      call    DWORD PTR _ziinit$[esp+65844]\r
5868   000e5 83 c4 08         add     esp, 8\r
5869 $LN15@zipOpen3:\r
5870 \r
5871 ; 887  :         return NULL;\r
5872 \r
5873   000e8 33 c0            xor     eax, eax\r
5874 \r
5875 ; 916  :         return (zipFile)zi;\r
5876 ; 917  :     }\r
5877 ; 918  : }\r
5878 \r
5879   000ea 5f               pop     edi\r
5880   000eb 5e               pop     esi\r
5881   000ec 5b               pop     ebx\r
5882   000ed 8b e5            mov     esp, ebp\r
5883   000ef 5d               pop     ebp\r
5884   000f0 c2 0c 00         ret     12                     ; 0000000cH\r
5885 $LN7@zipOpen3:\r
5886 \r
5887 ; 888  :     }\r
5888 ; 889  : \r
5889 ; 890  :     /* now we add file in a zipfile */\r
5890 ; 891  : #    ifndef NO_ADDFILEINEXISTINGZIP\r
5891 ; 892  :     ziinit.globalcomment = NULL;\r
5892 \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
5896 \r
5897 ; 893  :     if (append == APPEND_STATUS_ADDINZIP)\r
5898 \r
5899   000fc 83 ff 02         cmp     edi, 2\r
5900   000ff 75 12            jne     SHORT $LN14@zipOpen3\r
5901 \r
5902 ; 894  :     {\r
5903 ; 895  :       // Read and Cache Central Directory Records\r
5904 ; 896  :       err = LoadCentralDirectoryRecord(&ziinit);\r
5905 \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
5911 $LN14@zipOpen3:\r
5912   00113 8b c1            mov     eax, ecx\r
5913 $LN6@zipOpen3:\r
5914 \r
5915 ; 897  :     }\r
5916 ; 898  : \r
5917 ; 899  :     if (globalcomment)\r
5918 \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
5922 \r
5923 ; 900  :     {\r
5924 ; 901  :       *globalcomment = ziinit.globalcomment;\r
5925 \r
5926   0011c 89 0a            mov     DWORD PTR [edx], ecx\r
5927 $LN5@zipOpen3:\r
5928 \r
5929 ; 902  :     }\r
5930 ; 903  : #    endif /* !NO_ADDFILEINEXISTINGZIP*/\r
5931 ; 904  : \r
5932 ; 905  :     if (err != ZIP_OK)\r
5933 \r
5934   0011e 3b c3            cmp     eax, ebx\r
5935   00120 74 21            je      SHORT $LN4@zipOpen3\r
5936 \r
5937 ; 906  :     {\r
5938 ; 907  : #    ifndef NO_ADDFILEINEXISTINGZIP\r
5939 ; 908  :         TRYFREE(ziinit.globalcomment);\r
5940 \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
5945   0012c 51               push    ecx\r
5946   0012d ff d7            call    edi\r
5947   0012f 83 c4 04         add     esp, 4\r
5948 $LN3@zipOpen3:\r
5949 \r
5950 ; 909  : #    endif /* !NO_ADDFILEINEXISTINGZIP*/\r
5951 ; 910  :         TRYFREE(zi);\r
5952 \r
5953   00132 56               push    esi\r
5954   00133 ff d7            call    edi\r
5955   00135 83 c4 04         add     esp, 4\r
5956 \r
5957 ; 911  :         return NULL;\r
5958 \r
5959   00138 33 c0            xor     eax, eax\r
5960 \r
5961 ; 916  :         return (zipFile)zi;\r
5962 ; 917  :     }\r
5963 ; 918  : }\r
5964 \r
5965   0013a 5f               pop     edi\r
5966   0013b 5e               pop     esi\r
5967   0013c 5b               pop     ebx\r
5968   0013d 8b e5            mov     esp, ebp\r
5969   0013f 5d               pop     ebp\r
5970   00140 c2 0c 00         ret     12                     ; 0000000cH\r
5971 $LN4@zipOpen3:\r
5972 \r
5973 ; 912  :     }\r
5974 ; 913  :     else\r
5975 ; 914  :     {\r
5976 ; 915  :         *zi = ziinit;\r
5977 \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
5980   0014c 52               push    edx\r
5981   0014d 56               push    esi\r
5982   0014e e8 00 00 00 00   call    _memcpy\r
5983   00153 83 c4 0c         add     esp, 12                        ; 0000000cH\r
5984 \r
5985 ; 916  :         return (zipFile)zi;\r
5986 ; 917  :     }\r
5987 ; 918  : }\r
5988 \r
5989   00156 5f               pop     edi\r
5990   00157 8b c6            mov     eax, esi\r
5991   00159 5e               pop     esi\r
5992   0015a 5b               pop     ebx\r
5993   0015b 8b e5            mov     esp, ebp\r
5994   0015d 5d               pop     ebp\r
5995   0015e c2 0c 00         ret     12                     ; 0000000cH\r
5996 _zipOpen3@16 ENDP\r
5997 PUBLIC  _zipCloseFileInZip@4\r
5998 ; Function compile flags: /Ogtp\r
5999 ;       COMDAT _zipCloseFileInZip@4\r
6000 _TEXT   SEGMENT\r
6001 _file$ = 8                                              ; size = 4\r
6002 _zipCloseFileInZip@4 PROC                               ; COMDAT\r
6003 \r
6004 ; 1751 : {\r
6005 \r
6006   00000 55               push    ebp\r
6007   00001 8b ec            mov     ebp, esp\r
6008 \r
6009 ; 1752 :     return zipCloseFileInZipRaw (file,0,0);\r
6010 \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
6014   0000a 50               push    eax\r
6015   0000b e8 00 00 00 00   call    _zipCloseFileInZipRaw@12\r
6016 \r
6017 ; 1753 : }\r
6018 \r
6019   00010 5d               pop     ebp\r
6020   00011 c2 04 00         ret     4\r
6021 _zipCloseFileInZip@4 ENDP\r
6022 _TEXT   ENDS\r
6023 PUBLIC  _zipOpenNewFileInZip4_64@76\r
6024 ; Function compile flags: /Ogtp\r
6025 ;       COMDAT _zipOpenNewFileInZip4_64@76\r
6026 _TEXT   SEGMENT\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
6051 \r
6052 ; 1062 : {\r
6053 \r
6054   00000 55               push    ebp\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
6058   00009 53               push    ebx\r
6059 \r
6060 ; 1063 :     zip64_internal* zi;\r
6061 ; 1064 :     uInt size_filename;\r
6062 ; 1065 :     uInt size_comment;\r
6063 ; 1066 :     uInt i;\r
6064 ; 1067 :     int err = ZIP_OK;\r
6065 ; 1068 : \r
6066 ; 1069 : #    ifdef NOCRYPT\r
6067 ; 1070 :     (crcForCrypting);\r
6068 ; 1071 :     if (password != NULL)\r
6069 ; 1072 :         return ZIP_PARAMERROR;\r
6070 ; 1073 : #    endif\r
6071 ; 1074 : \r
6072 ; 1075 :     if (file == NULL)\r
6073 \r
6074   0000a 8b 5d 08         mov     ebx, DWORD PTR _file$[ebp]\r
6075   0000d 56               push    esi\r
6076   0000e 57               push    edi\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
6080 $LN64@zipOpenNew:\r
6081 \r
6082 ; 1076 :         return ZIP_PARAMERROR;\r
6083 \r
6084   00015 b8 9a ff ff ff   mov     eax, -102              ; ffffff9aH\r
6085 \r
6086 ; 1263 : }\r
6087 \r
6088   0001a 5f               pop     edi\r
6089   0001b 5e               pop     esi\r
6090   0001c 5b               pop     ebx\r
6091   0001d 8b e5            mov     esp, ebp\r
6092   0001f 5d               pop     ebp\r
6093   00020 c2 4c 00         ret     76                     ; 0000004cH\r
6094 $LN41@zipOpenNew:\r
6095 \r
6096 ; 1077 : \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
6100 ; 1081 : #else\r
6101 ; 1082 :     if ((method!=0) && (method!=Z_DEFLATED))\r
6102 \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
6107 \r
6108 ; 1083 :       return ZIP_PARAMERROR;\r
6109 \r
6110   0002d 75 e6            jne     SHORT $LN64@zipOpenNew\r
6111 $LN40@zipOpenNew:\r
6112 \r
6113 ; 1084 : #endif\r
6114 ; 1085 : \r
6115 ; 1086 :     zi = (zip64_internal*)file;\r
6116 ; 1087 : \r
6117 ; 1088 :     if (zi->in_opened_file_inzip == 1)\r
6118 \r
6119   0002f 83 7b 38 01      cmp     DWORD PTR [ebx+56], 1\r
6120   00033 75 0e            jne     SHORT $LN38@zipOpenNew\r
6121 \r
6122 ; 1089 :     {\r
6123 ; 1090 :         err = zipCloseFileInZip (file);\r
6124 \r
6125   00035 53               push    ebx\r
6126   00036 e8 00 00 00 00   call    _zipCloseFileInZip@4\r
6127 \r
6128 ; 1091 :         if (err != ZIP_OK)\r
6129 \r
6130   0003b 3b c7            cmp     eax, edi\r
6131 \r
6132 ; 1092 :             return err;\r
6133 \r
6134   0003d 0f 85 7d 04 00\r
6135         00               jne     $LN42@zipOpenNew\r
6136 $LN38@zipOpenNew:\r
6137 \r
6138 ; 1093 :     }\r
6139 ; 1094 : \r
6140 ; 1095 :     if (filename==NULL)\r
6141 \r
6142   00043 39 7d 0c         cmp     DWORD PTR _filename$[ebp], edi\r
6143   00046 75 07            jne     SHORT $LN37@zipOpenNew\r
6144 \r
6145 ; 1096 :         filename="-";\r
6146 \r
6147   00048 c7 45 0c 00 00\r
6148         00 00            mov     DWORD PTR _filename$[ebp], OFFSET ??_C@_01JOAMLHOP@?9?$AA@\r
6149 $LN37@zipOpenNew:\r
6150 \r
6151 ; 1097 : \r
6152 ; 1098 :     if (comment==NULL)\r
6153 \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
6157 \r
6158 ; 1099 :         size_comment = 0;\r
6159 \r
6160   00056 89 7c 24 0c      mov     DWORD PTR _size_comment$[esp+32], edi\r
6161 \r
6162 ; 1100 :     else\r
6163 \r
6164   0005a eb 11            jmp     SHORT $LN35@zipOpenNew\r
6165 $LN36@zipOpenNew:\r
6166 \r
6167 ; 1101 :         size_comment = (uInt)strlen(comment);\r
6168 \r
6169   0005c 8d 50 01         lea     edx, DWORD PTR [eax+1]\r
6170   0005f 90               npad    1\r
6171 $LL52@zipOpenNew:\r
6172   00060 8a 08            mov     cl, BYTE PTR [eax]\r
6173   00062 40               inc     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
6178 $LN35@zipOpenNew:\r
6179 \r
6180 ; 1102 : \r
6181 ; 1103 :     size_filename = (uInt)strlen(filename);\r
6182 \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
6185 $LL53@zipOpenNew:\r
6186   00073 8a 08            mov     cl, BYTE PTR [eax]\r
6187   00075 40               inc     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
6191 \r
6192 ; 1104 : \r
6193 ; 1105 :     if (zipfi == NULL)\r
6194 \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
6200 \r
6201 ; 1106 :         zi->ci.dosDate = 0;\r
6202 \r
6203   00089 89 bb a4 00 01\r
6204         00               mov     DWORD PTR [ebx+65700], edi\r
6205 \r
6206 ; 1107 :     else\r
6207 \r
6208   0008f eb 12            jmp     SHORT $LN31@zipOpenNew\r
6209 $LN34@zipOpenNew:\r
6210 \r
6211 ; 1108 :     {\r
6212 ; 1109 :         if (zipfi->dosDate != 0)\r
6213 \r
6214   00091 8b 42 18         mov     eax, DWORD PTR [edx+24]\r
6215   00094 3b c7            cmp     eax, edi\r
6216 \r
6217 ; 1110 :             zi->ci.dosDate = zipfi->dosDate;\r
6218 ; 1111 :         else\r
6219 \r
6220   00096 75 05            jne     SHORT $LN61@zipOpenNew\r
6221 \r
6222 ; 1112 :           zi->ci.dosDate = zip64local_TmzDateToDosDate(&zipfi->tmz_date);\r
6223 \r
6224   00098 e8 00 00 00 00   call    _zip64local_TmzDateToDosDate\r
6225 $LN61@zipOpenNew:\r
6226   0009d 89 83 a4 00 01\r
6227         00               mov     DWORD PTR [ebx+65700], eax\r
6228 $LN31@zipOpenNew:\r
6229 \r
6230 ; 1113 :     }\r
6231 ; 1114 : \r
6232 ; 1115 :     zi->ci.flag = flagBase;\r
6233 ; 1116 :     if ((level==8) || (level==9))\r
6234 \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
6243 $LN29@zipOpenNew:\r
6244 \r
6245 ; 1117 :       zi->ci.flag |= 2;\r
6246 \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
6250 $LN30@zipOpenNew:\r
6251 \r
6252 ; 1118 :     if ((level==2))\r
6253 \r
6254   000c2 83 f9 02         cmp     ecx, 2\r
6255   000c5 75 09            jne     SHORT $LN28@zipOpenNew\r
6256 \r
6257 ; 1119 :       zi->ci.flag |= 4;\r
6258 \r
6259   000c7 83 8b 98 00 00\r
6260         00 04            or      DWORD PTR [ebx+152], 4\r
6261 \r
6262 ; 1120 :     if ((level==1))\r
6263 \r
6264   000ce eb 0c            jmp     SHORT $LN27@zipOpenNew\r
6265 $LN28@zipOpenNew:\r
6266   000d0 83 f9 01         cmp     ecx, 1\r
6267   000d3 75 07            jne     SHORT $LN27@zipOpenNew\r
6268 \r
6269 ; 1121 :       zi->ci.flag |= 6;\r
6270 \r
6271   000d5 83 8b 98 00 00\r
6272         00 06            or      DWORD PTR [ebx+152], 6\r
6273 $LN27@zipOpenNew:\r
6274 \r
6275 ; 1122 :     if (password != NULL)\r
6276 \r
6277   000dc 39 7d 40         cmp     DWORD PTR _password$[ebp], edi\r
6278   000df 74 07            je      SHORT $LN26@zipOpenNew\r
6279 \r
6280 ; 1123 :       zi->ci.flag |= 1;\r
6281 \r
6282   000e1 83 8b 98 00 00\r
6283         00 01            or      DWORD PTR [ebx+152], 1\r
6284 $LN26@zipOpenNew:\r
6285 \r
6286 ; 1124 : \r
6287 ; 1125 :     zi->ci.crc32 = 0;\r
6288 ; 1126 :     zi->ci.method = method;\r
6289 \r
6290   000e8 8b 45 28         mov     eax, DWORD PTR _method$[ebp]\r
6291 \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
6296 \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
6302 \r
6303 ; 1131 :     zi->ci.pos_local_header = ZTELL64(zi->z_filefunc,zi->filestream);\r
6304 \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
6318 \r
6319 ; 1132 : \r
6320 ; 1133 :     zi->ci.size_centralheader = SIZECENTRALHEADER + size_filename + size_extrafield_global + size_comment;\r
6321 \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
6328 \r
6329 ; 1134 :     zi->ci.size_centralExtraFree = 32; // Extra space we have reserved in case we need to add ZIP64 extra info data\r
6330 ; 1135 : \r
6331 ; 1136 :     zi->ci.central_header = (char*)ALLOC((uInt)zi->ci.size_centralheader + zi->ci.size_centralExtraFree);\r
6332 \r
6333   00136 83 c0 20         add     eax, 32                        ; 00000020H\r
6334   00139 50               push    eax\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
6340 \r
6341 ; 1137 : \r
6342 ; 1138 :     zi->ci.size_centralExtra = size_extrafield_global;\r
6343 ; 1139 :     zip64local_putValue_inmemory(zi->ci.central_header,(uLong)CENTRALHEADERMAGIC,4);\r
6344 \r
6345   0014d 57               push    edi\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
6354 \r
6355 ; 1140 :     /* version info */\r
6356 ; 1141 :     zip64local_putValue_inmemory(zi->ci.central_header+4,(uLong)versionMadeBy,2);\r
6357 \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
6363   00178 51               push    ecx\r
6364   00179 be 02 00 00 00   mov     esi, 2\r
6365   0017e e8 00 00 00 00   call    _zip64local_putValue_inmemory\r
6366 \r
6367 ; 1142 :     zip64local_putValue_inmemory(zi->ci.central_header+6,(uLong)20,2);\r
6368 \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
6375 \r
6376 ; 1143 :     zip64local_putValue_inmemory(zi->ci.central_header+8,(uLong)zi->ci.flag,2);\r
6377 \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
6383   001a3 52               push    edx\r
6384   001a4 83 c7 08         add     edi, 8\r
6385   001a7 e8 00 00 00 00   call    _zip64local_putValue_inmemory\r
6386 \r
6387 ; 1144 :     zip64local_putValue_inmemory(zi->ci.central_header+10,(uLong)zi->ci.method,2);\r
6388 \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
6394   001ba 50               push    eax\r
6395   001bb 83 c7 0a         add     edi, 10                        ; 0000000aH\r
6396   001be e8 00 00 00 00   call    _zip64local_putValue_inmemory\r
6397 \r
6398 ; 1145 :     zip64local_putValue_inmemory(zi->ci.central_header+12,(uLong)zi->ci.dosDate,4);\r
6399 \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
6405   001d1 51               push    ecx\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
6409 \r
6410 ; 1146 :     zip64local_putValue_inmemory(zi->ci.central_header+16,(uLong)0,4); /*crc*/\r
6411 \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
6418 \r
6419 ; 1147 :     zip64local_putValue_inmemory(zi->ci.central_header+20,(uLong)0,4); /*compr size*/\r
6420 \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
6427 \r
6428 ; 1148 :     zip64local_putValue_inmemory(zi->ci.central_header+24,(uLong)0,4); /*uncompr size*/\r
6429 \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
6437 \r
6438 ; 1149 :     zip64local_putValue_inmemory(zi->ci.central_header+28,(uLong)size_filename,2);\r
6439 \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
6444   00224 52               push    edx\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
6448 \r
6449 ; 1150 :     zip64local_putValue_inmemory(zi->ci.central_header+30,(uLong)size_extrafield_global,2);\r
6450 \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
6455   0023d 50               push    eax\r
6456   0023e 83 c7 1e         add     edi, 30                        ; 0000001eH\r
6457   00241 e8 00 00 00 00   call    _zip64local_putValue_inmemory\r
6458 \r
6459 ; 1151 :     zip64local_putValue_inmemory(zi->ci.central_header+32,(uLong)size_comment,2);\r
6460 \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
6465   00252 51               push    ecx\r
6466   00253 83 c7 20         add     edi, 32                        ; 00000020H\r
6467   00256 e8 00 00 00 00   call    _zip64local_putValue_inmemory\r
6468 \r
6469 ; 1152 :     zip64local_putValue_inmemory(zi->ci.central_header+34,(uLong)0,2); /*disk nm start*/\r
6470 \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
6477 \r
6478 ; 1153 : \r
6479 ; 1154 :     if (zipfi==NULL)\r
6480 ; 1155 :         zip64local_putValue_inmemory(zi->ci.central_header+36,(uLong)0,2);\r
6481 \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
6490   00282 50               push    eax\r
6491   00283 e8 00 00 00 00   call    _zip64local_putValue_inmemory\r
6492   00288 83 c4 08         add     esp, 8\r
6493 \r
6494 ; 1158 : \r
6495 ; 1159 :     if (zipfi==NULL)\r
6496 ; 1160 :         zip64local_putValue_inmemory(zi->ci.central_header+38,(uLong)0,4);\r
6497 \r
6498   0028b 6a 00            push    0\r
6499   0028d 6a 00            push    0\r
6500 \r
6501 ; 1161 :     else\r
6502 \r
6503   0028f eb 15            jmp     SHORT $LN62@zipOpenNew\r
6504 $LN25@zipOpenNew:\r
6505 \r
6506 ; 1156 :     else\r
6507 ; 1157 :         zip64local_putValue_inmemory(zi->ci.central_header+36,(uLong)zipfi->internal_fa,2);\r
6508 \r
6509   00291 8b 50 1c         mov     edx, DWORD PTR [eax+28]\r
6510   00294 52               push    edx\r
6511   00295 e8 00 00 00 00   call    _zip64local_putValue_inmemory\r
6512 \r
6513 ; 1162 :         zip64local_putValue_inmemory(zi->ci.central_header+38,(uLong)zipfi->external_fa,4);\r
6514 \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
6519   002a5 51               push    ecx\r
6520 $LN62@zipOpenNew:\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
6527 \r
6528 ; 1163 : \r
6529 ; 1164 :     if(zi->ci.pos_local_header >= 0xffffffff)\r
6530 \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
6537 $LN54@zipOpenNew:\r
6538 \r
6539 ; 1165 :       zip64local_putValue_inmemory(zi->ci.central_header+42,(uLong)0xffffffff,4);\r
6540 \r
6541   002ce 6a 00            push    0\r
6542   002d0 6a ff            push    -1\r
6543 \r
6544 ; 1166 :     else\r
6545 \r
6546   002d2 eb 16            jmp     SHORT $LN63@zipOpenNew\r
6547 $LN21@zipOpenNew:\r
6548 \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
6550 \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
6558   002e8 50               push    eax\r
6559   002e9 52               push    edx\r
6560 $LN63@zipOpenNew:\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
6566 \r
6567 ; 1168 : \r
6568 ; 1169 :     for (i=0;i<size_filename;i++)\r
6569 \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
6577 $LL19@zipOpenNew:\r
6578 \r
6579 ; 1170 :         *(zi->ci.central_header+SIZECENTRALHEADER+i) = *(filename+i);\r
6580 \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
6588   00328 40               inc     eax\r
6589   00329 3b c6            cmp     eax, esi\r
6590   0032b 72 e3            jb      SHORT $LL19@zipOpenNew\r
6591 $LN17@zipOpenNew:\r
6592 \r
6593 ; 1171 : \r
6594 ; 1172 :     for (i=0;i<size_extrafield_global;i++)\r
6595 \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
6600 $LN16@zipOpenNew:\r
6601 \r
6602 ; 1173 :         *(zi->ci.central_header+SIZECENTRALHEADER+size_filename+i) =\r
6603 ; 1174 :               *(((const char*)extrafield_global)+i);\r
6604 \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
6610   00344 40               inc     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
6614 \r
6615 ; 1171 : \r
6616 ; 1172 :     for (i=0;i<size_extrafield_global;i++)\r
6617 \r
6618   0034d 33 c9            xor     ecx, ecx\r
6619 $LN14@zipOpenNew:\r
6620 \r
6621 ; 1175 : \r
6622 ; 1176 :     for (i=0;i<size_comment;i++)\r
6623 \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
6629 $LL13@zipOpenNew:\r
6630 \r
6631 ; 1177 :         *(zi->ci.central_header+SIZECENTRALHEADER+size_filename+\r
6632 ; 1178 :               size_extrafield_global+i) = *(comment+i);\r
6633 \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
6640   00370 40               inc     eax\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
6644 \r
6645 ; 1175 : \r
6646 ; 1176 :     for (i=0;i<size_comment;i++)\r
6647 \r
6648   0037b 33 c9            xor     ecx, ecx\r
6649 $LN11@zipOpenNew:\r
6650 \r
6651 ; 1179 :     if (zi->ci.central_header == NULL)\r
6652 \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
6656 \r
6657 ; 1180 :         return ZIP_INTERNALERROR;\r
6658 \r
6659   00385 b8 98 ff ff ff   mov     eax, -104              ; ffffff98H\r
6660 \r
6661 ; 1263 : }\r
6662 \r
6663   0038a 5f               pop     edi\r
6664   0038b 5e               pop     esi\r
6665   0038c 5b               pop     ebx\r
6666   0038d 8b e5            mov     esp, ebp\r
6667   0038f 5d               pop     ebp\r
6668   00390 c2 4c 00         ret     76                     ; 0000004cH\r
6669 $LN10@zipOpenNew:\r
6670 \r
6671 ; 1181 : \r
6672 ; 1182 :     zi->ci.zip64 = zip64;\r
6673 \r
6674   00393 8b 45 50         mov     eax, DWORD PTR _zip64$[ebp]\r
6675 \r
6676 ; 1183 :     zi->ci.totalCompressedData = 0;\r
6677 ; 1184 :     zi->ci.totalUncompressedData = 0;\r
6678 ; 1185 :     zi->ci.pos_zip64extrainfo = 0;\r
6679 ; 1186 : \r
6680 ; 1187 :     err = Write_LocalFileHeader(zi, filename, size_extrafield_local, extrafield_local);\r
6681 \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
6696   003c0 51               push    ecx\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
6700   003ca 52               push    edx\r
6701   003cb 50               push    eax\r
6702   003cc 8b c3            mov     eax, ebx\r
6703   003ce e8 00 00 00 00   call    _Write_LocalFileHeader\r
6704 \r
6705 ; 1188 : \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
6714 ; 1197 : #endif\r
6715 ; 1198 : \r
6716 ; 1199 :     zi->ci.stream.avail_in = (uInt)0;\r
6717 \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
6721 \r
6722 ; 1200 :     zi->ci.stream.avail_out = (uInt)Z_BUFSIZE;\r
6723 ; 1201 :     zi->ci.stream.next_out = zi->ci.buffered_data;\r
6724 \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
6731 \r
6732 ; 1202 :     zi->ci.stream.total_in = 0;\r
6733 \r
6734   003ed 89 73 48         mov     DWORD PTR [ebx+72], esi\r
6735 \r
6736 ; 1203 :     zi->ci.stream.total_out = 0;\r
6737 \r
6738   003f0 89 73 54         mov     DWORD PTR [ebx+84], esi\r
6739 \r
6740 ; 1204 :     zi->ci.stream.data_type = Z_BINARY;\r
6741 \r
6742   003f3 89 73 6c         mov     DWORD PTR [ebx+108], esi\r
6743 \r
6744 ; 1205 : \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
6747 ; 1208 : #else\r
6748 ; 1209 :     if ((err==ZIP_OK) && (zi->ci.method == Z_DEFLATED) && (!zi->ci.raw))\r
6749 \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
6758 \r
6759 ; 1210 : #endif\r
6760 ; 1211 :     {\r
6761 ; 1212 :         if(zi->ci.method == Z_DEFLATED)\r
6762 ; 1213 :         {\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
6766 ; 1217 : \r
6767 ; 1218 :           if (windowBits>0)\r
6768 \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
6775 \r
6776 ; 1219 :               windowBits = -windowBits;\r
6777 \r
6778   0041b f7 d8            neg     eax\r
6779 $LN7@zipOpenNew:\r
6780 \r
6781 ; 1220 : \r
6782 ; 1221 :           err = deflateInit2(&zi->ci.stream, level, Z_DEFLATED, windowBits, memLevel, strategy);\r
6783 \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
6788   0042a 52               push    edx\r
6789   0042b 8b 55 2c         mov     edx, DWORD PTR _level$[ebp]\r
6790   0042e 51               push    ecx\r
6791   0042f 50               push    eax\r
6792   00430 6a 08            push    8\r
6793   00432 52               push    edx\r
6794   00433 8d 43 40         lea     eax, DWORD PTR [ebx+64]\r
6795   00436 50               push    eax\r
6796   00437 e8 00 00 00 00   call    _deflateInit2_@32\r
6797   0043c 8b f8            mov     edi, eax\r
6798 \r
6799 ; 1222 : \r
6800 ; 1223 :           if (err==Z_OK)\r
6801 \r
6802   0043e 3b fe            cmp     edi, esi\r
6803   00440 75 07            jne     SHORT $LN6@zipOpenNew\r
6804 \r
6805 ; 1224 :               zi->ci.stream_initialised = Z_DEFLATED;\r
6806 \r
6807   00442 c7 43 78 08 00\r
6808         00 00            mov     DWORD PTR [ebx+120], 8\r
6809 $LN6@zipOpenNew:\r
6810 \r
6811 ; 1225 :         }\r
6812 ; 1226 :         else if(zi->ci.method == Z_BZIP2ED)\r
6813 ; 1227 :         {\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
6819 ; 1233 : \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
6823 ; 1237 : #endif\r
6824 ; 1238 :         }\r
6825 ; 1239 : \r
6826 ; 1240 :     }\r
6827 ; 1241 : \r
6828 ; 1242 : #    ifndef NOCRYPT\r
6829 ; 1243 :     zi->ci.crypt_header_size = 0;\r
6830 \r
6831   00449 89 b3 e0 00 01\r
6832         00               mov     DWORD PTR [ebx+65760], esi\r
6833 \r
6834 ; 1244 :     if ((err==Z_OK) && (password != NULL))\r
6835 \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
6841 \r
6842 ; 1245 :     {\r
6843 ; 1246 :         unsigned char bufHead[RAND_HEAD_LEN];\r
6844 ; 1247 :         unsigned int sizeHead;\r
6845 ; 1248 :         zi->ci.encrypt = 1;\r
6846 \r
6847   0045a c7 83 ac 00 01\r
6848         00 01 00 00 00   mov     DWORD PTR [ebx+65708], 1\r
6849 \r
6850 ; 1249 :         zi->ci.pcrc_32_tab = get_crc_table();\r
6851 \r
6852   00464 e8 00 00 00 00   call    _get_crc_table@0\r
6853 \r
6854 ; 1250 :         /*init_keys(password,zi->ci.keys,zi->ci.pcrc_32_tab);*/\r
6855 ; 1251 : \r
6856 ; 1252 :         sizeHead=crypthead(password,bufHead,RAND_HEAD_LEN,zi->ci.keys,zi->ci.pcrc_32_tab,crcForCrypting);\r
6857 \r
6858   00469 8b 4d 44         mov     ecx, DWORD PTR _crcForCrypting$[ebp]\r
6859   0046c 51               push    ecx\r
6860   0046d 8d 74 24 18      lea     esi, DWORD PTR _bufHead$83245[esp+36]\r
6861   00471 56               push    esi\r
6862   00472 8d 8b d0 00 01\r
6863         00               lea     ecx, DWORD PTR [ebx+65744]\r
6864   00478 52               push    edx\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
6868 \r
6869 ; 1253 :         zi->ci.crypt_header_size = sizeHead;\r
6870 ; 1254 : \r
6871 ; 1255 :         if (ZWRITE64(zi->z_filefunc,zi->filestream,bufHead,sizeHead) != sizeHead)\r
6872 \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
6877   0048f 56               push    esi\r
6878   00490 8d 54 24 18      lea     edx, DWORD PTR _bufHead$83245[esp+36]\r
6879   00494 52               push    edx\r
6880   00495 8b 53 08         mov     edx, DWORD PTR [ebx+8]\r
6881   00498 50               push    eax\r
6882   00499 51               push    ecx\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
6889 \r
6890 ; 1256 :                 err = ZIP_ERRNO;\r
6891 \r
6892   004a9 83 cf ff         or      edi, -1\r
6893 \r
6894 ; 1262 :     return err;\r
6895 \r
6896   004ac 8b c7            mov     eax, edi\r
6897 \r
6898 ; 1263 : }\r
6899 \r
6900   004ae 5f               pop     edi\r
6901   004af 5e               pop     esi\r
6902   004b0 5b               pop     ebx\r
6903   004b1 8b e5            mov     esp, ebp\r
6904   004b3 5d               pop     ebp\r
6905   004b4 c2 4c 00         ret     76                     ; 0000004cH\r
6906 $LN51@zipOpenNew:\r
6907 \r
6908 ; 1257 :     }\r
6909 ; 1258 : #    endif\r
6910 ; 1259 : \r
6911 ; 1260 :     if (err==Z_OK)\r
6912 ; 1261 :         zi->in_opened_file_inzip = 1;\r
6913 \r
6914   004b7 c7 43 38 01 00\r
6915         00 00            mov     DWORD PTR [ebx+56], 1\r
6916 $LN1@zipOpenNew:\r
6917 \r
6918 ; 1262 :     return err;\r
6919 \r
6920   004be 8b c7            mov     eax, edi\r
6921 $LN42@zipOpenNew:\r
6922 \r
6923 ; 1263 : }\r
6924 \r
6925   004c0 5f               pop     edi\r
6926   004c1 5e               pop     esi\r
6927   004c2 5b               pop     ebx\r
6928   004c3 8b e5            mov     esp, ebp\r
6929   004c5 5d               pop     ebp\r
6930   004c6 c2 4c 00         ret     76                     ; 0000004cH\r
6931 _zipOpenNewFileInZip4_64@76 ENDP\r
6932 _TEXT   ENDS\r
6933 PUBLIC  _zipOpen64@8\r
6934 ; Function compile flags: /Ogtp\r
6935 ;       COMDAT _zipOpen64@8\r
6936 _TEXT   SEGMENT\r
6937 _pathname$ = 8                                          ; size = 4\r
6938 _append$ = 12                                           ; size = 4\r
6939 _zipOpen64@8 PROC                                       ; COMDAT\r
6940 \r
6941 ; 954  : {\r
6942 \r
6943   00000 55               push    ebp\r
6944   00001 8b ec            mov     ebp, esp\r
6945 \r
6946 ; 955  :     return zipOpen3(pathname,append,NULL,NULL);\r
6947 \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
6951   0000b 50               push    eax\r
6952   0000c 51               push    ecx\r
6953   0000d 33 c9            xor     ecx, ecx\r
6954   0000f e8 00 00 00 00   call    _zipOpen3@16\r
6955 \r
6956 ; 956  : }\r
6957 \r
6958   00014 5d               pop     ebp\r
6959   00015 c2 08 00         ret     8\r
6960 _zipOpen64@8 ENDP\r
6961 _TEXT   ENDS\r
6962 PUBLIC  _zipOpen@8\r
6963 ; Function compile flags: /Ogtp\r
6964 ;       COMDAT _zipOpen@8\r
6965 _TEXT   SEGMENT\r
6966 _pathname$ = 8                                          ; size = 4\r
6967 _append$ = 12                                           ; size = 4\r
6968 _zipOpen@8 PROC                                         ; COMDAT\r
6969 \r
6970 ; 949  : {\r
6971 \r
6972   00000 55               push    ebp\r
6973   00001 8b ec            mov     ebp, esp\r
6974 \r
6975 ; 950  :     return zipOpen3((const void*)pathname,append,NULL,NULL);\r
6976 \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
6980   0000b 50               push    eax\r
6981   0000c 51               push    ecx\r
6982   0000d 33 c9            xor     ecx, ecx\r
6983   0000f e8 00 00 00 00   call    _zipOpen3@16\r
6984 \r
6985 ; 951  : }\r
6986 \r
6987   00014 5d               pop     ebp\r
6988   00015 c2 08 00         ret     8\r
6989 _zipOpen@8 ENDP\r
6990 _TEXT   ENDS\r
6991 PUBLIC  _zipOpen2_64@16\r
6992 ; Function compile flags: /Ogtp\r
6993 ;       COMDAT _zipOpen2_64@16\r
6994 _TEXT   SEGMENT\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
7001 \r
7002 ; 933  : {\r
7003 \r
7004   00000 55               push    ebp\r
7005   00001 8b ec            mov     ebp, esp\r
7006   00003 83 e4 f8         and     esp, -8                        ; fffffff8H\r
7007 \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
7011 \r
7012   00006 8b 55 08         mov     edx, DWORD PTR _pathname$[ebp]\r
7013   00009 83 ec 30         sub     esp, 48                        ; 00000030H\r
7014   0000c 56               push    esi\r
7015   0000d 8b 75 14         mov     esi, DWORD PTR _pzlib_filefunc_def$[ebp]\r
7016   00010 33 c0            xor     eax, eax\r
7017   00012 57               push    edi\r
7018   00013 3b f0            cmp     esi, eax\r
7019   00015 74 2d            je      SHORT $LN2@zipOpen2_6\r
7020 \r
7021 ; 934  :     if (pzlib_filefunc_def != NULL)\r
7022 ; 935  :     {\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
7025 \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
7029 \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
7033 \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
7038   00030 50               push    eax\r
7039   00031 51               push    ecx\r
7040   00032 8d 4c 24 14      lea     ecx, DWORD PTR _zlib_filefunc64_32_def_fill$83043[esp+64]\r
7041 \r
7042 ; 941  :     }\r
7043 ; 942  :     else\r
7044 ; 943  :         return zipOpen3(pathname, append, globalcomment, NULL);\r
7045 \r
7046   00036 52               push    edx\r
7047   00037 e8 00 00 00 00   call    _zipOpen3@16\r
7048 \r
7049 ; 944  : }\r
7050 \r
7051   0003c 5f               pop     edi\r
7052   0003d 5e               pop     esi\r
7053   0003e 8b e5            mov     esp, ebp\r
7054   00040 5d               pop     ebp\r
7055   00041 c2 10 00         ret     16                     ; 00000010H\r
7056 $LN2@zipOpen2_6:\r
7057 \r
7058 ; 941  :     }\r
7059 ; 942  :     else\r
7060 ; 943  :         return zipOpen3(pathname, append, globalcomment, NULL);\r
7061 \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
7064   0004a 50               push    eax\r
7065   0004b 51               push    ecx\r
7066   0004c 33 c9            xor     ecx, ecx\r
7067   0004e 52               push    edx\r
7068   0004f e8 00 00 00 00   call    _zipOpen3@16\r
7069 \r
7070 ; 944  : }\r
7071 \r
7072   00054 5f               pop     edi\r
7073   00055 5e               pop     esi\r
7074   00056 8b e5            mov     esp, ebp\r
7075   00058 5d               pop     ebp\r
7076   00059 c2 10 00         ret     16                     ; 00000010H\r
7077 _zipOpen2_64@16 ENDP\r
7078 _TEXT   ENDS\r
7079 PUBLIC  _zipOpen2@16\r
7080 ; Function compile flags: /Ogtp\r
7081 ;       COMDAT _zipOpen2@16\r
7082 _TEXT   SEGMENT\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
7089 \r
7090 ; 921  : {\r
7091 \r
7092   00000 55               push    ebp\r
7093   00001 8b ec            mov     ebp, esp\r
7094   00003 83 e4 f8         and     esp, -8                        ; fffffff8H\r
7095 \r
7096 ; 922  :     if (pzlib_filefunc32_def != NULL)\r
7097 \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
7102 \r
7103 ; 923  :     {\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
7106 \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
7109 \r
7110 ; 926  :         return zipOpen3(pathname, append, globalcomment, &zlib_filefunc64_32_def_fill);\r
7111 \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
7114 \r
7115 ; 927  :     }\r
7116 ; 928  :     else\r
7117 ; 929  :         return zipOpen3(pathname, append, globalcomment, NULL);\r
7118 \r
7119   0001f 8b 55 08         mov     edx, DWORD PTR _pathname$[ebp]\r
7120   00022 50               push    eax\r
7121   00023 51               push    ecx\r
7122   00024 8d 4c 24 0c      lea     ecx, DWORD PTR _zlib_filefunc64_32_def_fill$83029[esp+56]\r
7123   00028 52               push    edx\r
7124   00029 e8 00 00 00 00   call    _zipOpen3@16\r
7125 \r
7126 ; 930  : }\r
7127 \r
7128   0002e 8b e5            mov     esp, ebp\r
7129   00030 5d               pop     ebp\r
7130   00031 c2 10 00         ret     16                     ; 00000010H\r
7131 $LN2@zipOpen2:\r
7132 \r
7133 ; 927  :     }\r
7134 ; 928  :     else\r
7135 ; 929  :         return zipOpen3(pathname, append, globalcomment, NULL);\r
7136 \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
7140   0003d 50               push    eax\r
7141   0003e 51               push    ecx\r
7142   0003f 33 c9            xor     ecx, ecx\r
7143   00041 52               push    edx\r
7144   00042 e8 00 00 00 00   call    _zipOpen3@16\r
7145 \r
7146 ; 930  : }\r
7147 \r
7148   00047 8b e5            mov     esp, ebp\r
7149   00049 5d               pop     ebp\r
7150   0004a c2 10 00         ret     16                     ; 00000010H\r
7151 _zipOpen2@16 ENDP\r
7152 PUBLIC  _zipClose@8\r
7153 ; Function compile flags: /Ogtp\r
7154 ;       COMDAT _zipClose@8\r
7155 _TEXT   SEGMENT\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
7162 \r
7163 ; 1883 : {\r
7164 \r
7165   00000 55               push    ebp\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
7169   00009 53               push    ebx\r
7170   0000a 56               push    esi\r
7171   0000b 57               push    edi\r
7172 \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
7178 ; 1889 : \r
7179 ; 1890 :     if (file == NULL)\r
7180 \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
7186 \r
7187 ; 1891 :         return ZIP_PARAMERROR;\r
7188 \r
7189   00019 8d 43 9a         lea     eax, DWORD PTR [ebx-102]\r
7190 \r
7191 ; 1947 : \r
7192 ; 1948 :     return err;\r
7193 ; 1949 : }\r
7194 \r
7195   0001c 5f               pop     edi\r
7196   0001d 5e               pop     esi\r
7197   0001e 5b               pop     ebx\r
7198   0001f 8b e5            mov     esp, ebp\r
7199   00021 5d               pop     ebp\r
7200   00022 c2 08 00         ret     8\r
7201 $LN16@zipClose:\r
7202 \r
7203 ; 1892 : \r
7204 ; 1893 :     zi = (zip64_internal*)file;\r
7205 ; 1894 : \r
7206 ; 1895 :     if (zi->in_opened_file_inzip == 1)\r
7207 \r
7208   00025 83 7f 38 01      cmp     DWORD PTR [edi+56], 1\r
7209   00029 75 08            jne     SHORT $LN15@zipClose\r
7210 \r
7211 ; 1896 :     {\r
7212 ; 1897 :         err = zipCloseFileInZip (file);\r
7213 \r
7214   0002b 57               push    edi\r
7215   0002c e8 00 00 00 00   call    _zipCloseFileInZip@4\r
7216   00031 8b d8            mov     ebx, eax\r
7217 $LN15@zipClose:\r
7218 \r
7219 ; 1898 :     }\r
7220 ; 1899 : \r
7221 ; 1900 : #ifndef NO_ADDFILEINEXISTINGZIP\r
7222 ; 1901 :     if (global_comment==NULL)\r
7223 \r
7224   00033 83 7d 0c 00      cmp     DWORD PTR _global_comment$[ebp], 0\r
7225   00037 75 09            jne     SHORT $LN14@zipClose\r
7226 \r
7227 ; 1902 :         global_comment = zi->globalcomment;\r
7228 \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
7232 $LN14@zipClose:\r
7233 \r
7234 ; 1903 : #endif\r
7235 ; 1904 : \r
7236 ; 1905 :     centraldir_pos_inzip = ZTELL64(zi->z_filefunc,zi->filestream);\r
7237 \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
7243 \r
7244 ; 1906 : \r
7245 ; 1907 :     if (err==ZIP_OK)\r
7246 \r
7247   00054 85 db            test    ebx, ebx\r
7248   00056 75 3d            jne     SHORT $LN11@zipClose\r
7249 \r
7250 ; 1908 :     {\r
7251 ; 1909 :         linkedlist_datablock_internal* ldi = zi->central_dir.first_block;\r
7252 \r
7253   00058 8b 77 30         mov     esi, DWORD PTR [edi+48]\r
7254 \r
7255 ; 1910 :         while (ldi!=NULL)\r
7256 \r
7257   0005b 85 f6            test    esi, esi\r
7258   0005d 74 36            je      SHORT $LN11@zipClose\r
7259   0005f 90               npad    1\r
7260 $LL12@zipClose:\r
7261 \r
7262 ; 1911 :         {\r
7263 ; 1912 :             if ((err==ZIP_OK) && (ldi->filled_in_this_block>0))\r
7264 \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
7270 \r
7271 ; 1913 :             {\r
7272 ; 1914 :                 if (ZWRITE64(zi->z_filefunc,zi->filestream, ldi->data, ldi->filled_in_this_block) != ldi->filled_in_this_block)\r
7273 \r
7274   0006b 8b 57 2c         mov     edx, DWORD PTR [edi+44]\r
7275   0006e 50               push    eax\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
7278   00075 51               push    ecx\r
7279   00076 8b 4f 08         mov     ecx, DWORD PTR [edi+8]\r
7280   00079 52               push    edx\r
7281   0007a 50               push    eax\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
7286 \r
7287 ; 1915 :                     err = ZIP_ERRNO;\r
7288 \r
7289   00085 83 cb ff         or      ebx, -1\r
7290 $LN9@zipClose:\r
7291 \r
7292 ; 1916 :             }\r
7293 ; 1917 : \r
7294 ; 1918 :             size_centraldir += ldi->filled_in_this_block;\r
7295 \r
7296   00088 8b 56 08         mov     edx, DWORD PTR [esi+8]\r
7297 \r
7298 ; 1919 :             ldi = ldi->next_datablock;\r
7299 \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
7304 $LN11@zipClose:\r
7305 \r
7306 ; 1920 :         }\r
7307 ; 1921 :     }\r
7308 ; 1922 :     free_linkedlist(&(zi->central_dir));\r
7309 \r
7310   00095 8d 77 30         lea     esi, DWORD PTR [edi+48]\r
7311   00098 e8 00 00 00 00   call    _free_linkedlist\r
7312 \r
7313 ; 1923 : \r
7314 ; 1924 :     pos = centraldir_pos_inzip - zi->add_position_when_writting_offset;\r
7315 \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
7323 \r
7324 ; 1925 :     if(pos >= 0xffffffff || zi->number_entry > 0xFFFF)\r
7325 \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
7331 $LN21@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
7338 $LN22@zipClose:\r
7339 \r
7340 ; 1926 :     {\r
7341 ; 1927 :       ZPOS64_T Zip64EOCDpos = ZTELL64(zi->z_filefunc,zi->filestream);\r
7342 \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
7346 \r
7347 ; 1928 :       Write_Zip64EndOfCentralDirectoryRecord(zi, size_centraldir, centraldir_pos_inzip);\r
7348 \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
7352   000e9 50               push    eax\r
7353   000ea 56               push    esi\r
7354   000eb 51               push    ecx\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
7358 \r
7359 ; 1929 : \r
7360 ; 1930 :       Write_Zip64EndOfCentralDirectoryLocator(zi, Zip64EOCDpos);\r
7361 \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
7365   00102 52               push    edx\r
7366   00103 50               push    eax\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
7370 $LN8@zipClose:\r
7371 \r
7372 ; 1931 :     }\r
7373 ; 1932 : \r
7374 ; 1933 :     if (err==ZIP_OK)\r
7375 \r
7376   0010e 85 db            test    ebx, ebx\r
7377   00110 75 2b            jne     SHORT $LN5@zipClose\r
7378 \r
7379 ; 1934 :       err = Write_EndOfCentralDirectoryRecord(zi, size_centraldir, centraldir_pos_inzip);\r
7380 \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
7383   0011a 51               push    ecx\r
7384   0011b 56               push    esi\r
7385   0011c 52               push    edx\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
7390 \r
7391 ; 1935 : \r
7392 ; 1936 :     if(err == ZIP_OK)\r
7393 \r
7394   00129 85 db            test    ebx, ebx\r
7395   0012b 75 10            jne     SHORT $LN5@zipClose\r
7396 \r
7397 ; 1937 :       err = Write_GlobalComment(zi, global_comment);\r
7398 \r
7399   0012d 8b 45 0c         mov     eax, DWORD PTR _global_comment$[ebp]\r
7400   00130 50               push    eax\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
7405 $LN5@zipClose:\r
7406 \r
7407 ; 1938 : \r
7408 ; 1939 :     if (ZCLOSE64(zi->z_filefunc,zi->filestream) != 0)\r
7409 \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
7413   00146 51               push    ecx\r
7414   00147 52               push    edx\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
7419 \r
7420 ; 1940 :         if (err == ZIP_OK)\r
7421 \r
7422   00151 85 db            test    ebx, ebx\r
7423   00153 75 03            jne     SHORT $LN3@zipClose\r
7424 \r
7425 ; 1941 :             err = ZIP_ERRNO;\r
7426 \r
7427   00155 83 cb ff         or      ebx, -1\r
7428 $LN3@zipClose:\r
7429 \r
7430 ; 1942 : \r
7431 ; 1943 : #ifndef NO_ADDFILEINEXISTINGZIP\r
7432 ; 1944 :     TRYFREE(zi->globalcomment);\r
7433 \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
7440   00168 50               push    eax\r
7441   00169 ff d6            call    esi\r
7442   0016b 83 c4 04         add     esp, 4\r
7443 $LN2@zipClose:\r
7444 \r
7445 ; 1945 : #endif\r
7446 ; 1946 :     TRYFREE(zi);\r
7447 \r
7448   0016e 57               push    edi\r
7449   0016f ff d6            call    esi\r
7450   00171 83 c4 04         add     esp, 4\r
7451 \r
7452 ; 1947 : \r
7453 ; 1948 :     return err;\r
7454 ; 1949 : }\r
7455 \r
7456   00174 5f               pop     edi\r
7457   00175 5e               pop     esi\r
7458   00176 8b c3            mov     eax, ebx\r
7459   00178 5b               pop     ebx\r
7460   00179 8b e5            mov     esp, ebp\r
7461   0017b 5d               pop     ebp\r
7462   0017c c2 08 00         ret     8\r
7463 _zipClose@8 ENDP\r
7464 _TEXT   ENDS\r
7465 PUBLIC  _zipOpenNewFileInZip@40\r
7466 ; Function compile flags: /Ogtp\r
7467 ;       COMDAT _zipOpenNewFileInZip@40\r
7468 _TEXT   SEGMENT\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
7480 \r
7481 ; 1354 : {\r
7482 \r
7483   00000 55               push    ebp\r
7484   00001 8b ec            mov     ebp, esp\r
7485 \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
7492 \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
7505   0001e 50               push    eax\r
7506   0001f 8b 45 20         mov     eax, DWORD PTR _size_extrafield_global$[ebp]\r
7507   00022 51               push    ecx\r
7508   00023 8b 4d 1c         mov     ecx, DWORD PTR _extrafield_global$[ebp]\r
7509   00026 52               push    edx\r
7510   00027 8b 55 18         mov     edx, DWORD PTR _size_extrafield_local$[ebp]\r
7511   0002a 50               push    eax\r
7512   0002b 8b 45 14         mov     eax, DWORD PTR _extrafield_local$[ebp]\r
7513   0002e 51               push    ecx\r
7514   0002f 8b 4d 10         mov     ecx, DWORD PTR _zipfi$[ebp]\r
7515   00032 52               push    edx\r
7516   00033 8b 55 0c         mov     edx, DWORD PTR _filename$[ebp]\r
7517   00036 50               push    eax\r
7518   00037 8b 45 08         mov     eax, DWORD PTR _file$[ebp]\r
7519   0003a 51               push    ecx\r
7520   0003b 52               push    edx\r
7521   0003c 50               push    eax\r
7522   0003d e8 00 00 00 00   call    _zipOpenNewFileInZip4_64@76\r
7523 \r
7524 ; 1361 : }\r
7525 \r
7526   00042 5d               pop     ebp\r
7527   00043 c2 28 00         ret     40                     ; 00000028H\r
7528 _zipOpenNewFileInZip@40 ENDP\r
7529 _TEXT   ENDS\r
7530 PUBLIC  _zipOpenNewFileInZip64@44\r
7531 ; Function compile flags: /Ogtp\r
7532 ;       COMDAT _zipOpenNewFileInZip64@44\r
7533 _TEXT   SEGMENT\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
7546 \r
7547 ; 1341 : {\r
7548 \r
7549   00000 55               push    ebp\r
7550   00001 8b ec            mov     ebp, esp\r
7551 \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
7558 \r
7559   00003 8b 45 30         mov     eax, DWORD PTR _zip64$[ebp]\r
7560   00006 50               push    eax\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
7572   00020 51               push    ecx\r
7573   00021 8b 4d 20         mov     ecx, DWORD PTR _size_extrafield_global$[ebp]\r
7574   00024 52               push    edx\r
7575   00025 8b 55 1c         mov     edx, DWORD PTR _extrafield_global$[ebp]\r
7576   00028 50               push    eax\r
7577   00029 8b 45 18         mov     eax, DWORD PTR _size_extrafield_local$[ebp]\r
7578   0002c 51               push    ecx\r
7579   0002d 8b 4d 14         mov     ecx, DWORD PTR _extrafield_local$[ebp]\r
7580   00030 52               push    edx\r
7581   00031 8b 55 10         mov     edx, DWORD PTR _zipfi$[ebp]\r
7582   00034 50               push    eax\r
7583   00035 8b 45 0c         mov     eax, DWORD PTR _filename$[ebp]\r
7584   00038 51               push    ecx\r
7585   00039 8b 4d 08         mov     ecx, DWORD PTR _file$[ebp]\r
7586   0003c 52               push    edx\r
7587   0003d 50               push    eax\r
7588   0003e 51               push    ecx\r
7589   0003f e8 00 00 00 00   call    _zipOpenNewFileInZip4_64@76\r
7590 \r
7591 ; 1348 : }\r
7592 \r
7593   00044 5d               pop     ebp\r
7594   00045 c2 2c 00         ret     44                     ; 0000002cH\r
7595 _zipOpenNewFileInZip64@44 ENDP\r
7596 _TEXT   ENDS\r
7597 PUBLIC  _zipOpenNewFileInZip2_64@48\r
7598 ; Function compile flags: /Ogtp\r
7599 ;       COMDAT _zipOpenNewFileInZip2_64@48\r
7600 _TEXT   SEGMENT\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
7614 \r
7615 ; 1328 : {\r
7616 \r
7617   00000 55               push    ebp\r
7618   00001 8b ec            mov     ebp, esp\r
7619 \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
7626 \r
7627   00003 8b 45 34         mov     eax, DWORD PTR _zip64$[ebp]\r
7628   00006 50               push    eax\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
7639   0001e 51               push    ecx\r
7640   0001f 8b 4d 24         mov     ecx, DWORD PTR _comment$[ebp]\r
7641   00022 52               push    edx\r
7642   00023 8b 55 20         mov     edx, DWORD PTR _size_extrafield_global$[ebp]\r
7643   00026 50               push    eax\r
7644   00027 8b 45 1c         mov     eax, DWORD PTR _extrafield_global$[ebp]\r
7645   0002a 51               push    ecx\r
7646   0002b 8b 4d 18         mov     ecx, DWORD PTR _size_extrafield_local$[ebp]\r
7647   0002e 52               push    edx\r
7648   0002f 8b 55 14         mov     edx, DWORD PTR _extrafield_local$[ebp]\r
7649   00032 50               push    eax\r
7650   00033 8b 45 10         mov     eax, DWORD PTR _zipfi$[ebp]\r
7651   00036 51               push    ecx\r
7652   00037 8b 4d 0c         mov     ecx, DWORD PTR _filename$[ebp]\r
7653   0003a 52               push    edx\r
7654   0003b 8b 55 08         mov     edx, DWORD PTR _file$[ebp]\r
7655   0003e 50               push    eax\r
7656   0003f 51               push    ecx\r
7657   00040 52               push    edx\r
7658   00041 e8 00 00 00 00   call    _zipOpenNewFileInZip4_64@76\r
7659 \r
7660 ; 1335 : }\r
7661 \r
7662   00046 5d               pop     ebp\r
7663   00047 c2 30 00         ret     48                     ; 00000030H\r
7664 _zipOpenNewFileInZip2_64@48 ENDP\r
7665 _TEXT   ENDS\r
7666 PUBLIC  _zipOpenNewFileInZip2@44\r
7667 ; Function compile flags: /Ogtp\r
7668 ;       COMDAT _zipOpenNewFileInZip2@44\r
7669 _TEXT   SEGMENT\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
7682 \r
7683 ; 1315 : {\r
7684 \r
7685   00000 55               push    ebp\r
7686   00001 8b ec            mov     ebp, esp\r
7687 \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
7694 \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
7706   0001c 50               push    eax\r
7707   0001d 8b 45 24         mov     eax, DWORD PTR _comment$[ebp]\r
7708   00020 51               push    ecx\r
7709   00021 8b 4d 20         mov     ecx, DWORD PTR _size_extrafield_global$[ebp]\r
7710   00024 52               push    edx\r
7711   00025 8b 55 1c         mov     edx, DWORD PTR _extrafield_global$[ebp]\r
7712   00028 50               push    eax\r
7713   00029 8b 45 18         mov     eax, DWORD PTR _size_extrafield_local$[ebp]\r
7714   0002c 51               push    ecx\r
7715   0002d 8b 4d 14         mov     ecx, DWORD PTR _extrafield_local$[ebp]\r
7716   00030 52               push    edx\r
7717   00031 8b 55 10         mov     edx, DWORD PTR _zipfi$[ebp]\r
7718   00034 50               push    eax\r
7719   00035 8b 45 0c         mov     eax, DWORD PTR _filename$[ebp]\r
7720   00038 51               push    ecx\r
7721   00039 8b 4d 08         mov     ecx, DWORD PTR _file$[ebp]\r
7722   0003c 52               push    edx\r
7723   0003d 50               push    eax\r
7724   0003e 51               push    ecx\r
7725   0003f e8 00 00 00 00   call    _zipOpenNewFileInZip4_64@76\r
7726 \r
7727 ; 1322 : }\r
7728 \r
7729   00044 5d               pop     ebp\r
7730   00045 c2 2c 00         ret     44                     ; 0000002cH\r
7731 _zipOpenNewFileInZip2@44 ENDP\r
7732 _TEXT   ENDS\r
7733 PUBLIC  _zipOpenNewFileInZip3_64@68\r
7734 ; Function compile flags: /Ogtp\r
7735 ;       COMDAT _zipOpenNewFileInZip3_64@68\r
7736 _TEXT   SEGMENT\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
7755 \r
7756 ; 1302 : {\r
7757 \r
7758   00000 55               push    ebp\r
7759   00001 8b ec            mov     ebp, esp\r
7760 \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
7767 \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
7771   0000c 50               push    eax\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
7775   00014 51               push    ecx\r
7776   00015 8b 4d 38         mov     ecx, DWORD PTR _memLevel$[ebp]\r
7777   00018 52               push    edx\r
7778   00019 8b 55 34         mov     edx, DWORD PTR _windowBits$[ebp]\r
7779   0001c 50               push    eax\r
7780   0001d 8b 45 30         mov     eax, DWORD PTR _raw$[ebp]\r
7781   00020 51               push    ecx\r
7782   00021 8b 4d 2c         mov     ecx, DWORD PTR _level$[ebp]\r
7783   00024 52               push    edx\r
7784   00025 8b 55 28         mov     edx, DWORD PTR _method$[ebp]\r
7785   00028 50               push    eax\r
7786   00029 8b 45 24         mov     eax, DWORD PTR _comment$[ebp]\r
7787   0002c 51               push    ecx\r
7788   0002d 8b 4d 20         mov     ecx, DWORD PTR _size_extrafield_global$[ebp]\r
7789   00030 52               push    edx\r
7790   00031 8b 55 1c         mov     edx, DWORD PTR _extrafield_global$[ebp]\r
7791   00034 50               push    eax\r
7792   00035 8b 45 18         mov     eax, DWORD PTR _size_extrafield_local$[ebp]\r
7793   00038 51               push    ecx\r
7794   00039 8b 4d 14         mov     ecx, DWORD PTR _extrafield_local$[ebp]\r
7795   0003c 52               push    edx\r
7796   0003d 8b 55 10         mov     edx, DWORD PTR _zipfi$[ebp]\r
7797   00040 50               push    eax\r
7798   00041 8b 45 0c         mov     eax, DWORD PTR _filename$[ebp]\r
7799   00044 51               push    ecx\r
7800   00045 8b 4d 08         mov     ecx, DWORD PTR _file$[ebp]\r
7801   00048 52               push    edx\r
7802   00049 50               push    eax\r
7803   0004a 51               push    ecx\r
7804   0004b e8 00 00 00 00   call    _zipOpenNewFileInZip4_64@76\r
7805 \r
7806 ; 1309 : }\r
7807 \r
7808   00050 5d               pop     ebp\r
7809   00051 c2 44 00         ret     68                     ; 00000044H\r
7810 _zipOpenNewFileInZip3_64@68 ENDP\r
7811 _TEXT   ENDS\r
7812 PUBLIC  _zipOpenNewFileInZip3@64\r
7813 ; Function compile flags: /Ogtp\r
7814 ;       COMDAT _zipOpenNewFileInZip3@64\r
7815 _TEXT   SEGMENT\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
7833 \r
7834 ; 1287 : {\r
7835 \r
7836   00000 55               push    ebp\r
7837   00001 8b ec            mov     ebp, esp\r
7838 \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
7845 \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
7852   00012 50               push    eax\r
7853   00013 8b 45 38         mov     eax, DWORD PTR _memLevel$[ebp]\r
7854   00016 51               push    ecx\r
7855   00017 8b 4d 34         mov     ecx, DWORD PTR _windowBits$[ebp]\r
7856   0001a 52               push    edx\r
7857   0001b 8b 55 30         mov     edx, DWORD PTR _raw$[ebp]\r
7858   0001e 50               push    eax\r
7859   0001f 8b 45 2c         mov     eax, DWORD PTR _level$[ebp]\r
7860   00022 51               push    ecx\r
7861   00023 8b 4d 28         mov     ecx, DWORD PTR _method$[ebp]\r
7862   00026 52               push    edx\r
7863   00027 8b 55 24         mov     edx, DWORD PTR _comment$[ebp]\r
7864   0002a 50               push    eax\r
7865   0002b 8b 45 20         mov     eax, DWORD PTR _size_extrafield_global$[ebp]\r
7866   0002e 51               push    ecx\r
7867   0002f 8b 4d 1c         mov     ecx, DWORD PTR _extrafield_global$[ebp]\r
7868   00032 52               push    edx\r
7869   00033 8b 55 18         mov     edx, DWORD PTR _size_extrafield_local$[ebp]\r
7870   00036 50               push    eax\r
7871   00037 8b 45 14         mov     eax, DWORD PTR _extrafield_local$[ebp]\r
7872   0003a 51               push    ecx\r
7873   0003b 8b 4d 10         mov     ecx, DWORD PTR _zipfi$[ebp]\r
7874   0003e 52               push    edx\r
7875   0003f 8b 55 0c         mov     edx, DWORD PTR _filename$[ebp]\r
7876   00042 50               push    eax\r
7877   00043 8b 45 08         mov     eax, DWORD PTR _file$[ebp]\r
7878   00046 51               push    ecx\r
7879   00047 52               push    edx\r
7880   00048 50               push    eax\r
7881   00049 e8 00 00 00 00   call    _zipOpenNewFileInZip4_64@76\r
7882 \r
7883 ; 1294 : }\r
7884 \r
7885   0004e 5d               pop     ebp\r
7886   0004f c2 40 00         ret     64                     ; 00000040H\r
7887 _zipOpenNewFileInZip3@64 ENDP\r
7888 END\r