]> gerrit.simantics Code Review - simantics/sysdyn.git/blob
eb6731b01022162d0a8b70ff3cb93a427270342f
[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\iowin32.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 EXTRN   __imp__CreateFileW@28:PROC\r
12 EXTRN   __imp__CreateFileA@28:PROC\r
13 EXTRN   __imp__ReadFile@20:PROC\r
14 EXTRN   __imp__WriteFile@20:PROC\r
15 EXTRN   __imp__GetLastError@0:PROC\r
16 EXTRN   __imp__SetFilePointer@16:PROC\r
17 EXTRN   __imp__CloseHandle@4:PROC\r
18 PUBLIC  _win32_error_file_func\r
19 ; Function compile flags: /Ogtp\r
20 ; File c:\workspaces\sysdyn\org.simantics.fmu\fmusolution\zlib-1.2.6\contrib\minizip\iowin32.c\r
21 ;       COMDAT _win32_error_file_func\r
22 _TEXT   SEGMENT\r
23 _opaque$ = 8                                            ; size = 4\r
24 _stream$ = 12                                           ; size = 4\r
25 _win32_error_file_func PROC                             ; COMDAT\r
26 \r
27 ; 332  : {\r
28 \r
29   00000 55               push    ebp\r
30   00001 8b ec            mov     ebp, esp\r
31 \r
32 ; 333  :     int ret=-1;\r
33 ; 334  :     if (stream!=NULL)\r
34 \r
35   00003 8b 4d 0c         mov     ecx, DWORD PTR _stream$[ebp]\r
36   00006 83 c8 ff         or      eax, -1\r
37   00009 85 c9            test    ecx, ecx\r
38   0000b 74 03            je      SHORT $LN1@win32_erro\r
39 \r
40 ; 335  :     {\r
41 ; 336  :         ret = ((WIN32FILE_IOWIN*)stream) -> error;\r
42 ; 337  :     }\r
43 ; 338  :     return ret;\r
44 \r
45   0000d 8b 41 04         mov     eax, DWORD PTR [ecx+4]\r
46 $LN1@win32_erro:\r
47 \r
48 ; 339  : }\r
49 \r
50   00010 5d               pop     ebp\r
51   00011 c3               ret     0\r
52 _win32_error_file_func ENDP\r
53 _TEXT   ENDS\r
54 PUBLIC  _win32_close_file_func\r
55 ; Function compile flags: /Ogtp\r
56 ;       COMDAT _win32_close_file_func\r
57 _TEXT   SEGMENT\r
58 _opaque$ = 8                                            ; size = 4\r
59 _stream$ = 12                                           ; size = 4\r
60 _win32_close_file_func PROC                             ; COMDAT\r
61 \r
62 ; 314  : {\r
63 \r
64   00000 55               push    ebp\r
65   00001 8b ec            mov     ebp, esp\r
66   00003 56               push    esi\r
67   00004 57               push    edi\r
68 \r
69 ; 315  :     int ret=-1;\r
70 ; 316  : \r
71 ; 317  :     if (stream!=NULL)\r
72 \r
73   00005 8b 7d 0c         mov     edi, DWORD PTR _stream$[ebp]\r
74   00008 83 ce ff         or      esi, -1\r
75   0000b 85 ff            test    edi, edi\r
76   0000d 74 19            je      SHORT $LN5@win32_clos\r
77 \r
78 ; 318  :     {\r
79 ; 319  :         HANDLE hFile;\r
80 ; 320  :         hFile = ((WIN32FILE_IOWIN*)stream) -> hf;\r
81 \r
82   0000f 8b 07            mov     eax, DWORD PTR [edi]\r
83 \r
84 ; 321  :         if (hFile != NULL)\r
85 \r
86   00011 85 c0            test    eax, eax\r
87   00013 74 09            je      SHORT $LN1@win32_clos\r
88 \r
89 ; 322  :         {\r
90 ; 323  :             CloseHandle(hFile);\r
91 \r
92   00015 50               push    eax\r
93   00016 ff 15 00 00 00\r
94         00               call    DWORD PTR __imp__CloseHandle@4\r
95 \r
96 ; 324  :             ret=0;\r
97 \r
98   0001c 33 f6            xor     esi, esi\r
99 $LN1@win32_clos:\r
100 \r
101 ; 325  :         }\r
102 ; 326  :         free(stream);\r
103 \r
104   0001e 57               push    edi\r
105   0001f ff 15 00 00 00\r
106         00               call    DWORD PTR __imp__free\r
107   00025 83 c4 04         add     esp, 4\r
108 $LN5@win32_clos:\r
109 \r
110 ; 327  :     }\r
111 ; 328  :     return ret;\r
112 \r
113   00028 5f               pop     edi\r
114   00029 8b c6            mov     eax, esi\r
115   0002b 5e               pop     esi\r
116 \r
117 ; 329  : }\r
118 \r
119   0002c 5d               pop     ebp\r
120   0002d c3               ret     0\r
121 _win32_close_file_func ENDP\r
122 _TEXT   ENDS\r
123 PUBLIC  _win32_seek64_file_func\r
124 ; Function compile flags: /Ogtp\r
125 ;       COMDAT _win32_seek64_file_func\r
126 _TEXT   SEGMENT\r
127 _opaque$ = 8                                            ; size = 4\r
128 _stream$ = 12                                           ; size = 4\r
129 _offset$ = 16                                           ; size = 8\r
130 _origin$ = 24                                           ; size = 4\r
131 _win32_seek64_file_func PROC                            ; COMDAT\r
132 \r
133 ; 275  : {\r
134 \r
135   00000 55               push    ebp\r
136   00001 8b ec            mov     ebp, esp\r
137   00003 56               push    esi\r
138 \r
139 ; 276  :     DWORD dwMoveMethod=0xFFFFFFFF;\r
140 ; 277  :     HANDLE hFile = NULL;\r
141 ; 278  :     long ret=-1;\r
142 ; 279  : \r
143 ; 280  :     if (stream!=NULL)\r
144 \r
145   00004 8b 75 0c         mov     esi, DWORD PTR _stream$[ebp]\r
146   00007 33 d2            xor     edx, edx\r
147   00009 83 c8 ff         or      eax, -1\r
148   0000c 85 f6            test    esi, esi\r
149   0000e 74 02            je      SHORT $LN10@win32_seek\r
150 \r
151 ; 281  :         hFile = ((WIN32FILE_IOWIN*)stream)->hf;\r
152 \r
153   00010 8b 16            mov     edx, DWORD PTR [esi]\r
154 $LN10@win32_seek:\r
155 \r
156 ; 282  : \r
157 ; 283  :     switch (origin)\r
158 \r
159   00012 8b 4d 18         mov     ecx, DWORD PTR _origin$[ebp]\r
160   00015 83 e9 00         sub     ecx, 0\r
161   00018 74 14            je      SHORT $LN5@win32_seek\r
162   0001a 49               dec     ecx\r
163   0001b 74 0a            je      SHORT $LN7@win32_seek\r
164   0001d 49               dec     ecx\r
165 \r
166 ; 293  :             break;\r
167 ; 294  :         default: return -1;\r
168 \r
169   0001e 75 32            jne     SHORT $LN13@win32_seek\r
170 \r
171 ; 288  :         case ZLIB_FILEFUNC_SEEK_END :\r
172 ; 289  :             dwMoveMethod = FILE_END;\r
173 \r
174   00020 b9 02 00 00 00   mov     ecx, 2\r
175 \r
176 ; 290  :             break;\r
177 \r
178   00025 eb 09            jmp     SHORT $LN8@win32_seek\r
179 $LN7@win32_seek:\r
180 \r
181 ; 284  :     {\r
182 ; 285  :         case ZLIB_FILEFUNC_SEEK_CUR :\r
183 ; 286  :             dwMoveMethod = FILE_CURRENT;\r
184 \r
185   00027 b9 01 00 00 00   mov     ecx, 1\r
186 \r
187 ; 287  :             break;\r
188 \r
189   0002c eb 02            jmp     SHORT $LN8@win32_seek\r
190 $LN5@win32_seek:\r
191 \r
192 ; 291  :         case ZLIB_FILEFUNC_SEEK_SET :\r
193 ; 292  :             dwMoveMethod = FILE_BEGIN;\r
194 \r
195   0002e 33 c9            xor     ecx, ecx\r
196 $LN8@win32_seek:\r
197 \r
198 ; 295  :     }\r
199 ; 296  : \r
200 ; 297  :     if (hFile)\r
201 \r
202   00030 85 d2            test    edx, edx\r
203   00032 74 26            je      SHORT $LN11@win32_seek\r
204 \r
205 ; 298  :     {\r
206 ; 299  :         LARGE_INTEGER* li = (LARGE_INTEGER*)&offset;\r
207 ; 300  :         DWORD dwSet = SetFilePointer(hFile, li->u.LowPart, &li->u.HighPart, dwMoveMethod);\r
208 \r
209   00034 51               push    ecx\r
210   00035 8b 4d 10         mov     ecx, DWORD PTR _offset$[ebp]\r
211   00038 8d 45 14         lea     eax, DWORD PTR _offset$[ebp+4]\r
212   0003b 50               push    eax\r
213   0003c 51               push    ecx\r
214   0003d 52               push    edx\r
215   0003e ff 15 00 00 00\r
216         00               call    DWORD PTR __imp__SetFilePointer@16\r
217 \r
218 ; 301  :         if (dwSet == INVALID_SET_FILE_POINTER)\r
219 \r
220   00044 83 f8 ff         cmp     eax, -1\r
221   00047 75 0f            jne     SHORT $LN2@win32_seek\r
222 \r
223 ; 302  :         {\r
224 ; 303  :             DWORD dwErr = GetLastError();\r
225 \r
226   00049 ff 15 00 00 00\r
227         00               call    DWORD PTR __imp__GetLastError@0\r
228 \r
229 ; 304  :             ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr;\r
230 \r
231   0004f 89 46 04         mov     DWORD PTR [esi+4], eax\r
232 $LN13@win32_seek:\r
233 \r
234 ; 305  :             ret = -1;\r
235 \r
236   00052 83 c8 ff         or      eax, -1\r
237   00055 5e               pop     esi\r
238 \r
239 ; 309  :     }\r
240 ; 310  :     return ret;\r
241 ; 311  : }\r
242 \r
243   00056 5d               pop     ebp\r
244   00057 c3               ret     0\r
245 $LN2@win32_seek:\r
246 \r
247 ; 306  :         }\r
248 ; 307  :         else\r
249 ; 308  :             ret=0;\r
250 \r
251   00058 33 c0            xor     eax, eax\r
252 $LN11@win32_seek:\r
253   0005a 5e               pop     esi\r
254 \r
255 ; 309  :     }\r
256 ; 310  :     return ret;\r
257 ; 311  : }\r
258 \r
259   0005b 5d               pop     ebp\r
260   0005c c3               ret     0\r
261 _win32_seek64_file_func ENDP\r
262 _TEXT   ENDS\r
263 PUBLIC  _win32_seek_file_func\r
264 ; Function compile flags: /Ogtp\r
265 ;       COMDAT _win32_seek_file_func\r
266 _TEXT   SEGMENT\r
267 _opaque$ = 8                                            ; size = 4\r
268 _stream$ = 12                                           ; size = 4\r
269 _offset$ = 16                                           ; size = 4\r
270 _origin$ = 20                                           ; size = 4\r
271 _win32_seek_file_func PROC                              ; COMDAT\r
272 \r
273 ; 238  : {\r
274 \r
275   00000 55               push    ebp\r
276   00001 8b ec            mov     ebp, esp\r
277   00003 56               push    esi\r
278 \r
279 ; 239  :     DWORD dwMoveMethod=0xFFFFFFFF;\r
280 ; 240  :     HANDLE hFile = NULL;\r
281 ; 241  : \r
282 ; 242  :     long ret=-1;\r
283 ; 243  :     if (stream!=NULL)\r
284 \r
285   00004 8b 75 0c         mov     esi, DWORD PTR _stream$[ebp]\r
286   00007 33 d2            xor     edx, edx\r
287   00009 83 c8 ff         or      eax, -1\r
288   0000c 85 f6            test    esi, esi\r
289   0000e 74 02            je      SHORT $LN10@win32_seek@2\r
290 \r
291 ; 244  :         hFile = ((WIN32FILE_IOWIN*)stream) -> hf;\r
292 \r
293   00010 8b 16            mov     edx, DWORD PTR [esi]\r
294 $LN10@win32_seek@2:\r
295 \r
296 ; 245  :     switch (origin)\r
297 \r
298   00012 8b 4d 14         mov     ecx, DWORD PTR _origin$[ebp]\r
299   00015 83 e9 00         sub     ecx, 0\r
300   00018 74 14            je      SHORT $LN5@win32_seek@2\r
301   0001a 49               dec     ecx\r
302   0001b 74 0a            je      SHORT $LN7@win32_seek@2\r
303   0001d 49               dec     ecx\r
304 \r
305 ; 255  :         break;\r
306 ; 256  :     default: return -1;\r
307 \r
308   0001e 75 30            jne     SHORT $LN13@win32_seek@2\r
309 \r
310 ; 250  :     case ZLIB_FILEFUNC_SEEK_END :\r
311 ; 251  :         dwMoveMethod = FILE_END;\r
312 \r
313   00020 b9 02 00 00 00   mov     ecx, 2\r
314 \r
315 ; 252  :         break;\r
316 \r
317   00025 eb 09            jmp     SHORT $LN8@win32_seek@2\r
318 $LN7@win32_seek@2:\r
319 \r
320 ; 246  :     {\r
321 ; 247  :     case ZLIB_FILEFUNC_SEEK_CUR :\r
322 ; 248  :         dwMoveMethod = FILE_CURRENT;\r
323 \r
324   00027 b9 01 00 00 00   mov     ecx, 1\r
325 \r
326 ; 249  :         break;\r
327 \r
328   0002c eb 02            jmp     SHORT $LN8@win32_seek@2\r
329 $LN5@win32_seek@2:\r
330 \r
331 ; 253  :     case ZLIB_FILEFUNC_SEEK_SET :\r
332 ; 254  :         dwMoveMethod = FILE_BEGIN;\r
333 \r
334   0002e 33 c9            xor     ecx, ecx\r
335 $LN8@win32_seek@2:\r
336 \r
337 ; 257  :     }\r
338 ; 258  : \r
339 ; 259  :     if (hFile != NULL)\r
340 \r
341   00030 85 d2            test    edx, edx\r
342   00032 74 24            je      SHORT $LN11@win32_seek@2\r
343 \r
344 ; 260  :     {\r
345 ; 261  :         DWORD dwSet = SetFilePointer(hFile, offset, NULL, dwMoveMethod);\r
346 \r
347   00034 8b 45 10         mov     eax, DWORD PTR _offset$[ebp]\r
348   00037 51               push    ecx\r
349   00038 6a 00            push    0\r
350   0003a 50               push    eax\r
351   0003b 52               push    edx\r
352   0003c ff 15 00 00 00\r
353         00               call    DWORD PTR __imp__SetFilePointer@16\r
354 \r
355 ; 262  :         if (dwSet == INVALID_SET_FILE_POINTER)\r
356 \r
357   00042 83 f8 ff         cmp     eax, -1\r
358   00045 75 0f            jne     SHORT $LN2@win32_seek@2\r
359 \r
360 ; 263  :         {\r
361 ; 264  :             DWORD dwErr = GetLastError();\r
362 \r
363   00047 ff 15 00 00 00\r
364         00               call    DWORD PTR __imp__GetLastError@0\r
365 \r
366 ; 265  :             ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr;\r
367 \r
368   0004d 89 46 04         mov     DWORD PTR [esi+4], eax\r
369 $LN13@win32_seek@2:\r
370 \r
371 ; 266  :             ret = -1;\r
372 \r
373   00050 83 c8 ff         or      eax, -1\r
374   00053 5e               pop     esi\r
375 \r
376 ; 270  :     }\r
377 ; 271  :     return ret;\r
378 ; 272  : }\r
379 \r
380   00054 5d               pop     ebp\r
381   00055 c3               ret     0\r
382 $LN2@win32_seek@2:\r
383 \r
384 ; 267  :         }\r
385 ; 268  :         else\r
386 ; 269  :             ret=0;\r
387 \r
388   00056 33 c0            xor     eax, eax\r
389 $LN11@win32_seek@2:\r
390   00058 5e               pop     esi\r
391 \r
392 ; 270  :     }\r
393 ; 271  :     return ret;\r
394 ; 272  : }\r
395 \r
396   00059 5d               pop     ebp\r
397   0005a c3               ret     0\r
398 _win32_seek_file_func ENDP\r
399 _TEXT   ENDS\r
400 PUBLIC  _win32_tell64_file_func\r
401 ; Function compile flags: /Ogtp\r
402 ;       COMDAT _win32_tell64_file_func\r
403 _TEXT   SEGMENT\r
404 _li$82099 = -8                                          ; size = 8\r
405 _opaque$ = 8                                            ; size = 4\r
406 _stream$ = 12                                           ; size = 4\r
407 _win32_tell64_file_func PROC                            ; COMDAT\r
408 \r
409 ; 213  : {\r
410 \r
411   00000 55               push    ebp\r
412   00001 8b ec            mov     ebp, esp\r
413   00003 83 e4 f8         and     esp, -8                        ; fffffff8H\r
414   00006 83 ec 08         sub     esp, 8\r
415   00009 56               push    esi\r
416 \r
417 ; 214  :     ZPOS64_T ret= (ZPOS64_T)-1;\r
418 ; 215  :     HANDLE hFile = NULL;\r
419 ; 216  :     if (stream!=NULL)\r
420 \r
421   0000a 8b 75 0c         mov     esi, DWORD PTR _stream$[ebp]\r
422   0000d 57               push    edi\r
423   0000e 33 ff            xor     edi, edi\r
424   00010 83 c8 ff         or      eax, -1\r
425   00013 83 ca ff         or      edx, -1\r
426   00016 3b f7            cmp     esi, edi\r
427   00018 74 4b            je      SHORT $LN1@win32_tell\r
428 \r
429 ; 217  :         hFile = ((WIN32FILE_IOWIN*)stream)->hf;\r
430 \r
431   0001a 8b 0e            mov     ecx, DWORD PTR [esi]\r
432 \r
433 ; 218  : \r
434 ; 219  :     if (hFile)\r
435 \r
436   0001c 3b cf            cmp     ecx, edi\r
437   0001e 74 45            je      SHORT $LN1@win32_tell\r
438 \r
439 ; 220  :     {\r
440 ; 221  :         LARGE_INTEGER li;\r
441 ; 222  :         li.QuadPart = 0;\r
442 ; 223  :         li.u.LowPart = SetFilePointer(hFile, li.u.LowPart, &li.u.HighPart, FILE_CURRENT);\r
443 \r
444   00020 6a 01            push    1\r
445   00022 8d 44 24 10      lea     eax, DWORD PTR _li$82099[esp+24]\r
446   00026 50               push    eax\r
447   00027 57               push    edi\r
448   00028 51               push    ecx\r
449   00029 89 7c 24 18      mov     DWORD PTR _li$82099[esp+32], edi\r
450   0002d 89 7c 24 1c      mov     DWORD PTR _li$82099[esp+36], edi\r
451   00031 ff 15 00 00 00\r
452         00               call    DWORD PTR __imp__SetFilePointer@16\r
453   00037 89 44 24 08      mov     DWORD PTR _li$82099[esp+16], eax\r
454 \r
455 ; 224  :         if ( (li.LowPart == 0xFFFFFFFF) && (GetLastError() != NO_ERROR))\r
456 \r
457   0003b 83 f8 ff         cmp     eax, -1\r
458   0003e 75 21            jne     SHORT $LN2@win32_tell\r
459   00040 8b 3d 00 00 00\r
460         00               mov     edi, DWORD PTR __imp__GetLastError@0\r
461   00046 ff d7            call    edi\r
462   00048 85 c0            test    eax, eax\r
463   0004a 74 11            je      SHORT $LN9@win32_tell\r
464 \r
465 ; 225  :         {\r
466 ; 226  :             DWORD dwErr = GetLastError();\r
467 \r
468   0004c ff d7            call    edi\r
469 \r
470 ; 227  :             ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr;\r
471 \r
472   0004e 89 46 04         mov     DWORD PTR [esi+4], eax\r
473 \r
474 ; 228  :             ret = (ZPOS64_T)-1;\r
475 \r
476   00051 83 c8 ff         or      eax, -1\r
477   00054 83 ca ff         or      edx, -1\r
478 \r
479 ; 232  :     }\r
480 ; 233  :     return ret;\r
481 ; 234  : }\r
482 \r
483   00057 5f               pop     edi\r
484   00058 5e               pop     esi\r
485   00059 8b e5            mov     esp, ebp\r
486   0005b 5d               pop     ebp\r
487   0005c c3               ret     0\r
488 $LN9@win32_tell:\r
489 \r
490 ; 229  :         }\r
491 ; 230  :         else\r
492 \r
493   0005d 8b 44 24 08      mov     eax, DWORD PTR _li$82099[esp+16]\r
494 $LN2@win32_tell:\r
495 \r
496 ; 231  :             ret=li.QuadPart;\r
497 \r
498   00061 8b 54 24 0c      mov     edx, DWORD PTR _li$82099[esp+20]\r
499 $LN1@win32_tell:\r
500 \r
501 ; 232  :     }\r
502 ; 233  :     return ret;\r
503 ; 234  : }\r
504 \r
505   00065 5f               pop     edi\r
506   00066 5e               pop     esi\r
507   00067 8b e5            mov     esp, ebp\r
508   00069 5d               pop     ebp\r
509   0006a c3               ret     0\r
510 _win32_tell64_file_func ENDP\r
511 _TEXT   ENDS\r
512 PUBLIC  _win32_tell_file_func\r
513 ; Function compile flags: /Ogtp\r
514 ;       COMDAT _win32_tell_file_func\r
515 _TEXT   SEGMENT\r
516 _opaque$ = 8                                            ; size = 4\r
517 _stream$ = 12                                           ; size = 4\r
518 _win32_tell_file_func PROC                              ; COMDAT\r
519 \r
520 ; 192  : {\r
521 \r
522   00000 55               push    ebp\r
523   00001 8b ec            mov     ebp, esp\r
524   00003 56               push    esi\r
525 \r
526 ; 193  :     long ret=-1;\r
527 ; 194  :     HANDLE hFile = NULL;\r
528 ; 195  :     if (stream!=NULL)\r
529 \r
530   00004 8b 75 0c         mov     esi, DWORD PTR _stream$[ebp]\r
531   00007 83 c8 ff         or      eax, -1\r
532   0000a 85 f6            test    esi, esi\r
533   0000c 74 24            je      SHORT $LN1@win32_tell@2\r
534 \r
535 ; 196  :         hFile = ((WIN32FILE_IOWIN*)stream) -> hf;\r
536 \r
537   0000e 8b 0e            mov     ecx, DWORD PTR [esi]\r
538 \r
539 ; 197  :     if (hFile != NULL)\r
540 \r
541   00010 85 c9            test    ecx, ecx\r
542   00012 74 1e            je      SHORT $LN1@win32_tell@2\r
543 \r
544 ; 198  :     {\r
545 ; 199  :         DWORD dwSet = SetFilePointer(hFile, 0, NULL, FILE_CURRENT);\r
546 \r
547   00014 6a 01            push    1\r
548   00016 6a 00            push    0\r
549   00018 6a 00            push    0\r
550   0001a 51               push    ecx\r
551   0001b ff 15 00 00 00\r
552         00               call    DWORD PTR __imp__SetFilePointer@16\r
553 \r
554 ; 200  :         if (dwSet == INVALID_SET_FILE_POINTER)\r
555 \r
556   00021 83 f8 ff         cmp     eax, -1\r
557   00024 75 0c            jne     SHORT $LN1@win32_tell@2\r
558 \r
559 ; 201  :         {\r
560 ; 202  :             DWORD dwErr = GetLastError();\r
561 \r
562   00026 ff 15 00 00 00\r
563         00               call    DWORD PTR __imp__GetLastError@0\r
564 \r
565 ; 203  :             ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr;\r
566 \r
567   0002c 89 46 04         mov     DWORD PTR [esi+4], eax\r
568 \r
569 ; 204  :             ret = -1;\r
570 \r
571   0002f 83 c8 ff         or      eax, -1\r
572 $LN1@win32_tell@2:\r
573   00032 5e               pop     esi\r
574 \r
575 ; 205  :         }\r
576 ; 206  :         else\r
577 ; 207  :             ret=(long)dwSet;\r
578 ; 208  :     }\r
579 ; 209  :     return ret;\r
580 ; 210  : }\r
581 \r
582   00033 5d               pop     ebp\r
583   00034 c3               ret     0\r
584 _win32_tell_file_func ENDP\r
585 _TEXT   ENDS\r
586 PUBLIC  _win32_write_file_func\r
587 ; Function compile flags: /Ogtp\r
588 ;       COMDAT _win32_write_file_func\r
589 _TEXT   SEGMENT\r
590 _ret$ = -4                                              ; size = 4\r
591 _opaque$ = 8                                            ; size = 4\r
592 _stream$ = 12                                           ; size = 4\r
593 _buf$ = 16                                              ; size = 4\r
594 _size$ = 20                                             ; size = 4\r
595 _win32_write_file_func PROC                             ; COMDAT\r
596 \r
597 ; 171  : {\r
598 \r
599   00000 55               push    ebp\r
600   00001 8b ec            mov     ebp, esp\r
601   00003 51               push    ecx\r
602   00004 56               push    esi\r
603 \r
604 ; 172  :     uLong ret=0;\r
605 ; 173  :     HANDLE hFile = NULL;\r
606 ; 174  :     if (stream!=NULL)\r
607 \r
608   00005 8b 75 0c         mov     esi, DWORD PTR _stream$[ebp]\r
609   00008 33 c0            xor     eax, eax\r
610   0000a 89 45 fc         mov     DWORD PTR _ret$[ebp], eax\r
611   0000d 85 f6            test    esi, esi\r
612   0000f 74 31            je      SHORT $LN2@win32_writ\r
613 \r
614 ; 175  :         hFile = ((WIN32FILE_IOWIN*)stream) -> hf;\r
615 \r
616   00011 8b 0e            mov     ecx, DWORD PTR [esi]\r
617 \r
618 ; 176  : \r
619 ; 177  :     if (hFile != NULL)\r
620 \r
621   00013 85 c9            test    ecx, ecx\r
622   00015 74 2b            je      SHORT $LN2@win32_writ\r
623 \r
624 ; 178  :     {\r
625 ; 179  :         if (!WriteFile(hFile, buf, size, &ret, NULL))\r
626 \r
627   00017 8b 55 14         mov     edx, DWORD PTR _size$[ebp]\r
628   0001a 50               push    eax\r
629   0001b 8d 45 fc         lea     eax, DWORD PTR _ret$[ebp]\r
630   0001e 50               push    eax\r
631   0001f 8b 45 10         mov     eax, DWORD PTR _buf$[ebp]\r
632   00022 52               push    edx\r
633   00023 50               push    eax\r
634   00024 51               push    ecx\r
635   00025 ff 15 00 00 00\r
636         00               call    DWORD PTR __imp__WriteFile@20\r
637   0002b 85 c0            test    eax, eax\r
638   0002d 75 10            jne     SHORT $LN7@win32_writ\r
639 \r
640 ; 180  :         {\r
641 ; 181  :             DWORD dwErr = GetLastError();\r
642 \r
643   0002f ff 15 00 00 00\r
644         00               call    DWORD PTR __imp__GetLastError@0\r
645 \r
646 ; 182  :             if (dwErr == ERROR_HANDLE_EOF)\r
647 \r
648   00035 83 f8 26         cmp     eax, 38                        ; 00000026H\r
649   00038 75 02            jne     SHORT $LN1@win32_writ\r
650 \r
651 ; 183  :                 dwErr = 0;\r
652 \r
653   0003a 33 c0            xor     eax, eax\r
654 $LN1@win32_writ:\r
655 \r
656 ; 184  :             ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr;\r
657 \r
658   0003c 89 46 04         mov     DWORD PTR [esi+4], eax\r
659 $LN7@win32_writ:\r
660 \r
661 ; 185  :         }\r
662 ; 186  :     }\r
663 ; 187  : \r
664 ; 188  :     return ret;\r
665 \r
666   0003f 8b 45 fc         mov     eax, DWORD PTR _ret$[ebp]\r
667 $LN2@win32_writ:\r
668   00042 5e               pop     esi\r
669 \r
670 ; 189  : }\r
671 \r
672   00043 8b e5            mov     esp, ebp\r
673   00045 5d               pop     ebp\r
674   00046 c3               ret     0\r
675 _win32_write_file_func ENDP\r
676 _TEXT   ENDS\r
677 PUBLIC  _win32_read_file_func\r
678 ; Function compile flags: /Ogtp\r
679 ;       COMDAT _win32_read_file_func\r
680 _TEXT   SEGMENT\r
681 _ret$ = -4                                              ; size = 4\r
682 _opaque$ = 8                                            ; size = 4\r
683 _stream$ = 12                                           ; size = 4\r
684 _buf$ = 16                                              ; size = 4\r
685 _size$ = 20                                             ; size = 4\r
686 _win32_read_file_func PROC                              ; COMDAT\r
687 \r
688 ; 149  : {\r
689 \r
690   00000 55               push    ebp\r
691   00001 8b ec            mov     ebp, esp\r
692   00003 51               push    ecx\r
693   00004 56               push    esi\r
694 \r
695 ; 150  :     uLong ret=0;\r
696 ; 151  :     HANDLE hFile = NULL;\r
697 ; 152  :     if (stream!=NULL)\r
698 \r
699   00005 8b 75 0c         mov     esi, DWORD PTR _stream$[ebp]\r
700   00008 33 c0            xor     eax, eax\r
701   0000a 89 45 fc         mov     DWORD PTR _ret$[ebp], eax\r
702   0000d 85 f6            test    esi, esi\r
703   0000f 74 31            je      SHORT $LN2@win32_read\r
704 \r
705 ; 153  :         hFile = ((WIN32FILE_IOWIN*)stream) -> hf;\r
706 \r
707   00011 8b 0e            mov     ecx, DWORD PTR [esi]\r
708 \r
709 ; 154  : \r
710 ; 155  :     if (hFile != NULL)\r
711 \r
712   00013 85 c9            test    ecx, ecx\r
713   00015 74 2b            je      SHORT $LN2@win32_read\r
714 \r
715 ; 156  :     {\r
716 ; 157  :         if (!ReadFile(hFile, buf, size, &ret, NULL))\r
717 \r
718   00017 8b 55 14         mov     edx, DWORD PTR _size$[ebp]\r
719   0001a 50               push    eax\r
720   0001b 8d 45 fc         lea     eax, DWORD PTR _ret$[ebp]\r
721   0001e 50               push    eax\r
722   0001f 8b 45 10         mov     eax, DWORD PTR _buf$[ebp]\r
723   00022 52               push    edx\r
724   00023 50               push    eax\r
725   00024 51               push    ecx\r
726   00025 ff 15 00 00 00\r
727         00               call    DWORD PTR __imp__ReadFile@20\r
728   0002b 85 c0            test    eax, eax\r
729   0002d 75 10            jne     SHORT $LN7@win32_read\r
730 \r
731 ; 158  :         {\r
732 ; 159  :             DWORD dwErr = GetLastError();\r
733 \r
734   0002f ff 15 00 00 00\r
735         00               call    DWORD PTR __imp__GetLastError@0\r
736 \r
737 ; 160  :             if (dwErr == ERROR_HANDLE_EOF)\r
738 \r
739   00035 83 f8 26         cmp     eax, 38                        ; 00000026H\r
740   00038 75 02            jne     SHORT $LN1@win32_read\r
741 \r
742 ; 161  :                 dwErr = 0;\r
743 \r
744   0003a 33 c0            xor     eax, eax\r
745 $LN1@win32_read:\r
746 \r
747 ; 162  :             ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr;\r
748 \r
749   0003c 89 46 04         mov     DWORD PTR [esi+4], eax\r
750 $LN7@win32_read:\r
751 \r
752 ; 163  :         }\r
753 ; 164  :     }\r
754 ; 165  : \r
755 ; 166  :     return ret;\r
756 \r
757   0003f 8b 45 fc         mov     eax, DWORD PTR _ret$[ebp]\r
758 $LN2@win32_read:\r
759   00042 5e               pop     esi\r
760 \r
761 ; 167  : }\r
762 \r
763   00043 8b e5            mov     esp, ebp\r
764   00045 5d               pop     ebp\r
765   00046 c3               ret     0\r
766 _win32_read_file_func ENDP\r
767 ; Function compile flags: /Ogtp\r
768 _TEXT   ENDS\r
769 ;       COMDAT _win32_build_iowin\r
770 _TEXT   SEGMENT\r
771 _win32_build_iowin PROC                                 ; COMDAT\r
772 ; _hFile$ = edi\r
773 \r
774 ; 71   :     voidpf ret=NULL;\r
775 \r
776   00000 33 c0            xor     eax, eax\r
777 \r
778 ; 72   : \r
779 ; 73   :     if ((hFile != NULL) && (hFile != INVALID_HANDLE_VALUE))\r
780 \r
781   00002 85 ff            test    edi, edi\r
782   00004 74 2d            je      SHORT $LN1@win32_buil\r
783   00006 83 ff ff         cmp     edi, -1\r
784   00009 74 28            je      SHORT $LN1@win32_buil\r
785 \r
786 ; 74   :     {\r
787 ; 75   :         WIN32FILE_IOWIN w32fiow;\r
788 ; 76   :         w32fiow.hf = hFile;\r
789 ; 77   :         w32fiow.error = 0;\r
790 ; 78   :         ret = malloc(sizeof(WIN32FILE_IOWIN));\r
791 \r
792   0000b 53               push    ebx\r
793   0000c 56               push    esi\r
794   0000d 6a 08            push    8\r
795   0000f 33 db            xor     ebx, ebx\r
796   00011 ff 15 00 00 00\r
797         00               call    DWORD PTR __imp__malloc\r
798   00017 8b f0            mov     esi, eax\r
799   00019 83 c4 04         add     esp, 4\r
800 \r
801 ; 79   : \r
802 ; 80   :         if (ret==NULL)\r
803 \r
804   0001c 85 f6            test    esi, esi\r
805   0001e 75 0c            jne     SHORT $LN2@win32_buil\r
806 \r
807 ; 81   :             CloseHandle(hFile);\r
808 \r
809   00020 57               push    edi\r
810   00021 ff 15 00 00 00\r
811         00               call    DWORD PTR __imp__CloseHandle@4\r
812 \r
813 ; 84   :     }\r
814 ; 85   :     return ret;\r
815 \r
816   00027 8b c6            mov     eax, esi\r
817   00029 5e               pop     esi\r
818   0002a 5b               pop     ebx\r
819 \r
820 ; 86   : }\r
821 \r
822   0002b c3               ret     0\r
823 $LN2@win32_buil:\r
824 \r
825 ; 82   :         else\r
826 ; 83   :             *((WIN32FILE_IOWIN*)ret) = w32fiow;\r
827 \r
828   0002c 89 5e 04         mov     DWORD PTR [esi+4], ebx\r
829   0002f 89 3e            mov     DWORD PTR [esi], edi\r
830   00031 5e               pop     esi\r
831   00032 5b               pop     ebx\r
832 $LN1@win32_buil:\r
833 \r
834 ; 86   : }\r
835 \r
836   00033 c3               ret     0\r
837 _win32_build_iowin ENDP\r
838 ; Function compile flags: /Ogtp\r
839 _TEXT   ENDS\r
840 ;       COMDAT _win32_translate_open_mode\r
841 _TEXT   SEGMENT\r
842 _lpdwFlagsAndAttributes$ = 8                            ; size = 4\r
843 _win32_translate_open_mode PROC                         ; COMDAT\r
844 ; _mode$ = edx\r
845 ; _lpdwDesiredAccess$ = ecx\r
846 ; _lpdwCreationDisposition$ = eax\r
847 ; _lpdwShareMode$ = esi\r
848 \r
849 ; 48   : {\r
850 \r
851   00000 55               push    ebp\r
852   00001 8b ec            mov     ebp, esp\r
853   00003 53               push    ebx\r
854   00004 57               push    edi\r
855 \r
856 ; 49   :     *lpdwDesiredAccess = *lpdwShareMode = *lpdwFlagsAndAttributes = *lpdwCreationDisposition = 0;\r
857 \r
858   00005 8b 7d 08         mov     edi, DWORD PTR _lpdwFlagsAndAttributes$[ebp]\r
859 \r
860 ; 50   : \r
861 ; 51   :     if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ)\r
862 \r
863   00008 8b da            mov     ebx, edx\r
864   0000a 80 e3 03         and     bl, 3\r
865   0000d c7 07 00 00 00\r
866         00               mov     DWORD PTR [edi], 0\r
867   00013 5f               pop     edi\r
868   00014 80 fb 01         cmp     bl, 1\r
869   00017 c7 00 00 00 00\r
870         00               mov     DWORD PTR [eax], 0\r
871   0001d c7 06 00 00 00\r
872         00               mov     DWORD PTR [esi], 0\r
873   00023 c7 01 00 00 00\r
874         00               mov     DWORD PTR [ecx], 0\r
875   00029 5b               pop     ebx\r
876   0002a 75 14            jne     SHORT $LN5@win32_tran\r
877 \r
878 ; 52   :     {\r
879 ; 53   :         *lpdwDesiredAccess = GENERIC_READ;\r
880 \r
881   0002c c7 01 00 00 00\r
882         80               mov     DWORD PTR [ecx], -2147483648 ; 80000000H\r
883 \r
884 ; 54   :         *lpdwCreationDisposition = OPEN_EXISTING;\r
885 \r
886   00032 c7 00 03 00 00\r
887         00               mov     DWORD PTR [eax], 3\r
888 \r
889 ; 55   :         *lpdwShareMode = FILE_SHARE_READ;\r
890 \r
891   00038 c7 06 01 00 00\r
892         00               mov     DWORD PTR [esi], 1\r
893 \r
894 ; 66   :     }\r
895 ; 67   : }\r
896 \r
897   0003e 5d               pop     ebp\r
898   0003f c3               ret     0\r
899 $LN5@win32_tran:\r
900 \r
901 ; 56   :     }\r
902 ; 57   :     else if (mode & ZLIB_FILEFUNC_MODE_EXISTING)\r
903 \r
904   00040 f6 c2 04         test    dl, 4\r
905   00043 74 0e            je      SHORT $LN3@win32_tran\r
906 \r
907 ; 58   :     {\r
908 ; 59   :         *lpdwDesiredAccess = GENERIC_WRITE | GENERIC_READ;\r
909 ; 60   :         *lpdwCreationDisposition = OPEN_EXISTING;\r
910 \r
911   00045 c7 00 03 00 00\r
912         00               mov     DWORD PTR [eax], 3\r
913 \r
914 ; 63   :     {\r
915 ; 64   :         *lpdwDesiredAccess = GENERIC_WRITE | GENERIC_READ;\r
916 \r
917   0004b c7 01 00 00 00\r
918         c0               mov     DWORD PTR [ecx], -1073741824 ; c0000000H\r
919 \r
920 ; 66   :     }\r
921 ; 67   : }\r
922 \r
923   00051 5d               pop     ebp\r
924   00052 c3               ret     0\r
925 $LN3@win32_tran:\r
926 \r
927 ; 61   :     }\r
928 ; 62   :     else if (mode & ZLIB_FILEFUNC_MODE_CREATE)\r
929 \r
930   00053 f6 c2 08         test    dl, 8\r
931   00056 74 0c            je      SHORT $LN1@win32_tran\r
932 \r
933 ; 65   :         *lpdwCreationDisposition = CREATE_ALWAYS;\r
934 \r
935   00058 c7 00 02 00 00\r
936         00               mov     DWORD PTR [eax], 2\r
937   0005e c7 01 00 00 00\r
938         c0               mov     DWORD PTR [ecx], -1073741824 ; c0000000H\r
939 $LN1@win32_tran:\r
940 \r
941 ; 66   :     }\r
942 ; 67   : }\r
943 \r
944   00064 5d               pop     ebp\r
945   00065 c3               ret     0\r
946 _win32_translate_open_mode ENDP\r
947 PUBLIC  _win32_open_file_func\r
948 ; Function compile flags: /Ogtp\r
949 ;       COMDAT _win32_open_file_func\r
950 _TEXT   SEGMENT\r
951 _dwShareMode$ = -16                                     ; size = 4\r
952 _dwCreationDisposition$ = -12                           ; size = 4\r
953 _dwFlagsAndAttributes$ = -8                             ; size = 4\r
954 _dwDesiredAccess$ = -4                                  ; size = 4\r
955 _opaque$ = 8                                            ; size = 4\r
956 _filename$ = 12                                         ; size = 4\r
957 _mode$ = 16                                             ; size = 4\r
958 _win32_open_file_func PROC                              ; COMDAT\r
959 \r
960 ; 134  : {\r
961 \r
962   00000 55               push    ebp\r
963   00001 8b ec            mov     ebp, esp\r
964 \r
965 ; 135  :     const char* mode_fopen = NULL;\r
966 ; 136  :     DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ;\r
967 ; 137  :     HANDLE hFile = NULL;\r
968 ; 138  : \r
969 ; 139  :     win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes);\r
970 \r
971   00003 8b 55 10         mov     edx, DWORD PTR _mode$[ebp]\r
972   00006 83 ec 10         sub     esp, 16                        ; 00000010H\r
973   00009 56               push    esi\r
974   0000a 57               push    edi\r
975   0000b 8d 45 f8         lea     eax, DWORD PTR _dwFlagsAndAttributes$[ebp]\r
976   0000e 50               push    eax\r
977   0000f 8d 75 f0         lea     esi, DWORD PTR _dwShareMode$[ebp]\r
978   00012 8d 45 f4         lea     eax, DWORD PTR _dwCreationDisposition$[ebp]\r
979   00015 8d 4d fc         lea     ecx, DWORD PTR _dwDesiredAccess$[ebp]\r
980   00018 33 ff            xor     edi, edi\r
981   0001a e8 00 00 00 00   call    _win32_translate_open_mode\r
982 \r
983 ; 140  : \r
984 ; 141  :     if ((filename!=NULL) && (dwDesiredAccess != 0))\r
985 \r
986   0001f 8b 4d 0c         mov     ecx, DWORD PTR _filename$[ebp]\r
987   00022 83 c4 04         add     esp, 4\r
988   00025 85 c9            test    ecx, ecx\r
989   00027 74 1f            je      SHORT $LN1@win32_open\r
990   00029 8b 45 fc         mov     eax, DWORD PTR _dwDesiredAccess$[ebp]\r
991   0002c 85 c0            test    eax, eax\r
992   0002e 74 18            je      SHORT $LN1@win32_open\r
993 \r
994 ; 142  :         hFile = CreateFile((LPCTSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL);\r
995 \r
996   00030 8b 55 f8         mov     edx, DWORD PTR _dwFlagsAndAttributes$[ebp]\r
997   00033 57               push    edi\r
998   00034 52               push    edx\r
999   00035 8b 55 f4         mov     edx, DWORD PTR _dwCreationDisposition$[ebp]\r
1000   00038 52               push    edx\r
1001   00039 8b 55 f0         mov     edx, DWORD PTR _dwShareMode$[ebp]\r
1002   0003c 57               push    edi\r
1003   0003d 52               push    edx\r
1004   0003e 50               push    eax\r
1005   0003f 51               push    ecx\r
1006   00040 ff 15 00 00 00\r
1007         00               call    DWORD PTR __imp__CreateFileA@28\r
1008   00046 8b f8            mov     edi, eax\r
1009 $LN1@win32_open:\r
1010 \r
1011 ; 143  : \r
1012 ; 144  :     return win32_build_iowin(hFile);\r
1013 \r
1014   00048 e8 00 00 00 00   call    _win32_build_iowin\r
1015   0004d 5f               pop     edi\r
1016   0004e 5e               pop     esi\r
1017 \r
1018 ; 145  : }\r
1019 \r
1020   0004f 8b e5            mov     esp, ebp\r
1021   00051 5d               pop     ebp\r
1022   00052 c3               ret     0\r
1023 _win32_open_file_func ENDP\r
1024 _TEXT   ENDS\r
1025 PUBLIC  _win32_open64_file_funcW\r
1026 ; Function compile flags: /Ogtp\r
1027 ;       COMDAT _win32_open64_file_funcW\r
1028 _TEXT   SEGMENT\r
1029 _dwShareMode$ = -16                                     ; size = 4\r
1030 _dwCreationDisposition$ = -12                           ; size = 4\r
1031 _dwFlagsAndAttributes$ = -8                             ; size = 4\r
1032 _dwDesiredAccess$ = -4                                  ; size = 4\r
1033 _opaque$ = 8                                            ; size = 4\r
1034 _filename$ = 12                                         ; size = 4\r
1035 _mode$ = 16                                             ; size = 4\r
1036 _win32_open64_file_funcW PROC                           ; COMDAT\r
1037 \r
1038 ; 119  : {\r
1039 \r
1040   00000 55               push    ebp\r
1041   00001 8b ec            mov     ebp, esp\r
1042 \r
1043 ; 120  :     const char* mode_fopen = NULL;\r
1044 ; 121  :     DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ;\r
1045 ; 122  :     HANDLE hFile = NULL;\r
1046 ; 123  : \r
1047 ; 124  :     win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes);\r
1048 \r
1049   00003 8b 55 10         mov     edx, DWORD PTR _mode$[ebp]\r
1050   00006 83 ec 10         sub     esp, 16                        ; 00000010H\r
1051   00009 56               push    esi\r
1052   0000a 57               push    edi\r
1053   0000b 8d 45 f8         lea     eax, DWORD PTR _dwFlagsAndAttributes$[ebp]\r
1054   0000e 50               push    eax\r
1055   0000f 8d 75 f0         lea     esi, DWORD PTR _dwShareMode$[ebp]\r
1056   00012 8d 45 f4         lea     eax, DWORD PTR _dwCreationDisposition$[ebp]\r
1057   00015 8d 4d fc         lea     ecx, DWORD PTR _dwDesiredAccess$[ebp]\r
1058   00018 33 ff            xor     edi, edi\r
1059   0001a e8 00 00 00 00   call    _win32_translate_open_mode\r
1060 \r
1061 ; 125  : \r
1062 ; 126  :     if ((filename!=NULL) && (dwDesiredAccess != 0))\r
1063 \r
1064   0001f 8b 4d 0c         mov     ecx, DWORD PTR _filename$[ebp]\r
1065   00022 83 c4 04         add     esp, 4\r
1066   00025 85 c9            test    ecx, ecx\r
1067   00027 74 1f            je      SHORT $LN1@win32_open@2\r
1068   00029 8b 45 fc         mov     eax, DWORD PTR _dwDesiredAccess$[ebp]\r
1069   0002c 85 c0            test    eax, eax\r
1070   0002e 74 18            je      SHORT $LN1@win32_open@2\r
1071 \r
1072 ; 127  :         hFile = CreateFileW((LPCWSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL);\r
1073 \r
1074   00030 8b 55 f8         mov     edx, DWORD PTR _dwFlagsAndAttributes$[ebp]\r
1075   00033 57               push    edi\r
1076   00034 52               push    edx\r
1077   00035 8b 55 f4         mov     edx, DWORD PTR _dwCreationDisposition$[ebp]\r
1078   00038 52               push    edx\r
1079   00039 8b 55 f0         mov     edx, DWORD PTR _dwShareMode$[ebp]\r
1080   0003c 57               push    edi\r
1081   0003d 52               push    edx\r
1082   0003e 50               push    eax\r
1083   0003f 51               push    ecx\r
1084   00040 ff 15 00 00 00\r
1085         00               call    DWORD PTR __imp__CreateFileW@28\r
1086   00046 8b f8            mov     edi, eax\r
1087 $LN1@win32_open@2:\r
1088 \r
1089 ; 128  : \r
1090 ; 129  :     return win32_build_iowin(hFile);\r
1091 \r
1092   00048 e8 00 00 00 00   call    _win32_build_iowin\r
1093   0004d 5f               pop     edi\r
1094   0004e 5e               pop     esi\r
1095 \r
1096 ; 130  : }\r
1097 \r
1098   0004f 8b e5            mov     esp, ebp\r
1099   00051 5d               pop     ebp\r
1100   00052 c3               ret     0\r
1101 _win32_open64_file_funcW ENDP\r
1102 _TEXT   ENDS\r
1103 PUBLIC  _win32_open64_file_funcA\r
1104 ; Function compile flags: /Ogtp\r
1105 ;       COMDAT _win32_open64_file_funcA\r
1106 _TEXT   SEGMENT\r
1107 _dwShareMode$ = -16                                     ; size = 4\r
1108 _dwCreationDisposition$ = -12                           ; size = 4\r
1109 _dwFlagsAndAttributes$ = -8                             ; size = 4\r
1110 _dwDesiredAccess$ = -4                                  ; size = 4\r
1111 _opaque$ = 8                                            ; size = 4\r
1112 _filename$ = 12                                         ; size = 4\r
1113 _mode$ = 16                                             ; size = 4\r
1114 _win32_open64_file_funcA PROC                           ; COMDAT\r
1115 \r
1116 ; 104  : {\r
1117 \r
1118   00000 55               push    ebp\r
1119   00001 8b ec            mov     ebp, esp\r
1120 \r
1121 ; 105  :     const char* mode_fopen = NULL;\r
1122 ; 106  :     DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ;\r
1123 ; 107  :     HANDLE hFile = NULL;\r
1124 ; 108  : \r
1125 ; 109  :     win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes);\r
1126 \r
1127   00003 8b 55 10         mov     edx, DWORD PTR _mode$[ebp]\r
1128   00006 83 ec 10         sub     esp, 16                        ; 00000010H\r
1129   00009 56               push    esi\r
1130   0000a 57               push    edi\r
1131   0000b 8d 45 f8         lea     eax, DWORD PTR _dwFlagsAndAttributes$[ebp]\r
1132   0000e 50               push    eax\r
1133   0000f 8d 75 f0         lea     esi, DWORD PTR _dwShareMode$[ebp]\r
1134   00012 8d 45 f4         lea     eax, DWORD PTR _dwCreationDisposition$[ebp]\r
1135   00015 8d 4d fc         lea     ecx, DWORD PTR _dwDesiredAccess$[ebp]\r
1136   00018 33 ff            xor     edi, edi\r
1137   0001a e8 00 00 00 00   call    _win32_translate_open_mode\r
1138 \r
1139 ; 110  : \r
1140 ; 111  :     if ((filename!=NULL) && (dwDesiredAccess != 0))\r
1141 \r
1142   0001f 8b 4d 0c         mov     ecx, DWORD PTR _filename$[ebp]\r
1143   00022 83 c4 04         add     esp, 4\r
1144   00025 85 c9            test    ecx, ecx\r
1145   00027 74 1f            je      SHORT $LN1@win32_open@3\r
1146   00029 8b 45 fc         mov     eax, DWORD PTR _dwDesiredAccess$[ebp]\r
1147   0002c 85 c0            test    eax, eax\r
1148   0002e 74 18            je      SHORT $LN1@win32_open@3\r
1149 \r
1150 ; 112  :         hFile = CreateFileA((LPCSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL);\r
1151 \r
1152   00030 8b 55 f8         mov     edx, DWORD PTR _dwFlagsAndAttributes$[ebp]\r
1153   00033 57               push    edi\r
1154   00034 52               push    edx\r
1155   00035 8b 55 f4         mov     edx, DWORD PTR _dwCreationDisposition$[ebp]\r
1156   00038 52               push    edx\r
1157   00039 8b 55 f0         mov     edx, DWORD PTR _dwShareMode$[ebp]\r
1158   0003c 57               push    edi\r
1159   0003d 52               push    edx\r
1160   0003e 50               push    eax\r
1161   0003f 51               push    ecx\r
1162   00040 ff 15 00 00 00\r
1163         00               call    DWORD PTR __imp__CreateFileA@28\r
1164   00046 8b f8            mov     edi, eax\r
1165 $LN1@win32_open@3:\r
1166 \r
1167 ; 113  : \r
1168 ; 114  :     return win32_build_iowin(hFile);\r
1169 \r
1170   00048 e8 00 00 00 00   call    _win32_build_iowin\r
1171   0004d 5f               pop     edi\r
1172   0004e 5e               pop     esi\r
1173 \r
1174 ; 115  : }\r
1175 \r
1176   0004f 8b e5            mov     esp, ebp\r
1177   00051 5d               pop     ebp\r
1178   00052 c3               ret     0\r
1179 _win32_open64_file_funcA ENDP\r
1180 _TEXT   ENDS\r
1181 PUBLIC  _win32_open64_file_func\r
1182 ; Function compile flags: /Ogtp\r
1183 ;       COMDAT _win32_open64_file_func\r
1184 _TEXT   SEGMENT\r
1185 _dwShareMode$ = -16                                     ; size = 4\r
1186 _dwCreationDisposition$ = -12                           ; size = 4\r
1187 _dwFlagsAndAttributes$ = -8                             ; size = 4\r
1188 _dwDesiredAccess$ = -4                                  ; size = 4\r
1189 _opaque$ = 8                                            ; size = 4\r
1190 _filename$ = 12                                         ; size = 4\r
1191 _mode$ = 16                                             ; size = 4\r
1192 _win32_open64_file_func PROC                            ; COMDAT\r
1193 \r
1194 ; 89   : {\r
1195 \r
1196   00000 55               push    ebp\r
1197   00001 8b ec            mov     ebp, esp\r
1198 \r
1199 ; 90   :     const char* mode_fopen = NULL;\r
1200 ; 91   :     DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ;\r
1201 ; 92   :     HANDLE hFile = NULL;\r
1202 ; 93   : \r
1203 ; 94   :     win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes);\r
1204 \r
1205   00003 8b 55 10         mov     edx, DWORD PTR _mode$[ebp]\r
1206   00006 83 ec 10         sub     esp, 16                        ; 00000010H\r
1207   00009 56               push    esi\r
1208   0000a 57               push    edi\r
1209   0000b 8d 45 f8         lea     eax, DWORD PTR _dwFlagsAndAttributes$[ebp]\r
1210   0000e 50               push    eax\r
1211   0000f 8d 75 f0         lea     esi, DWORD PTR _dwShareMode$[ebp]\r
1212   00012 8d 45 f4         lea     eax, DWORD PTR _dwCreationDisposition$[ebp]\r
1213   00015 8d 4d fc         lea     ecx, DWORD PTR _dwDesiredAccess$[ebp]\r
1214   00018 33 ff            xor     edi, edi\r
1215   0001a e8 00 00 00 00   call    _win32_translate_open_mode\r
1216 \r
1217 ; 95   : \r
1218 ; 96   :     if ((filename!=NULL) && (dwDesiredAccess != 0))\r
1219 \r
1220   0001f 8b 4d 0c         mov     ecx, DWORD PTR _filename$[ebp]\r
1221   00022 83 c4 04         add     esp, 4\r
1222   00025 85 c9            test    ecx, ecx\r
1223   00027 74 1f            je      SHORT $LN1@win32_open@4\r
1224   00029 8b 45 fc         mov     eax, DWORD PTR _dwDesiredAccess$[ebp]\r
1225   0002c 85 c0            test    eax, eax\r
1226   0002e 74 18            je      SHORT $LN1@win32_open@4\r
1227 \r
1228 ; 97   :         hFile = CreateFile((LPCTSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL);\r
1229 \r
1230   00030 8b 55 f8         mov     edx, DWORD PTR _dwFlagsAndAttributes$[ebp]\r
1231   00033 57               push    edi\r
1232   00034 52               push    edx\r
1233   00035 8b 55 f4         mov     edx, DWORD PTR _dwCreationDisposition$[ebp]\r
1234   00038 52               push    edx\r
1235   00039 8b 55 f0         mov     edx, DWORD PTR _dwShareMode$[ebp]\r
1236   0003c 57               push    edi\r
1237   0003d 52               push    edx\r
1238   0003e 50               push    eax\r
1239   0003f 51               push    ecx\r
1240   00040 ff 15 00 00 00\r
1241         00               call    DWORD PTR __imp__CreateFileA@28\r
1242   00046 8b f8            mov     edi, eax\r
1243 $LN1@win32_open@4:\r
1244 \r
1245 ; 98   : \r
1246 ; 99   :     return win32_build_iowin(hFile);\r
1247 \r
1248   00048 e8 00 00 00 00   call    _win32_build_iowin\r
1249   0004d 5f               pop     edi\r
1250   0004e 5e               pop     esi\r
1251 \r
1252 ; 100  : }\r
1253 \r
1254   0004f 8b e5            mov     esp, ebp\r
1255   00051 5d               pop     ebp\r
1256   00052 c3               ret     0\r
1257 _win32_open64_file_func ENDP\r
1258 PUBLIC  _fill_win32_filefunc64W\r
1259 ; Function compile flags: /Ogtp\r
1260 ;       COMDAT _fill_win32_filefunc64W\r
1261 _TEXT   SEGMENT\r
1262 _pzlib_filefunc_def$ = 8                                ; size = 4\r
1263 _fill_win32_filefunc64W PROC                            ; COMDAT\r
1264 \r
1265 ; 380  : {\r
1266 \r
1267   00000 55               push    ebp\r
1268   00001 8b ec            mov     ebp, esp\r
1269 \r
1270 ; 381  :     pzlib_filefunc_def->zopen64_file = win32_open64_file_funcW;\r
1271 \r
1272   00003 8b 45 08         mov     eax, DWORD PTR _pzlib_filefunc_def$[ebp]\r
1273   00006 c7 00 00 00 00\r
1274         00               mov     DWORD PTR [eax], OFFSET _win32_open64_file_funcW\r
1275 \r
1276 ; 382  :     pzlib_filefunc_def->zread_file = win32_read_file_func;\r
1277 \r
1278   0000c c7 40 04 00 00\r
1279         00 00            mov     DWORD PTR [eax+4], OFFSET _win32_read_file_func\r
1280 \r
1281 ; 383  :     pzlib_filefunc_def->zwrite_file = win32_write_file_func;\r
1282 \r
1283   00013 c7 40 08 00 00\r
1284         00 00            mov     DWORD PTR [eax+8], OFFSET _win32_write_file_func\r
1285 \r
1286 ; 384  :     pzlib_filefunc_def->ztell64_file = win32_tell64_file_func;\r
1287 \r
1288   0001a c7 40 0c 00 00\r
1289         00 00            mov     DWORD PTR [eax+12], OFFSET _win32_tell64_file_func\r
1290 \r
1291 ; 385  :     pzlib_filefunc_def->zseek64_file = win32_seek64_file_func;\r
1292 \r
1293   00021 c7 40 10 00 00\r
1294         00 00            mov     DWORD PTR [eax+16], OFFSET _win32_seek64_file_func\r
1295 \r
1296 ; 386  :     pzlib_filefunc_def->zclose_file = win32_close_file_func;\r
1297 \r
1298   00028 c7 40 14 00 00\r
1299         00 00            mov     DWORD PTR [eax+20], OFFSET _win32_close_file_func\r
1300 \r
1301 ; 387  :     pzlib_filefunc_def->zerror_file = win32_error_file_func;\r
1302 \r
1303   0002f c7 40 18 00 00\r
1304         00 00            mov     DWORD PTR [eax+24], OFFSET _win32_error_file_func\r
1305 \r
1306 ; 388  :     pzlib_filefunc_def->opaque = NULL;\r
1307 \r
1308   00036 c7 40 1c 00 00\r
1309         00 00            mov     DWORD PTR [eax+28], 0\r
1310 \r
1311 ; 389  : }\r
1312 \r
1313   0003d 5d               pop     ebp\r
1314   0003e c3               ret     0\r
1315 _fill_win32_filefunc64W ENDP\r
1316 _TEXT   ENDS\r
1317 PUBLIC  _fill_win32_filefunc64A\r
1318 ; Function compile flags: /Ogtp\r
1319 ;       COMDAT _fill_win32_filefunc64A\r
1320 _TEXT   SEGMENT\r
1321 _pzlib_filefunc_def$ = 8                                ; size = 4\r
1322 _fill_win32_filefunc64A PROC                            ; COMDAT\r
1323 \r
1324 ; 367  : {\r
1325 \r
1326   00000 55               push    ebp\r
1327   00001 8b ec            mov     ebp, esp\r
1328 \r
1329 ; 368  :     pzlib_filefunc_def->zopen64_file = win32_open64_file_funcA;\r
1330 \r
1331   00003 8b 45 08         mov     eax, DWORD PTR _pzlib_filefunc_def$[ebp]\r
1332   00006 c7 00 00 00 00\r
1333         00               mov     DWORD PTR [eax], OFFSET _win32_open64_file_funcA\r
1334 \r
1335 ; 369  :     pzlib_filefunc_def->zread_file = win32_read_file_func;\r
1336 \r
1337   0000c c7 40 04 00 00\r
1338         00 00            mov     DWORD PTR [eax+4], OFFSET _win32_read_file_func\r
1339 \r
1340 ; 370  :     pzlib_filefunc_def->zwrite_file = win32_write_file_func;\r
1341 \r
1342   00013 c7 40 08 00 00\r
1343         00 00            mov     DWORD PTR [eax+8], OFFSET _win32_write_file_func\r
1344 \r
1345 ; 371  :     pzlib_filefunc_def->ztell64_file = win32_tell64_file_func;\r
1346 \r
1347   0001a c7 40 0c 00 00\r
1348         00 00            mov     DWORD PTR [eax+12], OFFSET _win32_tell64_file_func\r
1349 \r
1350 ; 372  :     pzlib_filefunc_def->zseek64_file = win32_seek64_file_func;\r
1351 \r
1352   00021 c7 40 10 00 00\r
1353         00 00            mov     DWORD PTR [eax+16], OFFSET _win32_seek64_file_func\r
1354 \r
1355 ; 373  :     pzlib_filefunc_def->zclose_file = win32_close_file_func;\r
1356 \r
1357   00028 c7 40 14 00 00\r
1358         00 00            mov     DWORD PTR [eax+20], OFFSET _win32_close_file_func\r
1359 \r
1360 ; 374  :     pzlib_filefunc_def->zerror_file = win32_error_file_func;\r
1361 \r
1362   0002f c7 40 18 00 00\r
1363         00 00            mov     DWORD PTR [eax+24], OFFSET _win32_error_file_func\r
1364 \r
1365 ; 375  :     pzlib_filefunc_def->opaque = NULL;\r
1366 \r
1367   00036 c7 40 1c 00 00\r
1368         00 00            mov     DWORD PTR [eax+28], 0\r
1369 \r
1370 ; 376  : }\r
1371 \r
1372   0003d 5d               pop     ebp\r
1373   0003e c3               ret     0\r
1374 _fill_win32_filefunc64A ENDP\r
1375 _TEXT   ENDS\r
1376 PUBLIC  _fill_win32_filefunc64\r
1377 ; Function compile flags: /Ogtp\r
1378 ;       COMDAT _fill_win32_filefunc64\r
1379 _TEXT   SEGMENT\r
1380 _pzlib_filefunc_def$ = 8                                ; size = 4\r
1381 _fill_win32_filefunc64 PROC                             ; COMDAT\r
1382 \r
1383 ; 354  : {\r
1384 \r
1385   00000 55               push    ebp\r
1386   00001 8b ec            mov     ebp, esp\r
1387 \r
1388 ; 355  :     pzlib_filefunc_def->zopen64_file = win32_open64_file_func;\r
1389 \r
1390   00003 8b 45 08         mov     eax, DWORD PTR _pzlib_filefunc_def$[ebp]\r
1391   00006 c7 00 00 00 00\r
1392         00               mov     DWORD PTR [eax], OFFSET _win32_open64_file_func\r
1393 \r
1394 ; 356  :     pzlib_filefunc_def->zread_file = win32_read_file_func;\r
1395 \r
1396   0000c c7 40 04 00 00\r
1397         00 00            mov     DWORD PTR [eax+4], OFFSET _win32_read_file_func\r
1398 \r
1399 ; 357  :     pzlib_filefunc_def->zwrite_file = win32_write_file_func;\r
1400 \r
1401   00013 c7 40 08 00 00\r
1402         00 00            mov     DWORD PTR [eax+8], OFFSET _win32_write_file_func\r
1403 \r
1404 ; 358  :     pzlib_filefunc_def->ztell64_file = win32_tell64_file_func;\r
1405 \r
1406   0001a c7 40 0c 00 00\r
1407         00 00            mov     DWORD PTR [eax+12], OFFSET _win32_tell64_file_func\r
1408 \r
1409 ; 359  :     pzlib_filefunc_def->zseek64_file = win32_seek64_file_func;\r
1410 \r
1411   00021 c7 40 10 00 00\r
1412         00 00            mov     DWORD PTR [eax+16], OFFSET _win32_seek64_file_func\r
1413 \r
1414 ; 360  :     pzlib_filefunc_def->zclose_file = win32_close_file_func;\r
1415 \r
1416   00028 c7 40 14 00 00\r
1417         00 00            mov     DWORD PTR [eax+20], OFFSET _win32_close_file_func\r
1418 \r
1419 ; 361  :     pzlib_filefunc_def->zerror_file = win32_error_file_func;\r
1420 \r
1421   0002f c7 40 18 00 00\r
1422         00 00            mov     DWORD PTR [eax+24], OFFSET _win32_error_file_func\r
1423 \r
1424 ; 362  :     pzlib_filefunc_def->opaque = NULL;\r
1425 \r
1426   00036 c7 40 1c 00 00\r
1427         00 00            mov     DWORD PTR [eax+28], 0\r
1428 \r
1429 ; 363  : }\r
1430 \r
1431   0003d 5d               pop     ebp\r
1432   0003e c3               ret     0\r
1433 _fill_win32_filefunc64 ENDP\r
1434 _TEXT   ENDS\r
1435 PUBLIC  _fill_win32_filefunc\r
1436 ; Function compile flags: /Ogtp\r
1437 ;       COMDAT _fill_win32_filefunc\r
1438 _TEXT   SEGMENT\r
1439 _pzlib_filefunc_def$ = 8                                ; size = 4\r
1440 _fill_win32_filefunc PROC                               ; COMDAT\r
1441 \r
1442 ; 342  : {\r
1443 \r
1444   00000 55               push    ebp\r
1445   00001 8b ec            mov     ebp, esp\r
1446 \r
1447 ; 343  :     pzlib_filefunc_def->zopen_file = win32_open_file_func;\r
1448 \r
1449   00003 8b 45 08         mov     eax, DWORD PTR _pzlib_filefunc_def$[ebp]\r
1450   00006 c7 00 00 00 00\r
1451         00               mov     DWORD PTR [eax], OFFSET _win32_open_file_func\r
1452 \r
1453 ; 344  :     pzlib_filefunc_def->zread_file = win32_read_file_func;\r
1454 \r
1455   0000c c7 40 04 00 00\r
1456         00 00            mov     DWORD PTR [eax+4], OFFSET _win32_read_file_func\r
1457 \r
1458 ; 345  :     pzlib_filefunc_def->zwrite_file = win32_write_file_func;\r
1459 \r
1460   00013 c7 40 08 00 00\r
1461         00 00            mov     DWORD PTR [eax+8], OFFSET _win32_write_file_func\r
1462 \r
1463 ; 346  :     pzlib_filefunc_def->ztell_file = win32_tell_file_func;\r
1464 \r
1465   0001a c7 40 0c 00 00\r
1466         00 00            mov     DWORD PTR [eax+12], OFFSET _win32_tell_file_func\r
1467 \r
1468 ; 347  :     pzlib_filefunc_def->zseek_file = win32_seek_file_func;\r
1469 \r
1470   00021 c7 40 10 00 00\r
1471         00 00            mov     DWORD PTR [eax+16], OFFSET _win32_seek_file_func\r
1472 \r
1473 ; 348  :     pzlib_filefunc_def->zclose_file = win32_close_file_func;\r
1474 \r
1475   00028 c7 40 14 00 00\r
1476         00 00            mov     DWORD PTR [eax+20], OFFSET _win32_close_file_func\r
1477 \r
1478 ; 349  :     pzlib_filefunc_def->zerror_file = win32_error_file_func;\r
1479 \r
1480   0002f c7 40 18 00 00\r
1481         00 00            mov     DWORD PTR [eax+24], OFFSET _win32_error_file_func\r
1482 \r
1483 ; 350  :     pzlib_filefunc_def->opaque = NULL;\r
1484 \r
1485   00036 c7 40 1c 00 00\r
1486         00 00            mov     DWORD PTR [eax+28], 0\r
1487 \r
1488 ; 351  : }\r
1489 \r
1490   0003d 5d               pop     ebp\r
1491   0003e c3               ret     0\r
1492 _fill_win32_filefunc ENDP\r
1493 END\r