OSDN Git Service

#xxxxx DTXViewerのプロジェクトを追加。
[dtxmania/dtxmania.git] / DTXViewerプロジェクト / @libpngソリューション / zlib-1.2.8 / contrib / vstudio / vc10 / x86 / ZlibDllRelease / Tmp / unzip.cod
diff --git a/DTXViewerプロジェクト/@libpngソリューション/zlib-1.2.8/contrib/vstudio/vc10/x86/ZlibDllRelease/Tmp/unzip.cod b/DTXViewerプロジェクト/@libpngソリューション/zlib-1.2.8/contrib/vstudio/vc10/x86/ZlibDllRelease/Tmp/unzip.cod
new file mode 100644 (file)
index 0000000..ad7e604
--- /dev/null
@@ -0,0 +1,7188 @@
+; Listing generated by Microsoft (R) Optimizing Compiler Version 16.00.40219.01 
+
+       TITLE   C:\Documents and Settings\yyagi\My Documents\Visual Studio 2010\Projects\dtxmania\branches\111222(DTXViewer023 with #26977)\@libpng\[V\zlib-1.2.8\contrib\minizip\unzip.c
+       .686P
+       .XMM
+       include listing.inc
+       .model  flat
+
+INCLUDELIB OLDNAMES
+
+PUBLIC _unz_copyright
+       ORG $+1
+_unz_copyright DB ' unzip 1.01 Copyright 1998-2004 Gilles Vollant - http:'
+       DB      '//www.winimage.com/zLibDll', 00H
+PUBLIC _unzeof@4
+; Function compile flags: /Ogtp
+; File c:\documents and settings\yyagi\my documents\visual studio 2010\projects\dtxmania\branches\111222(dtxviewer023 with #26977)\@libpng\83\\83\8a\83\85\81[\83V\83\87\83\93\zlib-1.2.8\contrib\minizip\unzip.c
+;      COMDAT _unzeof@4
+_TEXT  SEGMENT
+_file$ = 8                                             ; size = 4
+_unzeof@4 PROC                                         ; COMDAT
+
+; 1925 : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+
+; 1926 :     unz64_s* s;
+; 1927 :     file_in_zip64_read_info_s* pfile_in_zip_read_info;
+; 1928 :     if (file==NULL)
+
+  00003        8b 45 08         mov     eax, DWORD PTR _file$[ebp]
+  00006        85 c0            test    eax, eax
+  00008        75 09            jne     SHORT $LN4@unzeof
+$LN7@unzeof:
+
+; 1929 :         return UNZ_PARAMERROR;
+
+  0000a        b8 9a ff ff ff   mov     eax, -102              ; ffffff9aH
+
+; 1940 : }
+
+  0000f        5d               pop     ebp
+  00010        c2 04 00         ret     4
+$LN4@unzeof:
+
+; 1930 :     s=(unz64_s*)file;
+; 1931 :     pfile_in_zip_read_info=s->pfile_in_zip_read;
+
+  00013        8b 80 e0 00 00
+       00               mov     eax, DWORD PTR [eax+224]
+
+; 1932 : 
+; 1933 :     if (pfile_in_zip_read_info==NULL)
+
+  00019        85 c0            test    eax, eax
+
+; 1934 :         return UNZ_PARAMERROR;
+
+  0001b        74 ed            je      SHORT $LN7@unzeof
+
+; 1935 : 
+; 1936 :     if (pfile_in_zip_read_info->rest_read_uncompressed == 0)
+
+  0001d        8b 88 80 00 00
+       00               mov     ecx, DWORD PTR [eax+128]
+  00023        0b 88 84 00 00
+       00               or      ecx, DWORD PTR [eax+132]
+  00029        75 09            jne     SHORT $LN2@unzeof
+
+; 1937 :         return 1;
+
+  0002b        b8 01 00 00 00   mov     eax, 1
+
+; 1940 : }
+
+  00030        5d               pop     ebp
+  00031        c2 04 00         ret     4
+$LN2@unzeof:
+
+; 1938 :     else
+; 1939 :         return 0;
+
+  00034        33 c0            xor     eax, eax
+
+; 1940 : }
+
+  00036        5d               pop     ebp
+  00037        c2 04 00         ret     4
+_unzeof@4 ENDP
+_TEXT  ENDS
+PUBLIC _unztell64@4
+; Function compile flags: /Ogtp
+;      COMDAT _unztell64@4
+_TEXT  SEGMENT
+_file$ = 8                                             ; size = 4
+_unztell64@4 PROC                                      ; COMDAT
+
+; 1905 : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+
+; 1906 : 
+; 1907 :     unz64_s* s;
+; 1908 :     file_in_zip64_read_info_s* pfile_in_zip_read_info;
+; 1909 :     if (file==NULL)
+
+  00003        8b 45 08         mov     eax, DWORD PTR _file$[ebp]
+  00006        85 c0            test    eax, eax
+  00008        75 0a            jne     SHORT $LN2@unztell64
+$LN5@unztell64:
+
+; 1910 :         return (ZPOS64_T)-1;
+
+  0000a        83 c8 ff         or      eax, -1
+  0000d        83 ca ff         or      edx, -1
+
+; 1918 : }
+
+  00010        5d               pop     ebp
+  00011        c2 04 00         ret     4
+$LN2@unztell64:
+
+; 1911 :     s=(unz64_s*)file;
+; 1912 :     pfile_in_zip_read_info=s->pfile_in_zip_read;
+
+  00014        8b 88 e0 00 00
+       00               mov     ecx, DWORD PTR [eax+224]
+
+; 1913 : 
+; 1914 :     if (pfile_in_zip_read_info==NULL)
+
+  0001a        85 c9            test    ecx, ecx
+
+; 1915 :         return (ZPOS64_T)-1;
+
+  0001c        74 ec            je      SHORT $LN5@unztell64
+
+; 1916 : 
+; 1917 :     return pfile_in_zip_read_info->total_out_64;
+
+  0001e        8b 41 68         mov     eax, DWORD PTR [ecx+104]
+  00021        8b 51 6c         mov     edx, DWORD PTR [ecx+108]
+
+; 1918 : }
+
+  00024        5d               pop     ebp
+  00025        c2 04 00         ret     4
+_unztell64@4 ENDP
+_TEXT  ENDS
+PUBLIC _unztell@4
+; Function compile flags: /Ogtp
+;      COMDAT _unztell@4
+_TEXT  SEGMENT
+_file$ = 8                                             ; size = 4
+_unztell@4 PROC                                                ; COMDAT
+
+; 1890 : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+
+; 1891 :     unz64_s* s;
+; 1892 :     file_in_zip64_read_info_s* pfile_in_zip_read_info;
+; 1893 :     if (file==NULL)
+
+  00003        8b 45 08         mov     eax, DWORD PTR _file$[ebp]
+  00006        85 c0            test    eax, eax
+  00008        75 09            jne     SHORT $LN2@unztell
+$LN5@unztell:
+
+; 1894 :         return UNZ_PARAMERROR;
+
+  0000a        b8 9a ff ff ff   mov     eax, -102              ; ffffff9aH
+
+; 1902 : }
+
+  0000f        5d               pop     ebp
+  00010        c2 04 00         ret     4
+$LN2@unztell:
+
+; 1895 :     s=(unz64_s*)file;
+; 1896 :     pfile_in_zip_read_info=s->pfile_in_zip_read;
+
+  00013        8b 80 e0 00 00
+       00               mov     eax, DWORD PTR [eax+224]
+
+; 1897 : 
+; 1898 :     if (pfile_in_zip_read_info==NULL)
+
+  00019        85 c0            test    eax, eax
+
+; 1899 :         return UNZ_PARAMERROR;
+
+  0001b        74 ed            je      SHORT $LN5@unztell
+
+; 1900 : 
+; 1901 :     return (z_off_t)pfile_in_zip_read_info->stream.total_out;
+
+  0001d        8b 40 18         mov     eax, DWORD PTR [eax+24]
+
+; 1902 : }
+
+  00020        5d               pop     ebp
+  00021        c2 04 00         ret     4
+_unztell@4 ENDP
+_TEXT  ENDS
+PUBLIC _unzGetCurrentFileZStreamPos64@4
+; Function compile flags: /Ogtp
+;      COMDAT _unzGetCurrentFileZStreamPos64@4
+_TEXT  SEGMENT
+_file$ = 8                                             ; size = 4
+_unzGetCurrentFileZStreamPos64@4 PROC                  ; COMDAT
+
+; 1659 : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+
+; 1660 :     unz64_s* s;
+; 1661 :     file_in_zip64_read_info_s* pfile_in_zip_read_info;
+; 1662 :     s=(unz64_s*)file;
+; 1663 :     if (file==NULL)
+
+  00003        8b 45 08         mov     eax, DWORD PTR _file$[ebp]
+  00006        85 c0            test    eax, eax
+  00008        75 08            jne     SHORT $LN2@unzGetCurr
+$LN5@unzGetCurr:
+
+; 1664 :         return 0; //UNZ_PARAMERROR;
+
+  0000a        33 c0            xor     eax, eax
+  0000c        33 d2            xor     edx, edx
+
+; 1670 : }
+
+  0000e        5d               pop     ebp
+  0000f        c2 04 00         ret     4
+$LN2@unzGetCurr:
+
+; 1665 :     pfile_in_zip_read_info=s->pfile_in_zip_read;
+
+  00012        8b 88 e0 00 00
+       00               mov     ecx, DWORD PTR [eax+224]
+
+; 1666 :     if (pfile_in_zip_read_info==NULL)
+
+  00018        85 c9            test    ecx, ecx
+
+; 1667 :         return 0; //UNZ_PARAMERROR;
+
+  0001a        74 ee            je      SHORT $LN5@unzGetCurr
+
+; 1668 :     return pfile_in_zip_read_info->pos_in_zipfile +
+; 1669 :                          pfile_in_zip_read_info->byte_before_the_zipfile;
+
+  0001c        8b 81 c0 00 00
+       00               mov     eax, DWORD PTR [ecx+192]
+  00022        03 41 40         add     eax, DWORD PTR [ecx+64]
+  00025        8b 91 c4 00 00
+       00               mov     edx, DWORD PTR [ecx+196]
+  0002b        13 51 44         adc     edx, DWORD PTR [ecx+68]
+
+; 1670 : }
+
+  0002e        5d               pop     ebp
+  0002f        c2 04 00         ret     4
+_unzGetCurrentFileZStreamPos64@4 ENDP
+_TEXT  ENDS
+PUBLIC _unzGetFilePos64@8
+; Function compile flags: /Ogtp
+;      COMDAT _unzGetFilePos64@8
+_TEXT  SEGMENT
+_file$ = 8                                             ; size = 4
+_file_pos$ = 12                                                ; size = 4
+_unzGetFilePos64@8 PROC                                        ; COMDAT
+
+; 1309 : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+
+; 1310 :     unz64_s* s;
+; 1311 : 
+; 1312 :     if (file==NULL || file_pos==NULL)
+
+  00003        8b 45 08         mov     eax, DWORD PTR _file$[ebp]
+  00006        85 c0            test    eax, eax
+  00008        74 35            je      SHORT $LN2@unzGetFile
+  0000a        8b 4d 0c         mov     ecx, DWORD PTR _file_pos$[ebp]
+  0000d        85 c9            test    ecx, ecx
+  0000f        74 2e            je      SHORT $LN2@unzGetFile
+
+; 1314 :     s=(unz64_s*)file;
+; 1315 :     if (!s->current_file_ok)
+
+  00011        8b 50 60         mov     edx, DWORD PTR [eax+96]
+  00014        0b 50 64         or      edx, DWORD PTR [eax+100]
+  00017        75 09            jne     SHORT $LN1@unzGetFile
+
+; 1316 :         return UNZ_END_OF_LIST_OF_FILE;
+
+  00019        b8 9c ff ff ff   mov     eax, -100              ; ffffff9cH
+
+; 1322 : }
+
+  0001e        5d               pop     ebp
+  0001f        c2 08 00         ret     8
+$LN1@unzGetFile:
+
+; 1317 : 
+; 1318 :     file_pos->pos_in_zip_directory  = s->pos_in_central_dir;
+
+  00022        8b 50 58         mov     edx, DWORD PTR [eax+88]
+  00025        89 11            mov     DWORD PTR [ecx], edx
+  00027        8b 50 5c         mov     edx, DWORD PTR [eax+92]
+  0002a        89 51 04         mov     DWORD PTR [ecx+4], edx
+
+; 1319 :     file_pos->num_of_file           = s->num_file;
+
+  0002d        8b 50 50         mov     edx, DWORD PTR [eax+80]
+  00030        89 51 08         mov     DWORD PTR [ecx+8], edx
+  00033        8b 40 54         mov     eax, DWORD PTR [eax+84]
+  00036        89 41 0c         mov     DWORD PTR [ecx+12], eax
+
+; 1320 : 
+; 1321 :     return UNZ_OK;
+
+  00039        33 c0            xor     eax, eax
+
+; 1322 : }
+
+  0003b        5d               pop     ebp
+  0003c        c2 08 00         ret     8
+$LN2@unzGetFile:
+
+; 1313 :         return UNZ_PARAMERROR;
+
+  0003f        b8 9a ff ff ff   mov     eax, -102              ; ffffff9aH
+
+; 1322 : }
+
+  00044        5d               pop     ebp
+  00045        c2 08 00         ret     8
+_unzGetFilePos64@8 ENDP
+; Function compile flags: /Ogtp
+_TEXT  ENDS
+;      COMDAT _unz64local_DosDateToTmuDate
+_TEXT  SEGMENT
+_uDate$ = 8                                            ; size = 8
+_ulDosDate$ = 8                                                ; size = 8
+_unz64local_DosDateToTmuDate PROC                      ; COMDAT
+; _ptm$ = edx
+
+; 853  : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+
+; 854  :     ZPOS64_T uDate;
+; 855  :     uDate = (ZPOS64_T)(ulDosDate>>16);
+
+  00003        8b 4d 08         mov     ecx, DWORD PTR _ulDosDate$[ebp]
+  00006        53               push    ebx
+  00007        56               push    esi
+  00008        8b 75 0c         mov     esi, DWORD PTR _ulDosDate$[ebp+4]
+  0000b        57               push    edi
+  0000c        8b c6            mov     eax, esi
+  0000e        8b f9            mov     edi, ecx
+  00010        0f ac c7 10      shrd    edi, eax, 16
+
+; 856  :     ptm->tm_mday = (uInt)(uDate&0x1f) ;
+
+  00014        8b df            mov     ebx, edi
+  00016        c1 e8 10         shr     eax, 16                        ; 00000010H
+  00019        89 7d 08         mov     DWORD PTR _uDate$[ebp], edi
+  0001c        83 e3 1f         and     ebx, 31                        ; 0000001fH
+  0001f        89 5a 0c         mov     DWORD PTR [edx+12], ebx
+
+; 857  :     ptm->tm_mon =  (uInt)((((uDate)&0x1E0)/0x20)-1) ;
+
+  00022        8b d8            mov     ebx, eax
+  00024        0f ac df 05      shrd    edi, ebx, 5
+  00028        83 e7 0f         and     edi, 15                        ; 0000000fH
+  0002b        4f               dec     edi
+  0002c        89 7a 10         mov     DWORD PTR [edx+16], edi
+
+; 858  :     ptm->tm_year = (uInt)(((uDate&0x0FE00)/0x0200)+1980) ;
+
+  0002f        8b 7d 08         mov     edi, DWORD PTR _uDate$[ebp]
+  00032        0f ac c7 09      shrd    edi, eax, 9
+  00036        83 e7 7f         and     edi, 127               ; 0000007fH
+  00039        81 c7 bc 07 00
+       00               add     edi, 1980              ; 000007bcH
+  0003f        c1 e8 09         shr     eax, 9
+  00042        89 7a 14         mov     DWORD PTR [edx+20], edi
+
+; 859  : 
+; 860  :     ptm->tm_hour = (uInt) ((ulDosDate &0xF800)/0x800);
+
+  00045        8b c1            mov     eax, ecx
+  00047        8b fe            mov     edi, esi
+  00049        0f ac f8 0b      shrd    eax, edi, 11
+  0004d        83 e0 1f         and     eax, 31                        ; 0000001fH
+  00050        89 42 08         mov     DWORD PTR [edx+8], eax
+
+; 861  :     ptm->tm_min =  (uInt) ((ulDosDate&0x7E0)/0x20) ;
+
+  00053        8b c1            mov     eax, ecx
+  00055        0f ac f0 05      shrd    eax, esi, 5
+  00059        c1 ef 0b         shr     edi, 11                        ; 0000000bH
+
+; 862  :     ptm->tm_sec =  (uInt) (2*(ulDosDate&0x1f)) ;
+; 863  : }
+
+  0005c        5f               pop     edi
+  0005d        c1 eb 05         shr     ebx, 5
+  00060        c1 ee 05         shr     esi, 5
+  00063        83 e0 3f         and     eax, 63                        ; 0000003fH
+  00066        83 e1 1f         and     ecx, 31                        ; 0000001fH
+  00069        03 c9            add     ecx, ecx
+  0006b        5e               pop     esi
+  0006c        89 42 04         mov     DWORD PTR [edx+4], eax
+  0006f        89 0a            mov     DWORD PTR [edx], ecx
+  00071        5b               pop     ebx
+  00072        5d               pop     ebp
+  00073        c3               ret     0
+_unz64local_DosDateToTmuDate ENDP
+_TEXT  ENDS
+PUBLIC _unzGetGlobalInfo@8
+; Function compile flags: /Ogtp
+;      COMDAT _unzGetGlobalInfo@8
+_TEXT  SEGMENT
+_file$ = 8                                             ; size = 4
+_pglobal_info32$ = 12                                  ; size = 4
+_unzGetGlobalInfo@8 PROC                               ; COMDAT
+
+; 839  : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+
+; 840  :     unz64_s* s;
+; 841  :     if (file==NULL)
+
+  00003        8b 45 08         mov     eax, DWORD PTR _file$[ebp]
+  00006        85 c0            test    eax, eax
+  00008        75 09            jne     SHORT $LN1@unzGetGlob
+
+; 842  :         return UNZ_PARAMERROR;
+
+  0000a        b8 9a ff ff ff   mov     eax, -102              ; ffffff9aH
+
+; 848  : }
+
+  0000f        5d               pop     ebp
+  00010        c2 08 00         ret     8
+$LN1@unzGetGlob:
+
+; 843  :     s=(unz64_s*)file;
+; 844  :     /* to do : check if number_entry is not truncated */
+; 845  :     pglobal_info32->number_entry = (uLong)s->gi.number_entry;
+
+  00013        8b 50 38         mov     edx, DWORD PTR [eax+56]
+  00016        8b 4d 0c         mov     ecx, DWORD PTR _pglobal_info32$[ebp]
+  00019        89 11            mov     DWORD PTR [ecx], edx
+
+; 846  :     pglobal_info32->size_comment = s->gi.size_comment;
+
+  0001b        8b 40 40         mov     eax, DWORD PTR [eax+64]
+  0001e        89 41 04         mov     DWORD PTR [ecx+4], eax
+
+; 847  :     return UNZ_OK;
+
+  00021        33 c0            xor     eax, eax
+
+; 848  : }
+
+  00023        5d               pop     ebp
+  00024        c2 08 00         ret     8
+_unzGetGlobalInfo@8 ENDP
+_TEXT  ENDS
+PUBLIC _unzGetGlobalInfo64@8
+; Function compile flags: /Ogtp
+;      COMDAT _unzGetGlobalInfo64@8
+_TEXT  SEGMENT
+_file$ = 8                                             ; size = 4
+_pglobal_info$ = 12                                    ; size = 4
+_unzGetGlobalInfo64@8 PROC                             ; COMDAT
+
+; 829  : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+
+; 830  :     unz64_s* s;
+; 831  :     if (file==NULL)
+
+  00003        8b 45 08         mov     eax, DWORD PTR _file$[ebp]
+  00006        85 c0            test    eax, eax
+  00008        75 09            jne     SHORT $LN1@unzGetGlob@2
+
+; 832  :         return UNZ_PARAMERROR;
+
+  0000a        b8 9a ff ff ff   mov     eax, -102              ; ffffff9aH
+
+; 836  : }
+
+  0000f        5d               pop     ebp
+  00010        c2 08 00         ret     8
+$LN1@unzGetGlob@2:
+
+; 833  :     s=(unz64_s*)file;
+; 834  :     *pglobal_info=s->gi;
+
+  00013        8b 50 38         mov     edx, DWORD PTR [eax+56]
+  00016        8b 4d 0c         mov     ecx, DWORD PTR _pglobal_info$[ebp]
+  00019        89 11            mov     DWORD PTR [ecx], edx
+  0001b        8b 50 3c         mov     edx, DWORD PTR [eax+60]
+  0001e        89 51 04         mov     DWORD PTR [ecx+4], edx
+  00021        8b 50 40         mov     edx, DWORD PTR [eax+64]
+  00024        89 51 08         mov     DWORD PTR [ecx+8], edx
+  00027        8b 40 44         mov     eax, DWORD PTR [eax+68]
+  0002a        89 41 0c         mov     DWORD PTR [ecx+12], eax
+
+; 835  :     return UNZ_OK;
+
+  0002d        33 c0            xor     eax, eax
+
+; 836  : }
+
+  0002f        5d               pop     ebp
+  00030        c2 08 00         ret     8
+_unzGetGlobalInfo64@8 ENDP
+; Function compile flags: /Ogtp
+_TEXT  ENDS
+;      COMDAT _strcmpcasenosensitive_internal
+_TEXT  SEGMENT
+_strcmpcasenosensitive_internal PROC                   ; COMDAT
+; _fileName1$ = ecx
+; _fileName2$ = eax
+
+; 350  : {
+
+  00000        56               push    esi
+  00001        57               push    edi
+  00002        8b f0            mov     esi, eax
+
+; 367  :     }
+
+  00004        8b f9            mov     edi, ecx
+  00006        2b fe            sub     edi, esi
+$LL8@strcmpcase:
+
+; 351  :     for (;;)
+; 352  :     {
+; 353  :         char c1=*(fileName1++);
+; 354  :         char c2=*(fileName2++);
+
+  00008        8a 04 37         mov     al, BYTE PTR [edi+esi]
+  0000b        8a 0e            mov     cl, BYTE PTR [esi]
+  0000d        46               inc     esi
+
+; 355  :         if ((c1>='a') && (c1<='z'))
+
+  0000e        8d 50 9f         lea     edx, DWORD PTR [eax-97]
+  00011        80 fa 19         cmp     dl, 25                 ; 00000019H
+  00014        77 02            ja      SHORT $LN6@strcmpcase
+
+; 356  :             c1 -= 0x20;
+
+  00016        04 e0            add     al, -32                        ; ffffffe0H
+$LN6@strcmpcase:
+
+; 357  :         if ((c2>='a') && (c2<='z'))
+
+  00018        8d 51 9f         lea     edx, DWORD PTR [ecx-97]
+  0001b        80 fa 19         cmp     dl, 25                 ; 00000019H
+  0001e        77 03            ja      SHORT $LN5@strcmpcase
+
+; 358  :             c2 -= 0x20;
+
+  00020        80 c1 e0         add     cl, -32                        ; ffffffe0H
+$LN5@strcmpcase:
+
+; 359  :         if (c1=='\0')
+
+  00023        84 c0            test    al, al
+  00025        74 12            je      SHORT $LN13@strcmpcase
+
+; 361  :         if (c2=='\0')
+
+  00027        84 c9            test    cl, cl
+  00029        74 06            je      SHORT $LN16@strcmpcase
+
+; 362  :             return 1;
+; 363  :         if (c1<c2)
+
+  0002b        3a c1            cmp     al, cl
+  0002d        7c 14            jl      SHORT $LN15@strcmpcase
+
+; 365  :         if (c1>c2)
+
+  0002f        7e d7            jle     SHORT $LL8@strcmpcase
+$LN16@strcmpcase:
+  00031        5f               pop     edi
+
+; 366  :             return 1;
+
+  00032        b8 01 00 00 00   mov     eax, 1
+  00037        5e               pop     esi
+
+; 368  : }
+
+  00038        c3               ret     0
+$LN13@strcmpcase:
+
+; 360  :             return ((c2=='\0') ? 0 : -1);
+
+  00039        0f be c1         movsx   eax, cl
+  0003c        f7 d8            neg     eax
+  0003e        5f               pop     edi
+  0003f        1b c0            sbb     eax, eax
+  00041        5e               pop     esi
+
+; 368  : }
+
+  00042        c3               ret     0
+$LN15@strcmpcase:
+  00043        5f               pop     edi
+
+; 364  :             return -1;
+
+  00044        83 c8 ff         or      eax, -1
+  00047        5e               pop     esi
+
+; 368  : }
+
+  00048        c3               ret     0
+_strcmpcasenosensitive_internal ENDP
+; Function compile flags: /Ogtp
+_TEXT  ENDS
+;      COMDAT _unz64local_getByte
+_TEXT  SEGMENT
+_c$ = -1                                               ; size = 1
+_pi$ = 8                                               ; size = 4
+_unz64local_getByte PROC                               ; COMDAT
+; _pzlib_filefunc_def$ = esi
+; _filestream$ = edi
+
+; 213  : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+  00003        51               push    ecx
+
+; 214  :     unsigned char c;
+; 215  :     int err = (int)ZREAD64(*pzlib_filefunc_def,filestream,&c,1);
+
+  00004        8b 4e 1c         mov     ecx, DWORD PTR [esi+28]
+  00007        8b 56 04         mov     edx, DWORD PTR [esi+4]
+  0000a        6a 01            push    1
+  0000c        8d 45 ff         lea     eax, DWORD PTR _c$[ebp]
+  0000f        50               push    eax
+  00010        57               push    edi
+  00011        51               push    ecx
+  00012        ff d2            call    edx
+  00014        83 c4 10         add     esp, 16                        ; 00000010H
+
+; 216  :     if (err==1)
+
+  00017        83 f8 01         cmp     eax, 1
+  0001a        75 0f            jne     SHORT $LN4@unz64local
+
+; 217  :     {
+; 218  :         *pi = (int)c;
+
+  0001c        0f b6 45 ff      movzx   eax, BYTE PTR _c$[ebp]
+  00020        8b 4d 08         mov     ecx, DWORD PTR _pi$[ebp]
+  00023        89 01            mov     DWORD PTR [ecx], eax
+
+; 219  :         return UNZ_OK;
+
+  00025        33 c0            xor     eax, eax
+
+; 224  :             return UNZ_ERRNO;
+; 225  :         else
+; 226  :             return UNZ_EOF;
+; 227  :     }
+; 228  : }
+
+  00027        8b e5            mov     esp, ebp
+  00029        5d               pop     ebp
+  0002a        c3               ret     0
+$LN4@unz64local:
+
+; 220  :     }
+; 221  :     else
+; 222  :     {
+; 223  :         if (ZERROR64(*pzlib_filefunc_def,filestream))
+
+  0002b        8b 56 1c         mov     edx, DWORD PTR [esi+28]
+  0002e        8b 46 18         mov     eax, DWORD PTR [esi+24]
+  00031        57               push    edi
+  00032        52               push    edx
+  00033        ff d0            call    eax
+  00035        83 c4 08         add     esp, 8
+  00038        f7 d8            neg     eax
+  0003a        1b c0            sbb     eax, eax
+
+; 224  :             return UNZ_ERRNO;
+; 225  :         else
+; 226  :             return UNZ_EOF;
+; 227  :     }
+; 228  : }
+
+  0003c        8b e5            mov     esp, ebp
+  0003e        5d               pop     ebp
+  0003f        c3               ret     0
+_unz64local_getByte ENDP
+PUBLIC _unzGetGlobalComment@12
+; Function compile flags: /Ogtp
+;      COMDAT _unzGetGlobalComment@12
+_TEXT  SEGMENT
+_file$ = 8                                             ; size = 4
+_szComment$ = 12                                       ; size = 4
+_uSizeBuf$ = 16                                                ; size = 4
+_unzGetGlobalComment@12 PROC                           ; COMDAT
+
+; 2052 : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+  00003        57               push    edi
+
+; 2053 :     unz64_s* s;
+; 2054 :     uLong uReadThis ;
+; 2055 :     if (file==NULL)
+
+  00004        8b 7d 08         mov     edi, DWORD PTR _file$[ebp]
+  00007        85 ff            test    edi, edi
+  00009        75 08            jne     SHORT $LN6@unzGetGlob@3
+
+; 2056 :         return (int)UNZ_PARAMERROR;
+
+  0000b        8d 47 9a         lea     eax, DWORD PTR [edi-102]
+  0000e        5f               pop     edi
+
+; 2076 : }
+
+  0000f        5d               pop     ebp
+  00010        c2 0c 00         ret     12                     ; 0000000cH
+$LN6@unzGetGlob@3:
+
+; 2057 :     s=(unz64_s*)file;
+; 2058 : 
+; 2059 :     uReadThis = uSizeBuf;
+; 2060 :     if (uReadThis>s->gi.size_comment)
+
+  00013        8b 47 40         mov     eax, DWORD PTR [edi+64]
+  00016        53               push    ebx
+  00017        8b 5d 10         mov     ebx, DWORD PTR _uSizeBuf$[ebp]
+  0001a        3b d8            cmp     ebx, eax
+  0001c        76 02            jbe     SHORT $LN5@unzGetGlob@3
+
+; 2061 :         uReadThis = s->gi.size_comment;
+
+  0001e        8b d8            mov     ebx, eax
+$LN5@unzGetGlob@3:
+
+; 2062 : 
+; 2063 :     if (ZSEEK64(s->z_filefunc,s->filestream,s->central_pos+22,ZLIB_FILEFUNC_SEEK_SET)!=0)
+
+  00020        8b 47 68         mov     eax, DWORD PTR [edi+104]
+  00023        8b 4f 6c         mov     ecx, DWORD PTR [edi+108]
+  00026        83 c0 16         add     eax, 22                        ; 00000016H
+  00029        56               push    esi
+  0002a        8b 77 30         mov     esi, DWORD PTR [edi+48]
+  0002d        83 d1 00         adc     ecx, 0
+  00030        51               push    ecx
+  00031        50               push    eax
+  00032        33 d2            xor     edx, edx
+  00034        8b c7            mov     eax, edi
+  00036        e8 00 00 00 00   call    _call_zseek64
+  0003b        83 c4 08         add     esp, 8
+  0003e        85 c0            test    eax, eax
+
+; 2064 :         return UNZ_ERRNO;
+
+  00040        75 1f            jne     SHORT $LN12@unzGetGlob@3
+
+; 2065 : 
+; 2066 :     if (uReadThis>0)
+
+  00042        8b 75 0c         mov     esi, DWORD PTR _szComment$[ebp]
+  00045        85 db            test    ebx, ebx
+  00047        74 22            je      SHORT $LN9@unzGetGlob@3
+
+; 2067 :     {
+; 2068 :       *szComment='\0';
+
+  00049        88 06            mov     BYTE PTR [esi], al
+
+; 2069 :       if (ZREAD64(s->z_filefunc,s->filestream,szComment,uReadThis)!=uReadThis)
+
+  0004b        8b 57 30         mov     edx, DWORD PTR [edi+48]
+  0004e        8b 47 1c         mov     eax, DWORD PTR [edi+28]
+  00051        8b 4f 04         mov     ecx, DWORD PTR [edi+4]
+  00054        53               push    ebx
+  00055        56               push    esi
+  00056        52               push    edx
+  00057        50               push    eax
+  00058        ff d1            call    ecx
+  0005a        83 c4 10         add     esp, 16                        ; 00000010H
+  0005d        3b c3            cmp     eax, ebx
+  0005f        74 0a            je      SHORT $LN9@unzGetGlob@3
+$LN12@unzGetGlob@3:
+  00061        5e               pop     esi
+  00062        5b               pop     ebx
+
+; 2070 :         return UNZ_ERRNO;
+
+  00063        83 c8 ff         or      eax, -1
+  00066        5f               pop     edi
+
+; 2076 : }
+
+  00067        5d               pop     ebp
+  00068        c2 0c 00         ret     12                     ; 0000000cH
+$LN9@unzGetGlob@3:
+
+; 2071 :     }
+; 2072 : 
+; 2073 :     if ((szComment != NULL) && (uSizeBuf > s->gi.size_comment))
+
+  0006b        85 f6            test    esi, esi
+  0006d        74 0c            je      SHORT $LN1@unzGetGlob@3
+  0006f        8b 7f 40         mov     edi, DWORD PTR [edi+64]
+  00072        39 7d 10         cmp     DWORD PTR _uSizeBuf$[ebp], edi
+  00075        76 04            jbe     SHORT $LN1@unzGetGlob@3
+
+; 2074 :         *(szComment+s->gi.size_comment)='\0';
+
+  00077        c6 04 37 00      mov     BYTE PTR [edi+esi], 0
+$LN1@unzGetGlob@3:
+  0007b        5e               pop     esi
+
+; 2075 :     return (int)uReadThis;
+
+  0007c        8b c3            mov     eax, ebx
+  0007e        5b               pop     ebx
+  0007f        5f               pop     edi
+
+; 2076 : }
+
+  00080        5d               pop     ebp
+  00081        c2 0c 00         ret     12                     ; 0000000cH
+_unzGetGlobalComment@12 ENDP
+_TEXT  ENDS
+PUBLIC _unzCloseCurrentFile@4
+; Function compile flags: /Ogtp
+;      COMDAT _unzCloseCurrentFile@4
+_TEXT  SEGMENT
+_err$ = -4                                             ; size = 4
+_file$ = 8                                             ; size = 4
+_unzCloseCurrentFile@4 PROC                            ; COMDAT
+
+; 2005 : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+  00003        51               push    ecx
+  00004        57               push    edi
+
+; 2006 :     int err=UNZ_OK;
+; 2007 : 
+; 2008 :     unz64_s* s;
+; 2009 :     file_in_zip64_read_info_s* pfile_in_zip_read_info;
+; 2010 :     if (file==NULL)
+
+  00005        8b 7d 08         mov     edi, DWORD PTR _file$[ebp]
+  00008        c7 45 fc 00 00
+       00 00            mov     DWORD PTR _err$[ebp], 0
+  0000f        85 ff            test    edi, edi
+  00011        75 0a            jne     SHORT $LN7@unzCloseCu
+
+; 2011 :         return UNZ_PARAMERROR;
+
+  00013        8d 47 9a         lea     eax, DWORD PTR [edi-102]
+  00016        5f               pop     edi
+
+; 2043 : }
+
+  00017        8b e5            mov     esp, ebp
+  00019        5d               pop     ebp
+  0001a        c2 04 00         ret     4
+$LN7@unzCloseCu:
+  0001d        56               push    esi
+
+; 2012 :     s=(unz64_s*)file;
+; 2013 :     pfile_in_zip_read_info=s->pfile_in_zip_read;
+
+  0001e        8b b7 e0 00 00
+       00               mov     esi, DWORD PTR [edi+224]
+
+; 2014 : 
+; 2015 :     if (pfile_in_zip_read_info==NULL)
+
+  00024        85 f6            test    esi, esi
+  00026        75 0b            jne     SHORT $LN6@unzCloseCu
+
+; 2016 :         return UNZ_PARAMERROR;
+
+  00028        8d 46 9a         lea     eax, DWORD PTR [esi-102]
+  0002b        5e               pop     esi
+  0002c        5f               pop     edi
+
+; 2043 : }
+
+  0002d        8b e5            mov     esp, ebp
+  0002f        5d               pop     ebp
+  00030        c2 04 00         ret     4
+$LN6@unzCloseCu:
+
+; 2017 : 
+; 2018 : 
+; 2019 :     if ((pfile_in_zip_read_info->rest_read_uncompressed == 0) &&
+; 2020 :         (!pfile_in_zip_read_info->raw))
+
+  00033        8b 86 80 00 00
+       00               mov     eax, DWORD PTR [esi+128]
+  00039        0b 86 84 00 00
+       00               or      eax, DWORD PTR [esi+132]
+  0003f        75 17            jne     SHORT $LN4@unzCloseCu
+  00041        39 86 c8 00 00
+       00               cmp     DWORD PTR [esi+200], eax
+  00047        75 0f            jne     SHORT $LN4@unzCloseCu
+
+; 2021 :     {
+; 2022 :         if (pfile_in_zip_read_info->crc32 != pfile_in_zip_read_info->crc32_wait)
+
+  00049        8b 4e 70         mov     ecx, DWORD PTR [esi+112]
+  0004c        3b 4e 74         cmp     ecx, DWORD PTR [esi+116]
+  0004f        74 07            je      SHORT $LN4@unzCloseCu
+
+; 2023 :             err=UNZ_CRCERROR;
+
+  00051        c7 45 fc 97 ff
+       ff ff            mov     DWORD PTR _err$[ebp], -105 ; ffffff97H
+$LN4@unzCloseCu:
+
+; 2024 :     }
+; 2025 : 
+; 2026 : 
+; 2027 :     TRYFREE(pfile_in_zip_read_info->read_buffer);
+
+  00058        8b 06            mov     eax, DWORD PTR [esi]
+  0005a        85 c0            test    eax, eax
+  0005c        74 09            je      SHORT $LN3@unzCloseCu
+  0005e        50               push    eax
+  0005f        e8 00 00 00 00   call    _free
+  00064        83 c4 04         add     esp, 4
+$LN3@unzCloseCu:
+
+; 2028 :     pfile_in_zip_read_info->read_buffer = NULL;
+; 2029 :     if (pfile_in_zip_read_info->stream_initialised == Z_DEFLATED)
+
+  00067        83 7e 48 08      cmp     DWORD PTR [esi+72], 8
+  0006b        c7 06 00 00 00
+       00               mov     DWORD PTR [esi], 0
+  00071        75 09            jne     SHORT $LN2@unzCloseCu
+
+; 2030 :         inflateEnd(&pfile_in_zip_read_info->stream);
+
+  00073        8d 56 04         lea     edx, DWORD PTR [esi+4]
+  00076        52               push    edx
+  00077        e8 00 00 00 00   call    _inflateEnd@4
+$LN2@unzCloseCu:
+
+; 2031 : #ifdef HAVE_BZIP2
+; 2032 :     else if (pfile_in_zip_read_info->stream_initialised == Z_BZIP2ED)
+; 2033 :         BZ2_bzDecompressEnd(&pfile_in_zip_read_info->bstream);
+; 2034 : #endif
+; 2035 : 
+; 2036 : 
+; 2037 :     pfile_in_zip_read_info->stream_initialised = 0;
+; 2038 :     TRYFREE(pfile_in_zip_read_info);
+
+  0007c        56               push    esi
+  0007d        c7 46 48 00 00
+       00 00            mov     DWORD PTR [esi+72], 0
+  00084        e8 00 00 00 00   call    _free
+
+; 2039 : 
+; 2040 :     s->pfile_in_zip_read=NULL;
+; 2041 : 
+; 2042 :     return err;
+
+  00089        8b 45 fc         mov     eax, DWORD PTR _err$[ebp]
+  0008c        83 c4 04         add     esp, 4
+  0008f        5e               pop     esi
+  00090        c7 87 e0 00 00
+       00 00 00 00 00   mov     DWORD PTR [edi+224], 0
+  0009a        5f               pop     edi
+
+; 2043 : }
+
+  0009b        8b e5            mov     esp, ebp
+  0009d        5d               pop     ebp
+  0009e        c2 04 00         ret     4
+_unzCloseCurrentFile@4 ENDP
+_TEXT  ENDS
+PUBLIC _unzGetLocalExtrafield@12
+; Function compile flags: /Ogtp
+;      COMDAT _unzGetLocalExtrafield@12
+_TEXT  SEGMENT
+_file$ = 8                                             ; size = 4
+_buf$ = 12                                             ; size = 4
+_len$ = 16                                             ; size = 4
+_unzGetLocalExtrafield@12 PROC                         ; COMDAT
+
+; 1957 : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+  00003        83 e4 f8         and     esp, -8                        ; fffffff8H
+  00006        51               push    ecx
+
+; 1958 :     unz64_s* s;
+; 1959 :     file_in_zip64_read_info_s* pfile_in_zip_read_info;
+; 1960 :     uInt read_now;
+; 1961 :     ZPOS64_T size_to_read;
+; 1962 : 
+; 1963 :     if (file==NULL)
+
+  00007        8b 45 08         mov     eax, DWORD PTR _file$[ebp]
+  0000a        53               push    ebx
+  0000b        56               push    esi
+  0000c        57               push    edi
+  0000d        85 c0            test    eax, eax
+  0000f        75 0e            jne     SHORT $LN8@unzGetLoca
+$LN13@unzGetLoca:
+
+; 1964 :         return UNZ_PARAMERROR;
+
+  00011        b8 9a ff ff ff   mov     eax, -102              ; ffffff9aH
+
+; 1998 : }
+
+  00016        5f               pop     edi
+  00017        5e               pop     esi
+  00018        5b               pop     ebx
+  00019        8b e5            mov     esp, ebp
+  0001b        5d               pop     ebp
+  0001c        c2 0c 00         ret     12                     ; 0000000cH
+$LN8@unzGetLoca:
+
+; 1965 :     s=(unz64_s*)file;
+; 1966 :     pfile_in_zip_read_info=s->pfile_in_zip_read;
+
+  0001f        8b b8 e0 00 00
+       00               mov     edi, DWORD PTR [eax+224]
+
+; 1967 : 
+; 1968 :     if (pfile_in_zip_read_info==NULL)
+
+  00025        85 ff            test    edi, edi
+
+; 1969 :         return UNZ_PARAMERROR;
+
+  00027        74 e8            je      SHORT $LN13@unzGetLoca
+
+; 1970 : 
+; 1971 :     size_to_read = (pfile_in_zip_read_info->size_local_extrafield -
+; 1972 :                 pfile_in_zip_read_info->pos_local_extrafield);
+
+  00029        8b 57 60         mov     edx, DWORD PTR [edi+96]
+  0002c        8b 47 58         mov     eax, DWORD PTR [edi+88]
+  0002f        8b 77 64         mov     esi, DWORD PTR [edi+100]
+  00032        33 c9            xor     ecx, ecx
+  00034        2b c2            sub     eax, edx
+  00036        1b ce            sbb     ecx, esi
+
+; 1973 : 
+; 1974 :     if (buf==NULL)
+
+  00038        83 7d 0c 00      cmp     DWORD PTR _buf$[ebp], 0
+
+; 1975 :         return (int)size_to_read;
+
+  0003c        74 79            je      SHORT $LN9@unzGetLoca
+
+; 1976 : 
+; 1977 :     if (len>size_to_read)
+
+  0003e        33 db            xor     ebx, ebx
+  00040        3b d9            cmp     ebx, ecx
+  00042        72 0b            jb      SHORT $LN5@unzGetLoca
+  00044        77 05            ja      SHORT $LN11@unzGetLoca
+  00046        39 45 10         cmp     DWORD PTR _len$[ebp], eax
+  00049        76 04            jbe     SHORT $LN5@unzGetLoca
+$LN11@unzGetLoca:
+
+; 1978 :         read_now = (uInt)size_to_read;
+
+  0004b        8b d8            mov     ebx, eax
+
+; 1979 :     else
+
+  0004d        eb 03            jmp     SHORT $LN4@unzGetLoca
+$LN5@unzGetLoca:
+
+; 1980 :         read_now = (uInt)len ;
+
+  0004f        8b 5d 10         mov     ebx, DWORD PTR _len$[ebp]
+$LN4@unzGetLoca:
+
+; 1981 : 
+; 1982 :     if (read_now==0)
+
+  00052        85 db            test    ebx, ebx
+  00054        75 0b            jne     SHORT $LN3@unzGetLoca
+
+; 1983 :         return 0;
+
+  00056        33 c0            xor     eax, eax
+
+; 1998 : }
+
+  00058        5f               pop     edi
+  00059        5e               pop     esi
+  0005a        5b               pop     ebx
+  0005b        8b e5            mov     esp, ebp
+  0005d        5d               pop     ebp
+  0005e        c2 0c 00         ret     12                     ; 0000000cH
+$LN3@unzGetLoca:
+
+; 1984 : 
+; 1985 :     if (ZSEEK64(pfile_in_zip_read_info->z_filefunc,
+; 1986 :               pfile_in_zip_read_info->filestream,
+; 1987 :               pfile_in_zip_read_info->offset_local_extrafield +
+; 1988 :               pfile_in_zip_read_info->pos_local_extrafield,
+; 1989 :               ZLIB_FILEFUNC_SEEK_SET)!=0)
+
+  00061        8b 47 50         mov     eax, DWORD PTR [edi+80]
+  00064        8b 4f 54         mov     ecx, DWORD PTR [edi+84]
+  00067        03 c2            add     eax, edx
+  00069        13 ce            adc     ecx, esi
+  0006b        8b b7 b4 00 00
+       00               mov     esi, DWORD PTR [edi+180]
+  00071        51               push    ecx
+  00072        50               push    eax
+  00073        8d 87 88 00 00
+       00               lea     eax, DWORD PTR [edi+136]
+  00079        33 d2            xor     edx, edx
+  0007b        e8 00 00 00 00   call    _call_zseek64
+  00080        83 c4 08         add     esp, 8
+  00083        85 c0            test    eax, eax
+  00085        74 0c            je      SHORT $LN2@unzGetLoca
+$LN14@unzGetLoca:
+
+; 1990 :         return UNZ_ERRNO;
+
+  00087        83 c8 ff         or      eax, -1
+
+; 1998 : }
+
+  0008a        5f               pop     edi
+  0008b        5e               pop     esi
+  0008c        5b               pop     ebx
+  0008d        8b e5            mov     esp, ebp
+  0008f        5d               pop     ebp
+  00090        c2 0c 00         ret     12                     ; 0000000cH
+$LN2@unzGetLoca:
+
+; 1991 : 
+; 1992 :     if (ZREAD64(pfile_in_zip_read_info->z_filefunc,
+; 1993 :               pfile_in_zip_read_info->filestream,
+; 1994 :               buf,read_now)!=read_now)
+
+  00093        8b 55 0c         mov     edx, DWORD PTR _buf$[ebp]
+  00096        8b 87 b4 00 00
+       00               mov     eax, DWORD PTR [edi+180]
+  0009c        8b 8f a4 00 00
+       00               mov     ecx, DWORD PTR [edi+164]
+  000a2        53               push    ebx
+  000a3        52               push    edx
+  000a4        8b 97 8c 00 00
+       00               mov     edx, DWORD PTR [edi+140]
+  000aa        50               push    eax
+  000ab        51               push    ecx
+  000ac        ff d2            call    edx
+  000ae        83 c4 10         add     esp, 16                        ; 00000010H
+  000b1        3b c3            cmp     eax, ebx
+
+; 1995 :         return UNZ_ERRNO;
+
+  000b3        75 d2            jne     SHORT $LN14@unzGetLoca
+
+; 1996 : 
+; 1997 :     return (int)read_now;
+
+  000b5        8b c3            mov     eax, ebx
+$LN9@unzGetLoca:
+
+; 1998 : }
+
+  000b7        5f               pop     edi
+  000b8        5e               pop     esi
+  000b9        5b               pop     ebx
+  000ba        8b e5            mov     esp, ebp
+  000bc        5d               pop     ebp
+  000bd        c2 0c 00         ret     12                     ; 0000000cH
+_unzGetLocalExtrafield@12 ENDP
+_TEXT  ENDS
+PUBLIC _unzGetFilePos@8
+; Function compile flags: /Ogtp
+;      COMDAT _unzGetFilePos@8
+_TEXT  SEGMENT
+_file_pos64$ = -16                                     ; size = 16
+_file$ = 8                                             ; size = 4
+_file_pos$ = 12                                                ; size = 4
+_unzGetFilePos@8 PROC                                  ; COMDAT
+
+; 1327 : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+
+; 1328 :     unz64_file_pos file_pos64;
+; 1329 :     int err = unzGetFilePos64(file,&file_pos64);
+
+  00003        8b 4d 08         mov     ecx, DWORD PTR _file$[ebp]
+  00006        83 ec 10         sub     esp, 16                        ; 00000010H
+  00009        8d 45 f0         lea     eax, DWORD PTR _file_pos64$[ebp]
+  0000c        50               push    eax
+  0000d        51               push    ecx
+  0000e        e8 00 00 00 00   call    _unzGetFilePos64@8
+
+; 1330 :     if (err==UNZ_OK)
+
+  00013        85 c0            test    eax, eax
+  00015        75 0e            jne     SHORT $LN1@unzGetFile@2
+
+; 1331 :     {
+; 1332 :         file_pos->pos_in_zip_directory = (uLong)file_pos64.pos_in_zip_directory;
+
+  00017        8b 4d 0c         mov     ecx, DWORD PTR _file_pos$[ebp]
+  0001a        8b 55 f0         mov     edx, DWORD PTR _file_pos64$[ebp]
+  0001d        89 11            mov     DWORD PTR [ecx], edx
+
+; 1333 :         file_pos->num_of_file = (uLong)file_pos64.num_of_file;
+
+  0001f        8b 55 f8         mov     edx, DWORD PTR _file_pos64$[ebp+8]
+  00022        89 51 04         mov     DWORD PTR [ecx+4], edx
+$LN1@unzGetFile@2:
+
+; 1334 :     }
+; 1335 :     return err;
+; 1336 : }
+
+  00025        8b e5            mov     esp, ebp
+  00027        5d               pop     ebp
+  00028        c2 08 00         ret     8
+_unzGetFilePos@8 ENDP
+_TEXT  ENDS
+PUBLIC _unzClose@4
+; Function compile flags: /Ogtp
+;      COMDAT _unzClose@4
+_TEXT  SEGMENT
+_file$ = 8                                             ; size = 4
+_unzClose@4 PROC                                       ; COMDAT
+
+; 809  : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+  00003        56               push    esi
+
+; 810  :     unz64_s* s;
+; 811  :     if (file==NULL)
+
+  00004        8b 75 08         mov     esi, DWORD PTR _file$[ebp]
+  00007        85 f6            test    esi, esi
+  00009        75 08            jne     SHORT $LN3@unzClose
+
+; 812  :         return UNZ_PARAMERROR;
+
+  0000b        8d 46 9a         lea     eax, DWORD PTR [esi-102]
+  0000e        5e               pop     esi
+
+; 821  : }
+
+  0000f        5d               pop     ebp
+  00010        c2 04 00         ret     4
+$LN3@unzClose:
+
+; 813  :     s=(unz64_s*)file;
+; 814  : 
+; 815  :     if (s->pfile_in_zip_read!=NULL)
+
+  00013        83 be e0 00 00
+       00 00            cmp     DWORD PTR [esi+224], 0
+  0001a        74 06            je      SHORT $LN2@unzClose
+
+; 816  :         unzCloseCurrentFile(file);
+
+  0001c        56               push    esi
+  0001d        e8 00 00 00 00   call    _unzCloseCurrentFile@4
+$LN2@unzClose:
+
+; 817  : 
+; 818  :     ZCLOSE64(s->z_filefunc, s->filestream);
+
+  00022        8b 46 30         mov     eax, DWORD PTR [esi+48]
+  00025        8b 4e 1c         mov     ecx, DWORD PTR [esi+28]
+  00028        8b 56 14         mov     edx, DWORD PTR [esi+20]
+  0002b        50               push    eax
+  0002c        51               push    ecx
+  0002d        ff d2            call    edx
+
+; 819  :     TRYFREE(s);
+
+  0002f        56               push    esi
+  00030        e8 00 00 00 00   call    _free
+  00035        83 c4 0c         add     esp, 12                        ; 0000000cH
+
+; 820  :     return UNZ_OK;
+
+  00038        33 c0            xor     eax, eax
+  0003a        5e               pop     esi
+
+; 821  : }
+
+  0003b        5d               pop     ebp
+  0003c        c2 04 00         ret     4
+_unzClose@4 ENDP
+; Function compile flags: /Ogtp
+_TEXT  ENDS
+;      COMDAT _unz64local_SearchCentralDir
+_TEXT  SEGMENT
+_uSizeFile$ = -40                                      ; size = 8
+_uPosFound$ = -32                                      ; size = 8
+_uBackRead$ = -24                                      ; size = 8
+_uMaxBack$ = -16                                       ; size = 8
+_uReadSize$82389 = -8                                  ; size = 4
+_buf$ = -4                                             ; size = 4
+_pzlib_filefunc_def$ = 8                               ; size = 4
+_filestream$ = 12                                      ; size = 4
+_unz64local_SearchCentralDir PROC                      ; COMDAT
+
+; 414  : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+  00003        83 ec 2c         sub     esp, 44                        ; 0000002cH
+  00006        53               push    ebx
+
+; 415  :     unsigned char* buf;
+; 416  :     ZPOS64_T uSizeFile;
+; 417  :     ZPOS64_T uBackRead;
+; 418  :     ZPOS64_T uMaxBack=0xffff; /* maximum size of global comment */
+; 419  :     ZPOS64_T uPosFound=0;
+; 420  : 
+; 421  :     if (ZSEEK64(*pzlib_filefunc_def,filestream,0,ZLIB_FILEFUNC_SEEK_END) != 0)
+
+  00007        8b 5d 08         mov     ebx, DWORD PTR _pzlib_filefunc_def$[ebp]
+  0000a        56               push    esi
+  0000b        8b 75 0c         mov     esi, DWORD PTR _filestream$[ebp]
+  0000e        57               push    edi
+  0000f        33 ff            xor     edi, edi
+  00011        57               push    edi
+  00012        57               push    edi
+  00013        8d 57 02         lea     edx, DWORD PTR [edi+2]
+  00016        8b c3            mov     eax, ebx
+  00018        c7 45 f0 ff ff
+       00 00            mov     DWORD PTR _uMaxBack$[ebp], 65535 ; 0000ffffH
+  0001f        89 7d f4         mov     DWORD PTR _uMaxBack$[ebp+4], edi
+  00022        89 7d e0         mov     DWORD PTR _uPosFound$[ebp], edi
+  00025        89 7d e4         mov     DWORD PTR _uPosFound$[ebp+4], edi
+  00028        e8 00 00 00 00   call    _call_zseek64
+  0002d        83 c4 08         add     esp, 8
+  00030        85 c0            test    eax, eax
+  00032        74 0b            je      SHORT $LN14@unz64local@2
+$LN40@unz64local@2:
+
+; 422  :         return 0;
+
+  00034        33 c0            xor     eax, eax
+  00036        33 d2            xor     edx, edx
+
+; 467  : }
+
+  00038        5f               pop     edi
+  00039        5e               pop     esi
+  0003a        5b               pop     ebx
+  0003b        8b e5            mov     esp, ebp
+  0003d        5d               pop     ebp
+  0003e        c3               ret     0
+$LN14@unz64local@2:
+
+; 423  : 
+; 424  : 
+; 425  :     uSizeFile = ZTELL64(*pzlib_filefunc_def,filestream);
+
+  0003f        8b ce            mov     ecx, esi
+  00041        8b c3            mov     eax, ebx
+  00043        e8 00 00 00 00   call    _call_ztell64
+  00048        8b da            mov     ebx, edx
+  0004a        8b f0            mov     esi, eax
+  0004c        89 75 d8         mov     DWORD PTR _uSizeFile$[ebp], esi
+  0004f        89 5d dc         mov     DWORD PTR _uSizeFile$[ebp+4], ebx
+
+; 426  : 
+; 427  :     if (uMaxBack>uSizeFile)
+
+  00052        85 db            test    ebx, ebx
+  00054        77 12            ja      SHORT $LN13@unz64local@2
+  00056        72 08            jb      SHORT $LN27@unz64local@2
+  00058        81 fe ff ff 00
+       00               cmp     esi, 65535             ; 0000ffffH
+  0005e        73 08            jae     SHORT $LN13@unz64local@2
+$LN27@unz64local@2:
+
+; 428  :         uMaxBack = uSizeFile;
+
+  00060        89 75 f0         mov     DWORD PTR _uMaxBack$[ebp], esi
+  00063        89 5d f4         mov     DWORD PTR _uMaxBack$[ebp+4], ebx
+  00066        8b fb            mov     edi, ebx
+$LN13@unz64local@2:
+
+; 429  : 
+; 430  :     buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4);
+
+  00068        68 04 04 00 00   push    1028                   ; 00000404H
+  0006d        e8 00 00 00 00   call    _malloc
+  00072        83 c4 04         add     esp, 4
+  00075        89 45 fc         mov     DWORD PTR _buf$[ebp], eax
+
+; 431  :     if (buf==NULL)
+
+  00078        85 c0            test    eax, eax
+
+; 432  :         return 0;
+
+  0007a        74 b8            je      SHORT $LN40@unz64local@2
+
+; 433  : 
+; 434  :     uBackRead = 4;
+
+  0007c        33 c9            xor     ecx, ecx
+  0007e        ba 04 00 00 00   mov     edx, 4
+
+; 435  :     while (uBackRead<uMaxBack)
+
+  00083        3b cf            cmp     ecx, edi
+  00085        0f 87 03 01 00
+       00               ja      $LN31@unz64local@2
+  0008b        8b 45 f0         mov     eax, DWORD PTR _uMaxBack$[ebp]
+  0008e        72 22            jb      SHORT $LN11@unz64local@2
+  00090        3b d0            cmp     edx, eax
+  00092        0f 83 f6 00 00
+       00               jae     $LN31@unz64local@2
+  00098        eb 18            jmp     SHORT $LN11@unz64local@2
+  0009a        8d 9b 00 00 00
+       00               npad    6
+$LL34@unz64local@2:
+  000a0        8b 75 d8         mov     esi, DWORD PTR _uSizeFile$[ebp]
+  000a3        8b 7d f4         mov     edi, DWORD PTR _uMaxBack$[ebp+4]
+  000a6        8b 55 e8         mov     edx, DWORD PTR _uBackRead$[ebp]
+  000a9        8b 4d ec         mov     ecx, DWORD PTR _uBackRead$[ebp+4]
+  000ac        8b 5d dc         mov     ebx, DWORD PTR _uSizeFile$[ebp+4]
+  000af        8b 45 f0         mov     eax, DWORD PTR _uMaxBack$[ebp]
+$LN11@unz64local@2:
+
+; 436  :     {
+; 437  :         uLong uReadSize;
+; 438  :         ZPOS64_T uReadPos ;
+; 439  :         int i;
+; 440  :         if (uBackRead+BUFREADCOMMENT>uMaxBack)
+
+  000b2        81 c2 00 04 00
+       00               add     edx, 1024              ; 00000400H
+  000b8        83 d1 00         adc     ecx, 0
+  000bb        3b cf            cmp     ecx, edi
+  000bd        72 0e            jb      SHORT $LN9@unz64local@2
+  000bf        77 04            ja      SHORT $LN29@unz64local@2
+  000c1        3b d0            cmp     edx, eax
+  000c3        76 08            jbe     SHORT $LN9@unz64local@2
+$LN29@unz64local@2:
+
+; 441  :             uBackRead = uMaxBack;
+
+  000c5        89 45 e8         mov     DWORD PTR _uBackRead$[ebp], eax
+  000c8        89 7d ec         mov     DWORD PTR _uBackRead$[ebp+4], edi
+
+; 442  :         else
+
+  000cb        eb 06            jmp     SHORT $LN8@unz64local@2
+$LN9@unz64local@2:
+
+; 443  :             uBackRead+=BUFREADCOMMENT;
+
+  000cd        89 55 e8         mov     DWORD PTR _uBackRead$[ebp], edx
+  000d0        89 4d ec         mov     DWORD PTR _uBackRead$[ebp+4], ecx
+$LN8@unz64local@2:
+
+; 444  :         uReadPos = uSizeFile-uBackRead ;
+; 445  : 
+; 446  :         uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ?
+; 447  :                      (BUFREADCOMMENT+4) : (uLong)(uSizeFile-uReadPos);
+
+  000d3        8b 45 dc         mov     eax, DWORD PTR _uSizeFile$[ebp+4]
+  000d6        8b fe            mov     edi, esi
+  000d8        2b 7d e8         sub     edi, DWORD PTR _uBackRead$[ebp]
+  000db        8b ce            mov     ecx, esi
+  000dd        1b 5d ec         sbb     ebx, DWORD PTR _uBackRead$[ebp+4]
+  000e0        2b cf            sub     ecx, edi
+  000e2        1b c3            sbb     eax, ebx
+  000e4        85 c0            test    eax, eax
+  000e6        72 13            jb      SHORT $LN17@unz64local@2
+  000e8        77 08            ja      SHORT $LN30@unz64local@2
+  000ea        81 f9 04 04 00
+       00               cmp     ecx, 1028              ; 00000404H
+  000f0        76 09            jbe     SHORT $LN17@unz64local@2
+$LN30@unz64local@2:
+  000f2        c7 45 f8 04 04
+       00 00            mov     DWORD PTR _uReadSize$82389[ebp], 1028 ; 00000404H
+  000f9        eb 05            jmp     SHORT $LN18@unz64local@2
+$LN17@unz64local@2:
+  000fb        2b f7            sub     esi, edi
+  000fd        89 75 f8         mov     DWORD PTR _uReadSize$82389[ebp], esi
+$LN18@unz64local@2:
+
+; 448  :         if (ZSEEK64(*pzlib_filefunc_def,filestream,uReadPos,ZLIB_FILEFUNC_SEEK_SET)!=0)
+
+  00100        8b 75 0c         mov     esi, DWORD PTR _filestream$[ebp]
+  00103        8b 45 08         mov     eax, DWORD PTR _pzlib_filefunc_def$[ebp]
+  00106        53               push    ebx
+  00107        57               push    edi
+  00108        33 d2            xor     edx, edx
+  0010a        e8 00 00 00 00   call    _call_zseek64
+  0010f        83 c4 08         add     esp, 8
+  00112        85 c0            test    eax, eax
+  00114        75 78            jne     SHORT $LN31@unz64local@2
+
+; 449  :             break;
+; 450  : 
+; 451  :         if (ZREAD64(*pzlib_filefunc_def,filestream,buf,uReadSize)!=uReadSize)
+
+  00116        8b 75 f8         mov     esi, DWORD PTR _uReadSize$82389[ebp]
+  00119        8b 45 fc         mov     eax, DWORD PTR _buf$[ebp]
+  0011c        8b 4d 0c         mov     ecx, DWORD PTR _filestream$[ebp]
+  0011f        56               push    esi
+  00120        50               push    eax
+  00121        8b 45 08         mov     eax, DWORD PTR _pzlib_filefunc_def$[ebp]
+  00124        8b 50 1c         mov     edx, DWORD PTR [eax+28]
+  00127        8b 40 04         mov     eax, DWORD PTR [eax+4]
+  0012a        51               push    ecx
+  0012b        52               push    edx
+  0012c        ff d0            call    eax
+  0012e        83 c4 10         add     esp, 16                        ; 00000010H
+  00131        3b c6            cmp     eax, esi
+  00133        75 59            jne     SHORT $LN31@unz64local@2
+
+; 452  :             break;
+; 453  : 
+; 454  :         for (i=(int)uReadSize-3; (i--)>0;)
+
+  00135        8d 46 fd         lea     eax, DWORD PTR [esi-3]
+  00138        85 c0            test    eax, eax
+  0013a        7e 38            jle     SHORT $LN26@unz64local@2
+  0013c        8d 64 24 00      npad    4
+$LL5@unz64local@2:
+
+; 455  :             if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) &&
+; 456  :                 ((*(buf+i+2))==0x05) && ((*(buf+i+3))==0x06))
+
+  00140        8b 4d fc         mov     ecx, DWORD PTR _buf$[ebp]
+  00143        48               dec     eax
+  00144        80 3c 08 50      cmp     BYTE PTR [eax+ecx], 80 ; 00000050H
+  00148        75 15            jne     SHORT $LN3@unz64local@2
+  0014a        80 7c 08 01 4b   cmp     BYTE PTR [eax+ecx+1], 75 ; 0000004bH
+  0014f        75 0e            jne     SHORT $LN3@unz64local@2
+  00151        80 7c 08 02 05   cmp     BYTE PTR [eax+ecx+2], 5
+  00156        75 07            jne     SHORT $LN3@unz64local@2
+  00158        80 7c 08 03 06   cmp     BYTE PTR [eax+ecx+3], 6
+  0015d        74 06            je      SHORT $LN21@unz64local@2
+$LN3@unz64local@2:
+
+; 452  :             break;
+; 453  : 
+; 454  :         for (i=(int)uReadSize-3; (i--)>0;)
+
+  0015f        85 c0            test    eax, eax
+  00161        7f dd            jg      SHORT $LL5@unz64local@2
+
+; 459  :                 break;
+; 460  :             }
+; 461  : 
+; 462  :         if (uPosFound!=0)
+
+  00163        eb 0f            jmp     SHORT $LN26@unz64local@2
+$LN21@unz64local@2:
+
+; 457  :             {
+; 458  :                 uPosFound = uReadPos+i;
+
+  00165        99               cdq
+  00166        03 c7            add     eax, edi
+  00168        13 d3            adc     edx, ebx
+  0016a        89 45 e0         mov     DWORD PTR _uPosFound$[ebp], eax
+
+; 459  :                 break;
+; 460  :             }
+; 461  : 
+; 462  :         if (uPosFound!=0)
+
+  0016d        0b c2            or      eax, edx
+  0016f        89 55 e4         mov     DWORD PTR _uPosFound$[ebp+4], edx
+  00172        75 1a            jne     SHORT $LN31@unz64local@2
+$LN26@unz64local@2:
+
+; 435  :     while (uBackRead<uMaxBack)
+
+  00174        8b 4d f4         mov     ecx, DWORD PTR _uMaxBack$[ebp+4]
+  00177        39 4d ec         cmp     DWORD PTR _uBackRead$[ebp+4], ecx
+  0017a        0f 82 20 ff ff
+       ff               jb      $LL34@unz64local@2
+  00180        77 0c            ja      SHORT $LN31@unz64local@2
+  00182        8b 55 f0         mov     edx, DWORD PTR _uMaxBack$[ebp]
+  00185        39 55 e8         cmp     DWORD PTR _uBackRead$[ebp], edx
+  00188        0f 82 12 ff ff
+       ff               jb      $LL34@unz64local@2
+$LN31@unz64local@2:
+
+; 463  :             break;
+; 464  :     }
+; 465  :     TRYFREE(buf);
+
+  0018e        8b 45 fc         mov     eax, DWORD PTR _buf$[ebp]
+  00191        50               push    eax
+  00192        e8 00 00 00 00   call    _free
+
+; 466  :     return uPosFound;
+
+  00197        8b 45 e0         mov     eax, DWORD PTR _uPosFound$[ebp]
+  0019a        8b 55 e4         mov     edx, DWORD PTR _uPosFound$[ebp+4]
+  0019d        83 c4 04         add     esp, 4
+
+; 467  : }
+
+  001a0        5f               pop     edi
+  001a1        5e               pop     esi
+  001a2        5b               pop     ebx
+  001a3        8b e5            mov     esp, ebp
+  001a5        5d               pop     ebp
+  001a6        c3               ret     0
+_unz64local_SearchCentralDir ENDP
+_TEXT  ENDS
+PUBLIC _unzStringFileNameCompare@12
+; Function compile flags: /Ogtp
+;      COMDAT _unzStringFileNameCompare@12
+_TEXT  SEGMENT
+_fileName1$ = 8                                                ; size = 4
+_fileName2$ = 12                                       ; size = 4
+_iCaseSensitivity$ = 16                                        ; size = 4
+_unzStringFileNameCompare@12 PROC                      ; COMDAT
+
+; 394  : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+
+; 395  :     if (iCaseSensitivity==0)
+
+  00003        8b 45 10         mov     eax, DWORD PTR _iCaseSensitivity$[ebp]
+  00006        85 c0            test    eax, eax
+
+; 396  :         iCaseSensitivity=CASESENSITIVITYDEFAULTVALUE;
+; 397  : 
+; 398  :     if (iCaseSensitivity==1)
+
+  00008        74 36            je      SHORT $LN1@unzStringF
+  0000a        83 f8 01         cmp     eax, 1
+  0000d        75 31            jne     SHORT $LN1@unzStringF
+
+; 399  :         return strcmp(fileName1,fileName2);
+
+  0000f        8b 55 0c         mov     edx, DWORD PTR _fileName2$[ebp]
+  00012        8b 4d 08         mov     ecx, DWORD PTR _fileName1$[ebp]
+$LL5@unzStringF:
+  00015        8a 01            mov     al, BYTE PTR [ecx]
+  00017        3a 02            cmp     al, BYTE PTR [edx]
+  00019        75 1c            jne     SHORT $LN6@unzStringF
+  0001b        84 c0            test    al, al
+  0001d        74 12            je      SHORT $LN7@unzStringF
+  0001f        8a 41 01         mov     al, BYTE PTR [ecx+1]
+  00022        3a 42 01         cmp     al, BYTE PTR [edx+1]
+  00025        75 10            jne     SHORT $LN6@unzStringF
+  00027        83 c1 02         add     ecx, 2
+  0002a        83 c2 02         add     edx, 2
+  0002d        84 c0            test    al, al
+  0002f        75 e4            jne     SHORT $LL5@unzStringF
+$LN7@unzStringF:
+  00031        33 c0            xor     eax, eax
+
+; 402  : }
+
+  00033        5d               pop     ebp
+  00034        c2 0c 00         ret     12                     ; 0000000cH
+$LN6@unzStringF:
+
+; 399  :         return strcmp(fileName1,fileName2);
+
+  00037        1b c0            sbb     eax, eax
+  00039        83 d8 ff         sbb     eax, -1
+
+; 402  : }
+
+  0003c        5d               pop     ebp
+  0003d        c2 0c 00         ret     12                     ; 0000000cH
+$LN1@unzStringF:
+
+; 400  : 
+; 401  :     return STRCMPCASENOSENTIVEFUNCTION(fileName1,fileName2);
+
+  00040        8b 45 0c         mov     eax, DWORD PTR _fileName2$[ebp]
+  00043        8b 4d 08         mov     ecx, DWORD PTR _fileName1$[ebp]
+  00046        e8 00 00 00 00   call    _strcmpcasenosensitive_internal
+
+; 402  : }
+
+  0004b        5d               pop     ebp
+  0004c        c2 0c 00         ret     12                     ; 0000000cH
+_unzStringFileNameCompare@12 ENDP
+; Function compile flags: /Ogtp
+_TEXT  ENDS
+;      COMDAT _unz64local_getLong64
+_TEXT  SEGMENT
+_x$ = -16                                              ; size = 8
+_i$ = -4                                               ; size = 4
+_pX$ = 8                                               ; size = 4
+_unz64local_getLong64 PROC                             ; COMDAT
+; _pzlib_filefunc_def$ = ecx
+; _filestream$ = eax
+
+; 305  : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+  00003        83 ec 10         sub     esp, 16                        ; 00000010H
+  00006        53               push    ebx
+  00007        56               push    esi
+  00008        57               push    edi
+  00009        8b f8            mov     edi, eax
+
+; 306  :     ZPOS64_T x ;
+; 307  :     int i = 0;
+; 308  :     int err;
+; 309  : 
+; 310  :     err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+
+  0000b        8d 45 fc         lea     eax, DWORD PTR _i$[ebp]
+  0000e        8b f1            mov     esi, ecx
+  00010        50               push    eax
+  00011        c7 45 fc 00 00
+       00 00            mov     DWORD PTR _i$[ebp], 0
+  00018        e8 00 00 00 00   call    _unz64local_getByte
+  0001d        8b c8            mov     ecx, eax
+
+; 311  :     x = (ZPOS64_T)i;
+
+  0001f        8b 45 fc         mov     eax, DWORD PTR _i$[ebp]
+  00022        99               cdq
+  00023        83 c4 04         add     esp, 4
+  00026        8b d8            mov     ebx, eax
+  00028        89 55 f4         mov     DWORD PTR _x$[ebp+4], edx
+
+; 312  : 
+; 313  :     if (err==UNZ_OK)
+
+  0002b        85 c9            test    ecx, ecx
+  0002d        75 0e            jne     SHORT $LN9@unz64local@3
+
+; 314  :         err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+
+  0002f        8d 4d fc         lea     ecx, DWORD PTR _i$[ebp]
+  00032        51               push    ecx
+  00033        e8 00 00 00 00   call    _unz64local_getByte
+  00038        83 c4 04         add     esp, 4
+  0003b        8b c8            mov     ecx, eax
+$LN9@unz64local@3:
+
+; 315  :     x |= ((ZPOS64_T)i)<<8;
+
+  0003d        8b 45 fc         mov     eax, DWORD PTR _i$[ebp]
+  00040        99               cdq
+  00041        0f a4 c2 08      shld    edx, eax, 8
+  00045        09 55 f4         or      DWORD PTR _x$[ebp+4], edx
+  00048        c1 e0 08         shl     eax, 8
+  0004b        0b d8            or      ebx, eax
+
+; 316  : 
+; 317  :     if (err==UNZ_OK)
+
+  0004d        85 c9            test    ecx, ecx
+  0004f        75 0e            jne     SHORT $LN8@unz64local@3
+
+; 318  :         err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+
+  00051        8d 55 fc         lea     edx, DWORD PTR _i$[ebp]
+  00054        52               push    edx
+  00055        e8 00 00 00 00   call    _unz64local_getByte
+  0005a        83 c4 04         add     esp, 4
+  0005d        8b c8            mov     ecx, eax
+$LN8@unz64local@3:
+
+; 319  :     x |= ((ZPOS64_T)i)<<16;
+
+  0005f        8b 45 fc         mov     eax, DWORD PTR _i$[ebp]
+  00062        99               cdq
+  00063        0f a4 c2 10      shld    edx, eax, 16
+  00067        09 55 f4         or      DWORD PTR _x$[ebp+4], edx
+  0006a        c1 e0 10         shl     eax, 16                        ; 00000010H
+  0006d        0b d8            or      ebx, eax
+
+; 320  : 
+; 321  :     if (err==UNZ_OK)
+
+  0006f        85 c9            test    ecx, ecx
+  00071        75 0e            jne     SHORT $LN7@unz64local@3
+
+; 322  :         err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+
+  00073        8d 45 fc         lea     eax, DWORD PTR _i$[ebp]
+  00076        50               push    eax
+  00077        e8 00 00 00 00   call    _unz64local_getByte
+  0007c        83 c4 04         add     esp, 4
+  0007f        8b c8            mov     ecx, eax
+$LN7@unz64local@3:
+
+; 323  :     x |= ((ZPOS64_T)i)<<24;
+
+  00081        8b 45 fc         mov     eax, DWORD PTR _i$[ebp]
+  00084        99               cdq
+  00085        0f a4 c2 18      shld    edx, eax, 24
+  00089        09 55 f4         or      DWORD PTR _x$[ebp+4], edx
+  0008c        c1 e0 18         shl     eax, 24                        ; 00000018H
+  0008f        0b d8            or      ebx, eax
+
+; 324  : 
+; 325  :     if (err==UNZ_OK)
+
+  00091        85 c9            test    ecx, ecx
+  00093        75 0e            jne     SHORT $LN6@unz64local@3
+
+; 326  :         err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+
+  00095        8d 4d fc         lea     ecx, DWORD PTR _i$[ebp]
+  00098        51               push    ecx
+  00099        e8 00 00 00 00   call    _unz64local_getByte
+  0009e        83 c4 04         add     esp, 4
+  000a1        8b c8            mov     ecx, eax
+$LN6@unz64local@3:
+
+; 327  :     x |= ((ZPOS64_T)i)<<32;
+
+  000a3        8b 45 fc         mov     eax, DWORD PTR _i$[ebp]
+  000a6        99               cdq
+  000a7        09 45 f4         or      DWORD PTR _x$[ebp+4], eax
+
+; 328  : 
+; 329  :     if (err==UNZ_OK)
+
+  000aa        85 c9            test    ecx, ecx
+  000ac        75 0e            jne     SHORT $LN5@unz64local@3
+
+; 330  :         err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+
+  000ae        8d 55 fc         lea     edx, DWORD PTR _i$[ebp]
+  000b1        52               push    edx
+  000b2        e8 00 00 00 00   call    _unz64local_getByte
+  000b7        83 c4 04         add     esp, 4
+  000ba        8b c8            mov     ecx, eax
+$LN5@unz64local@3:
+
+; 331  :     x |= ((ZPOS64_T)i)<<40;
+
+  000bc        8b 45 fc         mov     eax, DWORD PTR _i$[ebp]
+  000bf        99               cdq
+  000c0        c1 e0 08         shl     eax, 8
+  000c3        09 45 f4         or      DWORD PTR _x$[ebp+4], eax
+
+; 332  : 
+; 333  :     if (err==UNZ_OK)
+
+  000c6        85 c9            test    ecx, ecx
+  000c8        75 0e            jne     SHORT $LN4@unz64local@3
+
+; 334  :         err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+
+  000ca        8d 45 fc         lea     eax, DWORD PTR _i$[ebp]
+  000cd        50               push    eax
+  000ce        e8 00 00 00 00   call    _unz64local_getByte
+  000d3        83 c4 04         add     esp, 4
+  000d6        8b c8            mov     ecx, eax
+$LN4@unz64local@3:
+
+; 335  :     x |= ((ZPOS64_T)i)<<48;
+
+  000d8        8b 45 fc         mov     eax, DWORD PTR _i$[ebp]
+  000db        99               cdq
+  000dc        c1 e0 10         shl     eax, 16                        ; 00000010H
+  000df        09 45 f4         or      DWORD PTR _x$[ebp+4], eax
+
+; 336  : 
+; 337  :     if (err==UNZ_OK)
+
+  000e2        85 c9            test    ecx, ecx
+  000e4        75 33            jne     SHORT $LN2@unz64local@3
+
+; 338  :         err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+
+  000e6        8d 4d fc         lea     ecx, DWORD PTR _i$[ebp]
+  000e9        51               push    ecx
+  000ea        e8 00 00 00 00   call    _unz64local_getByte
+  000ef        8b c8            mov     ecx, eax
+  000f1        83 c4 04         add     esp, 4
+
+; 339  :     x |= ((ZPOS64_T)i)<<56;
+; 340  : 
+; 341  :     if (err==UNZ_OK)
+
+  000f4        85 c9            test    ecx, ecx
+  000f6        75 21            jne     SHORT $LN2@unz64local@3
+
+; 342  :         *pX = x;
+
+  000f8        8b 45 fc         mov     eax, DWORD PTR _i$[ebp]
+  000fb        99               cdq
+  000fc        8b d0            mov     edx, eax
+  000fe        8b 45 08         mov     eax, DWORD PTR _pX$[ebp]
+  00101        33 f6            xor     esi, esi
+  00103        c1 e2 18         shl     edx, 24                        ; 00000018H
+  00106        0b f3            or      esi, ebx
+  00108        0b 55 f4         or      edx, DWORD PTR _x$[ebp+4]
+  0010b        89 30            mov     DWORD PTR [eax], esi
+  0010d        89 50 04         mov     DWORD PTR [eax+4], edx
+
+; 345  :     return err;
+
+  00110        8b c1            mov     eax, ecx
+
+; 346  : }
+
+  00112        5f               pop     edi
+  00113        5e               pop     esi
+  00114        5b               pop     ebx
+  00115        8b e5            mov     esp, ebp
+  00117        5d               pop     ebp
+  00118        c3               ret     0
+$LN2@unz64local@3:
+
+; 343  :     else
+; 344  :         *pX = 0;
+
+  00119        8b 45 08         mov     eax, DWORD PTR _pX$[ebp]
+
+; 346  : }
+
+  0011c        5f               pop     edi
+  0011d        5e               pop     esi
+  0011e        c7 00 00 00 00
+       00               mov     DWORD PTR [eax], 0
+  00124        c7 40 04 00 00
+       00 00            mov     DWORD PTR [eax+4], 0
+  0012b        8b c1            mov     eax, ecx
+  0012d        5b               pop     ebx
+  0012e        8b e5            mov     esp, ebp
+  00130        5d               pop     ebp
+  00131        c3               ret     0
+_unz64local_getLong64 ENDP
+; Function compile flags: /Ogtp
+_TEXT  ENDS
+;      COMDAT _unz64local_getLong
+_TEXT  SEGMENT
+_i$ = -4                                               ; size = 4
+_pX$ = 8                                               ; size = 4
+_unz64local_getLong PROC                               ; COMDAT
+; _pzlib_filefunc_def$ = ecx
+; _filestream$ = eax
+
+; 269  : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+  00003        51               push    ecx
+  00004        53               push    ebx
+  00005        56               push    esi
+  00006        57               push    edi
+  00007        8b f8            mov     edi, eax
+
+; 270  :     uLong x ;
+; 271  :     int i = 0;
+; 272  :     int err;
+; 273  : 
+; 274  :     err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+
+  00009        8d 45 fc         lea     eax, DWORD PTR _i$[ebp]
+  0000c        8b f1            mov     esi, ecx
+  0000e        50               push    eax
+  0000f        c7 45 fc 00 00
+       00 00            mov     DWORD PTR _i$[ebp], 0
+  00016        e8 00 00 00 00   call    _unz64local_getByte
+
+; 275  :     x = (uLong)i;
+
+  0001b        8b 4d fc         mov     ecx, DWORD PTR _i$[ebp]
+  0001e        83 c4 04         add     esp, 4
+  00021        8b d9            mov     ebx, ecx
+
+; 276  : 
+; 277  :     if (err==UNZ_OK)
+
+  00023        85 c0            test    eax, eax
+  00025        75 0f            jne     SHORT $LN5@unz64local@4
+
+; 278  :         err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+
+  00027        8d 4d fc         lea     ecx, DWORD PTR _i$[ebp]
+  0002a        51               push    ecx
+  0002b        e8 00 00 00 00   call    _unz64local_getByte
+  00030        8b 4d fc         mov     ecx, DWORD PTR _i$[ebp]
+  00033        83 c4 04         add     esp, 4
+$LN5@unz64local@4:
+
+; 279  :     x |= ((uLong)i)<<8;
+
+  00036        8b d1            mov     edx, ecx
+  00038        c1 e2 08         shl     edx, 8
+  0003b        0b da            or      ebx, edx
+
+; 280  : 
+; 281  :     if (err==UNZ_OK)
+
+  0003d        85 c0            test    eax, eax
+  0003f        75 0f            jne     SHORT $LN4@unz64local@4
+
+; 282  :         err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+
+  00041        8d 45 fc         lea     eax, DWORD PTR _i$[ebp]
+  00044        50               push    eax
+  00045        e8 00 00 00 00   call    _unz64local_getByte
+  0004a        8b 4d fc         mov     ecx, DWORD PTR _i$[ebp]
+  0004d        83 c4 04         add     esp, 4
+$LN4@unz64local@4:
+
+; 283  :     x |= ((uLong)i)<<16;
+
+  00050        c1 e1 10         shl     ecx, 16                        ; 00000010H
+  00053        0b d9            or      ebx, ecx
+
+; 284  : 
+; 285  :     if (err==UNZ_OK)
+
+  00055        85 c0            test    eax, eax
+  00057        75 24            jne     SHORT $LN8@unz64local@4
+
+; 286  :         err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+
+  00059        8d 4d fc         lea     ecx, DWORD PTR _i$[ebp]
+  0005c        51               push    ecx
+  0005d        e8 00 00 00 00   call    _unz64local_getByte
+  00062        83 c4 04         add     esp, 4
+
+; 287  :     x += ((uLong)i)<<24;
+; 288  : 
+; 289  :     if (err==UNZ_OK)
+
+  00065        85 c0            test    eax, eax
+  00067        75 14            jne     SHORT $LN8@unz64local@4
+
+; 290  :         *pX = x;
+
+  00069        8b 55 fc         mov     edx, DWORD PTR _i$[ebp]
+  0006c        8b 4d 08         mov     ecx, DWORD PTR _pX$[ebp]
+  0006f        5f               pop     edi
+  00070        c1 e2 18         shl     edx, 24                        ; 00000018H
+  00073        03 d3            add     edx, ebx
+  00075        5e               pop     esi
+  00076        89 11            mov     DWORD PTR [ecx], edx
+  00078        5b               pop     ebx
+
+; 293  :     return err;
+; 294  : }
+
+  00079        8b e5            mov     esp, ebp
+  0007b        5d               pop     ebp
+  0007c        c3               ret     0
+$LN8@unz64local@4:
+
+; 291  :     else
+; 292  :         *pX = 0;
+
+  0007d        8b 55 08         mov     edx, DWORD PTR _pX$[ebp]
+  00080        5f               pop     edi
+  00081        5e               pop     esi
+  00082        c7 02 00 00 00
+       00               mov     DWORD PTR [edx], 0
+  00088        5b               pop     ebx
+
+; 293  :     return err;
+; 294  : }
+
+  00089        8b e5            mov     esp, ebp
+  0008b        5d               pop     ebp
+  0008c        c3               ret     0
+_unz64local_getLong ENDP
+; Function compile flags: /Ogtp
+_TEXT  ENDS
+;      COMDAT _unz64local_getShort
+_TEXT  SEGMENT
+_i$ = -4                                               ; size = 4
+_pX$ = 8                                               ; size = 4
+_unz64local_getShort PROC                              ; COMDAT
+; _pzlib_filefunc_def$ = ecx
+; _filestream$ = eax
+
+; 242  : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+  00003        51               push    ecx
+  00004        53               push    ebx
+  00005        56               push    esi
+  00006        57               push    edi
+  00007        8b f8            mov     edi, eax
+
+; 243  :     uLong x ;
+; 244  :     int i = 0;
+; 245  :     int err;
+; 246  : 
+; 247  :     err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+
+  00009        8d 45 fc         lea     eax, DWORD PTR _i$[ebp]
+  0000c        8b f1            mov     esi, ecx
+  0000e        50               push    eax
+  0000f        c7 45 fc 00 00
+       00 00            mov     DWORD PTR _i$[ebp], 0
+  00016        e8 00 00 00 00   call    _unz64local_getByte
+
+; 248  :     x = (uLong)i;
+
+  0001b        8b 5d fc         mov     ebx, DWORD PTR _i$[ebp]
+  0001e        83 c4 04         add     esp, 4
+
+; 249  : 
+; 250  :     if (err==UNZ_OK)
+
+  00021        85 c0            test    eax, eax
+  00023        75 24            jne     SHORT $LN6@unz64local@5
+
+; 251  :         err = unz64local_getByte(pzlib_filefunc_def,filestream,&i);
+
+  00025        8d 4d fc         lea     ecx, DWORD PTR _i$[ebp]
+  00028        51               push    ecx
+  00029        e8 00 00 00 00   call    _unz64local_getByte
+  0002e        83 c4 04         add     esp, 4
+
+; 252  :     x |= ((uLong)i)<<8;
+; 253  : 
+; 254  :     if (err==UNZ_OK)
+
+  00031        85 c0            test    eax, eax
+  00033        75 14            jne     SHORT $LN6@unz64local@5
+
+; 255  :         *pX = x;
+
+  00035        8b 55 fc         mov     edx, DWORD PTR _i$[ebp]
+  00038        8b 4d 08         mov     ecx, DWORD PTR _pX$[ebp]
+  0003b        5f               pop     edi
+  0003c        c1 e2 08         shl     edx, 8
+  0003f        0b d3            or      edx, ebx
+  00041        5e               pop     esi
+  00042        89 11            mov     DWORD PTR [ecx], edx
+  00044        5b               pop     ebx
+
+; 258  :     return err;
+; 259  : }
+
+  00045        8b e5            mov     esp, ebp
+  00047        5d               pop     ebp
+  00048        c3               ret     0
+$LN6@unz64local@5:
+
+; 256  :     else
+; 257  :         *pX = 0;
+
+  00049        8b 55 08         mov     edx, DWORD PTR _pX$[ebp]
+  0004c        5f               pop     edi
+  0004d        5e               pop     esi
+  0004e        c7 02 00 00 00
+       00               mov     DWORD PTR [edx], 0
+  00054        5b               pop     ebx
+
+; 258  :     return err;
+; 259  : }
+
+  00055        8b e5            mov     esp, ebp
+  00057        5d               pop     ebp
+  00058        c3               ret     0
+_unz64local_getShort ENDP
+PUBLIC _unzReadCurrentFile@12
+; Function compile flags: /Ogtp
+;      COMDAT _unzReadCurrentFile@12
+_TEXT  SEGMENT
+_iRead$ = -28                                          ; size = 4
+_err$ = -24                                            ; size = 4
+_bufBefore$83048 = -20                                 ; size = 4
+_uTotalOutBefore$83046 = -16                           ; size = 8
+_uOutThis$83049 = -8                                   ; size = 8
+_file$ = 8                                             ; size = 4
+_buf$ = 12                                             ; size = 4
+_len$ = 16                                             ; size = 4
+_unzReadCurrentFile@12 PROC                            ; COMDAT
+
+; 1685 : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+  00003        83 e4 f8         and     esp, -8                        ; fffffff8H
+  00006        83 ec 1c         sub     esp, 28                        ; 0000001cH
+
+; 1686 :     int err=UNZ_OK;
+; 1687 :     uInt iRead = 0;
+; 1688 :     unz64_s* s;
+; 1689 :     file_in_zip64_read_info_s* pfile_in_zip_read_info;
+; 1690 :     if (file==NULL)
+
+  00009        8b 45 08         mov     eax, DWORD PTR _file$[ebp]
+  0000c        53               push    ebx
+  0000d        33 d2            xor     edx, edx
+  0000f        56               push    esi
+  00010        57               push    edi
+  00011        89 54 24 0c      mov     DWORD PTR _iRead$[esp+40], edx
+  00015        3b c2            cmp     eax, edx
+  00017        75 0e            jne     SHORT $LN28@unzReadCur
+$LN47@unzReadCur:
+
+; 1691 :         return UNZ_PARAMERROR;
+
+  00019        b8 9a ff ff ff   mov     eax, -102              ; ffffff9aH
+
+; 1882 :     return err;
+; 1883 : }
+
+  0001e        5f               pop     edi
+  0001f        5e               pop     esi
+  00020        5b               pop     ebx
+  00021        8b e5            mov     esp, ebp
+  00023        5d               pop     ebp
+  00024        c2 0c 00         ret     12                     ; 0000000cH
+$LN28@unzReadCur:
+
+; 1692 :     s=(unz64_s*)file;
+; 1693 :     pfile_in_zip_read_info=s->pfile_in_zip_read;
+
+  00027        8b b8 e0 00 00
+       00               mov     edi, DWORD PTR [eax+224]
+
+; 1694 : 
+; 1695 :     if (pfile_in_zip_read_info==NULL)
+
+  0002d        3b fa            cmp     edi, edx
+
+; 1696 :         return UNZ_PARAMERROR;
+
+  0002f        74 e8            je      SHORT $LN47@unzReadCur
+
+; 1697 : 
+; 1698 : 
+; 1699 :     if (pfile_in_zip_read_info->read_buffer == NULL)
+
+  00031        39 17            cmp     DWORD PTR [edi], edx
+  00033        75 0e            jne     SHORT $LN26@unzReadCur
+
+; 1700 :         return UNZ_END_OF_LIST_OF_FILE;
+
+  00035        b8 9c ff ff ff   mov     eax, -100              ; ffffff9cH
+
+; 1882 :     return err;
+; 1883 : }
+
+  0003a        5f               pop     edi
+  0003b        5e               pop     esi
+  0003c        5b               pop     ebx
+  0003d        8b e5            mov     esp, ebp
+  0003f        5d               pop     ebp
+  00040        c2 0c 00         ret     12                     ; 0000000cH
+$LN26@unzReadCur:
+
+; 1701 :     if (len==0)
+
+  00043        8b 5d 10         mov     ebx, DWORD PTR _len$[ebp]
+  00046        3b da            cmp     ebx, edx
+  00048        75 0b            jne     SHORT $LN25@unzReadCur
+$LN33@unzReadCur:
+
+; 1702 :         return 0;
+
+  0004a        33 c0            xor     eax, eax
+
+; 1882 :     return err;
+; 1883 : }
+
+  0004c        5f               pop     edi
+  0004d        5e               pop     esi
+  0004e        5b               pop     ebx
+  0004f        8b e5            mov     esp, ebp
+  00051        5d               pop     ebp
+  00052        c2 0c 00         ret     12                     ; 0000000cH
+$LN25@unzReadCur:
+
+; 1703 : 
+; 1704 :     pfile_in_zip_read_info->stream.next_out = (Bytef*)buf;
+
+  00055        8b 45 0c         mov     eax, DWORD PTR _buf$[ebp]
+  00058        89 47 10         mov     DWORD PTR [edi+16], eax
+
+; 1705 : 
+; 1706 :     pfile_in_zip_read_info->stream.avail_out = (uInt)len;
+
+  0005b        89 5f 14         mov     DWORD PTR [edi+20], ebx
+
+; 1707 : 
+; 1708 :     if ((len>pfile_in_zip_read_info->rest_read_uncompressed) &&
+; 1709 :         (!(pfile_in_zip_read_info->raw)))
+
+  0005e        3b 97 84 00 00
+       00               cmp     edx, DWORD PTR [edi+132]
+  00064        72 1b            jb      SHORT $LN24@unzReadCur
+  00066        77 08            ja      SHORT $LN42@unzReadCur
+  00068        3b 9f 80 00 00
+       00               cmp     ebx, DWORD PTR [edi+128]
+  0006e        76 11            jbe     SHORT $LN24@unzReadCur
+$LN42@unzReadCur:
+  00070        39 97 c8 00 00
+       00               cmp     DWORD PTR [edi+200], edx
+  00076        75 09            jne     SHORT $LN24@unzReadCur
+
+; 1710 :         pfile_in_zip_read_info->stream.avail_out =
+; 1711 :             (uInt)pfile_in_zip_read_info->rest_read_uncompressed;
+
+  00078        8b 8f 80 00 00
+       00               mov     ecx, DWORD PTR [edi+128]
+  0007e        89 4f 14         mov     DWORD PTR [edi+20], ecx
+$LN24@unzReadCur:
+
+; 1712 : 
+; 1713 :     if ((len>pfile_in_zip_read_info->rest_read_compressed+
+; 1714 :            pfile_in_zip_read_info->stream.avail_in) &&
+; 1715 :          (pfile_in_zip_read_info->raw))
+
+  00081        8b 77 08         mov     esi, DWORD PTR [edi+8]
+  00084        33 c0            xor     eax, eax
+  00086        8b ce            mov     ecx, esi
+  00088        03 4f 78         add     ecx, DWORD PTR [edi+120]
+  0008b        13 47 7c         adc     eax, DWORD PTR [edi+124]
+  0008e        3b d0            cmp     edx, eax
+  00090        72 16            jb      SHORT $LN31@unzReadCur
+  00092        77 04            ja      SHORT $LN43@unzReadCur
+  00094        3b d9            cmp     ebx, ecx
+  00096        76 10            jbe     SHORT $LN31@unzReadCur
+$LN43@unzReadCur:
+  00098        39 97 c8 00 00
+       00               cmp     DWORD PTR [edi+200], edx
+  0009e        74 08            je      SHORT $LN31@unzReadCur
+
+; 1716 :         pfile_in_zip_read_info->stream.avail_out =
+; 1717 :             (uInt)pfile_in_zip_read_info->rest_read_compressed+
+; 1718 :             pfile_in_zip_read_info->stream.avail_in;
+
+  000a0        8b 57 78         mov     edx, DWORD PTR [edi+120]
+  000a3        03 d6            add     edx, esi
+  000a5        89 57 14         mov     DWORD PTR [edi+20], edx
+$LN31@unzReadCur:
+
+; 1719 : 
+; 1720 :     while (pfile_in_zip_read_info->stream.avail_out>0)
+
+  000a8        83 7f 14 00      cmp     DWORD PTR [edi+20], 0
+  000ac        0f 86 c6 01 00
+       00               jbe     $LN40@unzReadCur
+$LL22@unzReadCur:
+
+; 1721 :     {
+; 1722 :         if ((pfile_in_zip_read_info->stream.avail_in==0) &&
+; 1723 :             (pfile_in_zip_read_info->rest_read_compressed>0))
+
+  000b2        83 7f 08 00      cmp     DWORD PTR [edi+8], 0
+  000b6        0f 85 99 00 00
+       00               jne     $LN20@unzReadCur
+  000bc        8b 47 7c         mov     eax, DWORD PTR [edi+124]
+  000bf        8b 4f 78         mov     ecx, DWORD PTR [edi+120]
+  000c2        85 c0            test    eax, eax
+  000c4        75 08            jne     SHORT $LN44@unzReadCur
+  000c6        85 c9            test    ecx, ecx
+  000c8        0f 84 87 00 00
+       00               je      $LN20@unzReadCur
+$LN44@unzReadCur:
+
+; 1724 :         {
+; 1725 :             uInt uReadThis = UNZ_BUFSIZE;
+
+  000ce        bb 00 40 00 00   mov     ebx, 16384             ; 00004000H
+
+; 1726 :             if (pfile_in_zip_read_info->rest_read_compressed<uReadThis)
+
+  000d3        85 c0            test    eax, eax
+  000d5        77 11            ja      SHORT $LN41@unzReadCur
+  000d7        72 04            jb      SHORT $LN45@unzReadCur
+  000d9        3b cb            cmp     ecx, ebx
+  000db        73 0b            jae     SHORT $LN41@unzReadCur
+$LN45@unzReadCur:
+
+; 1727 :                 uReadThis = (uInt)pfile_in_zip_read_info->rest_read_compressed;
+
+  000dd        8b 5f 78         mov     ebx, DWORD PTR [edi+120]
+
+; 1728 :             if (uReadThis == 0)
+
+  000e0        85 db            test    ebx, ebx
+  000e2        0f 84 62 ff ff
+       ff               je      $LN33@unzReadCur
+$LN41@unzReadCur:
+
+; 1729 :                 return UNZ_EOF;
+; 1730 :             if (ZSEEK64(pfile_in_zip_read_info->z_filefunc,
+; 1731 :                       pfile_in_zip_read_info->filestream,
+; 1732 :                       pfile_in_zip_read_info->pos_in_zipfile +
+; 1733 :                          pfile_in_zip_read_info->byte_before_the_zipfile,
+; 1734 :                          ZLIB_FILEFUNC_SEEK_SET)!=0)
+
+  000e8        8b 87 c0 00 00
+       00               mov     eax, DWORD PTR [edi+192]
+  000ee        03 47 40         add     eax, DWORD PTR [edi+64]
+  000f1        8b 8f c4 00 00
+       00               mov     ecx, DWORD PTR [edi+196]
+  000f7        13 4f 44         adc     ecx, DWORD PTR [edi+68]
+  000fa        8b b7 b4 00 00
+       00               mov     esi, DWORD PTR [edi+180]
+  00100        51               push    ecx
+  00101        50               push    eax
+  00102        8d 87 88 00 00
+       00               lea     eax, DWORD PTR [edi+136]
+  00108        33 d2            xor     edx, edx
+  0010a        e8 00 00 00 00   call    _call_zseek64
+  0010f        83 c4 08         add     esp, 8
+  00112        85 c0            test    eax, eax
+  00114        0f 85 6b 01 00
+       00               jne     $LN34@unzReadCur
+
+; 1735 :                 return UNZ_ERRNO;
+; 1736 :             if (ZREAD64(pfile_in_zip_read_info->z_filefunc,
+; 1737 :                       pfile_in_zip_read_info->filestream,
+; 1738 :                       pfile_in_zip_read_info->read_buffer,
+; 1739 :                       uReadThis)!=uReadThis)
+
+  0011a        8b 17            mov     edx, DWORD PTR [edi]
+  0011c        8b 87 b4 00 00
+       00               mov     eax, DWORD PTR [edi+180]
+  00122        8b 8f a4 00 00
+       00               mov     ecx, DWORD PTR [edi+164]
+  00128        53               push    ebx
+  00129        52               push    edx
+  0012a        8b 97 8c 00 00
+       00               mov     edx, DWORD PTR [edi+140]
+  00130        50               push    eax
+  00131        51               push    ecx
+  00132        ff d2            call    edx
+  00134        83 c4 10         add     esp, 16                        ; 00000010H
+  00137        3b c3            cmp     eax, ebx
+  00139        0f 85 46 01 00
+       00               jne     $LN34@unzReadCur
+
+; 1740 :                 return UNZ_ERRNO;
+; 1741 : 
+; 1742 : 
+; 1743 : #            ifndef NOUNCRYPT
+; 1744 :             if(s->encrypted)
+; 1745 :             {
+; 1746 :                 uInt i;
+; 1747 :                 for(i=0;i<uReadThis;i++)
+; 1748 :                   pfile_in_zip_read_info->read_buffer[i] =
+; 1749 :                       zdecode(s->keys,s->pcrc_32_tab,
+; 1750 :                               pfile_in_zip_read_info->read_buffer[i]);
+; 1751 :             }
+; 1752 : #            endif
+; 1753 : 
+; 1754 : 
+; 1755 :             pfile_in_zip_read_info->pos_in_zipfile += uReadThis;
+
+  0013f        33 c0            xor     eax, eax
+  00141        01 5f 40         add     DWORD PTR [edi+64], ebx
+
+; 1756 : 
+; 1757 :             pfile_in_zip_read_info->rest_read_compressed-=uReadThis;
+; 1758 : 
+; 1759 :             pfile_in_zip_read_info->stream.next_in =
+; 1760 :                 (Bytef*)pfile_in_zip_read_info->read_buffer;
+; 1761 :             pfile_in_zip_read_info->stream.avail_in = (uInt)uReadThis;
+
+  00144        89 5f 08         mov     DWORD PTR [edi+8], ebx
+  00147        11 47 44         adc     DWORD PTR [edi+68], eax
+  0014a        29 5f 78         sub     DWORD PTR [edi+120], ebx
+  0014d        19 47 7c         sbb     DWORD PTR [edi+124], eax
+  00150        8b 07            mov     eax, DWORD PTR [edi]
+  00152        89 47 04         mov     DWORD PTR [edi+4], eax
+$LN20@unzReadCur:
+
+; 1762 :         }
+; 1763 : 
+; 1764 :         if ((pfile_in_zip_read_info->compression_method==0) || (pfile_in_zip_read_info->raw))
+
+  00155        8b 87 b8 00 00
+       00               mov     eax, DWORD PTR [edi+184]
+  0015b        85 c0            test    eax, eax
+  0015d        0f 84 9f 00 00
+       00               je      $LN14@unzReadCur
+  00163        83 bf c8 00 00
+       00 00            cmp     DWORD PTR [edi+200], 0
+  0016a        0f 85 92 00 00
+       00               jne     $LN14@unzReadCur
+
+; 1794 :         }
+; 1795 :         else if (pfile_in_zip_read_info->compression_method==Z_BZIP2ED)
+
+  00170        83 f8 0c         cmp     eax, 12                        ; 0000000cH
+  00173        0f 84 f5 00 00
+       00               je      $LN2@unzReadCur
+
+; 1796 :         {
+; 1797 : #ifdef HAVE_BZIP2
+; 1798 :             uLong uTotalOutBefore,uTotalOutAfter;
+; 1799 :             const Bytef *bufBefore;
+; 1800 :             uLong uOutThis;
+; 1801 : 
+; 1802 :             pfile_in_zip_read_info->bstream.next_in        = (char*)pfile_in_zip_read_info->stream.next_in;
+; 1803 :             pfile_in_zip_read_info->bstream.avail_in       = pfile_in_zip_read_info->stream.avail_in;
+; 1804 :             pfile_in_zip_read_info->bstream.total_in_lo32  = pfile_in_zip_read_info->stream.total_in;
+; 1805 :             pfile_in_zip_read_info->bstream.total_in_hi32  = 0;
+; 1806 :             pfile_in_zip_read_info->bstream.next_out       = (char*)pfile_in_zip_read_info->stream.next_out;
+; 1807 :             pfile_in_zip_read_info->bstream.avail_out      = pfile_in_zip_read_info->stream.avail_out;
+; 1808 :             pfile_in_zip_read_info->bstream.total_out_lo32 = pfile_in_zip_read_info->stream.total_out;
+; 1809 :             pfile_in_zip_read_info->bstream.total_out_hi32 = 0;
+; 1810 : 
+; 1811 :             uTotalOutBefore = pfile_in_zip_read_info->bstream.total_out_lo32;
+; 1812 :             bufBefore = (const Bytef *)pfile_in_zip_read_info->bstream.next_out;
+; 1813 : 
+; 1814 :             err=BZ2_bzDecompress(&pfile_in_zip_read_info->bstream);
+; 1815 : 
+; 1816 :             uTotalOutAfter = pfile_in_zip_read_info->bstream.total_out_lo32;
+; 1817 :             uOutThis = uTotalOutAfter-uTotalOutBefore;
+; 1818 : 
+; 1819 :             pfile_in_zip_read_info->total_out_64 = pfile_in_zip_read_info->total_out_64 + uOutThis;
+; 1820 : 
+; 1821 :             pfile_in_zip_read_info->crc32 = crc32(pfile_in_zip_read_info->crc32,bufBefore, (uInt)(uOutThis));
+; 1822 :             pfile_in_zip_read_info->rest_read_uncompressed -= uOutThis;
+; 1823 :             iRead += (uInt)(uTotalOutAfter - uTotalOutBefore);
+; 1824 : 
+; 1825 :             pfile_in_zip_read_info->stream.next_in   = (Bytef*)pfile_in_zip_read_info->bstream.next_in;
+; 1826 :             pfile_in_zip_read_info->stream.avail_in  = pfile_in_zip_read_info->bstream.avail_in;
+; 1827 :             pfile_in_zip_read_info->stream.total_in  = pfile_in_zip_read_info->bstream.total_in_lo32;
+; 1828 :             pfile_in_zip_read_info->stream.next_out  = (Bytef*)pfile_in_zip_read_info->bstream.next_out;
+; 1829 :             pfile_in_zip_read_info->stream.avail_out = pfile_in_zip_read_info->bstream.avail_out;
+; 1830 :             pfile_in_zip_read_info->stream.total_out = pfile_in_zip_read_info->bstream.total_out_lo32;
+; 1831 : 
+; 1832 :             if (err==BZ_STREAM_END)
+; 1833 :               return (iRead==0) ? UNZ_EOF : iRead;
+; 1834 :             if (err!=BZ_OK)
+; 1835 :               break;
+; 1836 : #endif
+; 1837 :         } // end Z_BZIP2ED
+; 1838 :         else
+; 1839 :         {
+; 1840 :             ZPOS64_T uTotalOutBefore,uTotalOutAfter;
+; 1841 :             const Bytef *bufBefore;
+; 1842 :             ZPOS64_T uOutThis;
+; 1843 :             int flush=Z_SYNC_FLUSH;
+; 1844 : 
+; 1845 :             uTotalOutBefore = pfile_in_zip_read_info->stream.total_out;
+
+  00179        8b 4f 18         mov     ecx, DWORD PTR [edi+24]
+
+; 1846 :             bufBefore = pfile_in_zip_read_info->stream.next_out;
+
+  0017c        8b 57 10         mov     edx, DWORD PTR [edi+16]
+
+; 1847 : 
+; 1848 :             /*
+; 1849 :             if ((pfile_in_zip_read_info->rest_read_uncompressed ==
+; 1850 :                      pfile_in_zip_read_info->stream.avail_out) &&
+; 1851 :                 (pfile_in_zip_read_info->rest_read_compressed == 0))
+; 1852 :                 flush = Z_FINISH;
+; 1853 :             */
+; 1854 :             err=inflate(&pfile_in_zip_read_info->stream,flush);
+
+  0017f        6a 02            push    2
+  00181        8d 47 04         lea     eax, DWORD PTR [edi+4]
+  00184        50               push    eax
+  00185        89 4c 24 20      mov     DWORD PTR _uTotalOutBefore$83046[esp+48], ecx
+  00189        89 54 24 1c      mov     DWORD PTR _bufBefore$83048[esp+48], edx
+  0018d        e8 00 00 00 00   call    _inflate@8
+  00192        89 44 24 10      mov     DWORD PTR _err$[esp+40], eax
+
+; 1855 : 
+; 1856 :             if ((err>=0) && (pfile_in_zip_read_info->stream.msg!=NULL))
+
+  00196        85 c0            test    eax, eax
+  00198        78 0e            js      SHORT $LN4@unzReadCur
+  0019a        83 7f 1c 00      cmp     DWORD PTR [edi+28], 0
+  0019e        74 08            je      SHORT $LN4@unzReadCur
+
+; 1857 :               err = Z_DATA_ERROR;
+
+  001a0        c7 44 24 10 fd
+       ff ff ff         mov     DWORD PTR _err$[esp+40], -3 ; fffffffdH
+$LN4@unzReadCur:
+
+; 1858 : 
+; 1859 :             uTotalOutAfter = pfile_in_zip_read_info->stream.total_out;
+
+  001a8        8b 5f 18         mov     ebx, DWORD PTR [edi+24]
+
+; 1860 :             uOutThis = uTotalOutAfter-uTotalOutBefore;
+; 1861 : 
+; 1862 :             pfile_in_zip_read_info->total_out_64 = pfile_in_zip_read_info->total_out_64 + uOutThis;
+; 1863 : 
+; 1864 :             pfile_in_zip_read_info->crc32 =
+; 1865 :                 crc32(pfile_in_zip_read_info->crc32,bufBefore,
+; 1866 :                         (uInt)(uOutThis));
+
+  001ab        8b 57 70         mov     edx, DWORD PTR [edi+112]
+  001ae        33 c0            xor     eax, eax
+  001b0        8b f3            mov     esi, ebx
+  001b2        2b 74 24 18      sub     esi, DWORD PTR _uTotalOutBefore$83046[esp+40]
+  001b6        8b c8            mov     ecx, eax
+  001b8        1b c1            sbb     eax, ecx
+  001ba        8b 4c 24 14      mov     ecx, DWORD PTR _bufBefore$83048[esp+40]
+  001be        01 77 68         add     DWORD PTR [edi+104], esi
+  001c1        56               push    esi
+  001c2        51               push    ecx
+  001c3        11 47 6c         adc     DWORD PTR [edi+108], eax
+  001c6        52               push    edx
+  001c7        89 44 24 30      mov     DWORD PTR _uOutThis$83049[esp+56], eax
+  001cb        e8 00 00 00 00   call    _crc32@12
+
+; 1867 : 
+; 1868 :             pfile_in_zip_read_info->rest_read_uncompressed -=
+; 1869 :                 uOutThis;
+
+  001d0        29 b7 80 00 00
+       00               sub     DWORD PTR [edi+128], esi
+  001d6        89 47 70         mov     DWORD PTR [edi+112], eax
+  001d9        8b 44 24 24      mov     eax, DWORD PTR _uOutThis$83049[esp+44]
+  001dd        19 87 84 00 00
+       00               sbb     DWORD PTR [edi+132], eax
+
+; 1870 : 
+; 1871 :             iRead += (uInt)(uTotalOutAfter - uTotalOutBefore);
+
+  001e3        2b 5c 24 18      sub     ebx, DWORD PTR _uTotalOutBefore$83046[esp+40]
+
+; 1872 : 
+; 1873 :             if (err==Z_STREAM_END)
+
+  001e7        8b 44 24 10      mov     eax, DWORD PTR _err$[esp+40]
+  001eb        01 5c 24 0c      add     DWORD PTR _iRead$[esp+40], ebx
+  001ef        83 f8 01         cmp     eax, 1
+  001f2        0f 84 80 00 00
+       00               je      $LN40@unzReadCur
+
+; 1874 :                 return (iRead==0) ? UNZ_EOF : iRead;
+; 1875 :             if (err!=Z_OK)
+
+  001f8        85 c0            test    eax, eax
+  001fa        0f 85 7c 00 00
+       00               jne     $LN29@unzReadCur
+  00200        eb 6c            jmp     SHORT $LN2@unzReadCur
+$LN14@unzReadCur:
+
+; 1765 :         {
+; 1766 :             uInt uDoCopy,i ;
+; 1767 : 
+; 1768 :             if ((pfile_in_zip_read_info->stream.avail_in == 0) &&
+; 1769 :                 (pfile_in_zip_read_info->rest_read_compressed == 0))
+
+  00202        8b 47 08         mov     eax, DWORD PTR [edi+8]
+  00205        85 c0            test    eax, eax
+  00207        75 08            jne     SHORT $LN13@unzReadCur
+  00209        8b 4f 78         mov     ecx, DWORD PTR [edi+120]
+  0020c        0b 4f 7c         or      ecx, DWORD PTR [edi+124]
+  0020f        74 67            je      SHORT $LN40@unzReadCur
+$LN13@unzReadCur:
+
+; 1770 :                 return (iRead==0) ? UNZ_EOF : iRead;
+; 1771 : 
+; 1772 :             if (pfile_in_zip_read_info->stream.avail_out <
+; 1773 :                             pfile_in_zip_read_info->stream.avail_in)
+
+  00211        8b 77 14         mov     esi, DWORD PTR [edi+20]
+  00214        3b f0            cmp     esi, eax
+
+; 1774 :                 uDoCopy = pfile_in_zip_read_info->stream.avail_out ;
+; 1775 :             else
+
+  00216        72 02            jb      SHORT $LN11@unzReadCur
+
+; 1776 :                 uDoCopy = pfile_in_zip_read_info->stream.avail_in ;
+
+  00218        8b f0            mov     esi, eax
+$LN11@unzReadCur:
+
+; 1777 : 
+; 1778 :             for (i=0;i<uDoCopy;i++)
+
+  0021a        33 c0            xor     eax, eax
+  0021c        85 f6            test    esi, esi
+  0021e        74 11            je      SHORT $LN8@unzReadCur
+$LL10@unzReadCur:
+
+; 1779 :                 *(pfile_in_zip_read_info->stream.next_out+i) =
+; 1780 :                         *(pfile_in_zip_read_info->stream.next_in+i);
+
+  00220        8b 57 04         mov     edx, DWORD PTR [edi+4]
+  00223        8a 14 10         mov     dl, BYTE PTR [eax+edx]
+  00226        8b 4f 10         mov     ecx, DWORD PTR [edi+16]
+  00229        88 14 08         mov     BYTE PTR [eax+ecx], dl
+  0022c        40               inc     eax
+  0022d        3b c6            cmp     eax, esi
+  0022f        72 ef            jb      SHORT $LL10@unzReadCur
+$LN8@unzReadCur:
+
+; 1781 : 
+; 1782 :             pfile_in_zip_read_info->total_out_64 = pfile_in_zip_read_info->total_out_64 + uDoCopy;
+; 1783 : 
+; 1784 :             pfile_in_zip_read_info->crc32 = crc32(pfile_in_zip_read_info->crc32,
+; 1785 :                                 pfile_in_zip_read_info->stream.next_out,
+; 1786 :                                 uDoCopy);
+
+  00231        8b 47 10         mov     eax, DWORD PTR [edi+16]
+  00234        56               push    esi
+  00235        33 db            xor     ebx, ebx
+  00237        01 77 68         add     DWORD PTR [edi+104], esi
+  0023a        50               push    eax
+  0023b        8b 47 70         mov     eax, DWORD PTR [edi+112]
+  0023e        11 5f 6c         adc     DWORD PTR [edi+108], ebx
+  00241        50               push    eax
+  00242        e8 00 00 00 00   call    _crc32@12
+
+; 1787 :             pfile_in_zip_read_info->rest_read_uncompressed-=uDoCopy;
+
+  00247        29 b7 80 00 00
+       00               sub     DWORD PTR [edi+128], esi
+  0024d        89 47 70         mov     DWORD PTR [edi+112], eax
+
+; 1788 :             pfile_in_zip_read_info->stream.avail_in -= uDoCopy;
+; 1789 :             pfile_in_zip_read_info->stream.avail_out -= uDoCopy;
+; 1790 :             pfile_in_zip_read_info->stream.next_out += uDoCopy;
+
+  00250        8b 47 10         mov     eax, DWORD PTR [edi+16]
+  00253        19 9f 84 00 00
+       00               sbb     DWORD PTR [edi+132], ebx
+  00259        29 77 08         sub     DWORD PTR [edi+8], esi
+  0025c        29 77 14         sub     DWORD PTR [edi+20], esi
+
+; 1791 :             pfile_in_zip_read_info->stream.next_in += uDoCopy;
+
+  0025f        01 77 04         add     DWORD PTR [edi+4], esi
+
+; 1792 :             pfile_in_zip_read_info->stream.total_out += uDoCopy;
+
+  00262        01 77 18         add     DWORD PTR [edi+24], esi
+  00265        03 c6            add     eax, esi
+
+; 1793 :             iRead += uDoCopy;
+
+  00267        01 74 24 0c      add     DWORD PTR _iRead$[esp+40], esi
+  0026b        89 47 10         mov     DWORD PTR [edi+16], eax
+$LN2@unzReadCur:
+
+; 1719 : 
+; 1720 :     while (pfile_in_zip_read_info->stream.avail_out>0)
+
+  0026e        83 7f 14 00      cmp     DWORD PTR [edi+20], 0
+  00272        0f 87 3a fe ff
+       ff               ja      $LL22@unzReadCur
+$LN40@unzReadCur:
+
+; 1876 :                 break;
+; 1877 :         }
+; 1878 :     }
+; 1879 : 
+; 1880 :     if (err==Z_OK)
+; 1881 :         return iRead;
+
+  00278        8b 44 24 0c      mov     eax, DWORD PTR _iRead$[esp+40]
+$LN29@unzReadCur:
+
+; 1882 :     return err;
+; 1883 : }
+
+  0027c        5f               pop     edi
+  0027d        5e               pop     esi
+  0027e        5b               pop     ebx
+  0027f        8b e5            mov     esp, ebp
+  00281        5d               pop     ebp
+  00282        c2 0c 00         ret     12                     ; 0000000cH
+$LN34@unzReadCur:
+  00285        5f               pop     edi
+  00286        5e               pop     esi
+  00287        83 c8 ff         or      eax, -1
+  0028a        5b               pop     ebx
+  0028b        8b e5            mov     esp, ebp
+  0028d        5d               pop     ebp
+  0028e        c2 0c 00         ret     12                     ; 0000000cH
+_unzReadCurrentFile@12 ENDP
+; Function compile flags: /Ogtp
+_TEXT  ENDS
+;      COMDAT _unz64local_CheckCurrentFileCoherencyHeader
+_TEXT  SEGMENT
+_size_extra_field$ = -8                                        ; size = 4
+_size_filename$ = -8                                   ; size = 4
+_uFlags$ = -8                                          ; size = 4
+_uMagic$ = -8                                          ; size = 4
+_uData$ = -4                                           ; size = 4
+_piSizeVar$ = 8                                                ; size = 4
+_poffset_local_extrafield$ = 12                                ; size = 4
+_psize_local_extrafield$ = 16                          ; size = 4
+_unz64local_CheckCurrentFileCoherencyHeader PROC       ; COMDAT
+; _s$ = edi
+
+; 1388 : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+
+; 1389 :     uLong uMagic,uData,uFlags;
+; 1390 :     uLong size_filename;
+; 1391 :     uLong size_extra_field;
+; 1392 :     int err=UNZ_OK;
+; 1393 : 
+; 1394 :     *piSizeVar = 0;
+
+  00003        8b 45 08         mov     eax, DWORD PTR _piSizeVar$[ebp]
+
+; 1395 :     *poffset_local_extrafield = 0;
+; 1396 :     *psize_local_extrafield = 0;
+; 1397 : 
+; 1398 :     if (ZSEEK64(s->z_filefunc, s->filestream,s->cur_file_info_internal.offset_curfile +
+; 1399 :                                 s->byte_before_the_zipfile,ZLIB_FILEFUNC_SEEK_SET)!=0)
+
+  00006        8b 57 48         mov     edx, DWORD PTR [edi+72]
+  00009        8b 4d 10         mov     ecx, DWORD PTR _psize_local_extrafield$[ebp]
+  0000c        83 ec 0c         sub     esp, 12                        ; 0000000cH
+  0000f        53               push    ebx
+  00010        33 db            xor     ebx, ebx
+  00012        03 97 d8 00 00
+       00               add     edx, DWORD PTR [edi+216]
+  00018        89 18            mov     DWORD PTR [eax], ebx
+  0001a        8b 45 0c         mov     eax, DWORD PTR _poffset_local_extrafield$[ebp]
+  0001d        89 18            mov     DWORD PTR [eax], ebx
+  0001f        89 58 04         mov     DWORD PTR [eax+4], ebx
+  00022        8b 47 4c         mov     eax, DWORD PTR [edi+76]
+  00025        13 87 dc 00 00
+       00               adc     eax, DWORD PTR [edi+220]
+  0002b        56               push    esi
+  0002c        8b 77 30         mov     esi, DWORD PTR [edi+48]
+  0002f        50               push    eax
+  00030        52               push    edx
+  00031        33 d2            xor     edx, edx
+  00033        8b c7            mov     eax, edi
+  00035        89 19            mov     DWORD PTR [ecx], ebx
+  00037        e8 00 00 00 00   call    _call_zseek64
+  0003c        83 c4 08         add     esp, 8
+  0003f        85 c0            test    eax, eax
+  00041        74 09            je      SHORT $LN28@unz64local@6
+
+; 1400 :         return UNZ_ERRNO;
+
+  00043        83 c8 ff         or      eax, -1
+
+; 1464 : 
+; 1465 :     return err;
+; 1466 : }
+
+  00046        5e               pop     esi
+  00047        5b               pop     ebx
+  00048        8b e5            mov     esp, ebp
+  0004a        5d               pop     ebp
+  0004b        c3               ret     0
+$LN28@unz64local@6:
+
+; 1401 : 
+; 1402 : 
+; 1403 :     if (err==UNZ_OK)
+; 1404 :     {
+; 1405 :         if (unz64local_getLong(&s->z_filefunc, s->filestream,&uMagic) != UNZ_OK)
+
+  0004c        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  0004f        8d 4d f8         lea     ecx, DWORD PTR _uMagic$[ebp]
+  00052        51               push    ecx
+  00053        8b cf            mov     ecx, edi
+  00055        e8 00 00 00 00   call    _unz64local_getLong
+  0005a        83 c4 04         add     esp, 4
+  0005d        85 c0            test    eax, eax
+  0005f        74 05            je      SHORT $LN23@unz64local@6
+
+; 1406 :             err=UNZ_ERRNO;
+
+  00061        83 cb ff         or      ebx, -1
+  00064        eb 0e            jmp     SHORT $LN21@unz64local@6
+$LN23@unz64local@6:
+
+; 1407 :         else if (uMagic!=0x04034b50)
+
+  00066        81 7d f8 50 4b
+       03 04            cmp     DWORD PTR _uMagic$[ebp], 67324752 ; 04034b50H
+  0006d        74 05            je      SHORT $LN21@unz64local@6
+
+; 1408 :             err=UNZ_BADZIPFILE;
+
+  0006f        bb 99 ff ff ff   mov     ebx, -103              ; ffffff99H
+$LN21@unz64local@6:
+
+; 1409 :     }
+; 1410 : 
+; 1411 :     if (unz64local_getShort(&s->z_filefunc, s->filestream,&uData) != UNZ_OK)
+
+  00074        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  00077        8d 55 fc         lea     edx, DWORD PTR _uData$[ebp]
+  0007a        52               push    edx
+  0007b        8b cf            mov     ecx, edi
+  0007d        e8 00 00 00 00   call    _unz64local_getShort
+  00082        83 c4 04         add     esp, 4
+  00085        85 c0            test    eax, eax
+  00087        74 03            je      SHORT $LN20@unz64local@6
+
+; 1412 :         err=UNZ_ERRNO;
+
+  00089        83 cb ff         or      ebx, -1
+$LN20@unz64local@6:
+
+; 1413 : /*
+; 1414 :     else if ((err==UNZ_OK) && (uData!=s->cur_file_info.wVersion))
+; 1415 :         err=UNZ_BADZIPFILE;
+; 1416 : */
+; 1417 :     if (unz64local_getShort(&s->z_filefunc, s->filestream,&uFlags) != UNZ_OK)
+
+  0008c        8d 45 f8         lea     eax, DWORD PTR _uFlags$[ebp]
+  0008f        50               push    eax
+  00090        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  00093        8b cf            mov     ecx, edi
+  00095        e8 00 00 00 00   call    _unz64local_getShort
+  0009a        83 c4 04         add     esp, 4
+  0009d        85 c0            test    eax, eax
+  0009f        74 03            je      SHORT $LN19@unz64local@6
+
+; 1418 :         err=UNZ_ERRNO;
+
+  000a1        83 cb ff         or      ebx, -1
+$LN19@unz64local@6:
+
+; 1419 : 
+; 1420 :     if (unz64local_getShort(&s->z_filefunc, s->filestream,&uData) != UNZ_OK)
+
+  000a4        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  000a7        8d 4d fc         lea     ecx, DWORD PTR _uData$[ebp]
+  000aa        51               push    ecx
+  000ab        8b cf            mov     ecx, edi
+  000ad        e8 00 00 00 00   call    _unz64local_getShort
+  000b2        83 c4 04         add     esp, 4
+  000b5        85 c0            test    eax, eax
+  000b7        74 05            je      SHORT $LN18@unz64local@6
+
+; 1421 :         err=UNZ_ERRNO;
+
+  000b9        83 cb ff         or      ebx, -1
+  000bc        eb 22            jmp     SHORT $LN15@unz64local@6
+$LN18@unz64local@6:
+
+; 1422 :     else if ((err==UNZ_OK) && (uData!=s->cur_file_info.compression_method))
+
+  000be        85 db            test    ebx, ebx
+  000c0        75 1e            jne     SHORT $LN15@unz64local@6
+  000c2        8b 87 8c 00 00
+       00               mov     eax, DWORD PTR [edi+140]
+  000c8        39 45 fc         cmp     DWORD PTR _uData$[ebp], eax
+
+; 1423 :         err=UNZ_BADZIPFILE;
+; 1424 : 
+; 1425 :     if ((err==UNZ_OK) && (s->cur_file_info.compression_method!=0) &&
+; 1426 : /* #ifdef HAVE_BZIP2 */
+; 1427 :                          (s->cur_file_info.compression_method!=Z_BZIP2ED) &&
+; 1428 : /* #endif */
+; 1429 :                          (s->cur_file_info.compression_method!=Z_DEFLATED))
+
+  000cb        75 0e            jne     SHORT $LN40@unz64local@6
+  000cd        85 c0            test    eax, eax
+  000cf        74 0f            je      SHORT $LN15@unz64local@6
+  000d1        83 f8 0c         cmp     eax, 12                        ; 0000000cH
+  000d4        74 0a            je      SHORT $LN15@unz64local@6
+  000d6        83 f8 08         cmp     eax, 8
+  000d9        74 05            je      SHORT $LN15@unz64local@6
+$LN40@unz64local@6:
+
+; 1430 :         err=UNZ_BADZIPFILE;
+
+  000db        bb 99 ff ff ff   mov     ebx, -103              ; ffffff99H
+$LN15@unz64local@6:
+
+; 1431 : 
+; 1432 :     if (unz64local_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* date/time */
+
+  000e0        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  000e3        8d 55 fc         lea     edx, DWORD PTR _uData$[ebp]
+  000e6        52               push    edx
+  000e7        8b cf            mov     ecx, edi
+  000e9        e8 00 00 00 00   call    _unz64local_getLong
+  000ee        83 c4 04         add     esp, 4
+  000f1        85 c0            test    eax, eax
+  000f3        74 03            je      SHORT $LN14@unz64local@6
+
+; 1433 :         err=UNZ_ERRNO;
+
+  000f5        83 cb ff         or      ebx, -1
+$LN14@unz64local@6:
+
+; 1434 : 
+; 1435 :     if (unz64local_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* crc */
+
+  000f8        8d 45 fc         lea     eax, DWORD PTR _uData$[ebp]
+  000fb        50               push    eax
+  000fc        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  000ff        8b cf            mov     ecx, edi
+  00101        e8 00 00 00 00   call    _unz64local_getLong
+  00106        83 c4 04         add     esp, 4
+  00109        85 c0            test    eax, eax
+  0010b        74 05            je      SHORT $LN13@unz64local@6
+
+; 1436 :         err=UNZ_ERRNO;
+
+  0010d        83 cb ff         or      ebx, -1
+  00110        eb 1a            jmp     SHORT $LN11@unz64local@6
+$LN13@unz64local@6:
+
+; 1437 :     else if ((err==UNZ_OK) && (uData!=s->cur_file_info.crc) && ((uFlags & 8)==0))
+
+  00112        85 db            test    ebx, ebx
+  00114        75 16            jne     SHORT $LN11@unz64local@6
+  00116        8b 4d fc         mov     ecx, DWORD PTR _uData$[ebp]
+  00119        3b 8f 94 00 00
+       00               cmp     ecx, DWORD PTR [edi+148]
+  0011f        74 0b            je      SHORT $LN11@unz64local@6
+  00121        f6 45 f8 08      test    BYTE PTR _uFlags$[ebp], 8
+  00125        75 05            jne     SHORT $LN11@unz64local@6
+
+; 1438 :         err=UNZ_BADZIPFILE;
+
+  00127        bb 99 ff ff ff   mov     ebx, -103              ; ffffff99H
+$LN11@unz64local@6:
+
+; 1439 : 
+; 1440 :     if (unz64local_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* size compr */
+
+  0012c        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  0012f        8d 55 fc         lea     edx, DWORD PTR _uData$[ebp]
+  00132        52               push    edx
+  00133        8b cf            mov     ecx, edi
+  00135        e8 00 00 00 00   call    _unz64local_getLong
+  0013a        83 c4 04         add     esp, 4
+  0013d        85 c0            test    eax, eax
+  0013f        74 05            je      SHORT $LN10@unz64local@6
+
+; 1441 :         err=UNZ_ERRNO;
+
+  00141        83 cb ff         or      ebx, -1
+  00144        eb 29            jmp     SHORT $LN8@unz64local@6
+$LN10@unz64local@6:
+
+; 1442 :     else if (uData != 0xFFFFFFFF && (err==UNZ_OK) && (uData!=s->cur_file_info.compressed_size) && ((uFlags & 8)==0))
+
+  00146        8b 4d fc         mov     ecx, DWORD PTR _uData$[ebp]
+  00149        83 f9 ff         cmp     ecx, -1
+  0014c        74 21            je      SHORT $LN8@unz64local@6
+  0014e        85 db            test    ebx, ebx
+  00150        75 1d            jne     SHORT $LN8@unz64local@6
+  00152        33 c0            xor     eax, eax
+  00154        3b 8f 98 00 00
+       00               cmp     ecx, DWORD PTR [edi+152]
+  0015a        75 08            jne     SHORT $LN30@unz64local@6
+  0015c        3b 87 9c 00 00
+       00               cmp     eax, DWORD PTR [edi+156]
+  00162        74 0b            je      SHORT $LN8@unz64local@6
+$LN30@unz64local@6:
+  00164        f6 45 f8 08      test    BYTE PTR _uFlags$[ebp], 8
+  00168        75 05            jne     SHORT $LN8@unz64local@6
+
+; 1443 :         err=UNZ_BADZIPFILE;
+
+  0016a        bb 99 ff ff ff   mov     ebx, -103              ; ffffff99H
+$LN8@unz64local@6:
+
+; 1444 : 
+; 1445 :     if (unz64local_getLong(&s->z_filefunc, s->filestream,&uData) != UNZ_OK) /* size uncompr */
+
+  0016f        8d 45 fc         lea     eax, DWORD PTR _uData$[ebp]
+  00172        50               push    eax
+  00173        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  00176        8b cf            mov     ecx, edi
+  00178        e8 00 00 00 00   call    _unz64local_getLong
+  0017d        83 c4 04         add     esp, 4
+  00180        85 c0            test    eax, eax
+  00182        74 05            je      SHORT $LN7@unz64local@6
+
+; 1446 :         err=UNZ_ERRNO;
+
+  00184        83 cb ff         or      ebx, -1
+  00187        eb 29            jmp     SHORT $LN5@unz64local@6
+$LN7@unz64local@6:
+
+; 1447 :     else if (uData != 0xFFFFFFFF && (err==UNZ_OK) && (uData!=s->cur_file_info.uncompressed_size) && ((uFlags & 8)==0))
+
+  00189        8b 4d fc         mov     ecx, DWORD PTR _uData$[ebp]
+  0018c        83 f9 ff         cmp     ecx, -1
+  0018f        74 21            je      SHORT $LN5@unz64local@6
+  00191        85 db            test    ebx, ebx
+  00193        75 1d            jne     SHORT $LN5@unz64local@6
+  00195        33 c0            xor     eax, eax
+  00197        3b 8f a0 00 00
+       00               cmp     ecx, DWORD PTR [edi+160]
+  0019d        75 08            jne     SHORT $LN31@unz64local@6
+  0019f        3b 87 a4 00 00
+       00               cmp     eax, DWORD PTR [edi+164]
+  001a5        74 0b            je      SHORT $LN5@unz64local@6
+$LN31@unz64local@6:
+  001a7        f6 45 f8 08      test    BYTE PTR _uFlags$[ebp], 8
+  001ab        75 05            jne     SHORT $LN5@unz64local@6
+
+; 1448 :         err=UNZ_BADZIPFILE;
+
+  001ad        bb 99 ff ff ff   mov     ebx, -103              ; ffffff99H
+$LN5@unz64local@6:
+
+; 1449 : 
+; 1450 :     if (unz64local_getShort(&s->z_filefunc, s->filestream,&size_filename) != UNZ_OK)
+
+  001b2        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  001b5        8d 4d f8         lea     ecx, DWORD PTR _size_filename$[ebp]
+  001b8        51               push    ecx
+  001b9        8b cf            mov     ecx, edi
+  001bb        e8 00 00 00 00   call    _unz64local_getShort
+  001c0        8b 75 f8         mov     esi, DWORD PTR _size_filename$[ebp]
+  001c3        83 c4 04         add     esp, 4
+  001c6        85 c0            test    eax, eax
+  001c8        74 05            je      SHORT $LN4@unz64local@6
+
+; 1451 :         err=UNZ_ERRNO;
+
+  001ca        83 cb ff         or      ebx, -1
+  001cd        eb 11            jmp     SHORT $LN2@unz64local@6
+$LN4@unz64local@6:
+
+; 1452 :     else if ((err==UNZ_OK) && (size_filename!=s->cur_file_info.size_filename))
+
+  001cf        85 db            test    ebx, ebx
+  001d1        75 0d            jne     SHORT $LN2@unz64local@6
+  001d3        3b b7 a8 00 00
+       00               cmp     esi, DWORD PTR [edi+168]
+  001d9        74 05            je      SHORT $LN2@unz64local@6
+
+; 1453 :         err=UNZ_BADZIPFILE;
+
+  001db        bb 99 ff ff ff   mov     ebx, -103              ; ffffff99H
+$LN2@unz64local@6:
+
+; 1454 : 
+; 1455 :     *piSizeVar += (uInt)size_filename;
+
+  001e0        8b 45 08         mov     eax, DWORD PTR _piSizeVar$[ebp]
+  001e3        01 30            add     DWORD PTR [eax], esi
+
+; 1456 : 
+; 1457 :     if (unz64local_getShort(&s->z_filefunc, s->filestream,&size_extra_field) != UNZ_OK)
+
+  001e5        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  001e8        8d 55 f8         lea     edx, DWORD PTR _size_extra_field$[ebp]
+  001eb        52               push    edx
+  001ec        8b cf            mov     ecx, edi
+  001ee        e8 00 00 00 00   call    _unz64local_getShort
+  001f3        83 c4 04         add     esp, 4
+  001f6        85 c0            test    eax, eax
+  001f8        74 03            je      SHORT $LN1@unz64local@6
+
+; 1458 :         err=UNZ_ERRNO;
+
+  001fa        83 cb ff         or      ebx, -1
+$LN1@unz64local@6:
+
+; 1459 :     *poffset_local_extrafield= s->cur_file_info_internal.offset_curfile +
+; 1460 :                                     SIZEZIPLOCALHEADER + size_filename;
+
+  001fd        8b 45 0c         mov     eax, DWORD PTR _poffset_local_extrafield$[ebp]
+
+; 1461 :     *psize_local_extrafield = (uInt)size_extra_field;
+
+  00200        8b 55 10         mov     edx, DWORD PTR _psize_local_extrafield$[ebp]
+  00203        33 c9            xor     ecx, ecx
+  00205        03 b7 d8 00 00
+       00               add     esi, DWORD PTR [edi+216]
+  0020b        13 8f dc 00 00
+       00               adc     ecx, DWORD PTR [edi+220]
+  00211        83 c6 1e         add     esi, 30                        ; 0000001eH
+  00214        83 d1 00         adc     ecx, 0
+  00217        89 30            mov     DWORD PTR [eax], esi
+  00219        89 48 04         mov     DWORD PTR [eax+4], ecx
+  0021c        8b 45 f8         mov     eax, DWORD PTR _size_extra_field$[ebp]
+
+; 1462 : 
+; 1463 :     *piSizeVar += (uInt)size_extra_field;
+
+  0021f        8b 4d 08         mov     ecx, DWORD PTR _piSizeVar$[ebp]
+  00222        01 01            add     DWORD PTR [ecx], eax
+  00224        89 02            mov     DWORD PTR [edx], eax
+
+; 1464 : 
+; 1465 :     return err;
+; 1466 : }
+
+  00226        5e               pop     esi
+  00227        8b c3            mov     eax, ebx
+  00229        5b               pop     ebx
+  0022a        8b e5            mov     esp, ebp
+  0022c        5d               pop     ebp
+  0022d        c3               ret     0
+_unz64local_CheckCurrentFileCoherencyHeader ENDP
+; Function compile flags: /Ogtp
+_TEXT  ENDS
+;      COMDAT _unz64local_GetCurrentFileInfoInternal
+_TEXT  SEGMENT
+_uSizeRead$82663 = -120                                        ; size = 4
+_uL$ = -120                                            ; size = 4
+_lSeek$ = -120                                         ; size = 4
+_dataSize$82690 = -116                                 ; size = 4
+_uSizeRead$82707 = -112                                        ; size = 4
+_acc$82682 = -112                                      ; size = 4
+_uMagic$ = -112                                                ; size = 4
+_headerId$82689 = -108                                 ; size = 4
+_uL$82694 = -104                                       ; size = 4
+_uSizeRead$82670 = -104                                        ; size = 8
+_file_info_internal$ = -96                             ; size = 8
+_file_info$ = -88                                      ; size = 88
+_pfile_info$ = 8                                       ; size = 4
+_pfile_info_internal$ = 12                             ; size = 4
+_szFileName$ = 16                                      ; size = 4
+_fileNameBufferSize$ = 20                              ; size = 4
+_extraField$ = 24                                      ; size = 4
+_extraFieldBufferSize$ = 28                            ; size = 4
+_szComment$ = 32                                       ; size = 4
+_commentBufferSize$ = 36                               ; size = 4
+_unz64local_GetCurrentFileInfoInternal PROC            ; COMDAT
+; _file$ = eax
+
+; 889  : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+  00003        83 e4 f8         and     esp, -8                        ; fffffff8H
+  00006        83 ec 7c         sub     esp, 124               ; 0000007cH
+  00009        53               push    ebx
+  0000a        56               push    esi
+  0000b        57               push    edi
+  0000c        8b f8            mov     edi, eax
+
+; 890  :     unz64_s* s;
+; 891  :     unz_file_info64 file_info;
+; 892  :     unz_file_info64_internal file_info_internal;
+; 893  :     int err=UNZ_OK;
+
+  0000e        33 db            xor     ebx, ebx
+
+; 894  :     uLong uMagic;
+; 895  :     long lSeek=0;
+; 896  :     uLong uL;
+; 897  : 
+; 898  :     if (file==NULL)
+
+  00010        85 ff            test    edi, edi
+  00012        75 0a            jne     SHORT $LN65@unz64local@7
+
+; 899  :         return UNZ_PARAMERROR;
+
+  00014        8d 47 9a         lea     eax, DWORD PTR [edi-102]
+
+; 1115 : }
+
+  00017        5f               pop     edi
+  00018        5e               pop     esi
+  00019        5b               pop     ebx
+  0001a        8b e5            mov     esp, ebp
+  0001c        5d               pop     ebp
+  0001d        c3               ret     0
+$LN65@unz64local@7:
+
+; 900  :     s=(unz64_s*)file;
+; 901  :     if (ZSEEK64(s->z_filefunc, s->filestream,
+; 902  :               s->pos_in_central_dir+s->byte_before_the_zipfile,
+; 903  :               ZLIB_FILEFUNC_SEEK_SET)!=0)
+
+  0001e        8b 47 58         mov     eax, DWORD PTR [edi+88]
+  00021        03 47 48         add     eax, DWORD PTR [edi+72]
+  00024        8b 4f 5c         mov     ecx, DWORD PTR [edi+92]
+  00027        13 4f 4c         adc     ecx, DWORD PTR [edi+76]
+  0002a        8b 77 30         mov     esi, DWORD PTR [edi+48]
+  0002d        51               push    ecx
+  0002e        50               push    eax
+  0002f        33 d2            xor     edx, edx
+  00031        8b c7            mov     eax, edi
+  00033        e8 00 00 00 00   call    _call_zseek64
+  00038        83 c4 08         add     esp, 8
+  0003b        85 c0            test    eax, eax
+  0003d        74 05            je      SHORT $LN70@unz64local@7
+
+; 904  :         err=UNZ_ERRNO;
+
+  0003f        83 cb ff         or      ebx, -1
+
+; 905  : 
+; 906  : 
+; 907  :     /* we check the magic */
+; 908  :     if (err==UNZ_OK)
+
+  00042        eb 2a            jmp     SHORT $LN60@unz64local@7
+$LN70@unz64local@7:
+
+; 909  :     {
+; 910  :         if (unz64local_getLong(&s->z_filefunc, s->filestream,&uMagic) != UNZ_OK)
+
+  00044        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  00047        8d 54 24 18      lea     edx, DWORD PTR _uMagic$[esp+136]
+  0004b        52               push    edx
+  0004c        8b cf            mov     ecx, edi
+  0004e        e8 00 00 00 00   call    _unz64local_getLong
+  00053        83 c4 04         add     esp, 4
+  00056        85 c0            test    eax, eax
+  00058        74 05            je      SHORT $LN62@unz64local@7
+
+; 911  :             err=UNZ_ERRNO;
+
+  0005a        83 cb ff         or      ebx, -1
+  0005d        eb 0f            jmp     SHORT $LN60@unz64local@7
+$LN62@unz64local@7:
+
+; 912  :         else if (uMagic!=0x02014b50)
+
+  0005f        81 7c 24 18 50
+       4b 01 02         cmp     DWORD PTR _uMagic$[esp+136], 33639248 ; 02014b50H
+  00067        74 05            je      SHORT $LN60@unz64local@7
+
+; 913  :             err=UNZ_BADZIPFILE;
+
+  00069        bb 99 ff ff ff   mov     ebx, -103              ; ffffff99H
+$LN60@unz64local@7:
+
+; 914  :     }
+; 915  : 
+; 916  :     if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.version) != UNZ_OK)
+
+  0006e        8d 44 24 30      lea     eax, DWORD PTR _file_info$[esp+136]
+  00072        50               push    eax
+  00073        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  00076        8b cf            mov     ecx, edi
+  00078        e8 00 00 00 00   call    _unz64local_getShort
+  0007d        83 c4 04         add     esp, 4
+  00080        85 c0            test    eax, eax
+  00082        74 03            je      SHORT $LN59@unz64local@7
+
+; 917  :         err=UNZ_ERRNO;
+
+  00084        83 cb ff         or      ebx, -1
+$LN59@unz64local@7:
+
+; 918  : 
+; 919  :     if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.version_needed) != UNZ_OK)
+
+  00087        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  0008a        8d 4c 24 34      lea     ecx, DWORD PTR _file_info$[esp+140]
+  0008e        51               push    ecx
+  0008f        8b cf            mov     ecx, edi
+  00091        e8 00 00 00 00   call    _unz64local_getShort
+  00096        83 c4 04         add     esp, 4
+  00099        85 c0            test    eax, eax
+  0009b        74 03            je      SHORT $LN58@unz64local@7
+
+; 920  :         err=UNZ_ERRNO;
+
+  0009d        83 cb ff         or      ebx, -1
+$LN58@unz64local@7:
+
+; 921  : 
+; 922  :     if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.flag) != UNZ_OK)
+
+  000a0        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  000a3        8d 54 24 38      lea     edx, DWORD PTR _file_info$[esp+144]
+  000a7        52               push    edx
+  000a8        8b cf            mov     ecx, edi
+  000aa        e8 00 00 00 00   call    _unz64local_getShort
+  000af        83 c4 04         add     esp, 4
+  000b2        85 c0            test    eax, eax
+  000b4        74 03            je      SHORT $LN57@unz64local@7
+
+; 923  :         err=UNZ_ERRNO;
+
+  000b6        83 cb ff         or      ebx, -1
+$LN57@unz64local@7:
+
+; 924  : 
+; 925  :     if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.compression_method) != UNZ_OK)
+
+  000b9        8d 44 24 3c      lea     eax, DWORD PTR _file_info$[esp+148]
+  000bd        50               push    eax
+  000be        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  000c1        8b cf            mov     ecx, edi
+  000c3        e8 00 00 00 00   call    _unz64local_getShort
+  000c8        83 c4 04         add     esp, 4
+  000cb        85 c0            test    eax, eax
+  000cd        74 03            je      SHORT $LN56@unz64local@7
+
+; 926  :         err=UNZ_ERRNO;
+
+  000cf        83 cb ff         or      ebx, -1
+$LN56@unz64local@7:
+
+; 927  : 
+; 928  :     if (unz64local_getLong(&s->z_filefunc, s->filestream,&file_info.dosDate) != UNZ_OK)
+
+  000d2        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  000d5        8d 4c 24 40      lea     ecx, DWORD PTR _file_info$[esp+152]
+  000d9        51               push    ecx
+  000da        8b cf            mov     ecx, edi
+  000dc        e8 00 00 00 00   call    _unz64local_getLong
+  000e1        83 c4 04         add     esp, 4
+  000e4        85 c0            test    eax, eax
+  000e6        74 03            je      SHORT $LN55@unz64local@7
+
+; 929  :         err=UNZ_ERRNO;
+
+  000e8        83 cb ff         or      ebx, -1
+$LN55@unz64local@7:
+
+; 930  : 
+; 931  :     unz64local_DosDateToTmuDate(file_info.dosDate,&file_info.tmu_date);
+
+  000eb        8b 54 24 40      mov     edx, DWORD PTR _file_info$[esp+152]
+  000ef        33 f6            xor     esi, esi
+  000f1        56               push    esi
+  000f2        52               push    edx
+  000f3        8d 54 24 78      lea     edx, DWORD PTR _file_info$[esp+208]
+  000f7        e8 00 00 00 00   call    _unz64local_DosDateToTmuDate
+
+; 932  : 
+; 933  :     if (unz64local_getLong(&s->z_filefunc, s->filestream,&file_info.crc) != UNZ_OK)
+
+  000fc        8d 44 24 4c      lea     eax, DWORD PTR _file_info$[esp+164]
+  00100        50               push    eax
+  00101        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  00104        8b cf            mov     ecx, edi
+  00106        e8 00 00 00 00   call    _unz64local_getLong
+  0010b        83 c4 0c         add     esp, 12                        ; 0000000cH
+  0010e        85 c0            test    eax, eax
+  00110        74 03            je      SHORT $LN54@unz64local@7
+
+; 934  :         err=UNZ_ERRNO;
+
+  00112        83 cb ff         or      ebx, -1
+$LN54@unz64local@7:
+
+; 935  : 
+; 936  :     if (unz64local_getLong(&s->z_filefunc, s->filestream,&uL) != UNZ_OK)
+
+  00115        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  00118        8d 4c 24 10      lea     ecx, DWORD PTR _uL$[esp+136]
+  0011c        51               push    ecx
+  0011d        8b cf            mov     ecx, edi
+  0011f        e8 00 00 00 00   call    _unz64local_getLong
+  00124        83 c4 04         add     esp, 4
+  00127        85 c0            test    eax, eax
+  00129        74 03            je      SHORT $LN53@unz64local@7
+
+; 937  :         err=UNZ_ERRNO;
+
+  0012b        83 cb ff         or      ebx, -1
+$LN53@unz64local@7:
+
+; 938  :     file_info.compressed_size = uL;
+
+  0012e        8b 54 24 10      mov     edx, DWORD PTR _uL$[esp+136]
+
+; 939  : 
+; 940  :     if (unz64local_getLong(&s->z_filefunc, s->filestream,&uL) != UNZ_OK)
+
+  00132        8d 44 24 10      lea     eax, DWORD PTR _uL$[esp+136]
+  00136        50               push    eax
+  00137        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  0013a        8b cf            mov     ecx, edi
+  0013c        89 54 24 4c      mov     DWORD PTR _file_info$[esp+164], edx
+  00140        89 74 24 50      mov     DWORD PTR _file_info$[esp+168], esi
+  00144        e8 00 00 00 00   call    _unz64local_getLong
+  00149        83 c4 04         add     esp, 4
+  0014c        85 c0            test    eax, eax
+  0014e        74 03            je      SHORT $LN52@unz64local@7
+
+; 941  :         err=UNZ_ERRNO;
+
+  00150        83 cb ff         or      ebx, -1
+$LN52@unz64local@7:
+
+; 942  :     file_info.uncompressed_size = uL;
+
+  00153        8b 4c 24 10      mov     ecx, DWORD PTR _uL$[esp+136]
+
+; 943  : 
+; 944  :     if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.size_filename) != UNZ_OK)
+
+  00157        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  0015a        8d 54 24 58      lea     edx, DWORD PTR _file_info$[esp+176]
+  0015e        89 4c 24 50      mov     DWORD PTR _file_info$[esp+168], ecx
+  00162        52               push    edx
+  00163        8b cf            mov     ecx, edi
+  00165        89 74 24 58      mov     DWORD PTR _file_info$[esp+176], esi
+  00169        e8 00 00 00 00   call    _unz64local_getShort
+  0016e        83 c4 04         add     esp, 4
+  00171        85 c0            test    eax, eax
+  00173        74 03            je      SHORT $LN51@unz64local@7
+
+; 945  :         err=UNZ_ERRNO;
+
+  00175        83 cb ff         or      ebx, -1
+$LN51@unz64local@7:
+
+; 946  : 
+; 947  :     if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.size_file_extra) != UNZ_OK)
+
+  00178        8d 44 24 5c      lea     eax, DWORD PTR _file_info$[esp+180]
+  0017c        50               push    eax
+  0017d        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  00180        8b cf            mov     ecx, edi
+  00182        e8 00 00 00 00   call    _unz64local_getShort
+  00187        83 c4 04         add     esp, 4
+  0018a        85 c0            test    eax, eax
+  0018c        74 03            je      SHORT $LN50@unz64local@7
+
+; 948  :         err=UNZ_ERRNO;
+
+  0018e        83 cb ff         or      ebx, -1
+$LN50@unz64local@7:
+
+; 949  : 
+; 950  :     if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.size_file_comment) != UNZ_OK)
+
+  00191        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  00194        8d 4c 24 60      lea     ecx, DWORD PTR _file_info$[esp+184]
+  00198        51               push    ecx
+  00199        8b cf            mov     ecx, edi
+  0019b        e8 00 00 00 00   call    _unz64local_getShort
+  001a0        83 c4 04         add     esp, 4
+  001a3        85 c0            test    eax, eax
+  001a5        74 03            je      SHORT $LN49@unz64local@7
+
+; 951  :         err=UNZ_ERRNO;
+
+  001a7        83 cb ff         or      ebx, -1
+$LN49@unz64local@7:
+
+; 952  : 
+; 953  :     if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.disk_num_start) != UNZ_OK)
+
+  001aa        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  001ad        8d 54 24 64      lea     edx, DWORD PTR _file_info$[esp+188]
+  001b1        52               push    edx
+  001b2        8b cf            mov     ecx, edi
+  001b4        e8 00 00 00 00   call    _unz64local_getShort
+  001b9        83 c4 04         add     esp, 4
+  001bc        85 c0            test    eax, eax
+  001be        74 03            je      SHORT $LN48@unz64local@7
+
+; 954  :         err=UNZ_ERRNO;
+
+  001c0        83 cb ff         or      ebx, -1
+$LN48@unz64local@7:
+
+; 955  : 
+; 956  :     if (unz64local_getShort(&s->z_filefunc, s->filestream,&file_info.internal_fa) != UNZ_OK)
+
+  001c3        8d 44 24 68      lea     eax, DWORD PTR _file_info$[esp+192]
+  001c7        50               push    eax
+  001c8        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  001cb        8b cf            mov     ecx, edi
+  001cd        e8 00 00 00 00   call    _unz64local_getShort
+  001d2        83 c4 04         add     esp, 4
+  001d5        85 c0            test    eax, eax
+  001d7        74 03            je      SHORT $LN47@unz64local@7
+
+; 957  :         err=UNZ_ERRNO;
+
+  001d9        83 cb ff         or      ebx, -1
+$LN47@unz64local@7:
+
+; 958  : 
+; 959  :     if (unz64local_getLong(&s->z_filefunc, s->filestream,&file_info.external_fa) != UNZ_OK)
+
+  001dc        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  001df        8d 4c 24 6c      lea     ecx, DWORD PTR _file_info$[esp+196]
+  001e3        51               push    ecx
+  001e4        8b cf            mov     ecx, edi
+  001e6        e8 00 00 00 00   call    _unz64local_getLong
+  001eb        83 c4 04         add     esp, 4
+  001ee        85 c0            test    eax, eax
+  001f0        74 03            je      SHORT $LN46@unz64local@7
+
+; 960  :         err=UNZ_ERRNO;
+
+  001f2        83 cb ff         or      ebx, -1
+$LN46@unz64local@7:
+
+; 961  : 
+; 962  :                 // relative offset of local header
+; 963  :     if (unz64local_getLong(&s->z_filefunc, s->filestream,&uL) != UNZ_OK)
+
+  001f5        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  001f8        8d 54 24 10      lea     edx, DWORD PTR _uL$[esp+136]
+  001fc        52               push    edx
+  001fd        8b cf            mov     ecx, edi
+  001ff        e8 00 00 00 00   call    _unz64local_getLong
+  00204        83 c4 04         add     esp, 4
+  00207        85 c0            test    eax, eax
+  00209        74 03            je      SHORT $LN45@unz64local@7
+
+; 964  :         err=UNZ_ERRNO;
+
+  0020b        83 cb ff         or      ebx, -1
+$LN45@unz64local@7:
+
+; 965  :     file_info_internal.offset_curfile = uL;
+
+  0020e        8b 44 24 10      mov     eax, DWORD PTR _uL$[esp+136]
+  00212        89 74 24 2c      mov     DWORD PTR _file_info_internal$[esp+140], esi
+
+; 966  : 
+; 967  :     lSeek+=file_info.size_filename;
+
+  00216        8b 74 24 58      mov     esi, DWORD PTR _file_info$[esp+176]
+  0021a        89 44 24 28      mov     DWORD PTR _file_info_internal$[esp+136], eax
+  0021e        8b c6            mov     eax, esi
+  00220        89 44 24 10      mov     DWORD PTR _lSeek$[esp+136], eax
+
+; 968  :     if ((err==UNZ_OK) && (szFileName!=NULL))
+
+  00224        85 db            test    ebx, ebx
+  00226        0f 85 ef 00 00
+       00               jne     $LN39@unz64local@7
+  0022c        8b 4d 10         mov     ecx, DWORD PTR _szFileName$[ebp]
+  0022f        85 c9            test    ecx, ecx
+  00231        74 50            je      SHORT $LN71@unz64local@7
+
+; 969  :     {
+; 970  :         uLong uSizeRead ;
+; 971  :         if (file_info.size_filename<fileNameBufferSize)
+
+  00233        8b 45 14         mov     eax, DWORD PTR _fileNameBufferSize$[ebp]
+  00236        3b f0            cmp     esi, eax
+  00238        73 09            jae     SHORT $LN43@unz64local@7
+
+; 972  :         {
+; 973  :             *(szFileName+file_info.size_filename)='\0';
+
+  0023a        88 1c 0e         mov     BYTE PTR [esi+ecx], bl
+
+; 974  :             uSizeRead = file_info.size_filename;
+
+  0023d        89 74 24 10      mov     DWORD PTR _uSizeRead$82663[esp+136], esi
+
+; 975  :         }
+; 976  :         else
+
+  00241        eb 04            jmp     SHORT $LN42@unz64local@7
+$LN43@unz64local@7:
+
+; 977  :             uSizeRead = fileNameBufferSize;
+
+  00243        89 44 24 10      mov     DWORD PTR _uSizeRead$82663[esp+136], eax
+$LN42@unz64local@7:
+
+; 978  : 
+; 979  :         if ((file_info.size_filename>0) && (fileNameBufferSize>0))
+
+  00247        85 f6            test    esi, esi
+  00249        74 26            je      SHORT $LN40@unz64local@7
+  0024b        85 c0            test    eax, eax
+  0024d        74 22            je      SHORT $LN40@unz64local@7
+
+; 980  :             if (ZREAD64(s->z_filefunc, s->filestream,szFileName,uSizeRead)!=uSizeRead)
+
+  0024f        8b 4c 24 10      mov     ecx, DWORD PTR _uSizeRead$82663[esp+136]
+  00253        8b 55 10         mov     edx, DWORD PTR _szFileName$[ebp]
+  00256        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  00259        51               push    ecx
+  0025a        8b 4f 1c         mov     ecx, DWORD PTR [edi+28]
+  0025d        52               push    edx
+  0025e        8b 57 04         mov     edx, DWORD PTR [edi+4]
+  00261        50               push    eax
+  00262        51               push    ecx
+  00263        ff d2            call    edx
+  00265        83 c4 10         add     esp, 16                        ; 00000010H
+  00268        3b 44 24 10      cmp     eax, DWORD PTR _uSizeRead$82663[esp+136]
+  0026c        74 03            je      SHORT $LN40@unz64local@7
+
+; 981  :                 err=UNZ_ERRNO;
+
+  0026e        83 cb ff         or      ebx, -1
+$LN40@unz64local@7:
+
+; 982  :         lSeek -= uSizeRead;
+
+  00271        2b 74 24 10      sub     esi, DWORD PTR _uSizeRead$82663[esp+136]
+  00275        8b c6            mov     eax, esi
+  00277        89 74 24 10      mov     DWORD PTR _lSeek$[esp+136], esi
+
+; 983  :     }
+; 984  : 
+; 985  :     // Read extrafield
+; 986  :     if ((err==UNZ_OK) && (extraField!=NULL))
+
+  0027b        85 db            test    ebx, ebx
+  0027d        0f 85 98 00 00
+       00               jne     $LN39@unz64local@7
+$LN71@unz64local@7:
+  00283        83 7d 18 00      cmp     DWORD PTR _extraField$[ebp], 0
+  00287        0f 84 8e 00 00
+       00               je      $LN39@unz64local@7
+
+; 987  :     {
+; 988  :         ZPOS64_T uSizeRead ;
+; 989  :         if (file_info.size_file_extra<extraFieldBufferSize)
+
+  0028d        8b 4c 24 5c      mov     ecx, DWORD PTR _file_info$[esp+180]
+  00291        8b 55 1c         mov     edx, DWORD PTR _extraFieldBufferSize$[ebp]
+
+; 990  :             uSizeRead = file_info.size_file_extra;
+
+  00294        89 4c 24 20      mov     DWORD PTR _uSizeRead$82670[esp+136], ecx
+  00298        3b ca            cmp     ecx, edx
+  0029a        72 04            jb      SHORT $LN37@unz64local@7
+
+; 991  :         else
+; 992  :             uSizeRead = extraFieldBufferSize;
+
+  0029c        89 54 24 20      mov     DWORD PTR _uSizeRead$82670[esp+136], edx
+$LN37@unz64local@7:
+
+; 993  : 
+; 994  :         if (lSeek!=0)
+
+  002a0        85 c0            test    eax, eax
+  002a2        74 26            je      SHORT $LN34@unz64local@7
+
+; 995  :         {
+; 996  :             if (ZSEEK64(s->z_filefunc, s->filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0)
+
+  002a4        8b 44 24 10      mov     eax, DWORD PTR _lSeek$[esp+136]
+  002a8        8b 77 30         mov     esi, DWORD PTR [edi+48]
+  002ab        99               cdq
+  002ac        52               push    edx
+  002ad        50               push    eax
+  002ae        ba 01 00 00 00   mov     edx, 1
+  002b3        8b c7            mov     eax, edi
+  002b5        e8 00 00 00 00   call    _call_zseek64
+  002ba        83 c4 08         add     esp, 8
+  002bd        85 c0            test    eax, eax
+  002bf        75 06            jne     SHORT $LN35@unz64local@7
+
+; 997  :                 lSeek=0;
+
+  002c1        89 44 24 10      mov     DWORD PTR _lSeek$[esp+136], eax
+
+; 998  :             else
+
+  002c5        eb 03            jmp     SHORT $LN34@unz64local@7
+$LN35@unz64local@7:
+
+; 999  :                 err=UNZ_ERRNO;
+
+  002c7        83 cb ff         or      ebx, -1
+$LN34@unz64local@7:
+
+; 1000 :         }
+; 1001 : 
+; 1002 :         if ((file_info.size_file_extra>0) && (extraFieldBufferSize>0))
+
+  002ca        83 7c 24 5c 00   cmp     DWORD PTR _file_info$[esp+180], 0
+  002cf        76 3a            jbe     SHORT $LN83@unz64local@7
+  002d1        83 7d 1c 00      cmp     DWORD PTR _extraFieldBufferSize$[ebp], 0
+  002d5        76 34            jbe     SHORT $LN83@unz64local@7
+
+; 1003 :             if (ZREAD64(s->z_filefunc, s->filestream,extraField,(uLong)uSizeRead)!=uSizeRead)
+
+  002d7        8b 74 24 20      mov     esi, DWORD PTR _uSizeRead$82670[esp+136]
+  002db        8b 45 18         mov     eax, DWORD PTR _extraField$[ebp]
+  002de        8b 4f 30         mov     ecx, DWORD PTR [edi+48]
+  002e1        8b 57 1c         mov     edx, DWORD PTR [edi+28]
+  002e4        56               push    esi
+  002e5        50               push    eax
+  002e6        8b 47 04         mov     eax, DWORD PTR [edi+4]
+  002e9        51               push    ecx
+  002ea        52               push    edx
+  002eb        ff d0            call    eax
+  002ed        83 c4 10         add     esp, 16                        ; 00000010H
+  002f0        33 c9            xor     ecx, ecx
+  002f2        3b c6            cmp     eax, esi
+  002f4        75 06            jne     SHORT $LN75@unz64local@7
+  002f6        33 c0            xor     eax, eax
+  002f8        3b c8            cmp     ecx, eax
+  002fa        74 13            je      SHORT $LN32@unz64local@7
+$LN75@unz64local@7:
+
+; 1005 : 
+; 1006 :         lSeek += file_info.size_file_extra - (uLong)uSizeRead;
+
+  002fc        8b 4c 24 5c      mov     ecx, DWORD PTR _file_info$[esp+180]
+  00300        2b ce            sub     ecx, esi
+  00302        83 cb ff         or      ebx, -1
+  00305        01 4c 24 10      add     DWORD PTR _lSeek$[esp+136], ecx
+
+; 1007 :     }
+; 1008 :     else
+
+  00309        eb 18            jmp     SHORT $LN31@unz64local@7
+$LN83@unz64local@7:
+
+; 1004 :                 err=UNZ_ERRNO;
+
+  0030b        8b 74 24 20      mov     esi, DWORD PTR _uSizeRead$82670[esp+136]
+$LN32@unz64local@7:
+
+; 1005 : 
+; 1006 :         lSeek += file_info.size_file_extra - (uLong)uSizeRead;
+
+  0030f        8b 4c 24 5c      mov     ecx, DWORD PTR _file_info$[esp+180]
+  00313        2b ce            sub     ecx, esi
+  00315        01 4c 24 10      add     DWORD PTR _lSeek$[esp+136], ecx
+
+; 1007 :     }
+; 1008 :     else
+
+  00319        eb 08            jmp     SHORT $LN31@unz64local@7
+$LN39@unz64local@7:
+
+; 1009 :         lSeek += file_info.size_file_extra;
+
+  0031b        03 44 24 5c      add     eax, DWORD PTR _file_info$[esp+180]
+  0031f        89 44 24 10      mov     DWORD PTR _lSeek$[esp+136], eax
+$LN31@unz64local@7:
+
+; 1010 : 
+; 1011 : 
+; 1012 :     if ((err==UNZ_OK) && (file_info.size_file_extra != 0))
+
+  00323        85 db            test    ebx, ebx
+  00325        0f 85 03 02 00
+       00               jne     $LN1@unz64local@7
+  0032b        39 5c 24 5c      cmp     DWORD PTR _file_info$[esp+180], ebx
+  0032f        0f 84 4f 01 00
+       00               je      $LN72@unz64local@7
+
+; 1013 :     {
+; 1014 :                                 uLong acc = 0;
+; 1015 : 
+; 1016 :         // since lSeek now points to after the extra field we need to move back
+; 1017 :         lSeek -= file_info.size_file_extra;
+
+  00335        8b 54 24 5c      mov     edx, DWORD PTR _file_info$[esp+180]
+  00339        29 54 24 10      sub     DWORD PTR _lSeek$[esp+136], edx
+  0033d        89 5c 24 18      mov     DWORD PTR _acc$82682[esp+136], ebx
+
+; 1018 : 
+; 1019 :         if (lSeek!=0)
+
+  00341        74 24            je      SHORT $LN68@unz64local@7
+
+; 1020 :         {
+; 1021 :             if (ZSEEK64(s->z_filefunc, s->filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0)
+
+  00343        8b 44 24 10      mov     eax, DWORD PTR _lSeek$[esp+136]
+  00347        8b 77 30         mov     esi, DWORD PTR [edi+48]
+  0034a        99               cdq
+  0034b        52               push    edx
+  0034c        50               push    eax
+  0034d        8d 53 01         lea     edx, DWORD PTR [ebx+1]
+  00350        8b c7            mov     eax, edi
+  00352        e8 00 00 00 00   call    _call_zseek64
+  00357        83 c4 08         add     esp, 8
+  0035a        85 c0            test    eax, eax
+  0035c        75 06            jne     SHORT $LN28@unz64local@7
+
+; 1022 :                 lSeek=0;
+
+  0035e        89 44 24 10      mov     DWORD PTR _lSeek$[esp+136], eax
+
+; 1023 :             else
+
+  00362        eb 03            jmp     SHORT $LN68@unz64local@7
+$LN28@unz64local@7:
+
+; 1024 :                 err=UNZ_ERRNO;
+
+  00364        83 cb ff         or      ebx, -1
+$LN68@unz64local@7:
+
+; 1025 :         }
+; 1026 : 
+; 1027 :         while(acc < file_info.size_file_extra)
+
+  00367        83 7c 24 5c 00   cmp     DWORD PTR _file_info$[esp+180], 0
+  0036c        0f 86 0a 01 00
+       00               jbe     $LN25@unz64local@7
+  00372        83 ce ff         or      esi, -1
+$LL26@unz64local@7:
+
+; 1028 :         {
+; 1029 :             uLong headerId;
+; 1030 :                                                 uLong dataSize;
+; 1031 : 
+; 1032 :             if (unz64local_getShort(&s->z_filefunc, s->filestream,&headerId) != UNZ_OK)
+
+  00375        8d 44 24 1c      lea     eax, DWORD PTR _headerId$82689[esp+136]
+  00379        50               push    eax
+  0037a        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  0037d        8b cf            mov     ecx, edi
+  0037f        e8 00 00 00 00   call    _unz64local_getShort
+  00384        83 c4 04         add     esp, 4
+  00387        85 c0            test    eax, eax
+  00389        74 02            je      SHORT $LN24@unz64local@7
+
+; 1033 :                 err=UNZ_ERRNO;
+
+  0038b        8b de            mov     ebx, esi
+$LN24@unz64local@7:
+
+; 1034 : 
+; 1035 :             if (unz64local_getShort(&s->z_filefunc, s->filestream,&dataSize) != UNZ_OK)
+
+  0038d        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  00390        8d 4c 24 14      lea     ecx, DWORD PTR _dataSize$82690[esp+136]
+  00394        51               push    ecx
+  00395        8b cf            mov     ecx, edi
+  00397        e8 00 00 00 00   call    _unz64local_getShort
+  0039c        83 c4 04         add     esp, 4
+  0039f        85 c0            test    eax, eax
+  003a1        74 02            je      SHORT $LN23@unz64local@7
+
+; 1036 :                 err=UNZ_ERRNO;
+
+  003a3        8b de            mov     ebx, esi
+$LN23@unz64local@7:
+
+; 1037 : 
+; 1038 :             /* ZIP64 extra fields */
+; 1039 :             if (headerId == 0x0001)
+
+  003a5        83 7c 24 1c 01   cmp     DWORD PTR _headerId$82689[esp+136], 1
+  003aa        0f 85 8f 00 00
+       00               jne     $LN22@unz64local@7
+
+; 1040 :             {
+; 1041 :                                                         uLong uL;
+; 1042 : 
+; 1043 :                                                                 if(file_info.uncompressed_size == MAXU32)
+
+  003b0        39 74 24 50      cmp     DWORD PTR _file_info$[esp+168], esi
+  003b4        75 1f            jne     SHORT $LN20@unz64local@7
+  003b6        83 7c 24 54 00   cmp     DWORD PTR _file_info$[esp+172], 0
+  003bb        75 18            jne     SHORT $LN20@unz64local@7
+
+; 1044 :                                                                 {
+; 1045 :                                                                         if (unz64local_getLong64(&s->z_filefunc, s->filestream,&file_info.uncompressed_size) != UNZ_OK)
+
+  003bd        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  003c0        8d 54 24 50      lea     edx, DWORD PTR _file_info$[esp+168]
+  003c4        52               push    edx
+  003c5        8b cf            mov     ecx, edi
+  003c7        e8 00 00 00 00   call    _unz64local_getLong64
+  003cc        83 c4 04         add     esp, 4
+  003cf        85 c0            test    eax, eax
+  003d1        74 02            je      SHORT $LN20@unz64local@7
+
+; 1046 :                                                                                         err=UNZ_ERRNO;
+
+  003d3        8b de            mov     ebx, esi
+$LN20@unz64local@7:
+
+; 1047 :                                                                 }
+; 1048 : 
+; 1049 :                                                                 if(file_info.compressed_size == MAXU32)
+
+  003d5        39 74 24 48      cmp     DWORD PTR _file_info$[esp+160], esi
+  003d9        75 1f            jne     SHORT $LN18@unz64local@7
+  003db        83 7c 24 4c 00   cmp     DWORD PTR _file_info$[esp+164], 0
+  003e0        75 18            jne     SHORT $LN18@unz64local@7
+
+; 1050 :                                                                 {
+; 1051 :                                                                         if (unz64local_getLong64(&s->z_filefunc, s->filestream,&file_info.compressed_size) != UNZ_OK)
+
+  003e2        8d 44 24 48      lea     eax, DWORD PTR _file_info$[esp+160]
+  003e6        50               push    eax
+  003e7        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  003ea        8b cf            mov     ecx, edi
+  003ec        e8 00 00 00 00   call    _unz64local_getLong64
+  003f1        83 c4 04         add     esp, 4
+  003f4        85 c0            test    eax, eax
+  003f6        74 02            je      SHORT $LN18@unz64local@7
+
+; 1052 :                                                                                   err=UNZ_ERRNO;
+
+  003f8        8b de            mov     ebx, esi
+$LN18@unz64local@7:
+
+; 1053 :                                                                 }
+; 1054 : 
+; 1055 :                                                                 if(file_info_internal.offset_curfile == MAXU32)
+
+  003fa        39 74 24 28      cmp     DWORD PTR _file_info_internal$[esp+136], esi
+  003fe        75 1f            jne     SHORT $LN16@unz64local@7
+  00400        83 7c 24 2c 00   cmp     DWORD PTR _file_info_internal$[esp+140], 0
+  00405        75 18            jne     SHORT $LN16@unz64local@7
+
+; 1056 :                                                                 {
+; 1057 :                                                                         /* Relative Header offset */
+; 1058 :                                                                         if (unz64local_getLong64(&s->z_filefunc, s->filestream,&file_info_internal.offset_curfile) != UNZ_OK)
+
+  00407        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  0040a        8d 4c 24 28      lea     ecx, DWORD PTR _file_info_internal$[esp+136]
+  0040e        51               push    ecx
+  0040f        8b cf            mov     ecx, edi
+  00411        e8 00 00 00 00   call    _unz64local_getLong64
+  00416        83 c4 04         add     esp, 4
+  00419        85 c0            test    eax, eax
+  0041b        74 02            je      SHORT $LN16@unz64local@7
+
+; 1059 :                                                                                 err=UNZ_ERRNO;
+
+  0041d        8b de            mov     ebx, esi
+$LN16@unz64local@7:
+
+; 1060 :                                                                 }
+; 1061 : 
+; 1062 :                                                                 if(file_info.disk_num_start == MAXU32)
+
+  0041f        39 74 24 64      cmp     DWORD PTR _file_info$[esp+188], esi
+  00423        75 3d            jne     SHORT $LN12@unz64local@7
+
+; 1063 :                                                                 {
+; 1064 :                                                                         /* Disk Start Number */
+; 1065 :                                                                         if (unz64local_getLong(&s->z_filefunc, s->filestream,&uL) != UNZ_OK)
+
+  00425        8b 47 30         mov     eax, DWORD PTR [edi+48]
+  00428        8d 54 24 20      lea     edx, DWORD PTR _uL$82694[esp+136]
+  0042c        52               push    edx
+  0042d        8b cf            mov     ecx, edi
+  0042f        e8 00 00 00 00   call    _unz64local_getLong
+  00434        83 c4 04         add     esp, 4
+  00437        85 c0            test    eax, eax
+  00439        74 27            je      SHORT $LN12@unz64local@7
+
+; 1066 :                                                                                 err=UNZ_ERRNO;
+
+  0043b        8b de            mov     ebx, esi
+
+; 1067 :                                                                 }
+; 1068 : 
+; 1069 :             }
+; 1070 :             else
+
+  0043d        eb 23            jmp     SHORT $LN12@unz64local@7
+$LN22@unz64local@7:
+
+; 1071 :             {
+; 1072 :                 if (ZSEEK64(s->z_filefunc, s->filestream,dataSize,ZLIB_FILEFUNC_SEEK_CUR)!=0)
+
+  0043f        8b 44 24 14      mov     eax, DWORD PTR _dataSize$82690[esp+136]
+  00443        8b 77 30         mov     esi, DWORD PTR [edi+48]
+  00446        6a 00            push    0
+  00448        50               push    eax
+  00449        ba 01 00 00 00   mov     edx, 1
+  0044e        8b c7            mov     eax, edi
+  00450        e8 00 00 00 00   call    _call_zseek64
+  00455        83 c4 08         add     esp, 8
+  00458        85 c0            test    eax, eax
+  0045a        74 03            je      SHORT $LN85@unz64local@7
+
+; 1073 :                     err=UNZ_ERRNO;
+
+  0045c        83 cb ff         or      ebx, -1
+$LN85@unz64local@7:
+  0045f        83 ce ff         or      esi, -1
+$LN12@unz64local@7:
+
+; 1074 :             }
+; 1075 : 
+; 1076 :             acc += 2 + 2 + dataSize;
+
+  00462        8b 54 24 18      mov     edx, DWORD PTR _acc$82682[esp+136]
+  00466        8b 4c 24 14      mov     ecx, DWORD PTR _dataSize$82690[esp+136]
+  0046a        8d 44 0a 04      lea     eax, DWORD PTR [edx+ecx+4]
+  0046e        89 44 24 18      mov     DWORD PTR _acc$82682[esp+136], eax
+  00472        3b 44 24 5c      cmp     eax, DWORD PTR _file_info$[esp+180]
+  00476        0f 82 f9 fe ff
+       ff               jb      $LL26@unz64local@7
+$LN25@unz64local@7:
+
+; 1077 :         }
+; 1078 :     }
+; 1079 : 
+; 1080 :     if ((err==UNZ_OK) && (szComment!=NULL))
+
+  0047c        85 db            test    ebx, ebx
+  0047e        0f 85 aa 00 00
+       00               jne     $LN1@unz64local@7
+$LN72@unz64local@7:
+  00484        8b 55 20         mov     edx, DWORD PTR _szComment$[ebp]
+  00487        85 d2            test    edx, edx
+  00489        74 7b            je      SHORT $LN73@unz64local@7
+
+; 1081 :     {
+; 1082 :         uLong uSizeRead ;
+; 1083 :         if (file_info.size_file_comment<commentBufferSize)
+
+  0048b        8b 44 24 60      mov     eax, DWORD PTR _file_info$[esp+184]
+  0048f        8b 4d 24         mov     ecx, DWORD PTR _commentBufferSize$[ebp]
+  00492        3b c1            cmp     eax, ecx
+  00494        73 0a            jae     SHORT $LN10@unz64local@7
+
+; 1084 :         {
+; 1085 :             *(szComment+file_info.size_file_comment)='\0';
+
+  00496        c6 04 10 00      mov     BYTE PTR [eax+edx], 0
+
+; 1086 :             uSizeRead = file_info.size_file_comment;
+
+  0049a        89 44 24 18      mov     DWORD PTR _uSizeRead$82707[esp+136], eax
+
+; 1087 :         }
+; 1088 :         else
+
+  0049e        eb 04            jmp     SHORT $LN9@unz64local@7
+$LN10@unz64local@7:
+
+; 1089 :             uSizeRead = commentBufferSize;
+
+  004a0        89 4c 24 18      mov     DWORD PTR _uSizeRead$82707[esp+136], ecx
+$LN9@unz64local@7:
+
+; 1090 : 
+; 1091 :         if (lSeek!=0)
+
+  004a4        83 7c 24 10 00   cmp     DWORD PTR _lSeek$[esp+136], 0
+  004a9        74 24            je      SHORT $LN6@unz64local@7
+
+; 1092 :         {
+; 1093 :             if (ZSEEK64(s->z_filefunc, s->filestream,lSeek,ZLIB_FILEFUNC_SEEK_CUR)==0)
+
+  004ab        8b 44 24 10      mov     eax, DWORD PTR _lSeek$[esp+136]
+  004af        8b 77 30         mov     esi, DWORD PTR [edi+48]
+  004b2        99               cdq
+  004b3        52               push    edx
+  004b4        50               push    eax
+  004b5        ba 01 00 00 00   mov     edx, 1
+  004ba        8b c7            mov     eax, edi
+  004bc        e8 00 00 00 00   call    _call_zseek64
+  004c1        83 c4 08         add     esp, 8
+  004c4        85 c0            test    eax, eax
+
+; 1094 :                 lSeek=0;
+; 1095 :             else
+; 1096 :                 err=UNZ_ERRNO;
+
+  004c6        8b 44 24 60      mov     eax, DWORD PTR _file_info$[esp+184]
+  004ca        74 03            je      SHORT $LN6@unz64local@7
+  004cc        83 cb ff         or      ebx, -1
+$LN6@unz64local@7:
+
+; 1097 :         }
+; 1098 : 
+; 1099 :         if ((file_info.size_file_comment>0) && (commentBufferSize>0))
+
+  004cf        85 c0            test    eax, eax
+  004d1        74 2f            je      SHORT $LN4@unz64local@7
+  004d3        83 7d 24 00      cmp     DWORD PTR _commentBufferSize$[ebp], 0
+  004d7        76 29            jbe     SHORT $LN4@unz64local@7
+
+; 1100 :             if (ZREAD64(s->z_filefunc, s->filestream,szComment,uSizeRead)!=uSizeRead)
+
+  004d9        8b 74 24 18      mov     esi, DWORD PTR _uSizeRead$82707[esp+136]
+  004dd        8b 45 20         mov     eax, DWORD PTR _szComment$[ebp]
+  004e0        8b 4f 30         mov     ecx, DWORD PTR [edi+48]
+  004e3        8b 57 1c         mov     edx, DWORD PTR [edi+28]
+  004e6        56               push    esi
+  004e7        50               push    eax
+  004e8        8b 47 04         mov     eax, DWORD PTR [edi+4]
+  004eb        51               push    ecx
+  004ec        52               push    edx
+  004ed        ff d0            call    eax
+  004ef        83 c4 10         add     esp, 16                        ; 00000010H
+  004f2        3b c6            cmp     eax, esi
+  004f4        74 0c            je      SHORT $LN4@unz64local@7
+
+; 1101 :                 err=UNZ_ERRNO;
+
+  004f6        83 cb ff         or      ebx, -1
+
+; 1113 : 
+; 1114 :     return err;
+
+  004f9        8b c3            mov     eax, ebx
+
+; 1115 : }
+
+  004fb        5f               pop     edi
+  004fc        5e               pop     esi
+  004fd        5b               pop     ebx
+  004fe        8b e5            mov     esp, ebp
+  00500        5d               pop     ebp
+  00501        c3               ret     0
+$LN4@unz64local@7:
+
+; 1102 :         lSeek+=file_info.size_file_comment - uSizeRead;
+; 1103 :     }
+; 1104 :     else
+; 1105 :         lSeek+=file_info.size_file_comment;
+; 1106 : 
+; 1107 : 
+; 1108 :     if ((err==UNZ_OK) && (pfile_info!=NULL))
+
+  00502        85 db            test    ebx, ebx
+  00504        75 28            jne     SHORT $LN1@unz64local@7
+$LN73@unz64local@7:
+  00506        83 7d 08 00      cmp     DWORD PTR _pfile_info$[ebp], 0
+  0050a        74 0e            je      SHORT $LN74@unz64local@7
+
+; 1109 :         *pfile_info=file_info;
+
+  0050c        8b 7d 08         mov     edi, DWORD PTR _pfile_info$[ebp]
+  0050f        b9 16 00 00 00   mov     ecx, 22                        ; 00000016H
+  00514        8d 74 24 30      lea     esi, DWORD PTR _file_info$[esp+136]
+  00518        f3 a5            rep movsd
+$LN74@unz64local@7:
+
+; 1110 : 
+; 1111 :     if ((err==UNZ_OK) && (pfile_info_internal!=NULL))
+
+  0051a        8b 45 0c         mov     eax, DWORD PTR _pfile_info_internal$[ebp]
+  0051d        85 c0            test    eax, eax
+  0051f        74 0d            je      SHORT $LN1@unz64local@7
+
+; 1112 :         *pfile_info_internal=file_info_internal;
+
+  00521        8b 4c 24 28      mov     ecx, DWORD PTR _file_info_internal$[esp+136]
+  00525        8b 54 24 2c      mov     edx, DWORD PTR _file_info_internal$[esp+140]
+  00529        89 08            mov     DWORD PTR [eax], ecx
+  0052b        89 50 04         mov     DWORD PTR [eax+4], edx
+$LN1@unz64local@7:
+
+; 1115 : }
+
+  0052e        5f               pop     edi
+  0052f        5e               pop     esi
+  00530        8b c3            mov     eax, ebx
+  00532        5b               pop     ebx
+  00533        8b e5            mov     esp, ebp
+  00535        5d               pop     ebp
+  00536        c3               ret     0
+_unz64local_GetCurrentFileInfoInternal ENDP
+; Function compile flags: /Ogtp
+_TEXT  ENDS
+;      COMDAT _unz64local_SearchCentralDir64
+_TEXT  SEGMENT
+_relativeOffset$ = -40                                 ; size = 8
+_uSizeFile$ = -40                                      ; size = 8
+_uPosFound$ = -32                                      ; size = 8
+_uBackRead$ = -24                                      ; size = 8
+_uMaxBack$ = -16                                       ; size = 8
+_uReadSize$82429 = -8                                  ; size = 4
+_uL$ = -4                                              ; size = 4
+_buf$ = -4                                             ; size = 4
+_pzlib_filefunc_def$ = 8                               ; size = 4
+_filestream$ = 12                                      ; size = 4
+_unz64local_SearchCentralDir64 PROC                    ; COMDAT
+
+; 480  : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+  00003        83 ec 2c         sub     esp, 44                        ; 0000002cH
+
+; 481  :     unsigned char* buf;
+; 482  :     ZPOS64_T uSizeFile;
+; 483  :     ZPOS64_T uBackRead;
+; 484  :     ZPOS64_T uMaxBack=0xffff; /* maximum size of global comment */
+; 485  :     ZPOS64_T uPosFound=0;
+; 486  :     uLong uL;
+; 487  :                 ZPOS64_T relativeOffset;
+; 488  : 
+; 489  :     if (ZSEEK64(*pzlib_filefunc_def,filestream,0,ZLIB_FILEFUNC_SEEK_END) != 0)
+
+  00006        8b 45 08         mov     eax, DWORD PTR _pzlib_filefunc_def$[ebp]
+  00009        53               push    ebx
+  0000a        8b 5d 0c         mov     ebx, DWORD PTR _filestream$[ebp]
+  0000d        56               push    esi
+  0000e        57               push    edi
+  0000f        33 ff            xor     edi, edi
+  00011        57               push    edi
+  00012        57               push    edi
+  00013        8d 57 02         lea     edx, DWORD PTR [edi+2]
+  00016        8b f3            mov     esi, ebx
+  00018        c7 45 f0 ff ff
+       00 00            mov     DWORD PTR _uMaxBack$[ebp], 65535 ; 0000ffffH
+  0001f        89 7d f4         mov     DWORD PTR _uMaxBack$[ebp+4], edi
+  00022        89 7d e0         mov     DWORD PTR _uPosFound$[ebp], edi
+  00025        89 7d e4         mov     DWORD PTR _uPosFound$[ebp+4], edi
+  00028        e8 00 00 00 00   call    _call_zseek64
+  0002d        83 c4 08         add     esp, 8
+  00030        85 c0            test    eax, eax
+  00032        74 0b            je      SHORT $LN25@unz64local@8
+$LN50@unz64local@8:
+
+; 490  :         return 0;
+
+  00034        33 c0            xor     eax, eax
+  00036        33 d2            xor     edx, edx
+
+; 573  : }
+
+  00038        5f               pop     edi
+  00039        5e               pop     esi
+  0003a        5b               pop     ebx
+  0003b        8b e5            mov     esp, ebp
+  0003d        5d               pop     ebp
+  0003e        c3               ret     0
+$LN25@unz64local@8:
+
+; 491  : 
+; 492  : 
+; 493  :     uSizeFile = ZTELL64(*pzlib_filefunc_def,filestream);
+
+  0003f        8b 45 08         mov     eax, DWORD PTR _pzlib_filefunc_def$[ebp]
+  00042        8b cb            mov     ecx, ebx
+  00044        e8 00 00 00 00   call    _call_ztell64
+  00049        8b f0            mov     esi, eax
+  0004b        89 75 d8         mov     DWORD PTR _uSizeFile$[ebp], esi
+  0004e        89 55 dc         mov     DWORD PTR _uSizeFile$[ebp+4], edx
+
+; 494  : 
+; 495  :     if (uMaxBack>uSizeFile)
+
+  00051        85 d2            test    edx, edx
+  00053        77 12            ja      SHORT $LN24@unz64local@8
+  00055        72 08            jb      SHORT $LN38@unz64local@8
+  00057        81 fe ff ff 00
+       00               cmp     esi, 65535             ; 0000ffffH
+  0005d        73 08            jae     SHORT $LN24@unz64local@8
+$LN38@unz64local@8:
+
+; 496  :         uMaxBack = uSizeFile;
+
+  0005f        89 75 f0         mov     DWORD PTR _uMaxBack$[ebp], esi
+  00062        89 55 f4         mov     DWORD PTR _uMaxBack$[ebp+4], edx
+  00065        8b fa            mov     edi, edx
+$LN24@unz64local@8:
+
+; 497  : 
+; 498  :     buf = (unsigned char*)ALLOC(BUFREADCOMMENT+4);
+
+  00067        68 04 04 00 00   push    1028                   ; 00000404H
+  0006c        e8 00 00 00 00   call    _malloc
+  00071        83 c4 04         add     esp, 4
+  00074        89 45 fc         mov     DWORD PTR _buf$[ebp], eax
+
+; 499  :     if (buf==NULL)
+
+  00077        85 c0            test    eax, eax
+
+; 500  :         return 0;
+
+  00079        74 b9            je      SHORT $LN50@unz64local@8
+
+; 501  : 
+; 502  :     uBackRead = 4;
+
+  0007b        33 c9            xor     ecx, ecx
+  0007d        ba 04 00 00 00   mov     edx, 4
+
+; 503  :     while (uBackRead<uMaxBack)
+
+  00082        3b cf            cmp     ecx, edi
+  00084        0f 87 07 01 00
+       00               ja      $LN42@unz64local@8
+  0008a        8b 45 f0         mov     eax, DWORD PTR _uMaxBack$[ebp]
+  0008d        72 20            jb      SHORT $LN22@unz64local@8
+  0008f        3b d0            cmp     edx, eax
+  00091        0f 83 fa 00 00
+       00               jae     $LN42@unz64local@8
+  00097        eb 16            jmp     SHORT $LN22@unz64local@8
+  00099        8d a4 24 00 00
+       00 00            npad    7
+$LL45@unz64local@8:
+  000a0        8b 75 d8         mov     esi, DWORD PTR _uSizeFile$[ebp]
+  000a3        8b 7d f4         mov     edi, DWORD PTR _uMaxBack$[ebp+4]
+  000a6        8b 55 e8         mov     edx, DWORD PTR _uBackRead$[ebp]
+  000a9        8b 4d ec         mov     ecx, DWORD PTR _uBackRead$[ebp+4]
+  000ac        8b 45 f0         mov     eax, DWORD PTR _uMaxBack$[ebp]
+$LN22@unz64local@8:
+
+; 504  :     {
+; 505  :         uLong uReadSize;
+; 506  :         ZPOS64_T uReadPos;
+; 507  :         int i;
+; 508  :         if (uBackRead+BUFREADCOMMENT>uMaxBack)
+
+  000af        81 c2 00 04 00
+       00               add     edx, 1024              ; 00000400H
+  000b5        83 d1 00         adc     ecx, 0
+  000b8        3b cf            cmp     ecx, edi
+  000ba        72 0e            jb      SHORT $LN20@unz64local@8
+  000bc        77 04            ja      SHORT $LN40@unz64local@8
+  000be        3b d0            cmp     edx, eax
+  000c0        76 08            jbe     SHORT $LN20@unz64local@8
+$LN40@unz64local@8:
+
+; 509  :             uBackRead = uMaxBack;
+
+  000c2        89 45 e8         mov     DWORD PTR _uBackRead$[ebp], eax
+  000c5        89 7d ec         mov     DWORD PTR _uBackRead$[ebp+4], edi
+
+; 510  :         else
+
+  000c8        eb 06            jmp     SHORT $LN19@unz64local@8
+$LN20@unz64local@8:
+
+; 511  :             uBackRead+=BUFREADCOMMENT;
+
+  000ca        89 55 e8         mov     DWORD PTR _uBackRead$[ebp], edx
+  000cd        89 4d ec         mov     DWORD PTR _uBackRead$[ebp+4], ecx
+$LN19@unz64local@8:
+
+; 512  :         uReadPos = uSizeFile-uBackRead ;
+
+  000d0        8b 5d dc         mov     ebx, DWORD PTR _uSizeFile$[ebp+4]
+
+; 513  : 
+; 514  :         uReadSize = ((BUFREADCOMMENT+4) < (uSizeFile-uReadPos)) ?
+; 515  :                      (BUFREADCOMMENT+4) : (uLong)(uSizeFile-uReadPos);
+
+  000d3        8b 45 dc         mov     eax, DWORD PTR _uSizeFile$[ebp+4]
+  000d6        8b fe            mov     edi, esi
+  000d8        2b 7d e8         sub     edi, DWORD PTR _uBackRead$[ebp]
+  000db        8b ce            mov     ecx, esi
+  000dd        1b 5d ec         sbb     ebx, DWORD PTR _uBackRead$[ebp+4]
+  000e0        2b cf            sub     ecx, edi
+  000e2        1b c3            sbb     eax, ebx
+  000e4        85 c0            test    eax, eax
+  000e6        72 13            jb      SHORT $LN28@unz64local@8
+  000e8        77 08            ja      SHORT $LN41@unz64local@8
+  000ea        81 f9 04 04 00
+       00               cmp     ecx, 1028              ; 00000404H
+  000f0        76 09            jbe     SHORT $LN28@unz64local@8
+$LN41@unz64local@8:
+  000f2        c7 45 f8 04 04
+       00 00            mov     DWORD PTR _uReadSize$82429[ebp], 1028 ; 00000404H
+  000f9        eb 05            jmp     SHORT $LN29@unz64local@8
+$LN28@unz64local@8:
+  000fb        2b f7            sub     esi, edi
+  000fd        89 75 f8         mov     DWORD PTR _uReadSize$82429[ebp], esi
+$LN29@unz64local@8:
+
+; 516  :         if (ZSEEK64(*pzlib_filefunc_def,filestream,uReadPos,ZLIB_FILEFUNC_SEEK_SET)!=0)
+
+  00100        8b 75 0c         mov     esi, DWORD PTR _filestream$[ebp]
+  00103        8b 45 08         mov     eax, DWORD PTR _pzlib_filefunc_def$[ebp]
+  00106        53               push    ebx
+  00107        57               push    edi
+  00108        33 d2            xor     edx, edx
+  0010a        e8 00 00 00 00   call    _call_zseek64
+  0010f        83 c4 08         add     esp, 8
+  00112        85 c0            test    eax, eax
+  00114        75 78            jne     SHORT $LN46@unz64local@8
+
+; 517  :             break;
+; 518  : 
+; 519  :         if (ZREAD64(*pzlib_filefunc_def,filestream,buf,uReadSize)!=uReadSize)
+
+  00116        8b 75 f8         mov     esi, DWORD PTR _uReadSize$82429[ebp]
+  00119        8b 45 fc         mov     eax, DWORD PTR _buf$[ebp]
+  0011c        8b 4d 0c         mov     ecx, DWORD PTR _filestream$[ebp]
+  0011f        56               push    esi
+  00120        50               push    eax
+  00121        8b 45 08         mov     eax, DWORD PTR _pzlib_filefunc_def$[ebp]
+  00124        8b 50 1c         mov     edx, DWORD PTR [eax+28]
+  00127        8b 40 04         mov     eax, DWORD PTR [eax+4]
+  0012a        51               push    ecx
+  0012b        52               push    edx
+  0012c        ff d0            call    eax
+  0012e        83 c4 10         add     esp, 16                        ; 00000010H
+  00131        3b c6            cmp     eax, esi
+  00133        75 59            jne     SHORT $LN46@unz64local@8
+
+; 520  :             break;
+; 521  : 
+; 522  :         for (i=(int)uReadSize-3; (i--)>0;)
+
+  00135        8d 46 fd         lea     eax, DWORD PTR [esi-3]
+  00138        85 c0            test    eax, eax
+  0013a        7e 38            jle     SHORT $LN37@unz64local@8
+  0013c        8d 64 24 00      npad    4
+$LL16@unz64local@8:
+
+; 523  :             if (((*(buf+i))==0x50) && ((*(buf+i+1))==0x4b) &&
+; 524  :                 ((*(buf+i+2))==0x06) && ((*(buf+i+3))==0x07))
+
+  00140        8b 4d fc         mov     ecx, DWORD PTR _buf$[ebp]
+  00143        48               dec     eax
+  00144        80 3c 08 50      cmp     BYTE PTR [eax+ecx], 80 ; 00000050H
+  00148        75 15            jne     SHORT $LN14@unz64local@8
+  0014a        80 7c 08 01 4b   cmp     BYTE PTR [eax+ecx+1], 75 ; 0000004bH
+  0014f        75 0e            jne     SHORT $LN14@unz64local@8
+  00151        80 7c 08 02 06   cmp     BYTE PTR [eax+ecx+2], 6
+  00156        75 07            jne     SHORT $LN14@unz64local@8
+  00158        80 7c 08 03 07   cmp     BYTE PTR [eax+ecx+3], 7
+  0015d        74 06            je      SHORT $LN32@unz64local@8
+$LN14@unz64local@8:
+
+; 520  :             break;
+; 521  : 
+; 522  :         for (i=(int)uReadSize-3; (i--)>0;)
+
+  0015f        85 c0            test    eax, eax
+  00161        7f dd            jg      SHORT $LL16@unz64local@8
+
+; 527  :                 break;
+; 528  :             }
+; 529  : 
+; 530  :         if (uPosFound!=0)
+
+  00163        eb 0f            jmp     SHORT $LN37@unz64local@8
+$LN32@unz64local@8:
+
+; 525  :             {
+; 526  :                 uPosFound = uReadPos+i;
+
+  00165        99               cdq
+  00166        03 c7            add     eax, edi
+  00168        13 d3            adc     edx, ebx
+  0016a        89 45 e0         mov     DWORD PTR _uPosFound$[ebp], eax
+
+; 527  :                 break;
+; 528  :             }
+; 529  : 
+; 530  :         if (uPosFound!=0)
+
+  0016d        0b c2            or      eax, edx
+  0016f        89 55 e4         mov     DWORD PTR _uPosFound$[ebp+4], edx
+  00172        75 1a            jne     SHORT $LN46@unz64local@8
+$LN37@unz64local@8:
+
+; 503  :     while (uBackRead<uMaxBack)
+
+  00174        8b 4d f4         mov     ecx, DWORD PTR _uMaxBack$[ebp+4]
+  00177        39 4d ec         cmp     DWORD PTR _uBackRead$[ebp+4], ecx
+  0017a        0f 82 20 ff ff
+       ff               jb      $LL45@unz64local@8
+  00180        77 0c            ja      SHORT $LN46@unz64local@8
+  00182        8b 55 f0         mov     edx, DWORD PTR _uMaxBack$[ebp]
+  00185        39 55 e8         cmp     DWORD PTR _uBackRead$[ebp], edx
+  00188        0f 82 12 ff ff
+       ff               jb      $LL45@unz64local@8
+$LN46@unz64local@8:
+  0018e        8b 5d 0c         mov     ebx, DWORD PTR _filestream$[ebp]
+$LN42@unz64local@8:
+
+; 531  :             break;
+; 532  :     }
+; 533  :     TRYFREE(buf);
+
+  00191        8b 45 fc         mov     eax, DWORD PTR _buf$[ebp]
+  00194        50               push    eax
+  00195        e8 00 00 00 00   call    _free
+
+; 534  :     if (uPosFound == 0)
+
+  0019a        8b 45 e0         mov     eax, DWORD PTR _uPosFound$[ebp]
+  0019d        8b 4d e4         mov     ecx, DWORD PTR _uPosFound$[ebp+4]
+  001a0        8b d0            mov     edx, eax
+  001a2        83 c4 04         add     esp, 4
+  001a5        0b d1            or      edx, ecx
+
+; 535  :         return 0;
+
+  001a7        0f 84 87 fe ff
+       ff               je      $LN50@unz64local@8
+
+; 536  : 
+; 537  :     /* Zip64 end of central directory locator */
+; 538  :     if (ZSEEK64(*pzlib_filefunc_def,filestream, uPosFound,ZLIB_FILEFUNC_SEEK_SET)!=0)
+
+  001ad        8b 7d 08         mov     edi, DWORD PTR _pzlib_filefunc_def$[ebp]
+  001b0        51               push    ecx
+  001b1        50               push    eax
+  001b2        33 d2            xor     edx, edx
+  001b4        8b f3            mov     esi, ebx
+  001b6        8b c7            mov     eax, edi
+  001b8        e8 00 00 00 00   call    _call_zseek64
+  001bd        83 c4 08         add     esp, 8
+  001c0        85 c0            test    eax, eax
+
+; 539  :         return 0;
+
+  001c2        0f 85 6c fe ff
+       ff               jne     $LN50@unz64local@8
+
+; 540  : 
+; 541  :     /* the signature, already checked */
+; 542  :     if (unz64local_getLong(pzlib_filefunc_def,filestream,&uL)!=UNZ_OK)
+
+  001c8        8d 45 fc         lea     eax, DWORD PTR _uL$[ebp]
+  001cb        50               push    eax
+  001cc        8b c3            mov     eax, ebx
+  001ce        8b cf            mov     ecx, edi
+  001d0        e8 00 00 00 00   call    _unz64local_getLong
+  001d5        83 c4 04         add     esp, 4
+  001d8        85 c0            test    eax, eax
+
+; 543  :         return 0;
+
+  001da        0f 85 54 fe ff
+       ff               jne     $LN50@unz64local@8
+
+; 544  : 
+; 545  :     /* number of the disk with the start of the zip64 end of  central directory */
+; 546  :     if (unz64local_getLong(pzlib_filefunc_def,filestream,&uL)!=UNZ_OK)
+
+  001e0        8d 4d fc         lea     ecx, DWORD PTR _uL$[ebp]
+  001e3        51               push    ecx
+  001e4        8b c3            mov     eax, ebx
+  001e6        8b cf            mov     ecx, edi
+  001e8        e8 00 00 00 00   call    _unz64local_getLong
+  001ed        83 c4 04         add     esp, 4
+  001f0        85 c0            test    eax, eax
+
+; 547  :         return 0;
+
+  001f2        0f 85 3c fe ff
+       ff               jne     $LN50@unz64local@8
+
+; 548  :     if (uL != 0)
+
+  001f8        39 45 fc         cmp     DWORD PTR _uL$[ebp], eax
+
+; 549  :         return 0;
+
+  001fb        0f 85 33 fe ff
+       ff               jne     $LN50@unz64local@8
+
+; 550  : 
+; 551  :     /* relative offset of the zip64 end of central directory record */
+; 552  :     if (unz64local_getLong64(pzlib_filefunc_def,filestream,&relativeOffset)!=UNZ_OK)
+
+  00201        8d 55 d8         lea     edx, DWORD PTR _relativeOffset$[ebp]
+  00204        52               push    edx
+  00205        8b c3            mov     eax, ebx
+  00207        8b cf            mov     ecx, edi
+  00209        e8 00 00 00 00   call    _unz64local_getLong64
+  0020e        83 c4 04         add     esp, 4
+  00211        85 c0            test    eax, eax
+
+; 553  :         return 0;
+
+  00213        0f 85 1b fe ff
+       ff               jne     $LN50@unz64local@8
+
+; 554  : 
+; 555  :     /* total number of disks */
+; 556  :     if (unz64local_getLong(pzlib_filefunc_def,filestream,&uL)!=UNZ_OK)
+
+  00219        8d 45 fc         lea     eax, DWORD PTR _uL$[ebp]
+  0021c        50               push    eax
+  0021d        8b c3            mov     eax, ebx
+  0021f        8b cf            mov     ecx, edi
+  00221        e8 00 00 00 00   call    _unz64local_getLong
+  00226        83 c4 04         add     esp, 4
+  00229        85 c0            test    eax, eax
+
+; 557  :         return 0;
+
+  0022b        0f 85 03 fe ff
+       ff               jne     $LN50@unz64local@8
+
+; 558  :     if (uL != 1)
+
+  00231        83 7d fc 01      cmp     DWORD PTR _uL$[ebp], 1
+
+; 559  :         return 0;
+
+  00235        0f 85 f9 fd ff
+       ff               jne     $LN50@unz64local@8
+
+; 560  : 
+; 561  :     /* Goto end of central directory record */
+; 562  :     if (ZSEEK64(*pzlib_filefunc_def,filestream, relativeOffset,ZLIB_FILEFUNC_SEEK_SET)!=0)
+
+  0023b        8b 4d dc         mov     ecx, DWORD PTR _relativeOffset$[ebp+4]
+  0023e        8b 55 d8         mov     edx, DWORD PTR _relativeOffset$[ebp]
+  00241        51               push    ecx
+  00242        52               push    edx
+  00243        33 d2            xor     edx, edx
+  00245        8b c7            mov     eax, edi
+  00247        e8 00 00 00 00   call    _call_zseek64
+  0024c        83 c4 08         add     esp, 8
+  0024f        85 c0            test    eax, eax
+
+; 563  :         return 0;
+
+  00251        0f 85 dd fd ff
+       ff               jne     $LN50@unz64local@8
+
+; 564  : 
+; 565  :      /* the signature */
+; 566  :     if (unz64local_getLong(pzlib_filefunc_def,filestream,&uL)!=UNZ_OK)
+
+  00257        8d 45 fc         lea     eax, DWORD PTR _uL$[ebp]
+  0025a        50               push    eax
+  0025b        8b c3            mov     eax, ebx
+  0025d        8b cf            mov     ecx, edi
+  0025f        e8 00 00 00 00   call    _unz64local_getLong
+  00264        83 c4 04         add     esp, 4
+  00267        85 c0            test    eax, eax
+
+; 567  :         return 0;
+
+  00269        0f 85 c5 fd ff
+       ff               jne     $LN50@unz64local@8
+
+; 568  : 
+; 569  :     if (uL != 0x06064b50)
+
+  0026f        81 7d fc 50 4b
+       06 06            cmp     DWORD PTR _uL$[ebp], 101075792 ; 06064b50H
+
+; 570  :         return 0;
+
+  00276        0f 85 b8 fd ff
+       ff               jne     $LN50@unz64local@8
+
+; 571  : 
+; 572  :     return relativeOffset;
+
+  0027c        8b 45 d8         mov     eax, DWORD PTR _relativeOffset$[ebp]
+  0027f        8b 55 dc         mov     edx, DWORD PTR _relativeOffset$[ebp+4]
+
+; 573  : }
+
+  00282        5f               pop     edi
+  00283        5e               pop     esi
+  00284        5b               pop     ebx
+  00285        8b e5            mov     esp, ebp
+  00287        5d               pop     ebp
+  00288        c3               ret     0
+_unz64local_SearchCentralDir64 ENDP
+PUBLIC _unzGoToFilePos64@8
+; Function compile flags: /Ogtp
+;      COMDAT _unzGoToFilePos64@8
+_TEXT  SEGMENT
+_file$ = 8                                             ; size = 4
+_file_pos$ = 12                                                ; size = 4
+_unzGoToFilePos64@8 PROC                               ; COMDAT
+
+; 1339 : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+  00003        56               push    esi
+
+; 1340 :     unz64_s* s;
+; 1341 :     int err;
+; 1342 : 
+; 1343 :     if (file==NULL || file_pos==NULL)
+
+  00004        8b 75 08         mov     esi, DWORD PTR _file$[ebp]
+  00007        85 f6            test    esi, esi
+  00009        74 59            je      SHORT $LN1@unzGoToFil
+  0000b        8b 45 0c         mov     eax, DWORD PTR _file_pos$[ebp]
+  0000e        85 c0            test    eax, eax
+  00010        74 52            je      SHORT $LN1@unzGoToFil
+
+; 1345 :     s=(unz64_s*)file;
+; 1346 : 
+; 1347 :     /* jump to the right spot */
+; 1348 :     s->pos_in_central_dir = file_pos->pos_in_zip_directory;
+
+  00012        8b 08            mov     ecx, DWORD PTR [eax]
+
+; 1349 :     s->num_file           = file_pos->num_of_file;
+; 1350 : 
+; 1351 :     /* set the current file */
+; 1352 :     err = unz64local_GetCurrentFileInfoInternal(file,&s->cur_file_info,
+; 1353 :                                                &s->cur_file_info_internal,
+; 1354 :                                                NULL,0,NULL,0,NULL,0);
+
+  00014        6a 00            push    0
+  00016        6a 00            push    0
+  00018        89 4e 58         mov     DWORD PTR [esi+88], ecx
+  0001b        8b 50 04         mov     edx, DWORD PTR [eax+4]
+  0001e        6a 00            push    0
+  00020        89 56 5c         mov     DWORD PTR [esi+92], edx
+  00023        8b 48 08         mov     ecx, DWORD PTR [eax+8]
+  00026        6a 00            push    0
+  00028        89 4e 50         mov     DWORD PTR [esi+80], ecx
+  0002b        8b 50 0c         mov     edx, DWORD PTR [eax+12]
+  0002e        6a 00            push    0
+  00030        6a 00            push    0
+  00032        8d 86 d8 00 00
+       00               lea     eax, DWORD PTR [esi+216]
+  00038        50               push    eax
+  00039        8d 8e 80 00 00
+       00               lea     ecx, DWORD PTR [esi+128]
+  0003f        51               push    ecx
+  00040        8b c6            mov     eax, esi
+  00042        89 56 54         mov     DWORD PTR [esi+84], edx
+  00045        e8 00 00 00 00   call    _unz64local_GetCurrentFileInfoInternal
+  0004a        8b c8            mov     ecx, eax
+
+; 1355 :     /* return results */
+; 1356 :     s->current_file_ok = (err == UNZ_OK);
+
+  0004c        33 c0            xor     eax, eax
+  0004e        83 c4 20         add     esp, 32                        ; 00000020H
+  00051        85 c9            test    ecx, ecx
+  00053        0f 94 c0         sete    al
+  00056        99               cdq
+  00057        89 46 60         mov     DWORD PTR [esi+96], eax
+  0005a        89 56 64         mov     DWORD PTR [esi+100], edx
+
+; 1357 :     return err;
+
+  0005d        8b c1            mov     eax, ecx
+
+; 1358 : }
+
+  0005f        5e               pop     esi
+  00060        5d               pop     ebp
+  00061        c2 08 00         ret     8
+$LN1@unzGoToFil:
+
+; 1344 :         return UNZ_PARAMERROR;
+
+  00064        b8 9a ff ff ff   mov     eax, -102              ; ffffff9aH
+
+; 1358 : }
+
+  00069        5e               pop     esi
+  0006a        5d               pop     ebp
+  0006b        c2 08 00         ret     8
+_unzGoToFilePos64@8 ENDP
+_TEXT  ENDS
+PUBLIC _unzGoToNextFile@4
+; Function compile flags: /Ogtp
+;      COMDAT _unzGoToNextFile@4
+_TEXT  SEGMENT
+_file$ = 8                                             ; size = 4
+_unzGoToNextFile@4 PROC                                        ; COMDAT
+
+; 1200 : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+  00003        56               push    esi
+
+; 1201 :     unz64_s* s;
+; 1202 :     int err;
+; 1203 : 
+; 1204 :     if (file==NULL)
+
+  00004        8b 75 08         mov     esi, DWORD PTR _file$[ebp]
+  00007        57               push    edi
+  00008        85 f6            test    esi, esi
+  0000a        75 09            jne     SHORT $LN4@unzGoToNex
+
+; 1205 :         return UNZ_PARAMERROR;
+
+  0000c        8d 46 9a         lea     eax, DWORD PTR [esi-102]
+
+; 1220 :     return err;
+; 1221 : }
+
+  0000f        5f               pop     edi
+  00010        5e               pop     esi
+  00011        5d               pop     ebp
+  00012        c2 04 00         ret     4
+$LN4@unzGoToNex:
+
+; 1206 :     s=(unz64_s*)file;
+; 1207 :     if (!s->current_file_ok)
+
+  00015        8b 46 60         mov     eax, DWORD PTR [esi+96]
+  00018        0b 46 64         or      eax, DWORD PTR [esi+100]
+  0001b        75 0b            jne     SHORT $LN3@unzGoToNex
+$LN8@unzGoToNex:
+
+; 1208 :         return UNZ_END_OF_LIST_OF_FILE;
+
+  0001d        b8 9c ff ff ff   mov     eax, -100              ; ffffff9cH
+
+; 1220 :     return err;
+; 1221 : }
+
+  00022        5f               pop     edi
+  00023        5e               pop     esi
+  00024        5d               pop     ebp
+  00025        c2 04 00         ret     4
+$LN3@unzGoToNex:
+
+; 1209 :     if (s->gi.number_entry != 0xffff)    /* 2^16 files overflow hack */
+
+  00028        8b 56 38         mov     edx, DWORD PTR [esi+56]
+  0002b        8b 7e 3c         mov     edi, DWORD PTR [esi+60]
+  0002e        81 fa ff ff 00
+       00               cmp     edx, 65535             ; 0000ffffH
+  00034        75 04            jne     SHORT $LN7@unzGoToNex
+  00036        85 ff            test    edi, edi
+  00038        74 14            je      SHORT $LN1@unzGoToNex
+$LN7@unzGoToNex:
+
+; 1210 :       if (s->num_file+1==s->gi.number_entry)
+
+  0003a        8b 46 50         mov     eax, DWORD PTR [esi+80]
+  0003d        8b 4e 54         mov     ecx, DWORD PTR [esi+84]
+  00040        83 c0 01         add     eax, 1
+  00043        83 d1 00         adc     ecx, 0
+  00046        3b c2            cmp     eax, edx
+  00048        75 04            jne     SHORT $LN1@unzGoToNex
+  0004a        3b cf            cmp     ecx, edi
+
+; 1211 :         return UNZ_END_OF_LIST_OF_FILE;
+
+  0004c        74 cf            je      SHORT $LN8@unzGoToNex
+$LN1@unzGoToNex:
+
+; 1212 : 
+; 1213 :     s->pos_in_central_dir += SIZECENTRALDIRITEM + s->cur_file_info.size_filename +
+; 1214 :             s->cur_file_info.size_file_extra + s->cur_file_info.size_file_comment ;
+
+  0004e        8b 8e b0 00 00
+       00               mov     ecx, DWORD PTR [esi+176]
+  00054        03 8e ac 00 00
+       00               add     ecx, DWORD PTR [esi+172]
+  0005a        8b 96 a8 00 00
+       00               mov     edx, DWORD PTR [esi+168]
+
+; 1215 :     s->num_file++;
+; 1216 :     err = unz64local_GetCurrentFileInfoInternal(file,&s->cur_file_info,
+; 1217 :                                                &s->cur_file_info_internal,
+; 1218 :                                                NULL,0,NULL,0,NULL,0);
+
+  00060        6a 00            push    0
+  00062        6a 00            push    0
+  00064        8d 44 11 2e      lea     eax, DWORD PTR [ecx+edx+46]
+  00068        01 46 58         add     DWORD PTR [esi+88], eax
+  0006b        6a 00            push    0
+  0006d        6a 00            push    0
+  0006f        83 56 5c 00      adc     DWORD PTR [esi+92], 0
+  00073        83 46 50 01      add     DWORD PTR [esi+80], 1
+  00077        6a 00            push    0
+  00079        6a 00            push    0
+  0007b        83 56 54 00      adc     DWORD PTR [esi+84], 0
+  0007f        8d 8e d8 00 00
+       00               lea     ecx, DWORD PTR [esi+216]
+  00085        51               push    ecx
+  00086        8d 96 80 00 00
+       00               lea     edx, DWORD PTR [esi+128]
+  0008c        52               push    edx
+  0008d        8b c6            mov     eax, esi
+  0008f        e8 00 00 00 00   call    _unz64local_GetCurrentFileInfoInternal
+  00094        8b c8            mov     ecx, eax
+
+; 1219 :     s->current_file_ok = (err == UNZ_OK);
+
+  00096        33 c0            xor     eax, eax
+  00098        83 c4 20         add     esp, 32                        ; 00000020H
+  0009b        85 c9            test    ecx, ecx
+  0009d        0f 94 c0         sete    al
+
+; 1220 :     return err;
+; 1221 : }
+
+  000a0        5f               pop     edi
+  000a1        99               cdq
+  000a2        89 46 60         mov     DWORD PTR [esi+96], eax
+  000a5        89 56 64         mov     DWORD PTR [esi+100], edx
+  000a8        8b c1            mov     eax, ecx
+  000aa        5e               pop     esi
+  000ab        5d               pop     ebp
+  000ac        c2 04 00         ret     4
+_unzGoToNextFile@4 ENDP
+_TEXT  ENDS
+PUBLIC _unzGoToFirstFile@4
+; Function compile flags: /Ogtp
+;      COMDAT _unzGoToFirstFile@4
+_TEXT  SEGMENT
+_file$ = 8                                             ; size = 4
+_unzGoToFirstFile@4 PROC                               ; COMDAT
+
+; 1179 : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+  00003        56               push    esi
+
+; 1180 :     int err=UNZ_OK;
+; 1181 :     unz64_s* s;
+; 1182 :     if (file==NULL)
+
+  00004        8b 75 08         mov     esi, DWORD PTR _file$[ebp]
+  00007        85 f6            test    esi, esi
+  00009        75 08            jne     SHORT $LN1@unzGoToFir
+
+; 1183 :         return UNZ_PARAMERROR;
+
+  0000b        8d 46 9a         lea     eax, DWORD PTR [esi-102]
+
+; 1192 : }
+
+  0000e        5e               pop     esi
+  0000f        5d               pop     ebp
+  00010        c2 04 00         ret     4
+$LN1@unzGoToFir:
+
+; 1184 :     s=(unz64_s*)file;
+; 1185 :     s->pos_in_central_dir=s->offset_central_dir;
+
+  00013        8b 46 78         mov     eax, DWORD PTR [esi+120]
+  00016        8b 4e 7c         mov     ecx, DWORD PTR [esi+124]
+
+; 1186 :     s->num_file=0;
+; 1187 :     err=unz64local_GetCurrentFileInfoInternal(file,&s->cur_file_info,
+; 1188 :                                              &s->cur_file_info_internal,
+; 1189 :                                              NULL,0,NULL,0,NULL,0);
+
+  00019        6a 00            push    0
+  0001b        6a 00            push    0
+  0001d        6a 00            push    0
+  0001f        6a 00            push    0
+  00021        6a 00            push    0
+  00023        89 46 58         mov     DWORD PTR [esi+88], eax
+  00026        6a 00            push    0
+  00028        8d 96 d8 00 00
+       00               lea     edx, DWORD PTR [esi+216]
+  0002e        52               push    edx
+  0002f        8d 86 80 00 00
+       00               lea     eax, DWORD PTR [esi+128]
+  00035        50               push    eax
+  00036        8b c6            mov     eax, esi
+  00038        89 4e 5c         mov     DWORD PTR [esi+92], ecx
+  0003b        c7 46 50 00 00
+       00 00            mov     DWORD PTR [esi+80], 0
+  00042        c7 46 54 00 00
+       00 00            mov     DWORD PTR [esi+84], 0
+  00049        e8 00 00 00 00   call    _unz64local_GetCurrentFileInfoInternal
+  0004e        8b c8            mov     ecx, eax
+
+; 1190 :     s->current_file_ok = (err == UNZ_OK);
+
+  00050        33 c0            xor     eax, eax
+  00052        83 c4 20         add     esp, 32                        ; 00000020H
+  00055        85 c9            test    ecx, ecx
+  00057        0f 94 c0         sete    al
+  0005a        99               cdq
+  0005b        89 46 60         mov     DWORD PTR [esi+96], eax
+  0005e        89 56 64         mov     DWORD PTR [esi+100], edx
+
+; 1191 :     return err;
+
+  00061        8b c1            mov     eax, ecx
+
+; 1192 : }
+
+  00063        5e               pop     esi
+  00064        5d               pop     ebp
+  00065        c2 04 00         ret     4
+_unzGoToFirstFile@4 ENDP
+_TEXT  ENDS
+PUBLIC _unzGetCurrentFileInfo@32
+; Function compile flags: /Ogtp
+;      COMDAT _unzGetCurrentFileInfo@32
+_TEXT  SEGMENT
+_file_info64$ = -88                                    ; size = 88
+_file$ = 8                                             ; size = 4
+_pfile_info$ = 12                                      ; size = 4
+_szFileName$ = 16                                      ; size = 4
+_fileNameBufferSize$ = 20                              ; size = 4
+_extraField$ = 24                                      ; size = 4
+_extraFieldBufferSize$ = 28                            ; size = 4
+_szComment$ = 32                                       ; size = 4
+_commentBufferSize$ = 36                               ; size = 4
+_unzGetCurrentFileInfo@32 PROC                         ; COMDAT
+
+; 1141 : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+  00003        83 e4 f8         and     esp, -8                        ; fffffff8H
+
+; 1142 :     int err;
+; 1143 :     unz_file_info64 file_info64;
+; 1144 :     err = unz64local_GetCurrentFileInfoInternal(file,&file_info64,NULL,
+; 1145 :                                                 szFileName,fileNameBufferSize,
+; 1146 :                                                 extraField,extraFieldBufferSize,
+; 1147 :                                                 szComment,commentBufferSize);
+
+  00006        8b 45 24         mov     eax, DWORD PTR _commentBufferSize$[ebp]
+  00009        8b 4d 20         mov     ecx, DWORD PTR _szComment$[ebp]
+  0000c        8b 55 1c         mov     edx, DWORD PTR _extraFieldBufferSize$[ebp]
+  0000f        83 ec 58         sub     esp, 88                        ; 00000058H
+  00012        50               push    eax
+  00013        8b 45 18         mov     eax, DWORD PTR _extraField$[ebp]
+  00016        51               push    ecx
+  00017        8b 4d 14         mov     ecx, DWORD PTR _fileNameBufferSize$[ebp]
+  0001a        52               push    edx
+  0001b        8b 55 10         mov     edx, DWORD PTR _szFileName$[ebp]
+  0001e        50               push    eax
+  0001f        51               push    ecx
+  00020        52               push    edx
+  00021        8d 44 24 18      lea     eax, DWORD PTR _file_info64$[esp+112]
+  00025        6a 00            push    0
+  00027        50               push    eax
+  00028        8b 45 08         mov     eax, DWORD PTR _file$[ebp]
+  0002b        e8 00 00 00 00   call    _unz64local_GetCurrentFileInfoInternal
+  00030        83 c4 20         add     esp, 32                        ; 00000020H
+
+; 1148 :     if ((err==UNZ_OK) && (pfile_info != NULL))
+
+  00033        85 c0            test    eax, eax
+  00035        0f 85 95 00 00
+       00               jne     $LN1@unzGetCurr@2
+  0003b        8b 4d 0c         mov     ecx, DWORD PTR _pfile_info$[ebp]
+  0003e        85 c9            test    ecx, ecx
+  00040        0f 84 8a 00 00
+       00               je      $LN1@unzGetCurr@2
+
+; 1149 :     {
+; 1150 :         pfile_info->version = file_info64.version;
+
+  00046        8b 14 24         mov     edx, DWORD PTR _file_info64$[esp+88]
+  00049        89 11            mov     DWORD PTR [ecx], edx
+
+; 1151 :         pfile_info->version_needed = file_info64.version_needed;
+
+  0004b        8b 54 24 04      mov     edx, DWORD PTR _file_info64$[esp+92]
+  0004f        89 51 04         mov     DWORD PTR [ecx+4], edx
+
+; 1152 :         pfile_info->flag = file_info64.flag;
+
+  00052        8b 54 24 08      mov     edx, DWORD PTR _file_info64$[esp+96]
+  00056        89 51 08         mov     DWORD PTR [ecx+8], edx
+
+; 1153 :         pfile_info->compression_method = file_info64.compression_method;
+
+  00059        8b 54 24 0c      mov     edx, DWORD PTR _file_info64$[esp+100]
+  0005d        89 51 0c         mov     DWORD PTR [ecx+12], edx
+
+; 1154 :         pfile_info->dosDate = file_info64.dosDate;
+
+  00060        8b 54 24 10      mov     edx, DWORD PTR _file_info64$[esp+104]
+  00064        89 51 10         mov     DWORD PTR [ecx+16], edx
+
+; 1155 :         pfile_info->crc = file_info64.crc;
+
+  00067        8b 54 24 14      mov     edx, DWORD PTR _file_info64$[esp+108]
+  0006b        89 51 14         mov     DWORD PTR [ecx+20], edx
+
+; 1156 : 
+; 1157 :         pfile_info->size_filename = file_info64.size_filename;
+
+  0006e        8b 54 24 28      mov     edx, DWORD PTR _file_info64$[esp+128]
+  00072        89 51 20         mov     DWORD PTR [ecx+32], edx
+
+; 1158 :         pfile_info->size_file_extra = file_info64.size_file_extra;
+
+  00075        8b 54 24 2c      mov     edx, DWORD PTR _file_info64$[esp+132]
+  00079        89 51 24         mov     DWORD PTR [ecx+36], edx
+
+; 1159 :         pfile_info->size_file_comment = file_info64.size_file_comment;
+
+  0007c        8b 54 24 30      mov     edx, DWORD PTR _file_info64$[esp+136]
+  00080        89 51 28         mov     DWORD PTR [ecx+40], edx
+
+; 1160 : 
+; 1161 :         pfile_info->disk_num_start = file_info64.disk_num_start;
+
+  00083        8b 54 24 34      mov     edx, DWORD PTR _file_info64$[esp+140]
+  00087        89 51 2c         mov     DWORD PTR [ecx+44], edx
+
+; 1162 :         pfile_info->internal_fa = file_info64.internal_fa;
+
+  0008a        8b 54 24 38      mov     edx, DWORD PTR _file_info64$[esp+144]
+  0008e        89 51 30         mov     DWORD PTR [ecx+48], edx
+
+; 1163 :         pfile_info->external_fa = file_info64.external_fa;
+
+  00091        8b 54 24 3c      mov     edx, DWORD PTR _file_info64$[esp+148]
+  00095        89 51 34         mov     DWORD PTR [ecx+52], edx
+
+; 1164 : 
+; 1165 :         pfile_info->tmu_date = file_info64.tmu_date,
+; 1166 : 
+; 1167 : 
+; 1168 :         pfile_info->compressed_size = (uLong)file_info64.compressed_size;
+
+  00098        8b 54 24 40      mov     edx, DWORD PTR _file_info64$[esp+152]
+  0009c        89 51 38         mov     DWORD PTR [ecx+56], edx
+  0009f        8b 54 24 44      mov     edx, DWORD PTR _file_info64$[esp+156]
+  000a3        89 51 3c         mov     DWORD PTR [ecx+60], edx
+  000a6        8b 54 24 48      mov     edx, DWORD PTR _file_info64$[esp+160]
+  000aa        89 51 40         mov     DWORD PTR [ecx+64], edx
+  000ad        8b 54 24 4c      mov     edx, DWORD PTR _file_info64$[esp+164]
+  000b1        89 51 44         mov     DWORD PTR [ecx+68], edx
+  000b4        8b 54 24 50      mov     edx, DWORD PTR _file_info64$[esp+168]
+  000b8        89 51 48         mov     DWORD PTR [ecx+72], edx
+  000bb        8b 54 24 54      mov     edx, DWORD PTR _file_info64$[esp+172]
+  000bf        89 51 4c         mov     DWORD PTR [ecx+76], edx
+  000c2        8b 54 24 18      mov     edx, DWORD PTR _file_info64$[esp+112]
+  000c6        89 51 18         mov     DWORD PTR [ecx+24], edx
+
+; 1169 :         pfile_info->uncompressed_size = (uLong)file_info64.uncompressed_size;
+
+  000c9        8b 54 24 20      mov     edx, DWORD PTR _file_info64$[esp+120]
+  000cd        89 51 1c         mov     DWORD PTR [ecx+28], edx
+$LN1@unzGetCurr@2:
+
+; 1170 : 
+; 1171 :     }
+; 1172 :     return err;
+; 1173 : }
+
+  000d0        8b e5            mov     esp, ebp
+  000d2        5d               pop     ebp
+  000d3        c2 20 00         ret     32                     ; 00000020H
+_unzGetCurrentFileInfo@32 ENDP
+_TEXT  ENDS
+PUBLIC _unzGetCurrentFileInfo64@32
+; Function compile flags: /Ogtp
+;      COMDAT _unzGetCurrentFileInfo64@32
+_TEXT  SEGMENT
+_file$ = 8                                             ; size = 4
+_pfile_info$ = 12                                      ; size = 4
+_szFileName$ = 16                                      ; size = 4
+_fileNameBufferSize$ = 20                              ; size = 4
+_extraField$ = 24                                      ; size = 4
+_extraFieldBufferSize$ = 28                            ; size = 4
+_szComment$ = 32                                       ; size = 4
+_commentBufferSize$ = 36                               ; size = 4
+_unzGetCurrentFileInfo64@32 PROC                       ; COMDAT
+
+; 1129 : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+
+; 1130 :     return unz64local_GetCurrentFileInfoInternal(file,pfile_info,NULL,
+; 1131 :                                                 szFileName,fileNameBufferSize,
+; 1132 :                                                 extraField,extraFieldBufferSize,
+; 1133 :                                                 szComment,commentBufferSize);
+
+  00003        8b 45 24         mov     eax, DWORD PTR _commentBufferSize$[ebp]
+  00006        8b 4d 20         mov     ecx, DWORD PTR _szComment$[ebp]
+  00009        8b 55 1c         mov     edx, DWORD PTR _extraFieldBufferSize$[ebp]
+  0000c        50               push    eax
+  0000d        8b 45 18         mov     eax, DWORD PTR _extraField$[ebp]
+  00010        51               push    ecx
+  00011        8b 4d 14         mov     ecx, DWORD PTR _fileNameBufferSize$[ebp]
+  00014        52               push    edx
+  00015        8b 55 10         mov     edx, DWORD PTR _szFileName$[ebp]
+  00018        50               push    eax
+  00019        8b 45 0c         mov     eax, DWORD PTR _pfile_info$[ebp]
+  0001c        51               push    ecx
+  0001d        52               push    edx
+  0001e        6a 00            push    0
+  00020        50               push    eax
+  00021        8b 45 08         mov     eax, DWORD PTR _file$[ebp]
+  00024        e8 00 00 00 00   call    _unz64local_GetCurrentFileInfoInternal
+  00029        83 c4 20         add     esp, 32                        ; 00000020H
+
+; 1134 : }
+
+  0002c        5d               pop     ebp
+  0002d        c2 20 00         ret     32                     ; 00000020H
+_unzGetCurrentFileInfo64@32 ENDP
+; Function compile flags: /Ogtp
+_TEXT  ENDS
+;      COMDAT _unzOpenInternal
+_TEXT  SEGMENT
+_number_entry_CD$ = -272                               ; size = 8
+_uL$ = -272                                            ; size = 4
+_number_disk_with_CD$ = -260                           ; size = 4
+_number_disk$ = -256                                   ; size = 4
+_uS$82482 = -256                                       ; size = 4
+_uL64$82483 = -256                                     ; size = 8
+_central_pos$ = -248                                   ; size = 8
+_us$ = -240                                            ; size = 240
+_path$ = 8                                             ; size = 4
+_is64bitOpenFunction$ = 12                             ; size = 4
+_unzOpenInternal PROC                                  ; COMDAT
+; _pzlib_filefunc64_32_def$ = eax
+
+; 587  : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+  00003        83 e4 f8         and     esp, -8                        ; fffffff8H
+  00006        81 ec 14 01 00
+       00               sub     esp, 276               ; 00000114H
+  0000c        53               push    ebx
+  0000d        56               push    esi
+
+; 588  :     unz64_s us;
+; 589  :     unz64_s *s;
+; 590  :     ZPOS64_T central_pos;
+; 591  :     uLong   uL;
+; 592  : 
+; 593  :     uLong number_disk;          /* number of the current dist, used for
+; 594  :                                    spaning ZIP, unsupported, always 0*/
+; 595  :     uLong number_disk_with_CD;  /* number the the disk with central dir, used
+; 596  :                                    for spaning ZIP, unsupported, always 0*/
+; 597  :     ZPOS64_T number_entry_CD;      /* total number of entries in
+; 598  :                                    the central dir
+; 599  :                                    (same than number_entry on nospan) */
+; 600  : 
+; 601  :     int err=UNZ_OK;
+
+  0000e        33 db            xor     ebx, ebx
+  00010        8b f0            mov     esi, eax
+  00012        57               push    edi
+
+; 602  : 
+; 603  :     if (unz_copyright[0]!=' ')
+; 604  :         return NULL;
+; 605  : 
+; 606  :     us.z_filefunc.zseek32_file = NULL;
+
+  00013        89 5c 24 58      mov     DWORD PTR _us$[esp+328], ebx
+
+; 607  :     us.z_filefunc.ztell32_file = NULL;
+
+  00017        89 5c 24 54      mov     DWORD PTR _us$[esp+324], ebx
+
+; 608  :     if (pzlib_filefunc64_32_def==NULL)
+
+  0001b        3b f3            cmp     esi, ebx
+  0001d        75 0b            jne     SHORT $LN33@unzOpenInt
+
+; 609  :         fill_fopen64_filefunc(&us.z_filefunc.zfile_func64);
+
+  0001f        8d 44 24 30      lea     eax, DWORD PTR _us$[esp+288]
+  00023        e8 00 00 00 00   call    _fill_fopen64_filefunc
+
+; 610  :     else
+
+  00028        eb 0b            jmp     SHORT $LN32@unzOpenInt
+$LN33@unzOpenInt:
+
+; 611  :         us.z_filefunc = *pzlib_filefunc64_32_def;
+
+  0002a        b9 0b 00 00 00   mov     ecx, 11                        ; 0000000bH
+  0002f        8d 7c 24 30      lea     edi, DWORD PTR _us$[esp+288]
+  00033        f3 a5            rep movsd
+$LN32@unzOpenInt:
+
+; 612  :     us.is64bitOpenFunction = is64bitOpenFunction;
+
+  00035        8b 45 0c         mov     eax, DWORD PTR _is64bitOpenFunction$[ebp]
+
+; 613  : 
+; 614  : 
+; 615  : 
+; 616  :     us.filestream = ZOPEN64(us.z_filefunc,
+; 617  :                                                  path,
+; 618  :                                                  ZLIB_FILEFUNC_MODE_READ |
+; 619  :                                                  ZLIB_FILEFUNC_MODE_EXISTING);
+
+  00038        8b 75 08         mov     esi, DWORD PTR _path$[ebp]
+  0003b        89 44 24 5c      mov     DWORD PTR _us$[esp+332], eax
+  0003f        ba 05 00 00 00   mov     edx, 5
+  00044        8d 44 24 30      lea     eax, DWORD PTR _us$[esp+288]
+  00048        e8 00 00 00 00   call    _call_zopen64
+
+; 620  :     if (us.filestream==NULL)
+
+  0004d        33 ff            xor     edi, edi
+  0004f        89 44 24 60      mov     DWORD PTR _us$[esp+336], eax
+  00053        3b c7            cmp     eax, edi
+
+; 621  :         return NULL;
+
+  00055        0f 84 39 03 00
+       00               je      $LN47@unzOpenInt
+
+; 622  : 
+; 623  :     central_pos = unz64local_SearchCentralDir64(&us.z_filefunc,us.filestream);
+
+  0005b        50               push    eax
+  0005c        8d 4c 24 34      lea     ecx, DWORD PTR _us$[esp+292]
+  00060        51               push    ecx
+  00061        e8 00 00 00 00   call    _unz64local_SearchCentralDir64
+
+; 624  :     if (central_pos)
+
+  00066        8b c8            mov     ecx, eax
+  00068        83 c4 08         add     esp, 8
+  0006b        0b ca            or      ecx, edx
+  0006d        89 44 24 28      mov     DWORD PTR _central_pos$[esp+288], eax
+  00071        89 54 24 2c      mov     DWORD PTR _central_pos$[esp+292], edx
+  00075        0f 84 64 01 00
+       00               je      $LN30@unzOpenInt
+
+; 625  :     {
+; 626  :         uLong uS;
+; 627  :         ZPOS64_T uL64;
+; 628  : 
+; 629  :         us.isZip64 = 1;
+; 630  : 
+; 631  :         if (ZSEEK64(us.z_filefunc, us.filestream,
+; 632  :                                       central_pos,ZLIB_FILEFUNC_SEEK_SET)!=0)
+
+  0007b        8b 74 24 60      mov     esi, DWORD PTR _us$[esp+336]
+  0007f        52               push    edx
+  00080        50               push    eax
+  00081        33 d2            xor     edx, edx
+  00083        8d 44 24 38      lea     eax, DWORD PTR _us$[esp+296]
+  00087        c7 84 24 20 01
+       00 00 01 00 00
+       00               mov     DWORD PTR _us$[esp+528], 1
+  00092        e8 00 00 00 00   call    _call_zseek64
+  00097        83 c4 08         add     esp, 8
+  0009a        85 c0            test    eax, eax
+  0009c        74 03            je      SHORT $LN29@unzOpenInt
+
+; 633  :         err=UNZ_ERRNO;
+
+  0009e        83 cb ff         or      ebx, -1
+$LN29@unzOpenInt:
+
+; 634  : 
+; 635  :         /* the signature, already checked */
+; 636  :         if (unz64local_getLong(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK)
+
+  000a1        8d 54 24 10      lea     edx, DWORD PTR _uL$[esp+288]
+  000a5        52               push    edx
+  000a6        8b c6            mov     eax, esi
+  000a8        8d 4c 24 34      lea     ecx, DWORD PTR _us$[esp+292]
+  000ac        e8 00 00 00 00   call    _unz64local_getLong
+  000b1        83 c4 04         add     esp, 4
+  000b4        85 c0            test    eax, eax
+  000b6        74 03            je      SHORT $LN28@unzOpenInt
+
+; 637  :             err=UNZ_ERRNO;
+
+  000b8        83 cb ff         or      ebx, -1
+$LN28@unzOpenInt:
+
+; 638  : 
+; 639  :         /* size of zip64 end of central directory record */
+; 640  :         if (unz64local_getLong64(&us.z_filefunc, us.filestream,&uL64)!=UNZ_OK)
+
+  000bb        8d 44 24 20      lea     eax, DWORD PTR _uL64$82483[esp+288]
+  000bf        50               push    eax
+  000c0        8b c6            mov     eax, esi
+  000c2        8d 4c 24 34      lea     ecx, DWORD PTR _us$[esp+292]
+  000c6        e8 00 00 00 00   call    _unz64local_getLong64
+  000cb        83 c4 04         add     esp, 4
+  000ce        85 c0            test    eax, eax
+  000d0        74 03            je      SHORT $LN27@unzOpenInt
+
+; 641  :             err=UNZ_ERRNO;
+
+  000d2        83 cb ff         or      ebx, -1
+$LN27@unzOpenInt:
+
+; 642  : 
+; 643  :         /* version made by */
+; 644  :         if (unz64local_getShort(&us.z_filefunc, us.filestream,&uS)!=UNZ_OK)
+
+  000d5        8d 4c 24 20      lea     ecx, DWORD PTR _uS$82482[esp+288]
+  000d9        51               push    ecx
+  000da        8b c6            mov     eax, esi
+  000dc        8d 4c 24 34      lea     ecx, DWORD PTR _us$[esp+292]
+  000e0        e8 00 00 00 00   call    _unz64local_getShort
+  000e5        83 c4 04         add     esp, 4
+  000e8        85 c0            test    eax, eax
+  000ea        74 03            je      SHORT $LN26@unzOpenInt
+
+; 645  :             err=UNZ_ERRNO;
+
+  000ec        83 cb ff         or      ebx, -1
+$LN26@unzOpenInt:
+
+; 646  : 
+; 647  :         /* version needed to extract */
+; 648  :         if (unz64local_getShort(&us.z_filefunc, us.filestream,&uS)!=UNZ_OK)
+
+  000ef        8d 54 24 20      lea     edx, DWORD PTR _uS$82482[esp+288]
+  000f3        52               push    edx
+  000f4        8b c6            mov     eax, esi
+  000f6        8d 4c 24 34      lea     ecx, DWORD PTR _us$[esp+292]
+  000fa        e8 00 00 00 00   call    _unz64local_getShort
+  000ff        83 c4 04         add     esp, 4
+  00102        85 c0            test    eax, eax
+  00104        74 03            je      SHORT $LN25@unzOpenInt
+
+; 649  :             err=UNZ_ERRNO;
+
+  00106        83 cb ff         or      ebx, -1
+$LN25@unzOpenInt:
+
+; 650  : 
+; 651  :         /* number of this disk */
+; 652  :         if (unz64local_getLong(&us.z_filefunc, us.filestream,&number_disk)!=UNZ_OK)
+
+  00109        8d 44 24 20      lea     eax, DWORD PTR _number_disk$[esp+288]
+  0010d        50               push    eax
+  0010e        8b c6            mov     eax, esi
+  00110        8d 4c 24 34      lea     ecx, DWORD PTR _us$[esp+292]
+  00114        e8 00 00 00 00   call    _unz64local_getLong
+  00119        83 c4 04         add     esp, 4
+  0011c        85 c0            test    eax, eax
+  0011e        74 03            je      SHORT $LN24@unzOpenInt
+
+; 653  :             err=UNZ_ERRNO;
+
+  00120        83 cb ff         or      ebx, -1
+$LN24@unzOpenInt:
+
+; 654  : 
+; 655  :         /* number of the disk with the start of the central directory */
+; 656  :         if (unz64local_getLong(&us.z_filefunc, us.filestream,&number_disk_with_CD)!=UNZ_OK)
+
+  00123        8d 4c 24 1c      lea     ecx, DWORD PTR _number_disk_with_CD$[esp+288]
+  00127        51               push    ecx
+  00128        8b c6            mov     eax, esi
+  0012a        8d 4c 24 34      lea     ecx, DWORD PTR _us$[esp+292]
+  0012e        e8 00 00 00 00   call    _unz64local_getLong
+  00133        83 c4 04         add     esp, 4
+  00136        85 c0            test    eax, eax
+  00138        74 03            je      SHORT $LN23@unzOpenInt
+
+; 657  :             err=UNZ_ERRNO;
+
+  0013a        83 cb ff         or      ebx, -1
+$LN23@unzOpenInt:
+
+; 658  : 
+; 659  :         /* total number of entries in the central directory on this disk */
+; 660  :         if (unz64local_getLong64(&us.z_filefunc, us.filestream,&us.gi.number_entry)!=UNZ_OK)
+
+  0013d        8d 54 24 68      lea     edx, DWORD PTR _us$[esp+344]
+  00141        52               push    edx
+  00142        8b c6            mov     eax, esi
+  00144        8d 4c 24 34      lea     ecx, DWORD PTR _us$[esp+292]
+  00148        e8 00 00 00 00   call    _unz64local_getLong64
+  0014d        83 c4 04         add     esp, 4
+  00150        85 c0            test    eax, eax
+  00152        74 03            je      SHORT $LN22@unzOpenInt
+
+; 661  :             err=UNZ_ERRNO;
+
+  00154        83 cb ff         or      ebx, -1
+$LN22@unzOpenInt:
+
+; 662  : 
+; 663  :         /* total number of entries in the central directory */
+; 664  :         if (unz64local_getLong64(&us.z_filefunc, us.filestream,&number_entry_CD)!=UNZ_OK)
+
+  00157        8b 74 24 60      mov     esi, DWORD PTR _us$[esp+336]
+  0015b        8d 44 24 10      lea     eax, DWORD PTR _number_entry_CD$[esp+288]
+  0015f        50               push    eax
+  00160        8b c6            mov     eax, esi
+  00162        8d 4c 24 34      lea     ecx, DWORD PTR _us$[esp+292]
+  00166        e8 00 00 00 00   call    _unz64local_getLong64
+  0016b        83 c4 04         add     esp, 4
+  0016e        85 c0            test    eax, eax
+  00170        74 03            je      SHORT $LN21@unzOpenInt
+
+; 665  :             err=UNZ_ERRNO;
+
+  00172        83 cb ff         or      ebx, -1
+$LN21@unzOpenInt:
+
+; 666  : 
+; 667  :         if ((number_entry_CD!=us.gi.number_entry) ||
+; 668  :             (number_disk_with_CD!=0) ||
+; 669  :             (number_disk!=0))
+
+  00175        8b 4c 24 10      mov     ecx, DWORD PTR _number_entry_CD$[esp+288]
+  00179        3b 4c 24 68      cmp     ecx, DWORD PTR _us$[esp+344]
+  0017d        75 16            jne     SHORT $LN19@unzOpenInt
+  0017f        8b 54 24 14      mov     edx, DWORD PTR _number_entry_CD$[esp+292]
+  00183        3b 54 24 6c      cmp     edx, DWORD PTR _us$[esp+348]
+  00187        75 0c            jne     SHORT $LN19@unzOpenInt
+  00189        39 7c 24 1c      cmp     DWORD PTR _number_disk_with_CD$[esp+288], edi
+  0018d        75 06            jne     SHORT $LN19@unzOpenInt
+  0018f        39 7c 24 20      cmp     DWORD PTR _number_disk$[esp+288], edi
+  00193        74 05            je      SHORT $LN20@unzOpenInt
+$LN19@unzOpenInt:
+
+; 670  :             err=UNZ_BADZIPFILE;
+
+  00195        bb 99 ff ff ff   mov     ebx, -103              ; ffffff99H
+$LN20@unzOpenInt:
+
+; 671  : 
+; 672  :         /* size of the central directory */
+; 673  :         if (unz64local_getLong64(&us.z_filefunc, us.filestream,&us.size_central_dir)!=UNZ_OK)
+
+  0019a        8d 84 24 a0 00
+       00 00            lea     eax, DWORD PTR _us$[esp+400]
+  001a1        50               push    eax
+  001a2        8b c6            mov     eax, esi
+  001a4        8d 4c 24 34      lea     ecx, DWORD PTR _us$[esp+292]
+  001a8        e8 00 00 00 00   call    _unz64local_getLong64
+  001ad        83 c4 04         add     esp, 4
+  001b0        85 c0            test    eax, eax
+  001b2        74 03            je      SHORT $LN18@unzOpenInt
+
+; 674  :             err=UNZ_ERRNO;
+
+  001b4        83 cb ff         or      ebx, -1
+$LN18@unzOpenInt:
+
+; 675  : 
+; 676  :         /* offset of start of central directory with respect to the
+; 677  :           starting disk number */
+; 678  :         if (unz64local_getLong64(&us.z_filefunc, us.filestream,&us.offset_central_dir)!=UNZ_OK)
+
+  001b7        8b 44 24 60      mov     eax, DWORD PTR _us$[esp+336]
+  001bb        8d 8c 24 a8 00
+       00 00            lea     ecx, DWORD PTR _us$[esp+408]
+  001c2        51               push    ecx
+  001c3        8d 4c 24 34      lea     ecx, DWORD PTR _us$[esp+292]
+  001c7        e8 00 00 00 00   call    _unz64local_getLong64
+  001cc        83 c4 04         add     esp, 4
+  001cf        85 c0            test    eax, eax
+  001d1        74 03            je      SHORT $LN17@unzOpenInt
+
+; 679  :             err=UNZ_ERRNO;
+
+  001d3        83 cb ff         or      ebx, -1
+$LN17@unzOpenInt:
+
+; 680  : 
+; 681  :         us.gi.size_comment = 0;
+
+  001d6        89 7c 24 70      mov     DWORD PTR _us$[esp+352], edi
+
+; 682  :     }
+; 683  :     else
+
+  001da        e9 6c 01 00 00   jmp     $LN4@unzOpenInt
+$LN30@unzOpenInt:
+
+; 684  :     {
+; 685  :         central_pos = unz64local_SearchCentralDir(&us.z_filefunc,us.filestream);
+
+  001df        8b 54 24 60      mov     edx, DWORD PTR _us$[esp+336]
+  001e3        52               push    edx
+  001e4        8d 44 24 34      lea     eax, DWORD PTR _us$[esp+292]
+  001e8        50               push    eax
+  001e9        e8 00 00 00 00   call    _unz64local_SearchCentralDir
+
+; 686  :         if (central_pos==0)
+
+  001ee        8b c8            mov     ecx, eax
+  001f0        83 c4 08         add     esp, 8
+  001f3        0b ca            or      ecx, edx
+  001f5        89 44 24 28      mov     DWORD PTR _central_pos$[esp+288], eax
+  001f9        89 54 24 2c      mov     DWORD PTR _central_pos$[esp+292], edx
+  001fd        75 03            jne     SHORT $LN15@unzOpenInt
+
+; 687  :             err=UNZ_ERRNO;
+
+  001ff        83 cb ff         or      ebx, -1
+$LN15@unzOpenInt:
+
+; 688  : 
+; 689  :         us.isZip64 = 0;
+; 690  : 
+; 691  :         if (ZSEEK64(us.z_filefunc, us.filestream,
+; 692  :                                         central_pos,ZLIB_FILEFUNC_SEEK_SET)!=0)
+
+  00202        52               push    edx
+  00203        89 bc 24 1c 01
+       00 00            mov     DWORD PTR _us$[esp+524], edi
+  0020a        8b 7c 24 64      mov     edi, DWORD PTR _us$[esp+340]
+  0020e        50               push    eax
+  0020f        33 d2            xor     edx, edx
+  00211        8b f7            mov     esi, edi
+  00213        8d 44 24 38      lea     eax, DWORD PTR _us$[esp+296]
+  00217        e8 00 00 00 00   call    _call_zseek64
+  0021c        83 c4 08         add     esp, 8
+  0021f        85 c0            test    eax, eax
+  00221        74 03            je      SHORT $LN14@unzOpenInt
+
+; 693  :             err=UNZ_ERRNO;
+
+  00223        83 cb ff         or      ebx, -1
+$LN14@unzOpenInt:
+
+; 694  : 
+; 695  :         /* the signature, already checked */
+; 696  :         if (unz64local_getLong(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK)
+
+  00226        8d 54 24 10      lea     edx, DWORD PTR _uL$[esp+288]
+  0022a        52               push    edx
+  0022b        8b c7            mov     eax, edi
+  0022d        8d 4c 24 34      lea     ecx, DWORD PTR _us$[esp+292]
+  00231        e8 00 00 00 00   call    _unz64local_getLong
+  00236        83 c4 04         add     esp, 4
+  00239        85 c0            test    eax, eax
+  0023b        74 03            je      SHORT $LN13@unzOpenInt
+
+; 697  :             err=UNZ_ERRNO;
+
+  0023d        83 cb ff         or      ebx, -1
+$LN13@unzOpenInt:
+
+; 698  : 
+; 699  :         /* number of this disk */
+; 700  :         if (unz64local_getShort(&us.z_filefunc, us.filestream,&number_disk)!=UNZ_OK)
+
+  00240        8d 44 24 20      lea     eax, DWORD PTR _number_disk$[esp+288]
+  00244        50               push    eax
+  00245        8b c7            mov     eax, edi
+  00247        8d 4c 24 34      lea     ecx, DWORD PTR _us$[esp+292]
+  0024b        e8 00 00 00 00   call    _unz64local_getShort
+  00250        83 c4 04         add     esp, 4
+  00253        85 c0            test    eax, eax
+  00255        74 03            je      SHORT $LN12@unzOpenInt
+
+; 701  :             err=UNZ_ERRNO;
+
+  00257        83 cb ff         or      ebx, -1
+$LN12@unzOpenInt:
+
+; 702  : 
+; 703  :         /* number of the disk with the start of the central directory */
+; 704  :         if (unz64local_getShort(&us.z_filefunc, us.filestream,&number_disk_with_CD)!=UNZ_OK)
+
+  0025a        8d 4c 24 1c      lea     ecx, DWORD PTR _number_disk_with_CD$[esp+288]
+  0025e        51               push    ecx
+  0025f        8b c7            mov     eax, edi
+  00261        8d 4c 24 34      lea     ecx, DWORD PTR _us$[esp+292]
+  00265        e8 00 00 00 00   call    _unz64local_getShort
+  0026a        83 c4 04         add     esp, 4
+  0026d        85 c0            test    eax, eax
+  0026f        74 03            je      SHORT $LN11@unzOpenInt
+
+; 705  :             err=UNZ_ERRNO;
+
+  00271        83 cb ff         or      ebx, -1
+$LN11@unzOpenInt:
+
+; 706  : 
+; 707  :         /* total number of entries in the central dir on this disk */
+; 708  :         if (unz64local_getShort(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK)
+
+  00274        8d 54 24 10      lea     edx, DWORD PTR _uL$[esp+288]
+  00278        52               push    edx
+  00279        8b c7            mov     eax, edi
+  0027b        8d 4c 24 34      lea     ecx, DWORD PTR _us$[esp+292]
+  0027f        e8 00 00 00 00   call    _unz64local_getShort
+  00284        83 c4 04         add     esp, 4
+  00287        85 c0            test    eax, eax
+  00289        74 03            je      SHORT $LN10@unzOpenInt
+
+; 709  :             err=UNZ_ERRNO;
+
+  0028b        83 cb ff         or      ebx, -1
+$LN10@unzOpenInt:
+
+; 710  :         us.gi.number_entry = uL;
+
+  0028e        8b 74 24 10      mov     esi, DWORD PTR _uL$[esp+288]
+
+; 711  : 
+; 712  :         /* total number of entries in the central dir */
+; 713  :         if (unz64local_getShort(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK)
+
+  00292        8d 44 24 10      lea     eax, DWORD PTR _uL$[esp+288]
+  00296        50               push    eax
+  00297        8b c7            mov     eax, edi
+  00299        8d 4c 24 34      lea     ecx, DWORD PTR _us$[esp+292]
+  0029d        89 74 24 6c      mov     DWORD PTR _us$[esp+348], esi
+  002a1        c7 44 24 70 00
+       00 00 00         mov     DWORD PTR _us$[esp+352], 0
+  002a9        e8 00 00 00 00   call    _unz64local_getShort
+  002ae        83 c4 04         add     esp, 4
+  002b1        85 c0            test    eax, eax
+  002b3        74 03            je      SHORT $LN9@unzOpenInt
+
+; 714  :             err=UNZ_ERRNO;
+
+  002b5        83 cb ff         or      ebx, -1
+$LN9@unzOpenInt:
+
+; 715  :         number_entry_CD = uL;
+
+  002b8        33 c9            xor     ecx, ecx
+
+; 716  : 
+; 717  :         if ((number_entry_CD!=us.gi.number_entry) ||
+; 718  :             (number_disk_with_CD!=0) ||
+; 719  :             (number_disk!=0))
+
+  002ba        39 74 24 10      cmp     DWORD PTR _uL$[esp+288], esi
+  002be        75 12            jne     SHORT $LN7@unzOpenInt
+  002c0        3b 4c 24 6c      cmp     ecx, DWORD PTR _us$[esp+348]
+  002c4        75 0c            jne     SHORT $LN7@unzOpenInt
+  002c6        39 4c 24 1c      cmp     DWORD PTR _number_disk_with_CD$[esp+288], ecx
+  002ca        75 06            jne     SHORT $LN7@unzOpenInt
+  002cc        39 4c 24 20      cmp     DWORD PTR _number_disk$[esp+288], ecx
+  002d0        74 05            je      SHORT $LN8@unzOpenInt
+$LN7@unzOpenInt:
+
+; 720  :             err=UNZ_BADZIPFILE;
+
+  002d2        bb 99 ff ff ff   mov     ebx, -103              ; ffffff99H
+$LN8@unzOpenInt:
+
+; 721  : 
+; 722  :         /* size of the central directory */
+; 723  :         if (unz64local_getLong(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK)
+
+  002d7        8d 4c 24 10      lea     ecx, DWORD PTR _uL$[esp+288]
+  002db        51               push    ecx
+  002dc        8b c7            mov     eax, edi
+  002de        8d 4c 24 34      lea     ecx, DWORD PTR _us$[esp+292]
+  002e2        e8 00 00 00 00   call    _unz64local_getLong
+  002e7        83 c4 04         add     esp, 4
+  002ea        85 c0            test    eax, eax
+  002ec        74 03            je      SHORT $LN6@unzOpenInt
+
+; 724  :             err=UNZ_ERRNO;
+
+  002ee        83 cb ff         or      ebx, -1
+$LN6@unzOpenInt:
+
+; 725  :         us.size_central_dir = uL;
+
+  002f1        8b 54 24 10      mov     edx, DWORD PTR _uL$[esp+288]
+
+; 726  : 
+; 727  :         /* offset of start of central directory with respect to the
+; 728  :             starting disk number */
+; 729  :         if (unz64local_getLong(&us.z_filefunc, us.filestream,&uL)!=UNZ_OK)
+
+  002f5        8d 44 24 10      lea     eax, DWORD PTR _uL$[esp+288]
+  002f9        50               push    eax
+  002fa        33 f6            xor     esi, esi
+  002fc        8b c7            mov     eax, edi
+  002fe        8d 4c 24 34      lea     ecx, DWORD PTR _us$[esp+292]
+  00302        89 94 24 a4 00
+       00 00            mov     DWORD PTR _us$[esp+404], edx
+  00309        89 b4 24 a8 00
+       00 00            mov     DWORD PTR _us$[esp+408], esi
+  00310        e8 00 00 00 00   call    _unz64local_getLong
+  00315        83 c4 04         add     esp, 4
+  00318        85 c0            test    eax, eax
+  0031a        74 03            je      SHORT $LN5@unzOpenInt
+
+; 730  :             err=UNZ_ERRNO;
+
+  0031c        83 cb ff         or      ebx, -1
+$LN5@unzOpenInt:
+
+; 731  :         us.offset_central_dir = uL;
+
+  0031f        8b 4c 24 10      mov     ecx, DWORD PTR _uL$[esp+288]
+
+; 732  : 
+; 733  :         /* zipfile comment length */
+; 734  :         if (unz64local_getShort(&us.z_filefunc, us.filestream,&us.gi.size_comment)!=UNZ_OK)
+
+  00323        8d 54 24 70      lea     edx, DWORD PTR _us$[esp+352]
+  00327        89 8c 24 a8 00
+       00 00            mov     DWORD PTR _us$[esp+408], ecx
+  0032e        52               push    edx
+  0032f        8b c7            mov     eax, edi
+  00331        8d 4c 24 34      lea     ecx, DWORD PTR _us$[esp+292]
+  00335        89 b4 24 b0 00
+       00 00            mov     DWORD PTR _us$[esp+416], esi
+  0033c        e8 00 00 00 00   call    _unz64local_getShort
+  00341        83 c4 04         add     esp, 4
+  00344        85 c0            test    eax, eax
+  00346        74 03            je      SHORT $LN4@unzOpenInt
+
+; 735  :             err=UNZ_ERRNO;
+
+  00348        83 cb ff         or      ebx, -1
+$LN4@unzOpenInt:
+
+; 736  :     }
+; 737  : 
+; 738  :     if ((central_pos<us.offset_central_dir+us.size_central_dir) &&
+; 739  :         (err==UNZ_OK))
+
+  0034b        8b 94 24 a8 00
+       00 00            mov     edx, DWORD PTR _us$[esp+408]
+  00352        8b b4 24 a0 00
+       00 00            mov     esi, DWORD PTR _us$[esp+400]
+  00359        8b 84 24 ac 00
+       00 00            mov     eax, DWORD PTR _us$[esp+412]
+  00360        8b 7c 24 2c      mov     edi, DWORD PTR _central_pos$[esp+292]
+  00364        8b ca            mov     ecx, edx
+  00366        03 ce            add     ecx, esi
+  00368        13 84 24 a4 00
+       00 00            adc     eax, DWORD PTR _us$[esp+404]
+  0036f        3b f8            cmp     edi, eax
+  00371        72 10            jb      SHORT $LN37@unzOpenInt
+  00373        8b 44 24 28      mov     eax, DWORD PTR _central_pos$[esp+288]
+  00377        77 04            ja      SHORT $LN38@unzOpenInt
+  00379        3b c1            cmp     eax, ecx
+
+; 740  :         err=UNZ_BADZIPFILE;
+; 741  : 
+; 742  :     if (err!=UNZ_OK)
+
+  0037b        72 06            jb      SHORT $LN37@unzOpenInt
+$LN38@unzOpenInt:
+  0037d        33 c9            xor     ecx, ecx
+  0037f        3b d9            cmp     ebx, ecx
+  00381        74 1a            je      SHORT $LN2@unzOpenInt
+$LN37@unzOpenInt:
+
+; 743  :     {
+; 744  :         ZCLOSE64(us.z_filefunc, us.filestream);
+
+  00383        8b 44 24 60      mov     eax, DWORD PTR _us$[esp+336]
+  00387        8b 4c 24 4c      mov     ecx, DWORD PTR _us$[esp+316]
+  0038b        50               push    eax
+  0038c        51               push    ecx
+  0038d        ff 54 24 4c      call    DWORD PTR _us$[esp+316]
+  00391        83 c4 08         add     esp, 8
+$LN47@unzOpenInt:
+
+; 745  :         return NULL;
+
+  00394        33 c0            xor     eax, eax
+
+; 760  :     }
+; 761  :     return (unzFile)s;
+; 762  : }
+
+  00396        5f               pop     edi
+  00397        5e               pop     esi
+  00398        5b               pop     ebx
+  00399        8b e5            mov     esp, ebp
+  0039b        5d               pop     ebp
+  0039c        c3               ret     0
+$LN2@unzOpenInt:
+
+; 746  :     }
+; 747  : 
+; 748  :     us.byte_before_the_zipfile = central_pos -
+; 749  :                             (us.offset_central_dir+us.size_central_dir);
+
+  0039d        8b d8            mov     ebx, eax
+  0039f        2b da            sub     ebx, edx
+  003a1        8b d7            mov     edx, edi
+  003a3        1b 94 24 ac 00
+       00 00            sbb     edx, DWORD PTR _us$[esp+412]
+  003aa        2b de            sub     ebx, esi
+  003ac        1b 94 24 a4 00
+       00 00            sbb     edx, DWORD PTR _us$[esp+404]
+
+; 750  :     us.central_pos = central_pos;
+; 751  :     us.pfile_in_zip_read = NULL;
+; 752  :     us.encrypted = 0;
+; 753  : 
+; 754  : 
+; 755  :     s=(unz64_s*)ALLOC(sizeof(unz64_s));
+
+  003b3        68 f0 00 00 00   push    240                    ; 000000f0H
+  003b8        89 5c 24 7c      mov     DWORD PTR _us$[esp+364], ebx
+  003bc        89 94 24 80 00
+       00 00            mov     DWORD PTR _us$[esp+368], edx
+  003c3        89 84 24 9c 00
+       00 00            mov     DWORD PTR _us$[esp+396], eax
+  003ca        89 bc 24 a0 00
+       00 00            mov     DWORD PTR _us$[esp+400], edi
+  003d1        89 8c 24 14 01
+       00 00            mov     DWORD PTR _us$[esp+516], ecx
+  003d8        89 8c 24 18 01
+       00 00            mov     DWORD PTR _us$[esp+520], ecx
+  003df        e8 00 00 00 00   call    _malloc
+  003e4        8b d8            mov     ebx, eax
+  003e6        83 c4 04         add     esp, 4
+
+; 756  :     if( s != NULL)
+
+  003e9        85 db            test    ebx, ebx
+  003eb        74 13            je      SHORT $LN1@unzOpenInt
+
+; 757  :     {
+; 758  :         *s=us;
+
+  003ed        b9 3c 00 00 00   mov     ecx, 60                        ; 0000003cH
+  003f2        8d 74 24 30      lea     esi, DWORD PTR _us$[esp+288]
+  003f6        8b fb            mov     edi, ebx
+
+; 759  :         unzGoToFirstFile((unzFile)s);
+
+  003f8        53               push    ebx
+  003f9        f3 a5            rep movsd
+  003fb        e8 00 00 00 00   call    _unzGoToFirstFile@4
+$LN1@unzOpenInt:
+
+; 760  :     }
+; 761  :     return (unzFile)s;
+; 762  : }
+
+  00400        5f               pop     edi
+  00401        5e               pop     esi
+  00402        8b c3            mov     eax, ebx
+  00404        5b               pop     ebx
+  00405        8b e5            mov     esp, ebp
+  00407        5d               pop     ebp
+  00408        c3               ret     0
+_unzOpenInternal ENDP
+PUBLIC _unzOpenCurrentFile3@20
+; Function compile flags: /Ogtp
+;      COMDAT _unzOpenCurrentFile3@20
+_TEXT  SEGMENT
+_size_local_extrafield$ = -16                          ; size = 4
+_err$ = -16                                            ; size = 4
+_iSizeVar$ = -12                                       ; size = 4
+_offset_local_extrafield$ = -8                         ; size = 8
+_file$ = 8                                             ; size = 4
+_method$ = 12                                          ; size = 4
+_level$ = 16                                           ; size = 4
+_raw$ = 20                                             ; size = 4
+_password$ = 24                                                ; size = 4
+_unzOpenCurrentFile3@20 PROC                           ; COMDAT
+
+; 1474 : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+  00003        83 e4 f8         and     esp, -8                        ; fffffff8H
+  00006        83 ec 14         sub     esp, 20                        ; 00000014H
+
+; 1475 :     int err=UNZ_OK;
+; 1476 :     uInt iSizeVar;
+; 1477 :     unz64_s* s;
+; 1478 :     file_in_zip64_read_info_s* pfile_in_zip_read_info;
+; 1479 :     ZPOS64_T offset_local_extrafield;  /* offset of the local extra field */
+; 1480 :     uInt  size_local_extrafield;    /* size of the local extra field */
+; 1481 : #    ifndef NOUNCRYPT
+; 1482 :     char source[12];
+; 1483 : #    else
+; 1484 :     if (password != NULL)
+
+  00009        83 7d 18 00      cmp     DWORD PTR _password$[ebp], 0
+  0000d        53               push    ebx
+  0000e        56               push    esi
+  0000f        57               push    edi
+  00010        74 0e            je      SHORT $LN22@unzOpenCur
+$LN25@unzOpenCur:
+
+; 1485 :         return UNZ_PARAMERROR;
+
+  00012        b8 9a ff ff ff   mov     eax, -102              ; ffffff9aH
+
+; 1639 : }
+
+  00017        5f               pop     edi
+  00018        5e               pop     esi
+  00019        5b               pop     ebx
+  0001a        8b e5            mov     esp, ebp
+  0001c        5d               pop     ebp
+  0001d        c2 14 00         ret     20                     ; 00000014H
+$LN22@unzOpenCur:
+
+; 1486 : #    endif
+; 1487 : 
+; 1488 :     if (file==NULL)
+
+  00020        8b 75 08         mov     esi, DWORD PTR _file$[ebp]
+  00023        85 f6            test    esi, esi
+
+; 1489 :         return UNZ_PARAMERROR;
+
+  00025        74 eb            je      SHORT $LN25@unzOpenCur
+
+; 1490 :     s=(unz64_s*)file;
+; 1491 :     if (!s->current_file_ok)
+
+  00027        8b 46 60         mov     eax, DWORD PTR [esi+96]
+  0002a        0b 46 64         or      eax, DWORD PTR [esi+100]
+
+; 1492 :         return UNZ_PARAMERROR;
+
+  0002d        74 e3            je      SHORT $LN25@unzOpenCur
+
+; 1493 : 
+; 1494 :     if (s->pfile_in_zip_read != NULL)
+
+  0002f        83 be e0 00 00
+       00 00            cmp     DWORD PTR [esi+224], 0
+  00036        74 06            je      SHORT $LN19@unzOpenCur
+
+; 1495 :         unzCloseCurrentFile(file);
+
+  00038        56               push    esi
+  00039        e8 00 00 00 00   call    _unzCloseCurrentFile@4
+$LN19@unzOpenCur:
+
+; 1496 : 
+; 1497 :     if (unz64local_CheckCurrentFileCoherencyHeader(s,&iSizeVar, &offset_local_extrafield,&size_local_extrafield)!=UNZ_OK)
+
+  0003e        8d 4c 24 10      lea     ecx, DWORD PTR _size_local_extrafield$[esp+32]
+  00042        51               push    ecx
+  00043        8d 54 24 1c      lea     edx, DWORD PTR _offset_local_extrafield$[esp+36]
+  00047        52               push    edx
+  00048        8d 44 24 1c      lea     eax, DWORD PTR _iSizeVar$[esp+40]
+  0004c        50               push    eax
+  0004d        8b fe            mov     edi, esi
+  0004f        e8 00 00 00 00   call    _unz64local_CheckCurrentFileCoherencyHeader
+  00054        83 c4 0c         add     esp, 12                        ; 0000000cH
+  00057        85 c0            test    eax, eax
+  00059        74 0e            je      SHORT $LN18@unzOpenCur
+
+; 1498 :         return UNZ_BADZIPFILE;
+
+  0005b        b8 99 ff ff ff   mov     eax, -103              ; ffffff99H
+
+; 1639 : }
+
+  00060        5f               pop     edi
+  00061        5e               pop     esi
+  00062        5b               pop     ebx
+  00063        8b e5            mov     esp, ebp
+  00065        5d               pop     ebp
+  00066        c2 14 00         ret     20                     ; 00000014H
+$LN18@unzOpenCur:
+
+; 1499 : 
+; 1500 :     pfile_in_zip_read_info = (file_in_zip64_read_info_s*)ALLOC(sizeof(file_in_zip64_read_info_s));
+
+  00069        68 d0 00 00 00   push    208                    ; 000000d0H
+  0006e        e8 00 00 00 00   call    _malloc
+  00073        8b d8            mov     ebx, eax
+
+; 1501 :     if (pfile_in_zip_read_info==NULL)
+
+  00075        33 ff            xor     edi, edi
+  00077        83 c4 04         add     esp, 4
+  0007a        3b df            cmp     ebx, edi
+
+; 1502 :         return UNZ_INTERNALERROR;
+
+  0007c        74 40            je      SHORT $LN26@unzOpenCur
+
+; 1503 : 
+; 1504 :     pfile_in_zip_read_info->read_buffer=(char*)ALLOC(UNZ_BUFSIZE);
+
+  0007e        68 00 40 00 00   push    16384                  ; 00004000H
+  00083        e8 00 00 00 00   call    _malloc
+
+; 1505 :     pfile_in_zip_read_info->offset_local_extrafield = offset_local_extrafield;
+
+  00088        8b 4c 24 1c      mov     ecx, DWORD PTR _offset_local_extrafield$[esp+36]
+  0008c        8b 54 24 20      mov     edx, DWORD PTR _offset_local_extrafield$[esp+40]
+  00090        89 4b 50         mov     DWORD PTR [ebx+80], ecx
+
+; 1506 :     pfile_in_zip_read_info->size_local_extrafield = size_local_extrafield;
+
+  00093        8b 4c 24 14      mov     ecx, DWORD PTR _size_local_extrafield$[esp+36]
+  00097        89 53 54         mov     DWORD PTR [ebx+84], edx
+
+; 1507 :     pfile_in_zip_read_info->pos_local_extrafield=0;
+; 1508 :     pfile_in_zip_read_info->raw=raw;
+
+  0009a        8b 55 14         mov     edx, DWORD PTR _raw$[ebp]
+  0009d        83 c4 04         add     esp, 4
+  000a0        89 03            mov     DWORD PTR [ebx], eax
+  000a2        89 4b 58         mov     DWORD PTR [ebx+88], ecx
+  000a5        89 7b 60         mov     DWORD PTR [ebx+96], edi
+  000a8        89 7b 64         mov     DWORD PTR [ebx+100], edi
+  000ab        89 93 c8 00 00
+       00               mov     DWORD PTR [ebx+200], edx
+
+; 1509 : 
+; 1510 :     if (pfile_in_zip_read_info->read_buffer==NULL)
+
+  000b1        3b c7            cmp     eax, edi
+  000b3        75 17            jne     SHORT $LN16@unzOpenCur
+
+; 1511 :     {
+; 1512 :         TRYFREE(pfile_in_zip_read_info);
+
+  000b5        53               push    ebx
+  000b6        e8 00 00 00 00   call    _free
+  000bb        83 c4 04         add     esp, 4
+$LN26@unzOpenCur:
+
+; 1513 :         return UNZ_INTERNALERROR;
+
+  000be        b8 98 ff ff ff   mov     eax, -104              ; ffffff98H
+
+; 1639 : }
+
+  000c3        5f               pop     edi
+  000c4        5e               pop     esi
+  000c5        5b               pop     ebx
+  000c6        8b e5            mov     esp, ebp
+  000c8        5d               pop     ebp
+  000c9        c2 14 00         ret     20                     ; 00000014H
+$LN16@unzOpenCur:
+
+; 1514 :     }
+; 1515 : 
+; 1516 :     pfile_in_zip_read_info->stream_initialised=0;
+; 1517 : 
+; 1518 :     if (method!=NULL)
+
+  000cc        8b 45 0c         mov     eax, DWORD PTR _method$[ebp]
+  000cf        89 7b 48         mov     DWORD PTR [ebx+72], edi
+  000d2        3b c7            cmp     eax, edi
+  000d4        74 08            je      SHORT $LN14@unzOpenCur
+
+; 1519 :         *method = (int)s->cur_file_info.compression_method;
+
+  000d6        8b 8e 8c 00 00
+       00               mov     ecx, DWORD PTR [esi+140]
+  000dc        89 08            mov     DWORD PTR [eax], ecx
+$LN14@unzOpenCur:
+
+; 1520 : 
+; 1521 :     if (level!=NULL)
+
+  000de        8b 4d 10         mov     ecx, DWORD PTR _level$[ebp]
+  000e1        3b cf            cmp     ecx, edi
+  000e3        74 34            je      SHORT $LN11@unzOpenCur
+
+; 1522 :     {
+; 1523 :         *level = 6;
+
+  000e5        c7 01 06 00 00
+       00               mov     DWORD PTR [ecx], 6
+
+; 1524 :         switch (s->cur_file_info.flag & 0x06)
+
+  000eb        8b 86 88 00 00
+       00               mov     eax, DWORD PTR [esi+136]
+  000f1        83 e0 06         and     eax, 6
+  000f4        83 e8 02         sub     eax, 2
+  000f7        74 1a            je      SHORT $LN8@unzOpenCur
+  000f9        83 e8 02         sub     eax, 2
+  000fc        74 0d            je      SHORT $LN9@unzOpenCur
+  000fe        83 e8 02         sub     eax, 2
+  00101        75 16            jne     SHORT $LN11@unzOpenCur
+
+; 1525 :         {
+; 1526 :           case 6 : *level = 1; break;
+
+  00103        c7 01 01 00 00
+       00               mov     DWORD PTR [ecx], 1
+  00109        eb 0e            jmp     SHORT $LN11@unzOpenCur
+$LN9@unzOpenCur:
+
+; 1527 :           case 4 : *level = 2; break;
+
+  0010b        c7 01 02 00 00
+       00               mov     DWORD PTR [ecx], 2
+  00111        eb 06            jmp     SHORT $LN11@unzOpenCur
+$LN8@unzOpenCur:
+
+; 1528 :           case 2 : *level = 9; break;
+
+  00113        c7 01 09 00 00
+       00               mov     DWORD PTR [ecx], 9
+$LN11@unzOpenCur:
+
+; 1529 :         }
+; 1530 :     }
+; 1531 : 
+; 1532 :     if ((s->cur_file_info.compression_method!=0) &&
+; 1533 : /* #ifdef HAVE_BZIP2 */
+; 1534 :         (s->cur_file_info.compression_method!=Z_BZIP2ED) &&
+; 1535 : /* #endif */
+; 1536 :         (s->cur_file_info.compression_method!=Z_DEFLATED))
+; 1537 : 
+; 1538 :         err=UNZ_BADZIPFILE;
+; 1539 : 
+; 1540 :     pfile_in_zip_read_info->crc32_wait=s->cur_file_info.crc;
+
+  00119        8b 86 94 00 00
+       00               mov     eax, DWORD PTR [esi+148]
+
+; 1541 :     pfile_in_zip_read_info->crc32=0;
+
+  0011f        89 7b 70         mov     DWORD PTR [ebx+112], edi
+
+; 1542 :     pfile_in_zip_read_info->total_out_64=0;
+
+  00122        89 7b 68         mov     DWORD PTR [ebx+104], edi
+  00125        89 7b 6c         mov     DWORD PTR [ebx+108], edi
+  00128        89 43 74         mov     DWORD PTR [ebx+116], eax
+
+; 1543 :     pfile_in_zip_read_info->compression_method = s->cur_file_info.compression_method;
+
+  0012b        8b 8e 8c 00 00
+       00               mov     ecx, DWORD PTR [esi+140]
+  00131        89 8b b8 00 00
+       00               mov     DWORD PTR [ebx+184], ecx
+
+; 1544 :     pfile_in_zip_read_info->filestream=s->filestream;
+
+  00137        8b 46 30         mov     eax, DWORD PTR [esi+48]
+  0013a        89 83 b4 00 00
+       00               mov     DWORD PTR [ebx+180], eax
+
+; 1545 :     pfile_in_zip_read_info->z_filefunc=s->z_filefunc;
+
+  00140        8d bb 88 00 00
+       00               lea     edi, DWORD PTR [ebx+136]
+  00146        b9 0b 00 00 00   mov     ecx, 11                        ; 0000000bH
+  0014b        f3 a5            rep movsd
+
+; 1546 :     pfile_in_zip_read_info->byte_before_the_zipfile=s->byte_before_the_zipfile;
+
+  0014d        8b 75 08         mov     esi, DWORD PTR _file$[ebp]
+  00150        8b 4e 48         mov     ecx, DWORD PTR [esi+72]
+  00153        89 8b c0 00 00
+       00               mov     DWORD PTR [ebx+192], ecx
+  00159        8b 46 4c         mov     eax, DWORD PTR [esi+76]
+
+; 1547 : 
+; 1548 :     pfile_in_zip_read_info->stream.total_out = 0;
+
+  0015c        33 ff            xor     edi, edi
+  0015e        89 83 c4 00 00
+       00               mov     DWORD PTR [ebx+196], eax
+  00164        89 7b 18         mov     DWORD PTR [ebx+24], edi
+
+; 1549 : 
+; 1550 :     if ((s->cur_file_info.compression_method==Z_BZIP2ED) && (!raw))
+
+  00167        8b 86 8c 00 00
+       00               mov     eax, DWORD PTR [esi+140]
+  0016d        83 f8 0c         cmp     eax, 12                        ; 0000000cH
+  00170        75 6f            jne     SHORT $LN6@unzOpenCur
+  00172        3b d7            cmp     edx, edi
+  00174        75 6b            jne     SHORT $LN6@unzOpenCur
+
+; 1551 :     {
+; 1552 : #ifdef HAVE_BZIP2
+; 1553 :       pfile_in_zip_read_info->bstream.bzalloc = (void *(*) (void *, int, int))0;
+; 1554 :       pfile_in_zip_read_info->bstream.bzfree = (free_func)0;
+; 1555 :       pfile_in_zip_read_info->bstream.opaque = (voidpf)0;
+; 1556 :       pfile_in_zip_read_info->bstream.state = (voidpf)0;
+; 1557 : 
+; 1558 :       pfile_in_zip_read_info->stream.zalloc = (alloc_func)0;
+; 1559 :       pfile_in_zip_read_info->stream.zfree = (free_func)0;
+; 1560 :       pfile_in_zip_read_info->stream.opaque = (voidpf)0;
+; 1561 :       pfile_in_zip_read_info->stream.next_in = (voidpf)0;
+; 1562 :       pfile_in_zip_read_info->stream.avail_in = 0;
+; 1563 : 
+; 1564 :       err=BZ2_bzDecompressInit(&pfile_in_zip_read_info->bstream, 0, 0);
+; 1565 :       if (err == Z_OK)
+; 1566 :         pfile_in_zip_read_info->stream_initialised=Z_BZIP2ED;
+; 1567 :       else
+; 1568 :       {
+; 1569 :         TRYFREE(pfile_in_zip_read_info);
+; 1570 :         return err;
+; 1571 :       }
+; 1572 : #else
+; 1573 :       pfile_in_zip_read_info->raw=1;
+
+  00176        c7 83 c8 00 00
+       00 01 00 00 00   mov     DWORD PTR [ebx+200], 1
+$LN2@unzOpenCur:
+
+; 1591 :       }
+; 1592 :         /* windowBits is passed < 0 to tell that there is no zlib header.
+; 1593 :          * Note that in this case inflate *requires* an extra "dummy" byte
+; 1594 :          * after the compressed stream in order to complete decompression and
+; 1595 :          * return Z_STREAM_END.
+; 1596 :          * In unzip, i don't wait absolutely Z_STREAM_END because I known the
+; 1597 :          * size of both compressed and uncompressed data
+; 1598 :          */
+; 1599 :     }
+; 1600 :     pfile_in_zip_read_info->rest_read_compressed =
+; 1601 :             s->cur_file_info.compressed_size ;
+
+  00180        8b 8e 98 00 00
+       00               mov     ecx, DWORD PTR [esi+152]
+  00186        89 4b 78         mov     DWORD PTR [ebx+120], ecx
+  00189        8b 96 9c 00 00
+       00               mov     edx, DWORD PTR [esi+156]
+  0018f        89 53 7c         mov     DWORD PTR [ebx+124], edx
+
+; 1602 :     pfile_in_zip_read_info->rest_read_uncompressed =
+; 1603 :             s->cur_file_info.uncompressed_size ;
+
+  00192        8b 86 a0 00 00
+       00               mov     eax, DWORD PTR [esi+160]
+
+; 1604 : 
+; 1605 : 
+; 1606 :     pfile_in_zip_read_info->pos_in_zipfile =
+; 1607 :             s->cur_file_info_internal.offset_curfile + SIZEZIPLOCALHEADER +
+; 1608 :               iSizeVar;
+
+  00198        8b 54 24 14      mov     edx, DWORD PTR _iSizeVar$[esp+32]
+  0019c        89 83 80 00 00
+       00               mov     DWORD PTR [ebx+128], eax
+  001a2        8b 8e a4 00 00
+       00               mov     ecx, DWORD PTR [esi+164]
+  001a8        33 c0            xor     eax, eax
+  001aa        89 8b 84 00 00
+       00               mov     DWORD PTR [ebx+132], ecx
+  001b0        03 96 d8 00 00
+       00               add     edx, DWORD PTR [esi+216]
+  001b6        13 86 dc 00 00
+       00               adc     eax, DWORD PTR [esi+220]
+  001bc        83 c2 1e         add     edx, 30                        ; 0000001eH
+  001bf        13 c7            adc     eax, edi
+  001c1        89 43 44         mov     DWORD PTR [ebx+68], eax
+  001c4        89 53 40         mov     DWORD PTR [ebx+64], edx
+
+; 1609 : 
+; 1610 :     pfile_in_zip_read_info->stream.avail_in = (uInt)0;
+
+  001c7        89 7b 08         mov     DWORD PTR [ebx+8], edi
+
+; 1611 : 
+; 1612 :     s->pfile_in_zip_read = pfile_in_zip_read_info;
+
+  001ca        89 9e e0 00 00
+       00               mov     DWORD PTR [esi+224], ebx
+
+; 1613 :                 s->encrypted = 0;
+
+  001d0        89 be e4 00 00
+       00               mov     DWORD PTR [esi+228], edi
+
+; 1614 : 
+; 1615 : #    ifndef NOUNCRYPT
+; 1616 :     if (password != NULL)
+; 1617 :     {
+; 1618 :         int i;
+; 1619 :         s->pcrc_32_tab = get_crc_table();
+; 1620 :         init_keys(password,s->keys,s->pcrc_32_tab);
+; 1621 :         if (ZSEEK64(s->z_filefunc, s->filestream,
+; 1622 :                   s->pfile_in_zip_read->pos_in_zipfile +
+; 1623 :                      s->pfile_in_zip_read->byte_before_the_zipfile,
+; 1624 :                   SEEK_SET)!=0)
+; 1625 :             return UNZ_INTERNALERROR;
+; 1626 :         if(ZREAD64(s->z_filefunc, s->filestream,source, 12)<12)
+; 1627 :             return UNZ_INTERNALERROR;
+; 1628 : 
+; 1629 :         for (i = 0; i<12; i++)
+; 1630 :             zdecode(s->keys,s->pcrc_32_tab,source[i]);
+; 1631 : 
+; 1632 :         s->pfile_in_zip_read->pos_in_zipfile+=12;
+; 1633 :         s->encrypted=1;
+; 1634 :     }
+; 1635 : #    endif
+; 1636 : 
+; 1637 : 
+; 1638 :     return UNZ_OK;
+
+  001d6        33 c0            xor     eax, eax
+
+; 1639 : }
+
+  001d8        5f               pop     edi
+  001d9        5e               pop     esi
+  001da        5b               pop     ebx
+  001db        8b e5            mov     esp, ebp
+  001dd        5d               pop     ebp
+  001de        c2 14 00         ret     20                     ; 00000014H
+$LN6@unzOpenCur:
+
+; 1574 : #endif
+; 1575 :     }
+; 1576 :     else if ((s->cur_file_info.compression_method==Z_DEFLATED) && (!raw))
+
+  001e1        83 f8 08         cmp     eax, 8
+  001e4        75 9a            jne     SHORT $LN2@unzOpenCur
+  001e6        3b d7            cmp     edx, edi
+  001e8        75 96            jne     SHORT $LN2@unzOpenCur
+
+; 1577 :     {
+; 1578 :       pfile_in_zip_read_info->stream.zalloc = (alloc_func)0;
+; 1579 :       pfile_in_zip_read_info->stream.zfree = (free_func)0;
+; 1580 :       pfile_in_zip_read_info->stream.opaque = (voidpf)0;
+; 1581 :       pfile_in_zip_read_info->stream.next_in = 0;
+; 1582 :       pfile_in_zip_read_info->stream.avail_in = 0;
+; 1583 : 
+; 1584 :       err=inflateInit2(&pfile_in_zip_read_info->stream, -MAX_WBITS);
+
+  001ea        6a 38            push    56                     ; 00000038H
+  001ec        68 00 00 00 00   push    OFFSET ??_C@_05IAIEPMAK@1?42?48?$AA@
+  001f1        8d 43 04         lea     eax, DWORD PTR [ebx+4]
+  001f4        6a f1            push    -15                    ; fffffff1H
+  001f6        50               push    eax
+  001f7        89 7b 24         mov     DWORD PTR [ebx+36], edi
+  001fa        89 7b 28         mov     DWORD PTR [ebx+40], edi
+  001fd        89 7b 2c         mov     DWORD PTR [ebx+44], edi
+  00200        89 38            mov     DWORD PTR [eax], edi
+  00202        89 7b 08         mov     DWORD PTR [ebx+8], edi
+  00205        e8 00 00 00 00   call    _inflateInit2_@16
+  0020a        89 44 24 10      mov     DWORD PTR _err$[esp+32], eax
+
+; 1585 :       if (err == Z_OK)
+
+  0020e        3b c7            cmp     eax, edi
+  00210        75 0c            jne     SHORT $LN3@unzOpenCur
+
+; 1586 :         pfile_in_zip_read_info->stream_initialised=Z_DEFLATED;
+
+  00212        c7 43 48 08 00
+       00 00            mov     DWORD PTR [ebx+72], 8
+
+; 1587 :       else
+
+  00219        e9 62 ff ff ff   jmp     $LN2@unzOpenCur
+$LN3@unzOpenCur:
+
+; 1588 :       {
+; 1589 :         TRYFREE(pfile_in_zip_read_info);
+
+  0021e        53               push    ebx
+  0021f        e8 00 00 00 00   call    _free
+
+; 1590 :         return err;
+
+  00224        8b 44 24 14      mov     eax, DWORD PTR _err$[esp+36]
+  00228        83 c4 04         add     esp, 4
+
+; 1639 : }
+
+  0022b        5f               pop     edi
+  0022c        5e               pop     esi
+  0022d        5b               pop     ebx
+  0022e        8b e5            mov     esp, ebp
+  00230        5d               pop     ebp
+  00231        c2 14 00         ret     20                     ; 00000014H
+_unzOpenCurrentFile3@20 ENDP
+_TEXT  ENDS
+PUBLIC _unzGoToFilePos@8
+; Function compile flags: /Ogtp
+;      COMDAT _unzGoToFilePos@8
+_TEXT  SEGMENT
+_file_pos64$ = -16                                     ; size = 16
+_file$ = 8                                             ; size = 4
+_file_pos$ = 12                                                ; size = 4
+_unzGoToFilePos@8 PROC                                 ; COMDAT
+
+; 1363 : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+  00003        83 e4 f8         and     esp, -8                        ; fffffff8H
+
+; 1364 :     unz64_file_pos file_pos64;
+; 1365 :     if (file_pos == NULL)
+
+  00006        8b 45 0c         mov     eax, DWORD PTR _file_pos$[ebp]
+  00009        33 c9            xor     ecx, ecx
+  0000b        83 ec 10         sub     esp, 16                        ; 00000010H
+  0000e        3b c1            cmp     eax, ecx
+  00010        75 0b            jne     SHORT $LN1@unzGoToFil@2
+
+; 1366 :         return UNZ_PARAMERROR;
+
+  00012        b8 9a ff ff ff   mov     eax, -102              ; ffffff9aH
+
+; 1371 : }
+
+  00017        8b e5            mov     esp, ebp
+  00019        5d               pop     ebp
+  0001a        c2 08 00         ret     8
+$LN1@unzGoToFil@2:
+
+; 1367 : 
+; 1368 :     file_pos64.pos_in_zip_directory = file_pos->pos_in_zip_directory;
+
+  0001d        8b 10            mov     edx, DWORD PTR [eax]
+
+; 1369 :     file_pos64.num_of_file = file_pos->num_of_file;
+
+  0001f        8b 40 04         mov     eax, DWORD PTR [eax+4]
+  00022        89 4c 24 04      mov     DWORD PTR _file_pos64$[esp+20], ecx
+  00026        89 4c 24 0c      mov     DWORD PTR _file_pos64$[esp+28], ecx
+
+; 1370 :     return unzGoToFilePos64(file,&file_pos64);
+
+  0002a        8d 0c 24         lea     ecx, DWORD PTR _file_pos64$[esp+16]
+  0002d        89 14 24         mov     DWORD PTR _file_pos64$[esp+16], edx
+  00030        8b 55 08         mov     edx, DWORD PTR _file$[ebp]
+  00033        51               push    ecx
+  00034        52               push    edx
+  00035        89 44 24 10      mov     DWORD PTR _file_pos64$[esp+32], eax
+  00039        e8 00 00 00 00   call    _unzGoToFilePos64@8
+
+; 1371 : }
+
+  0003e        8b e5            mov     esp, ebp
+  00040        5d               pop     ebp
+  00041        c2 08 00         ret     8
+_unzGoToFilePos@8 ENDP
+_TEXT  ENDS
+PUBLIC _unzLocateFile@12
+; Function compile flags: /Ogtp
+;      COMDAT _unzLocateFile@12
+_TEXT  SEGMENT
+_cur_file_info_internalSaved$ = -376                   ; size = 8
+_num_fileSaved$ = -368                                 ; size = 8
+_pos_in_central_dirSaved$ = -360                       ; size = 8
+_cur_file_infoSaved$ = -352                            ; size = 88
+_szCurrentFileName$82808 = -264                                ; size = 257
+_file$ = 8                                             ; size = 4
+_szFileName$ = 12                                      ; size = 4
+_iCaseSensitivity$ = 16                                        ; size = 4
+_unzLocateFile@12 PROC                                 ; COMDAT
+
+; 1233 : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+  00003        83 e4 f8         and     esp, -8                        ; fffffff8H
+  00006        81 ec 7c 01 00
+       00               sub     esp, 380               ; 0000017cH
+  0000c        53               push    ebx
+
+; 1234 :     unz64_s* s;
+; 1235 :     int err;
+; 1236 : 
+; 1237 :     /* We remember the 'current' position in the file so that we can jump
+; 1238 :      * back there if we fail.
+; 1239 :      */
+; 1240 :     unz_file_info64 cur_file_infoSaved;
+; 1241 :     unz_file_info64_internal cur_file_info_internalSaved;
+; 1242 :     ZPOS64_T num_fileSaved;
+; 1243 :     ZPOS64_T pos_in_central_dirSaved;
+; 1244 : 
+; 1245 : 
+; 1246 :     if (file==NULL)
+
+  0000d        8b 5d 08         mov     ebx, DWORD PTR _file$[ebp]
+  00010        56               push    esi
+  00011        57               push    edi
+  00012        85 db            test    ebx, ebx
+  00014        75 0e            jne     SHORT $LN7@unzLocateF
+$LN14@unzLocateF:
+
+; 1247 :         return UNZ_PARAMERROR;
+
+  00016        b8 9a ff ff ff   mov     eax, -102              ; ffffff9aH
+
+; 1286 :     return err;
+; 1287 : }
+
+  0001b        5f               pop     edi
+  0001c        5e               pop     esi
+  0001d        5b               pop     ebx
+  0001e        8b e5            mov     esp, ebp
+  00020        5d               pop     ebp
+  00021        c2 0c 00         ret     12                     ; 0000000cH
+$LN7@unzLocateF:
+
+; 1248 : 
+; 1249 :     if (strlen(szFileName)>=UNZ_MAXFILENAMEINZIP)
+
+  00024        8b 45 0c         mov     eax, DWORD PTR _szFileName$[ebp]
+  00027        8d 50 01         lea     edx, DWORD PTR [eax+1]
+  0002a        8d 9b 00 00 00
+       00               npad    6
+$LL13@unzLocateF:
+  00030        8a 08            mov     cl, BYTE PTR [eax]
+  00032        40               inc     eax
+  00033        84 c9            test    cl, cl
+  00035        75 f9            jne     SHORT $LL13@unzLocateF
+  00037        2b c2            sub     eax, edx
+  00039        3d 00 01 00 00   cmp     eax, 256               ; 00000100H
+
+; 1250 :         return UNZ_PARAMERROR;
+
+  0003e        73 d6            jae     SHORT $LN14@unzLocateF
+
+; 1251 : 
+; 1252 :     s=(unz64_s*)file;
+; 1253 :     if (!s->current_file_ok)
+
+  00040        8b 43 60         mov     eax, DWORD PTR [ebx+96]
+  00043        0b 43 64         or      eax, DWORD PTR [ebx+100]
+  00046        75 0e            jne     SHORT $LN5@unzLocateF
+
+; 1254 :         return UNZ_END_OF_LIST_OF_FILE;
+
+  00048        b8 9c ff ff ff   mov     eax, -100              ; ffffff9cH
+
+; 1286 :     return err;
+; 1287 : }
+
+  0004d        5f               pop     edi
+  0004e        5e               pop     esi
+  0004f        5b               pop     ebx
+  00050        8b e5            mov     esp, ebp
+  00052        5d               pop     ebp
+  00053        c2 0c 00         ret     12                     ; 0000000cH
+$LN5@unzLocateF:
+
+; 1255 : 
+; 1256 :     /* Save the current state */
+; 1257 :     num_fileSaved = s->num_file;
+
+  00056        8b 4b 50         mov     ecx, DWORD PTR [ebx+80]
+  00059        8b 53 54         mov     edx, DWORD PTR [ebx+84]
+
+; 1258 :     pos_in_central_dirSaved = s->pos_in_central_dir;
+
+  0005c        8b 43 58         mov     eax, DWORD PTR [ebx+88]
+  0005f        89 4c 24 18      mov     DWORD PTR _num_fileSaved$[esp+392], ecx
+  00063        8b 4b 5c         mov     ecx, DWORD PTR [ebx+92]
+  00066        89 4c 24 24      mov     DWORD PTR _pos_in_central_dirSaved$[esp+396], ecx
+  0006a        89 54 24 1c      mov     DWORD PTR _num_fileSaved$[esp+396], edx
+
+; 1259 :     cur_file_infoSaved = s->cur_file_info;
+; 1260 :     cur_file_info_internalSaved = s->cur_file_info_internal;
+
+  0006e        8b 93 d8 00 00
+       00               mov     edx, DWORD PTR [ebx+216]
+  00074        89 44 24 20      mov     DWORD PTR _pos_in_central_dirSaved$[esp+392], eax
+  00078        8b 83 dc 00 00
+       00               mov     eax, DWORD PTR [ebx+220]
+  0007e        8d b3 80 00 00
+       00               lea     esi, DWORD PTR [ebx+128]
+  00084        b9 16 00 00 00   mov     ecx, 22                        ; 00000016H
+  00089        8d 7c 24 28      lea     edi, DWORD PTR _cur_file_infoSaved$[esp+392]
+
+; 1261 : 
+; 1262 :     err = unzGoToFirstFile(file);
+
+  0008d        53               push    ebx
+  0008e        f3 a5            rep movsd
+  00090        89 54 24 14      mov     DWORD PTR _cur_file_info_internalSaved$[esp+396], edx
+  00094        89 44 24 18      mov     DWORD PTR _cur_file_info_internalSaved$[esp+400], eax
+  00098        e8 00 00 00 00   call    _unzGoToFirstFile@4
+
+; 1263 : 
+; 1264 :     while (err == UNZ_OK)
+
+  0009d        85 c0            test    eax, eax
+  0009f        75 44            jne     SHORT $LN3@unzLocateF
+  000a1        8b 75 10         mov     esi, DWORD PTR _iCaseSensitivity$[ebp]
+$LL4@unzLocateF:
+
+; 1265 :     {
+; 1266 :         char szCurrentFileName[UNZ_MAXFILENAMEINZIP+1];
+; 1267 :         err = unzGetCurrentFileInfo64(file,NULL,
+; 1268 :                                     szCurrentFileName,sizeof(szCurrentFileName)-1,
+; 1269 :                                     NULL,0,NULL,0);
+
+  000a4        6a 00            push    0
+  000a6        6a 00            push    0
+  000a8        6a 00            push    0
+  000aa        6a 00            push    0
+  000ac        68 00 01 00 00   push    256                    ; 00000100H
+  000b1        8d 8c 24 94 00
+       00 00            lea     ecx, DWORD PTR _szCurrentFileName$82808[esp+412]
+  000b8        51               push    ecx
+  000b9        6a 00            push    0
+  000bb        53               push    ebx
+  000bc        e8 00 00 00 00   call    _unzGetCurrentFileInfo64@32
+
+; 1270 :         if (err == UNZ_OK)
+
+  000c1        85 c0            test    eax, eax
+  000c3        75 20            jne     SHORT $LN3@unzLocateF
+
+; 1271 :         {
+; 1272 :             if (unzStringFileNameCompare(szCurrentFileName,
+; 1273 :                                             szFileName,iCaseSensitivity)==0)
+
+  000c5        8b 55 0c         mov     edx, DWORD PTR _szFileName$[ebp]
+  000c8        56               push    esi
+  000c9        52               push    edx
+  000ca        8d 84 24 88 00
+       00 00            lea     eax, DWORD PTR _szCurrentFileName$82808[esp+400]
+  000d1        50               push    eax
+  000d2        e8 00 00 00 00   call    _unzStringFileNameCompare@12
+  000d7        85 c0            test    eax, eax
+  000d9        74 54            je      SHORT $LN11@unzLocateF
+
+; 1274 :                 return UNZ_OK;
+; 1275 :             err = unzGoToNextFile(file);
+
+  000db        53               push    ebx
+  000dc        e8 00 00 00 00   call    _unzGoToNextFile@4
+  000e1        85 c0            test    eax, eax
+  000e3        74 bf            je      SHORT $LL4@unzLocateF
+$LN3@unzLocateF:
+
+; 1276 :         }
+; 1277 :     }
+; 1278 : 
+; 1279 :     /* We failed, so restore the state of the 'current file' to where we
+; 1280 :      * were.
+; 1281 :      */
+; 1282 :     s->num_file = num_fileSaved ;
+
+  000e5        8b 4c 24 18      mov     ecx, DWORD PTR _num_fileSaved$[esp+392]
+  000e9        8b 54 24 1c      mov     edx, DWORD PTR _num_fileSaved$[esp+396]
+  000ed        89 4b 50         mov     DWORD PTR [ebx+80], ecx
+
+; 1283 :     s->pos_in_central_dir = pos_in_central_dirSaved ;
+
+  000f0        8b 4c 24 20      mov     ecx, DWORD PTR _pos_in_central_dirSaved$[esp+392]
+  000f4        89 4b 58         mov     DWORD PTR [ebx+88], ecx
+  000f7        89 53 54         mov     DWORD PTR [ebx+84], edx
+  000fa        8b 54 24 24      mov     edx, DWORD PTR _pos_in_central_dirSaved$[esp+396]
+
+; 1284 :     s->cur_file_info = cur_file_infoSaved;
+
+  000fe        b9 16 00 00 00   mov     ecx, 22                        ; 00000016H
+  00103        8d 74 24 28      lea     esi, DWORD PTR _cur_file_infoSaved$[esp+392]
+  00107        8d bb 80 00 00
+       00               lea     edi, DWORD PTR [ebx+128]
+  0010d        89 53 5c         mov     DWORD PTR [ebx+92], edx
+
+; 1285 :     s->cur_file_info_internal = cur_file_info_internalSaved;
+
+  00110        8b 54 24 14      mov     edx, DWORD PTR _cur_file_info_internalSaved$[esp+396]
+  00114        f3 a5            rep movsd
+  00116        8b 4c 24 10      mov     ecx, DWORD PTR _cur_file_info_internalSaved$[esp+392]
+  0011a        89 8b d8 00 00
+       00               mov     DWORD PTR [ebx+216], ecx
+  00120        89 93 dc 00 00
+       00               mov     DWORD PTR [ebx+220], edx
+
+; 1286 :     return err;
+; 1287 : }
+
+  00126        5f               pop     edi
+  00127        5e               pop     esi
+  00128        5b               pop     ebx
+  00129        8b e5            mov     esp, ebp
+  0012b        5d               pop     ebp
+  0012c        c2 0c 00         ret     12                     ; 0000000cH
+$LN11@unzLocateF:
+  0012f        5f               pop     edi
+  00130        5e               pop     esi
+  00131        33 c0            xor     eax, eax
+  00133        5b               pop     ebx
+  00134        8b e5            mov     esp, ebp
+  00136        5d               pop     ebp
+  00137        c2 0c 00         ret     12                     ; 0000000cH
+_unzLocateFile@12 ENDP
+_TEXT  ENDS
+PUBLIC _unzOpen64@4
+; Function compile flags: /Ogtp
+;      COMDAT _unzOpen64@4
+_TEXT  SEGMENT
+_path$ = 8                                             ; size = 4
+_unzOpen64@4 PROC                                      ; COMDAT
+
+; 799  : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+
+; 800  :     return unzOpenInternal(path, NULL, 1);
+
+  00003        8b 45 08         mov     eax, DWORD PTR _path$[ebp]
+  00006        6a 01            push    1
+  00008        50               push    eax
+  00009        33 c0            xor     eax, eax
+  0000b        e8 00 00 00 00   call    _unzOpenInternal
+  00010        83 c4 08         add     esp, 8
+
+; 801  : }
+
+  00013        5d               pop     ebp
+  00014        c2 04 00         ret     4
+_unzOpen64@4 ENDP
+_TEXT  ENDS
+PUBLIC _unzOpen@4
+; Function compile flags: /Ogtp
+;      COMDAT _unzOpen@4
+_TEXT  SEGMENT
+_path$ = 8                                             ; size = 4
+_unzOpen@4 PROC                                                ; COMDAT
+
+; 794  : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+
+; 795  :     return unzOpenInternal(path, NULL, 0);
+
+  00003        8b 45 08         mov     eax, DWORD PTR _path$[ebp]
+  00006        6a 00            push    0
+  00008        50               push    eax
+  00009        33 c0            xor     eax, eax
+  0000b        e8 00 00 00 00   call    _unzOpenInternal
+  00010        83 c4 08         add     esp, 8
+
+; 796  : }
+
+  00013        5d               pop     ebp
+  00014        c2 04 00         ret     4
+_unzOpen@4 ENDP
+_TEXT  ENDS
+PUBLIC _unzOpen2_64@8
+; Function compile flags: /Ogtp
+;      COMDAT _unzOpen2_64@8
+_TEXT  SEGMENT
+_zlib_filefunc64_32_def_fill$82537 = -44               ; size = 44
+_path$ = 8                                             ; size = 4
+_pzlib_filefunc_def$ = 12                              ; size = 4
+_unzOpen2_64@8 PROC                                    ; COMDAT
+
+; 780  : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+  00003        83 e4 f8         and     esp, -8                        ; fffffff8H
+  00006        83 ec 30         sub     esp, 48                        ; 00000030H
+  00009        56               push    esi
+
+; 781  :     if (pzlib_filefunc_def != NULL)
+
+  0000a        8b 75 0c         mov     esi, DWORD PTR _pzlib_filefunc_def$[ebp]
+  0000d        33 c0            xor     eax, eax
+  0000f        57               push    edi
+
+; 787  :         return unzOpenInternal(path, &zlib_filefunc64_32_def_fill, 1);
+
+  00010        6a 01            push    1
+  00012        3b f0            cmp     esi, eax
+  00014        74 2b            je      SHORT $LN2@unzOpen2_6
+
+; 782  :     {
+; 783  :         zlib_filefunc64_32_def zlib_filefunc64_32_def_fill;
+; 784  :         zlib_filefunc64_32_def_fill.zfile_func64 = *pzlib_filefunc_def;
+
+  00016        b9 08 00 00 00   mov     ecx, 8
+  0001b        8d 7c 24 10      lea     edi, DWORD PTR _zlib_filefunc64_32_def_fill$82537[esp+60]
+  0001f        f3 a5            rep movsd
+
+; 785  :         zlib_filefunc64_32_def_fill.ztell32_file = NULL;
+
+  00021        89 44 24 34      mov     DWORD PTR _zlib_filefunc64_32_def_fill$82537[esp+96], eax
+
+; 786  :         zlib_filefunc64_32_def_fill.zseek32_file = NULL;
+
+  00025        89 44 24 38      mov     DWORD PTR _zlib_filefunc64_32_def_fill$82537[esp+100], eax
+
+; 787  :         return unzOpenInternal(path, &zlib_filefunc64_32_def_fill, 1);
+
+  00029        8b 45 08         mov     eax, DWORD PTR _path$[ebp]
+  0002c        50               push    eax
+  0002d        8d 44 24 14      lea     eax, DWORD PTR _zlib_filefunc64_32_def_fill$82537[esp+64]
+
+; 788  :     }
+; 789  :     else
+; 790  :         return unzOpenInternal(path, NULL, 1);
+
+  00031        e8 00 00 00 00   call    _unzOpenInternal
+  00036        83 c4 08         add     esp, 8
+
+; 791  : }
+
+  00039        5f               pop     edi
+  0003a        5e               pop     esi
+  0003b        8b e5            mov     esp, ebp
+  0003d        5d               pop     ebp
+  0003e        c2 08 00         ret     8
+$LN2@unzOpen2_6:
+
+; 788  :     }
+; 789  :     else
+; 790  :         return unzOpenInternal(path, NULL, 1);
+
+  00041        8b 4d 08         mov     ecx, DWORD PTR _path$[ebp]
+  00044        51               push    ecx
+  00045        33 c0            xor     eax, eax
+  00047        e8 00 00 00 00   call    _unzOpenInternal
+  0004c        83 c4 08         add     esp, 8
+
+; 791  : }
+
+  0004f        5f               pop     edi
+  00050        5e               pop     esi
+  00051        8b e5            mov     esp, ebp
+  00053        5d               pop     ebp
+  00054        c2 08 00         ret     8
+_unzOpen2_64@8 ENDP
+_TEXT  ENDS
+PUBLIC _unzOpen2@8
+; Function compile flags: /Ogtp
+;      COMDAT _unzOpen2@8
+_TEXT  SEGMENT
+_zlib_filefunc64_32_def_fill$82527 = -44               ; size = 44
+_path$ = 8                                             ; size = 4
+_pzlib_filefunc32_def$ = 12                            ; size = 4
+_unzOpen2@8 PROC                                       ; COMDAT
+
+; 767  : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+  00003        83 e4 f8         and     esp, -8                        ; fffffff8H
+
+; 768  :     if (pzlib_filefunc32_def != NULL)
+
+  00006        8b 4d 0c         mov     ecx, DWORD PTR _pzlib_filefunc32_def$[ebp]
+  00009        83 ec 30         sub     esp, 48                        ; 00000030H
+  0000c        85 c9            test    ecx, ecx
+  0000e        74 21            je      SHORT $LN2@unzOpen2
+
+; 769  :     {
+; 770  :         zlib_filefunc64_32_def zlib_filefunc64_32_def_fill;
+; 771  :         fill_zlib_filefunc64_32_def_from_filefunc32(&zlib_filefunc64_32_def_fill,pzlib_filefunc32_def);
+
+  00010        8d 44 24 04      lea     eax, DWORD PTR _zlib_filefunc64_32_def_fill$82527[esp+48]
+  00014        e8 00 00 00 00   call    _fill_zlib_filefunc64_32_def_from_filefunc32
+
+; 772  :         return unzOpenInternal(path, &zlib_filefunc64_32_def_fill, 0);
+
+  00019        8b 45 08         mov     eax, DWORD PTR _path$[ebp]
+  0001c        6a 00            push    0
+  0001e        50               push    eax
+  0001f        8d 44 24 0c      lea     eax, DWORD PTR _zlib_filefunc64_32_def_fill$82527[esp+56]
+
+; 773  :     }
+; 774  :     else
+; 775  :         return unzOpenInternal(path, NULL, 0);
+
+  00023        e8 00 00 00 00   call    _unzOpenInternal
+  00028        83 c4 08         add     esp, 8
+
+; 776  : }
+
+  0002b        8b e5            mov     esp, ebp
+  0002d        5d               pop     ebp
+  0002e        c2 08 00         ret     8
+$LN2@unzOpen2:
+
+; 773  :     }
+; 774  :     else
+; 775  :         return unzOpenInternal(path, NULL, 0);
+
+  00031        8b 4d 08         mov     ecx, DWORD PTR _path$[ebp]
+  00034        6a 00            push    0
+  00036        51               push    ecx
+  00037        33 c0            xor     eax, eax
+  00039        e8 00 00 00 00   call    _unzOpenInternal
+  0003e        83 c4 08         add     esp, 8
+
+; 776  : }
+
+  00041        8b e5            mov     esp, ebp
+  00043        5d               pop     ebp
+  00044        c2 08 00         ret     8
+_unzOpen2@8 ENDP
+PUBLIC _unzOpenCurrentFile2@16
+; Function compile flags: /Ogtp
+;      COMDAT _unzOpenCurrentFile2@16
+_TEXT  SEGMENT
+_file$ = 8                                             ; size = 4
+_method$ = 12                                          ; size = 4
+_level$ = 16                                           ; size = 4
+_raw$ = 20                                             ; size = 4
+_unzOpenCurrentFile2@16 PROC                           ; COMDAT
+
+; 1652 : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+
+; 1653 :     return unzOpenCurrentFile3(file, method, level, raw, NULL);
+
+  00003        8b 45 14         mov     eax, DWORD PTR _raw$[ebp]
+  00006        8b 4d 10         mov     ecx, DWORD PTR _level$[ebp]
+  00009        8b 55 0c         mov     edx, DWORD PTR _method$[ebp]
+  0000c        6a 00            push    0
+  0000e        50               push    eax
+  0000f        8b 45 08         mov     eax, DWORD PTR _file$[ebp]
+  00012        51               push    ecx
+  00013        52               push    edx
+  00014        50               push    eax
+  00015        e8 00 00 00 00   call    _unzOpenCurrentFile3@20
+
+; 1654 : }
+
+  0001a        5d               pop     ebp
+  0001b        c2 10 00         ret     16                     ; 00000010H
+_unzOpenCurrentFile2@16 ENDP
+_TEXT  ENDS
+PUBLIC _unzOpenCurrentFilePassword@8
+; Function compile flags: /Ogtp
+;      COMDAT _unzOpenCurrentFilePassword@8
+_TEXT  SEGMENT
+_file$ = 8                                             ; size = 4
+_password$ = 12                                                ; size = 4
+_unzOpenCurrentFilePassword@8 PROC                     ; COMDAT
+
+; 1647 : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+
+; 1648 :     return unzOpenCurrentFile3(file, NULL, NULL, 0, password);
+
+  00003        8b 45 0c         mov     eax, DWORD PTR _password$[ebp]
+  00006        8b 4d 08         mov     ecx, DWORD PTR _file$[ebp]
+  00009        50               push    eax
+  0000a        6a 00            push    0
+  0000c        6a 00            push    0
+  0000e        6a 00            push    0
+  00010        51               push    ecx
+  00011        e8 00 00 00 00   call    _unzOpenCurrentFile3@20
+
+; 1649 : }
+
+  00016        5d               pop     ebp
+  00017        c2 08 00         ret     8
+_unzOpenCurrentFilePassword@8 ENDP
+_TEXT  ENDS
+PUBLIC _unzOpenCurrentFile@4
+; Function compile flags: /Ogtp
+;      COMDAT _unzOpenCurrentFile@4
+_TEXT  SEGMENT
+_file$ = 8                                             ; size = 4
+_unzOpenCurrentFile@4 PROC                             ; COMDAT
+
+; 1642 : {
+
+  00000        55               push    ebp
+  00001        8b ec            mov     ebp, esp
+
+; 1643 :     return unzOpenCurrentFile3(file, NULL, NULL, 0, NULL);
+
+  00003        8b 45 08         mov     eax, DWORD PTR _file$[ebp]
+  00006        6a 00            push    0
+  00008        6a 00            push    0
+  0000a        6a 00            push    0
+  0000c        6a 00            push    0
+  0000e        50               push    eax
+  0000f        e8 00 00 00 00   call    _unzOpenCurrentFile3@20
+
+; 1644 : }
+
+  00014        5d               pop     ebp
+  00015        c2 04 00         ret     4
+_unzOpenCurrentFile@4 ENDP
+END