]> gerrit.simantics Code Review - simantics/sysdyn.git/blob
c14af8d3e636c01ee816a8853099e1a91e13ad68
[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\ioapi.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  ??_C@_02JDPG@rb?$AA@                            ; `string'\r
12 PUBLIC  ??_C@_03HMFOOINA@r?$CLb?$AA@                    ; `string'\r
13 PUBLIC  ??_C@_02GMLFBBN@wb?$AA@                         ; `string'\r
14 EXTRN   __imp__ftell:PROC\r
15 EXTRN   __imp__fseek:PROC\r
16 EXTRN   __imp__fread:PROC\r
17 EXTRN   __imp__fwrite:PROC\r
18 EXTRN   __imp___ftelli64:PROC\r
19 EXTRN   __imp___fseeki64:PROC\r
20 EXTRN   __imp__fclose:PROC\r
21 EXTRN   __imp__ferror:PROC\r
22 EXTRN   __imp__fopen:PROC\r
23 ;       COMDAT ??_C@_02GMLFBBN@wb?$AA@\r
24 CONST   SEGMENT\r
25 ??_C@_02GMLFBBN@wb?$AA@ DB 'wb', 00H                    ; `string'\r
26 CONST   ENDS\r
27 ;       COMDAT ??_C@_03HMFOOINA@r?$CLb?$AA@\r
28 CONST   SEGMENT\r
29 ??_C@_03HMFOOINA@r?$CLb?$AA@ DB 'r+b', 00H              ; `string'\r
30 CONST   ENDS\r
31 ;       COMDAT ??_C@_02JDPG@rb?$AA@\r
32 CONST   SEGMENT\r
33 ??_C@_02JDPG@rb?$AA@ DB 'rb', 00H                       ; `string'\r
34 ; Function compile flags: /Ogtp\r
35 ; File c:\workspaces\sysdyn\org.simantics.fmu\fmusolution\zlib-1.2.6\contrib\minizip\ioapi.c\r
36 ;       COMDAT _ferror_file_func\r
37 _TEXT   SEGMENT\r
38 _opaque$ = 8                                            ; size = 4\r
39 _stream$ = 12                                           ; size = 4\r
40 _ferror_file_func PROC                                  ; COMDAT\r
41 \r
42 ; 218  : {\r
43 \r
44   00000 55               push    ebp\r
45   00001 8b ec            mov     ebp, esp\r
46 \r
47 ; 219  :     int ret;\r
48 ; 220  :     ret = ferror((FILE *)stream);\r
49 \r
50   00003 8b 45 0c         mov     eax, DWORD PTR _stream$[ebp]\r
51   00006 50               push    eax\r
52   00007 ff 15 00 00 00\r
53         00               call    DWORD PTR __imp__ferror\r
54   0000d 83 c4 04         add     esp, 4\r
55 \r
56 ; 221  :     return ret;\r
57 ; 222  : }\r
58 \r
59   00010 5d               pop     ebp\r
60   00011 c3               ret     0\r
61 _ferror_file_func ENDP\r
62 ; Function compile flags: /Ogtp\r
63 _TEXT   ENDS\r
64 ;       COMDAT _fclose_file_func\r
65 _TEXT   SEGMENT\r
66 _opaque$ = 8                                            ; size = 4\r
67 _stream$ = 12                                           ; size = 4\r
68 _fclose_file_func PROC                                  ; COMDAT\r
69 \r
70 ; 211  : {\r
71 \r
72   00000 55               push    ebp\r
73   00001 8b ec            mov     ebp, esp\r
74 \r
75 ; 212  :     int ret;\r
76 ; 213  :     ret = fclose((FILE *)stream);\r
77 \r
78   00003 8b 45 0c         mov     eax, DWORD PTR _stream$[ebp]\r
79   00006 50               push    eax\r
80   00007 ff 15 00 00 00\r
81         00               call    DWORD PTR __imp__fclose\r
82   0000d 83 c4 04         add     esp, 4\r
83 \r
84 ; 214  :     return ret;\r
85 ; 215  : }\r
86 \r
87   00010 5d               pop     ebp\r
88   00011 c3               ret     0\r
89 _fclose_file_func ENDP\r
90 ; Function compile flags: /Ogtp\r
91 _TEXT   ENDS\r
92 ;       COMDAT _fseek64_file_func\r
93 _TEXT   SEGMENT\r
94 _opaque$ = 8                                            ; size = 4\r
95 _stream$ = 12                                           ; size = 4\r
96 _offset$ = 16                                           ; size = 8\r
97 _origin$ = 24                                           ; size = 4\r
98 _fseek64_file_func PROC                                 ; COMDAT\r
99 \r
100 ; 185  : {\r
101 \r
102   00000 55               push    ebp\r
103   00001 8b ec            mov     ebp, esp\r
104 \r
105 ; 186  :     int fseek_origin=0;\r
106 ; 187  :     long ret;\r
107 ; 188  :     switch (origin)\r
108 \r
109   00003 8b 45 18         mov     eax, DWORD PTR _origin$[ebp]\r
110   00006 83 e8 00         sub     eax, 0\r
111   00009 74 19            je      SHORT $LN3@fseek64_fi\r
112   0000b 48               dec     eax\r
113   0000c 74 0f            je      SHORT $LN5@fseek64_fi\r
114   0000e 48               dec     eax\r
115   0000f 74 05            je      SHORT $LN4@fseek64_fi\r
116 \r
117 ; 198  :         break;\r
118 ; 199  :     default: return -1;\r
119 \r
120   00011 83 c8 ff         or      eax, -1\r
121 \r
122 ; 207  : }\r
123 \r
124   00014 5d               pop     ebp\r
125   00015 c3               ret     0\r
126 $LN4@fseek64_fi:\r
127 \r
128 ; 193  :     case ZLIB_FILEFUNC_SEEK_END :\r
129 ; 194  :         fseek_origin = SEEK_END;\r
130 \r
131   00016 b8 02 00 00 00   mov     eax, 2\r
132 \r
133 ; 195  :         break;\r
134 \r
135   0001b eb 09            jmp     SHORT $LN6@fseek64_fi\r
136 $LN5@fseek64_fi:\r
137 \r
138 ; 189  :     {\r
139 ; 190  :     case ZLIB_FILEFUNC_SEEK_CUR :\r
140 ; 191  :         fseek_origin = SEEK_CUR;\r
141 \r
142   0001d b8 01 00 00 00   mov     eax, 1\r
143 \r
144 ; 192  :         break;\r
145 \r
146   00022 eb 02            jmp     SHORT $LN6@fseek64_fi\r
147 $LN3@fseek64_fi:\r
148 \r
149 ; 196  :     case ZLIB_FILEFUNC_SEEK_SET :\r
150 ; 197  :         fseek_origin = SEEK_SET;\r
151 \r
152   00024 33 c0            xor     eax, eax\r
153 $LN6@fseek64_fi:\r
154 \r
155 ; 200  :     }\r
156 ; 201  :     ret = 0;\r
157 ; 202  : \r
158 ; 203  :     if(FSEEKO_FUNC((FILE *)stream, offset, fseek_origin) != 0)\r
159 \r
160   00026 8b 4d 10         mov     ecx, DWORD PTR _offset$[ebp]\r
161   00029 8b 55 0c         mov     edx, DWORD PTR _stream$[ebp]\r
162   0002c 56               push    esi\r
163   0002d 50               push    eax\r
164   0002e 8b 45 14         mov     eax, DWORD PTR _offset$[ebp+4]\r
165   00031 50               push    eax\r
166   00032 51               push    ecx\r
167   00033 52               push    edx\r
168   00034 33 f6            xor     esi, esi\r
169   00036 ff 15 00 00 00\r
170         00               call    DWORD PTR __imp___fseeki64\r
171   0003c 83 c4 10         add     esp, 16                        ; 00000010H\r
172   0003f 85 c0            test    eax, eax\r
173   00041 74 03            je      SHORT $LN1@fseek64_fi\r
174 \r
175 ; 204  :                         ret = -1;\r
176 \r
177   00043 83 ce ff         or      esi, -1\r
178 $LN1@fseek64_fi:\r
179 \r
180 ; 205  : \r
181 ; 206  :     return ret;\r
182 \r
183   00046 8b c6            mov     eax, esi\r
184   00048 5e               pop     esi\r
185 \r
186 ; 207  : }\r
187 \r
188   00049 5d               pop     ebp\r
189   0004a c3               ret     0\r
190 _fseek64_file_func ENDP\r
191 ; Function compile flags: /Ogtp\r
192 _TEXT   ENDS\r
193 ;       COMDAT _fseek_file_func\r
194 _TEXT   SEGMENT\r
195 _opaque$ = 8                                            ; size = 4\r
196 _stream$ = 12                                           ; size = 4\r
197 _offset$ = 16                                           ; size = 4\r
198 _origin$ = 20                                           ; size = 4\r
199 _fseek_file_func PROC                                   ; COMDAT\r
200 \r
201 ; 162  : {\r
202 \r
203   00000 55               push    ebp\r
204   00001 8b ec            mov     ebp, esp\r
205 \r
206 ; 163  :     int fseek_origin=0;\r
207 ; 164  :     long ret;\r
208 ; 165  :     switch (origin)\r
209 \r
210   00003 8b 45 14         mov     eax, DWORD PTR _origin$[ebp]\r
211   00006 83 e8 00         sub     eax, 0\r
212   00009 74 19            je      SHORT $LN3@fseek_file\r
213   0000b 48               dec     eax\r
214   0000c 74 0f            je      SHORT $LN5@fseek_file\r
215   0000e 48               dec     eax\r
216   0000f 74 05            je      SHORT $LN4@fseek_file\r
217 \r
218 ; 175  :         break;\r
219 ; 176  :     default: return -1;\r
220 \r
221   00011 83 c8 ff         or      eax, -1\r
222 \r
223 ; 182  : }\r
224 \r
225   00014 5d               pop     ebp\r
226   00015 c3               ret     0\r
227 $LN4@fseek_file:\r
228 \r
229 ; 170  :     case ZLIB_FILEFUNC_SEEK_END :\r
230 ; 171  :         fseek_origin = SEEK_END;\r
231 \r
232   00016 b8 02 00 00 00   mov     eax, 2\r
233 \r
234 ; 172  :         break;\r
235 \r
236   0001b eb 09            jmp     SHORT $LN6@fseek_file\r
237 $LN5@fseek_file:\r
238 \r
239 ; 166  :     {\r
240 ; 167  :     case ZLIB_FILEFUNC_SEEK_CUR :\r
241 ; 168  :         fseek_origin = SEEK_CUR;\r
242 \r
243   0001d b8 01 00 00 00   mov     eax, 1\r
244 \r
245 ; 169  :         break;\r
246 \r
247   00022 eb 02            jmp     SHORT $LN6@fseek_file\r
248 $LN3@fseek_file:\r
249 \r
250 ; 173  :     case ZLIB_FILEFUNC_SEEK_SET :\r
251 ; 174  :         fseek_origin = SEEK_SET;\r
252 \r
253   00024 33 c0            xor     eax, eax\r
254 $LN6@fseek_file:\r
255 \r
256 ; 177  :     }\r
257 ; 178  :     ret = 0;\r
258 ; 179  :     if (fseek((FILE *)stream, offset, fseek_origin) != 0)\r
259 \r
260   00026 8b 4d 0c         mov     ecx, DWORD PTR _stream$[ebp]\r
261   00029 56               push    esi\r
262   0002a 50               push    eax\r
263   0002b 8b 45 10         mov     eax, DWORD PTR _offset$[ebp]\r
264   0002e 50               push    eax\r
265   0002f 51               push    ecx\r
266   00030 33 f6            xor     esi, esi\r
267   00032 ff 15 00 00 00\r
268         00               call    DWORD PTR __imp__fseek\r
269   00038 83 c4 0c         add     esp, 12                        ; 0000000cH\r
270   0003b 85 c0            test    eax, eax\r
271   0003d 74 03            je      SHORT $LN1@fseek_file\r
272 \r
273 ; 180  :         ret = -1;\r
274 \r
275   0003f 83 ce ff         or      esi, -1\r
276 $LN1@fseek_file:\r
277 \r
278 ; 181  :     return ret;\r
279 \r
280   00042 8b c6            mov     eax, esi\r
281   00044 5e               pop     esi\r
282 \r
283 ; 182  : }\r
284 \r
285   00045 5d               pop     ebp\r
286   00046 c3               ret     0\r
287 _fseek_file_func ENDP\r
288 ; Function compile flags: /Ogtp\r
289 _TEXT   ENDS\r
290 ;       COMDAT _ftell64_file_func\r
291 _TEXT   SEGMENT\r
292 _opaque$ = 8                                            ; size = 4\r
293 _stream$ = 12                                           ; size = 4\r
294 _ftell64_file_func PROC                                 ; COMDAT\r
295 \r
296 ; 155  : {\r
297 \r
298   00000 55               push    ebp\r
299   00001 8b ec            mov     ebp, esp\r
300 \r
301 ; 156  :     ZPOS64_T ret;\r
302 ; 157  :     ret = FTELLO_FUNC((FILE *)stream);\r
303 \r
304   00003 8b 45 0c         mov     eax, DWORD PTR _stream$[ebp]\r
305   00006 50               push    eax\r
306   00007 ff 15 00 00 00\r
307         00               call    DWORD PTR __imp___ftelli64\r
308   0000d 83 c4 04         add     esp, 4\r
309 \r
310 ; 158  :     return ret;\r
311 ; 159  : }\r
312 \r
313   00010 5d               pop     ebp\r
314   00011 c3               ret     0\r
315 _ftell64_file_func ENDP\r
316 ; Function compile flags: /Ogtp\r
317 _TEXT   ENDS\r
318 ;       COMDAT _ftell_file_func\r
319 _TEXT   SEGMENT\r
320 _opaque$ = 8                                            ; size = 4\r
321 _stream$ = 12                                           ; size = 4\r
322 _ftell_file_func PROC                                   ; COMDAT\r
323 \r
324 ; 147  : {\r
325 \r
326   00000 55               push    ebp\r
327   00001 8b ec            mov     ebp, esp\r
328 \r
329 ; 148  :     long ret;\r
330 ; 149  :     ret = ftell((FILE *)stream);\r
331 \r
332   00003 8b 45 0c         mov     eax, DWORD PTR _stream$[ebp]\r
333   00006 50               push    eax\r
334   00007 ff 15 00 00 00\r
335         00               call    DWORD PTR __imp__ftell\r
336   0000d 83 c4 04         add     esp, 4\r
337 \r
338 ; 150  :     return ret;\r
339 ; 151  : }\r
340 \r
341   00010 5d               pop     ebp\r
342   00011 c3               ret     0\r
343 _ftell_file_func ENDP\r
344 ; Function compile flags: /Ogtp\r
345 _TEXT   ENDS\r
346 ;       COMDAT _fwrite_file_func\r
347 _TEXT   SEGMENT\r
348 _opaque$ = 8                                            ; size = 4\r
349 _stream$ = 12                                           ; size = 4\r
350 _buf$ = 16                                              ; size = 4\r
351 _size$ = 20                                             ; size = 4\r
352 _fwrite_file_func PROC                                  ; COMDAT\r
353 \r
354 ; 140  : {\r
355 \r
356   00000 55               push    ebp\r
357   00001 8b ec            mov     ebp, esp\r
358 \r
359 ; 141  :     uLong ret;\r
360 ; 142  :     ret = (uLong)fwrite(buf, 1, (size_t)size, (FILE *)stream);\r
361 \r
362   00003 8b 45 0c         mov     eax, DWORD PTR _stream$[ebp]\r
363   00006 8b 4d 14         mov     ecx, DWORD PTR _size$[ebp]\r
364   00009 8b 55 10         mov     edx, DWORD PTR _buf$[ebp]\r
365   0000c 50               push    eax\r
366   0000d 51               push    ecx\r
367   0000e 6a 01            push    1\r
368   00010 52               push    edx\r
369   00011 ff 15 00 00 00\r
370         00               call    DWORD PTR __imp__fwrite\r
371   00017 83 c4 10         add     esp, 16                        ; 00000010H\r
372 \r
373 ; 143  :     return ret;\r
374 ; 144  : }\r
375 \r
376   0001a 5d               pop     ebp\r
377   0001b c3               ret     0\r
378 _fwrite_file_func ENDP\r
379 ; Function compile flags: /Ogtp\r
380 _TEXT   ENDS\r
381 ;       COMDAT _fread_file_func\r
382 _TEXT   SEGMENT\r
383 _opaque$ = 8                                            ; size = 4\r
384 _stream$ = 12                                           ; size = 4\r
385 _buf$ = 16                                              ; size = 4\r
386 _size$ = 20                                             ; size = 4\r
387 _fread_file_func PROC                                   ; COMDAT\r
388 \r
389 ; 133  : {\r
390 \r
391   00000 55               push    ebp\r
392   00001 8b ec            mov     ebp, esp\r
393 \r
394 ; 134  :     uLong ret;\r
395 ; 135  :     ret = (uLong)fread(buf, 1, (size_t)size, (FILE *)stream);\r
396 \r
397   00003 8b 45 0c         mov     eax, DWORD PTR _stream$[ebp]\r
398   00006 8b 4d 14         mov     ecx, DWORD PTR _size$[ebp]\r
399   00009 8b 55 10         mov     edx, DWORD PTR _buf$[ebp]\r
400   0000c 50               push    eax\r
401   0000d 51               push    ecx\r
402   0000e 6a 01            push    1\r
403   00010 52               push    edx\r
404   00011 ff 15 00 00 00\r
405         00               call    DWORD PTR __imp__fread\r
406   00017 83 c4 10         add     esp, 16                        ; 00000010H\r
407 \r
408 ; 136  :     return ret;\r
409 ; 137  : }\r
410 \r
411   0001a 5d               pop     ebp\r
412   0001b c3               ret     0\r
413 _fread_file_func ENDP\r
414 ; Function compile flags: /Ogtp\r
415 _TEXT   ENDS\r
416 ;       COMDAT _fopen64_file_func\r
417 _TEXT   SEGMENT\r
418 _opaque$ = 8                                            ; size = 4\r
419 _filename$ = 12                                         ; size = 4\r
420 _mode$ = 16                                             ; size = 4\r
421 _fopen64_file_func PROC                                 ; COMDAT\r
422 \r
423 ; 114  : {\r
424 \r
425   00000 55               push    ebp\r
426   00001 8b ec            mov     ebp, esp\r
427 \r
428 ; 115  :     FILE* file = NULL;\r
429 ; 116  :     const char* mode_fopen = NULL;\r
430 ; 117  :     if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ)\r
431 \r
432   00003 8b 55 10         mov     edx, DWORD PTR _mode$[ebp]\r
433   00006 8b c2            mov     eax, edx\r
434   00008 56               push    esi\r
435   00009 24 03            and     al, 3\r
436   0000b 33 f6            xor     esi, esi\r
437   0000d 33 c9            xor     ecx, ecx\r
438   0000f 3c 01            cmp     al, 1\r
439   00011 75 07            jne     SHORT $LN6@fopen64_fi\r
440 \r
441 ; 118  :         mode_fopen = "rb";\r
442 \r
443   00013 b9 00 00 00 00   mov     ecx, OFFSET ??_C@_02JDPG@rb?$AA@\r
444 \r
445 ; 119  :     else\r
446 \r
447   00018 eb 16            jmp     SHORT $LN2@fopen64_fi\r
448 $LN6@fopen64_fi:\r
449 \r
450 ; 120  :     if (mode & ZLIB_FILEFUNC_MODE_EXISTING)\r
451 \r
452   0001a f6 c2 04         test    dl, 4\r
453   0001d 74 07            je      SHORT $LN4@fopen64_fi\r
454 \r
455 ; 121  :         mode_fopen = "r+b";\r
456 \r
457   0001f b9 00 00 00 00   mov     ecx, OFFSET ??_C@_03HMFOOINA@r?$CLb?$AA@\r
458 \r
459 ; 122  :     else\r
460 \r
461   00024 eb 0a            jmp     SHORT $LN2@fopen64_fi\r
462 $LN4@fopen64_fi:\r
463 \r
464 ; 123  :     if (mode & ZLIB_FILEFUNC_MODE_CREATE)\r
465 \r
466   00026 f6 c2 08         test    dl, 8\r
467   00029 74 05            je      SHORT $LN2@fopen64_fi\r
468 \r
469 ; 124  :         mode_fopen = "wb";\r
470 \r
471   0002b b9 00 00 00 00   mov     ecx, OFFSET ??_C@_02GMLFBBN@wb?$AA@\r
472 $LN2@fopen64_fi:\r
473 \r
474 ; 125  : \r
475 ; 126  :     if ((filename!=NULL) && (mode_fopen != NULL))\r
476 \r
477   00030 8b 55 0c         mov     edx, DWORD PTR _filename$[ebp]\r
478   00033 85 d2            test    edx, edx\r
479   00035 74 12            je      SHORT $LN10@fopen64_fi\r
480   00037 85 c9            test    ecx, ecx\r
481   00039 74 0e            je      SHORT $LN10@fopen64_fi\r
482 \r
483 ; 127  :         file = FOPEN_FUNC((const char*)filename, mode_fopen);\r
484 \r
485   0003b 51               push    ecx\r
486   0003c 52               push    edx\r
487   0003d ff 15 00 00 00\r
488         00               call    DWORD PTR __imp__fopen\r
489   00043 83 c4 08         add     esp, 8\r
490   00046 5e               pop     esi\r
491 \r
492 ; 129  : }\r
493 \r
494   00047 5d               pop     ebp\r
495   00048 c3               ret     0\r
496 $LN10@fopen64_fi:\r
497 \r
498 ; 128  :     return file;\r
499 \r
500   00049 8b c6            mov     eax, esi\r
501   0004b 5e               pop     esi\r
502 \r
503 ; 129  : }\r
504 \r
505   0004c 5d               pop     ebp\r
506   0004d c3               ret     0\r
507 _fopen64_file_func ENDP\r
508 ; Function compile flags: /Ogtp\r
509 _TEXT   ENDS\r
510 ;       COMDAT _fopen_file_func\r
511 _TEXT   SEGMENT\r
512 _opaque$ = 8                                            ; size = 4\r
513 _filename$ = 12                                         ; size = 4\r
514 _mode$ = 16                                             ; size = 4\r
515 _fopen_file_func PROC                                   ; COMDAT\r
516 \r
517 ; 96   : {\r
518 \r
519   00000 55               push    ebp\r
520   00001 8b ec            mov     ebp, esp\r
521 \r
522 ; 97   :     FILE* file = NULL;\r
523 ; 98   :     const char* mode_fopen = NULL;\r
524 ; 99   :     if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ)\r
525 \r
526   00003 8b 55 10         mov     edx, DWORD PTR _mode$[ebp]\r
527   00006 8b c2            mov     eax, edx\r
528   00008 56               push    esi\r
529   00009 24 03            and     al, 3\r
530   0000b 33 f6            xor     esi, esi\r
531   0000d 33 c9            xor     ecx, ecx\r
532   0000f 3c 01            cmp     al, 1\r
533   00011 75 07            jne     SHORT $LN6@fopen_file\r
534 \r
535 ; 100  :         mode_fopen = "rb";\r
536 \r
537   00013 b9 00 00 00 00   mov     ecx, OFFSET ??_C@_02JDPG@rb?$AA@\r
538 \r
539 ; 101  :     else\r
540 \r
541   00018 eb 16            jmp     SHORT $LN2@fopen_file\r
542 $LN6@fopen_file:\r
543 \r
544 ; 102  :     if (mode & ZLIB_FILEFUNC_MODE_EXISTING)\r
545 \r
546   0001a f6 c2 04         test    dl, 4\r
547   0001d 74 07            je      SHORT $LN4@fopen_file\r
548 \r
549 ; 103  :         mode_fopen = "r+b";\r
550 \r
551   0001f b9 00 00 00 00   mov     ecx, OFFSET ??_C@_03HMFOOINA@r?$CLb?$AA@\r
552 \r
553 ; 104  :     else\r
554 \r
555   00024 eb 0a            jmp     SHORT $LN2@fopen_file\r
556 $LN4@fopen_file:\r
557 \r
558 ; 105  :     if (mode & ZLIB_FILEFUNC_MODE_CREATE)\r
559 \r
560   00026 f6 c2 08         test    dl, 8\r
561   00029 74 05            je      SHORT $LN2@fopen_file\r
562 \r
563 ; 106  :         mode_fopen = "wb";\r
564 \r
565   0002b b9 00 00 00 00   mov     ecx, OFFSET ??_C@_02GMLFBBN@wb?$AA@\r
566 $LN2@fopen_file:\r
567 \r
568 ; 107  : \r
569 ; 108  :     if ((filename!=NULL) && (mode_fopen != NULL))\r
570 \r
571   00030 8b 55 0c         mov     edx, DWORD PTR _filename$[ebp]\r
572   00033 85 d2            test    edx, edx\r
573   00035 74 12            je      SHORT $LN10@fopen_file\r
574   00037 85 c9            test    ecx, ecx\r
575   00039 74 0e            je      SHORT $LN10@fopen_file\r
576 \r
577 ; 109  :         file = fopen(filename, mode_fopen);\r
578 \r
579   0003b 51               push    ecx\r
580   0003c 52               push    edx\r
581   0003d ff 15 00 00 00\r
582         00               call    DWORD PTR __imp__fopen\r
583   00043 83 c4 08         add     esp, 8\r
584   00046 5e               pop     esi\r
585 \r
586 ; 111  : }\r
587 \r
588   00047 5d               pop     ebp\r
589   00048 c3               ret     0\r
590 $LN10@fopen_file:\r
591 \r
592 ; 110  :     return file;\r
593 \r
594   00049 8b c6            mov     eax, esi\r
595   0004b 5e               pop     esi\r
596 \r
597 ; 111  : }\r
598 \r
599   0004c 5d               pop     ebp\r
600   0004d c3               ret     0\r
601 _fopen_file_func ENDP\r
602 _TEXT   ENDS\r
603 PUBLIC  _fill_zlib_filefunc64_32_def_from_filefunc32\r
604 ; Function compile flags: /Ogtp\r
605 ;       COMDAT _fill_zlib_filefunc64_32_def_from_filefunc32\r
606 _TEXT   SEGMENT\r
607 _fill_zlib_filefunc64_32_def_from_filefunc32 PROC       ; COMDAT\r
608 ; _p_filefunc64_32$ = eax\r
609 ; _p_filefunc32$ = ecx\r
610 \r
611 ; 71   :     p_filefunc64_32->zfile_func64.zopen64_file = NULL;\r
612 \r
613   00000 33 d2            xor     edx, edx\r
614   00002 89 10            mov     DWORD PTR [eax], edx\r
615 \r
616 ; 72   :     p_filefunc64_32->zopen32_file = p_filefunc32->zopen_file;\r
617 ; 73   :     p_filefunc64_32->zfile_func64.zerror_file = p_filefunc32->zerror_file;\r
618 ; 74   :     p_filefunc64_32->zfile_func64.zread_file = p_filefunc32->zread_file;\r
619 ; 75   :     p_filefunc64_32->zfile_func64.zwrite_file = p_filefunc32->zwrite_file;\r
620 ; 76   :     p_filefunc64_32->zfile_func64.ztell64_file = NULL;\r
621 \r
622   00004 89 50 0c         mov     DWORD PTR [eax+12], edx\r
623 \r
624 ; 77   :     p_filefunc64_32->zfile_func64.zseek64_file = NULL;\r
625 \r
626   00007 89 50 10         mov     DWORD PTR [eax+16], edx\r
627 \r
628 ; 78   :     p_filefunc64_32->zfile_func64.zclose_file = p_filefunc32->zclose_file;\r
629 \r
630   0000a 8b 51 14         mov     edx, DWORD PTR [ecx+20]\r
631   0000d 56               push    esi\r
632   0000e 8b 31            mov     esi, DWORD PTR [ecx]\r
633   00010 89 50 14         mov     DWORD PTR [eax+20], edx\r
634 \r
635 ; 79   :     p_filefunc64_32->zfile_func64.zerror_file = p_filefunc32->zerror_file;\r
636 \r
637   00013 8b 51 18         mov     edx, DWORD PTR [ecx+24]\r
638   00016 89 70 20         mov     DWORD PTR [eax+32], esi\r
639   00019 8b 71 04         mov     esi, DWORD PTR [ecx+4]\r
640   0001c 89 50 18         mov     DWORD PTR [eax+24], edx\r
641 \r
642 ; 80   :     p_filefunc64_32->zfile_func64.opaque = p_filefunc32->opaque;\r
643 \r
644   0001f 8b 51 1c         mov     edx, DWORD PTR [ecx+28]\r
645   00022 89 70 04         mov     DWORD PTR [eax+4], esi\r
646   00025 8b 71 08         mov     esi, DWORD PTR [ecx+8]\r
647   00028 89 50 1c         mov     DWORD PTR [eax+28], edx\r
648 \r
649 ; 81   :     p_filefunc64_32->zseek32_file = p_filefunc32->zseek_file;\r
650 \r
651   0002b 8b 51 10         mov     edx, DWORD PTR [ecx+16]\r
652 \r
653 ; 82   :     p_filefunc64_32->ztell32_file = p_filefunc32->ztell_file;\r
654 \r
655   0002e 8b 49 0c         mov     ecx, DWORD PTR [ecx+12]\r
656   00031 89 70 08         mov     DWORD PTR [eax+8], esi\r
657   00034 89 50 28         mov     DWORD PTR [eax+40], edx\r
658   00037 89 48 24         mov     DWORD PTR [eax+36], ecx\r
659   0003a 5e               pop     esi\r
660 \r
661 ; 83   : }\r
662 \r
663   0003b c3               ret     0\r
664 _fill_zlib_filefunc64_32_def_from_filefunc32 ENDP\r
665 _TEXT   ENDS\r
666 PUBLIC  _call_ztell64\r
667 ; Function compile flags: /Ogtp\r
668 ;       COMDAT _call_ztell64\r
669 _TEXT   SEGMENT\r
670 _call_ztell64 PROC                                      ; COMDAT\r
671 ; _pfilefunc$ = eax\r
672 ; _filestream$ = ecx\r
673 \r
674 ; 57   :     if (pfilefunc->zfile_func64.zseek64_file != NULL)\r
675 \r
676   00000 83 78 10 00      cmp     DWORD PTR [eax+16], 0\r
677 \r
678 ; 58   :         return (*(pfilefunc->zfile_func64.ztell64_file)) (pfilefunc->zfile_func64.opaque,filestream);\r
679 \r
680   00004 51               push    ecx\r
681   00005 8b 48 1c         mov     ecx, DWORD PTR [eax+28]\r
682   00008 51               push    ecx\r
683   00009 74 09            je      SHORT $LN4@call_ztell\r
684   0000b 8b 50 0c         mov     edx, DWORD PTR [eax+12]\r
685   0000e ff d2            call    edx\r
686   00010 83 c4 08         add     esp, 8\r
687 \r
688 ; 66   :     }\r
689 ; 67   : }\r
690 \r
691   00013 c3               ret     0\r
692 $LN4@call_ztell:\r
693 \r
694 ; 59   :     else\r
695 ; 60   :     {\r
696 ; 61   :         uLong tell_uLong = (*(pfilefunc->ztell32_file))(pfilefunc->zfile_func64.opaque,filestream);\r
697 \r
698   00014 8b 50 24         mov     edx, DWORD PTR [eax+36]\r
699   00017 ff d2            call    edx\r
700   00019 83 c4 08         add     esp, 8\r
701 \r
702 ; 62   :         if ((tell_uLong) == MAXU32)\r
703 \r
704   0001c 83 f8 ff         cmp     eax, -1\r
705   0001f 75 06            jne     SHORT $LN2@call_ztell\r
706 \r
707 ; 63   :             return (ZPOS64_T)-1;\r
708 \r
709   00021 0b c0            or      eax, eax\r
710   00023 83 ca ff         or      edx, -1\r
711 \r
712 ; 66   :     }\r
713 ; 67   : }\r
714 \r
715   00026 c3               ret     0\r
716 $LN2@call_ztell:\r
717 \r
718 ; 64   :         else\r
719 ; 65   :             return tell_uLong;\r
720 \r
721   00027 33 d2            xor     edx, edx\r
722 \r
723 ; 66   :     }\r
724 ; 67   : }\r
725 \r
726   00029 c3               ret     0\r
727 _call_ztell64 ENDP\r
728 _TEXT   ENDS\r
729 PUBLIC  _call_zseek64\r
730 ; Function compile flags: /Ogtp\r
731 ;       COMDAT _call_zseek64\r
732 _TEXT   SEGMENT\r
733 _offset$ = 8                                            ; size = 8\r
734 _call_zseek64 PROC                                      ; COMDAT\r
735 ; _pfilefunc$ = eax\r
736 ; _filestream$ = esi\r
737 ; _origin$ = edx\r
738 \r
739 ; 42   : {\r
740 \r
741   00000 55               push    ebp\r
742   00001 8b ec            mov     ebp, esp\r
743   00003 83 e4 f8         and     esp, -8                        ; fffffff8H\r
744   00006 51               push    ecx\r
745 \r
746 ; 43   :     if (pfilefunc->zfile_func64.zseek64_file != NULL)\r
747 \r
748   00007 8b 48 10         mov     ecx, DWORD PTR [eax+16]\r
749   0000a 57               push    edi\r
750   0000b 85 c9            test    ecx, ecx\r
751   0000d 74 18            je      SHORT $LN4@call_zseek\r
752 \r
753 ; 44   :         return (*(pfilefunc->zfile_func64.zseek64_file)) (pfilefunc->zfile_func64.opaque,filestream,offset,origin);\r
754 \r
755   0000f 8b 40 1c         mov     eax, DWORD PTR [eax+28]\r
756   00012 52               push    edx\r
757   00013 8b 55 0c         mov     edx, DWORD PTR _offset$[ebp+4]\r
758   00016 52               push    edx\r
759   00017 8b 55 08         mov     edx, DWORD PTR _offset$[ebp]\r
760   0001a 52               push    edx\r
761   0001b 56               push    esi\r
762   0001c 50               push    eax\r
763   0001d ff d1            call    ecx\r
764   0001f 83 c4 14         add     esp, 20                        ; 00000014H\r
765 \r
766 ; 52   :     }\r
767 ; 53   : }\r
768 \r
769   00022 5f               pop     edi\r
770   00023 8b e5            mov     esp, ebp\r
771   00025 5d               pop     ebp\r
772   00026 c3               ret     0\r
773 $LN4@call_zseek:\r
774 \r
775 ; 45   :     else\r
776 ; 46   :     {\r
777 ; 47   :         uLong offsetTruncated = (uLong)offset;\r
778 ; 48   :         if (offsetTruncated != offset)\r
779 \r
780   00027 8b 4d 08         mov     ecx, DWORD PTR _offset$[ebp]\r
781   0002a 33 ff            xor     edi, edi\r
782   0002c 3b c9            cmp     ecx, ecx\r
783   0002e 75 05            jne     SHORT $LN7@call_zseek\r
784   00030 3b 7d 0c         cmp     edi, DWORD PTR _offset$[ebp+4]\r
785   00033 74 08            je      SHORT $LN2@call_zseek\r
786 $LN7@call_zseek:\r
787 \r
788 ; 49   :             return -1;\r
789 \r
790   00035 83 c8 ff         or      eax, -1\r
791 \r
792 ; 52   :     }\r
793 ; 53   : }\r
794 \r
795   00038 5f               pop     edi\r
796   00039 8b e5            mov     esp, ebp\r
797   0003b 5d               pop     ebp\r
798   0003c c3               ret     0\r
799 $LN2@call_zseek:\r
800 \r
801 ; 50   :         else\r
802 ; 51   :             return (*(pfilefunc->zseek32_file))(pfilefunc->zfile_func64.opaque,filestream,offsetTruncated,origin);\r
803 \r
804   0003d 52               push    edx\r
805   0003e 8b 50 28         mov     edx, DWORD PTR [eax+40]\r
806   00041 51               push    ecx\r
807   00042 8b 48 1c         mov     ecx, DWORD PTR [eax+28]\r
808   00045 56               push    esi\r
809   00046 51               push    ecx\r
810   00047 ff d2            call    edx\r
811   00049 83 c4 10         add     esp, 16                        ; 00000010H\r
812 \r
813 ; 52   :     }\r
814 ; 53   : }\r
815 \r
816   0004c 5f               pop     edi\r
817   0004d 8b e5            mov     esp, ebp\r
818   0004f 5d               pop     ebp\r
819   00050 c3               ret     0\r
820 _call_zseek64 ENDP\r
821 _TEXT   ENDS\r
822 PUBLIC  _call_zopen64\r
823 ; Function compile flags: /Ogtp\r
824 ;       COMDAT _call_zopen64\r
825 _TEXT   SEGMENT\r
826 _call_zopen64 PROC                                      ; COMDAT\r
827 ; _pfilefunc$ = eax\r
828 ; _filename$ = esi\r
829 ; _mode$ = edx\r
830 \r
831 ; 33   :     if (pfilefunc->zfile_func64.zopen64_file != NULL)\r
832 \r
833   00000 8b 08            mov     ecx, DWORD PTR [eax]\r
834 \r
835 ; 34   :         return (*(pfilefunc->zfile_func64.zopen64_file)) (pfilefunc->zfile_func64.opaque,filename,mode);\r
836 \r
837   00002 52               push    edx\r
838   00003 56               push    esi\r
839   00004 85 c9            test    ecx, ecx\r
840   00006 74 0a            je      SHORT $LN2@call_zopen\r
841   00008 8b 40 1c         mov     eax, DWORD PTR [eax+28]\r
842   0000b 50               push    eax\r
843   0000c ff d1            call    ecx\r
844 \r
845 ; 35   :     else\r
846 ; 36   :     {\r
847 ; 37   :         return (*(pfilefunc->zopen32_file))(pfilefunc->zfile_func64.opaque,(const char*)filename,mode);\r
848 \r
849   0000e 83 c4 0c         add     esp, 12                        ; 0000000cH\r
850 \r
851 ; 38   :     }\r
852 ; 39   : }\r
853 \r
854   00011 c3               ret     0\r
855 $LN2@call_zopen:\r
856 \r
857 ; 35   :     else\r
858 ; 36   :     {\r
859 ; 37   :         return (*(pfilefunc->zopen32_file))(pfilefunc->zfile_func64.opaque,(const char*)filename,mode);\r
860 \r
861   00012 8b 48 1c         mov     ecx, DWORD PTR [eax+28]\r
862   00015 8b 50 20         mov     edx, DWORD PTR [eax+32]\r
863   00018 51               push    ecx\r
864   00019 ff d2            call    edx\r
865   0001b 83 c4 0c         add     esp, 12                        ; 0000000cH\r
866 \r
867 ; 38   :     }\r
868 ; 39   : }\r
869 \r
870   0001e c3               ret     0\r
871 _call_zopen64 ENDP\r
872 PUBLIC  _fill_fopen64_filefunc\r
873 ; Function compile flags: /Ogtp\r
874 ;       COMDAT _fill_fopen64_filefunc\r
875 _TEXT   SEGMENT\r
876 _fill_fopen64_filefunc PROC                             ; COMDAT\r
877 ; _pzlib_filefunc_def$ = eax\r
878 \r
879 ; 239  :     pzlib_filefunc_def->zopen64_file = fopen64_file_func;\r
880 \r
881   00000 c7 00 00 00 00\r
882         00               mov     DWORD PTR [eax], OFFSET _fopen64_file_func\r
883 \r
884 ; 240  :     pzlib_filefunc_def->zread_file = fread_file_func;\r
885 \r
886   00006 c7 40 04 00 00\r
887         00 00            mov     DWORD PTR [eax+4], OFFSET _fread_file_func\r
888 \r
889 ; 241  :     pzlib_filefunc_def->zwrite_file = fwrite_file_func;\r
890 \r
891   0000d c7 40 08 00 00\r
892         00 00            mov     DWORD PTR [eax+8], OFFSET _fwrite_file_func\r
893 \r
894 ; 242  :     pzlib_filefunc_def->ztell64_file = ftell64_file_func;\r
895 \r
896   00014 c7 40 0c 00 00\r
897         00 00            mov     DWORD PTR [eax+12], OFFSET _ftell64_file_func\r
898 \r
899 ; 243  :     pzlib_filefunc_def->zseek64_file = fseek64_file_func;\r
900 \r
901   0001b c7 40 10 00 00\r
902         00 00            mov     DWORD PTR [eax+16], OFFSET _fseek64_file_func\r
903 \r
904 ; 244  :     pzlib_filefunc_def->zclose_file = fclose_file_func;\r
905 \r
906   00022 c7 40 14 00 00\r
907         00 00            mov     DWORD PTR [eax+20], OFFSET _fclose_file_func\r
908 \r
909 ; 245  :     pzlib_filefunc_def->zerror_file = ferror_file_func;\r
910 \r
911   00029 c7 40 18 00 00\r
912         00 00            mov     DWORD PTR [eax+24], OFFSET _ferror_file_func\r
913 \r
914 ; 246  :     pzlib_filefunc_def->opaque = NULL;\r
915 \r
916   00030 c7 40 1c 00 00\r
917         00 00            mov     DWORD PTR [eax+28], 0\r
918 \r
919 ; 247  : }\r
920 \r
921   00037 c3               ret     0\r
922 _fill_fopen64_filefunc ENDP\r
923 END\r