--- /dev/null
+; 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