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