]> gerrit.simantics Code Review - simantics/sysdyn.git/blob
df084720b6e019c1cec0f9416e4cda0e41c14ada
[simantics/sysdyn.git] /
1 ; Listing generated by Microsoft (R) Optimizing Compiler Version 16.00.30319.01 \r
2 \r
3         TITLE   D:\FMU\FMUSolution\zlib-1.2.6\inflate.c\r
4         .686P\r
5         .XMM\r
6         include listing.inc\r
7         .model  flat\r
8 \r
9 INCLUDELIB OLDNAMES\r
10 \r
11 PUBLIC  ??_C@_0BH@LIBMMIGA@incorrect?5header?5check?$AA@ ; `string'\r
12 PUBLIC  ??_C@_0BL@IHKGDAEE@unknown?5compression?5method?$AA@ ; `string'\r
13 PUBLIC  ??_C@_0BE@EMOGCLGO@invalid?5window?5size?$AA@   ; `string'\r
14 PUBLIC  ??_C@_0BJ@BLBBCOMO@unknown?5header?5flags?5set?$AA@ ; `string'\r
15 PUBLIC  ??_C@_0BE@GONKLEPM@header?5crc?5mismatch?$AA@   ; `string'\r
16 PUBLIC  ??_C@_0BF@MEIGEHBE@incorrect?5data?5check?$AA@  ; `string'\r
17 PUBLIC  ??_C@_0BH@FGKKJGOC@incorrect?5length?5check?$AA@ ; `string'\r
18 ;       COMDAT ??_C@_0BH@FGKKJGOC@incorrect?5length?5check?$AA@\r
19 CONST   SEGMENT\r
20 ??_C@_0BH@FGKKJGOC@incorrect?5length?5check?$AA@ DB 'incorrect length che'\r
21         DB      'ck', 00H                                       ; `string'\r
22 CONST   ENDS\r
23 ;       COMDAT ??_C@_0BF@MEIGEHBE@incorrect?5data?5check?$AA@\r
24 CONST   SEGMENT\r
25 ??_C@_0BF@MEIGEHBE@incorrect?5data?5check?$AA@ DB 'incorrect data check', 00H ; `string'\r
26 CONST   ENDS\r
27 ;       COMDAT ??_C@_0BE@GONKLEPM@header?5crc?5mismatch?$AA@\r
28 CONST   SEGMENT\r
29 ??_C@_0BE@GONKLEPM@header?5crc?5mismatch?$AA@ DB 'header crc mismatch', 00H ; `string'\r
30 CONST   ENDS\r
31 ;       COMDAT ??_C@_0BJ@BLBBCOMO@unknown?5header?5flags?5set?$AA@\r
32 CONST   SEGMENT\r
33 ??_C@_0BJ@BLBBCOMO@unknown?5header?5flags?5set?$AA@ DB 'unknown header fl'\r
34         DB      'ags set', 00H                          ; `string'\r
35 CONST   ENDS\r
36 ;       COMDAT ??_C@_0BE@EMOGCLGO@invalid?5window?5size?$AA@\r
37 CONST   SEGMENT\r
38 ??_C@_0BE@EMOGCLGO@invalid?5window?5size?$AA@ DB 'invalid window size', 00H ; `string'\r
39 CONST   ENDS\r
40 ;       COMDAT ??_C@_0BL@IHKGDAEE@unknown?5compression?5method?$AA@\r
41 CONST   SEGMENT\r
42 ??_C@_0BL@IHKGDAEE@unknown?5compression?5method?$AA@ DB 'unknown compress'\r
43         DB      'ion method', 00H                               ; `string'\r
44 CONST   ENDS\r
45 ;       COMDAT ??_C@_0BH@LIBMMIGA@incorrect?5header?5check?$AA@\r
46 CONST   SEGMENT\r
47 ??_C@_0BH@LIBMMIGA@incorrect?5header?5check?$AA@ DB 'incorrect header che'\r
48         DB      'ck', 00H                                       ; `string'\r
49 ?lenfix@?1??fixedtables@@9@9 DB 060H                    ; `fixedtables'::`2'::lenfix\r
50         DB      07H\r
51         DW      00H\r
52         DB      00H\r
53         DB      08H\r
54         DW      050H\r
55         DB      00H\r
56         DB      08H\r
57         DW      010H\r
58         DB      014H\r
59         DB      08H\r
60         DW      073H\r
61         DB      012H\r
62         DB      07H\r
63         DW      01fH\r
64         DB      00H\r
65         DB      08H\r
66         DW      070H\r
67         DB      00H\r
68         DB      08H\r
69         DW      030H\r
70         DB      00H\r
71         DB      09H\r
72         DW      0c0H\r
73         DB      010H\r
74         DB      07H\r
75         DW      0aH\r
76         DB      00H\r
77         DB      08H\r
78         DW      060H\r
79         DB      00H\r
80         DB      08H\r
81         DW      020H\r
82         DB      00H\r
83         DB      09H\r
84         DW      0a0H\r
85         DB      00H\r
86         DB      08H\r
87         DW      00H\r
88         DB      00H\r
89         DB      08H\r
90         DW      080H\r
91         DB      00H\r
92         DB      08H\r
93         DW      040H\r
94         DB      00H\r
95         DB      09H\r
96         DW      0e0H\r
97         DB      010H\r
98         DB      07H\r
99         DW      06H\r
100         DB      00H\r
101         DB      08H\r
102         DW      058H\r
103         DB      00H\r
104         DB      08H\r
105         DW      018H\r
106         DB      00H\r
107         DB      09H\r
108         DW      090H\r
109         DB      013H\r
110         DB      07H\r
111         DW      03bH\r
112         DB      00H\r
113         DB      08H\r
114         DW      078H\r
115         DB      00H\r
116         DB      08H\r
117         DW      038H\r
118         DB      00H\r
119         DB      09H\r
120         DW      0d0H\r
121         DB      011H\r
122         DB      07H\r
123         DW      011H\r
124         DB      00H\r
125         DB      08H\r
126         DW      068H\r
127         DB      00H\r
128         DB      08H\r
129         DW      028H\r
130         DB      00H\r
131         DB      09H\r
132         DW      0b0H\r
133         DB      00H\r
134         DB      08H\r
135         DW      08H\r
136         DB      00H\r
137         DB      08H\r
138         DW      088H\r
139         DB      00H\r
140         DB      08H\r
141         DW      048H\r
142         DB      00H\r
143         DB      09H\r
144         DW      0f0H\r
145         DB      010H\r
146         DB      07H\r
147         DW      04H\r
148         DB      00H\r
149         DB      08H\r
150         DW      054H\r
151         DB      00H\r
152         DB      08H\r
153         DW      014H\r
154         DB      015H\r
155         DB      08H\r
156         DW      0e3H\r
157         DB      013H\r
158         DB      07H\r
159         DW      02bH\r
160         DB      00H\r
161         DB      08H\r
162         DW      074H\r
163         DB      00H\r
164         DB      08H\r
165         DW      034H\r
166         DB      00H\r
167         DB      09H\r
168         DW      0c8H\r
169         DB      011H\r
170         DB      07H\r
171         DW      0dH\r
172         DB      00H\r
173         DB      08H\r
174         DW      064H\r
175         DB      00H\r
176         DB      08H\r
177         DW      024H\r
178         DB      00H\r
179         DB      09H\r
180         DW      0a8H\r
181         DB      00H\r
182         DB      08H\r
183         DW      04H\r
184         DB      00H\r
185         DB      08H\r
186         DW      084H\r
187         DB      00H\r
188         DB      08H\r
189         DW      044H\r
190         DB      00H\r
191         DB      09H\r
192         DW      0e8H\r
193         DB      010H\r
194         DB      07H\r
195         DW      08H\r
196         DB      00H\r
197         DB      08H\r
198         DW      05cH\r
199         DB      00H\r
200         DB      08H\r
201         DW      01cH\r
202         DB      00H\r
203         DB      09H\r
204         DW      098H\r
205         DB      014H\r
206         DB      07H\r
207         DW      053H\r
208         DB      00H\r
209         DB      08H\r
210         DW      07cH\r
211         DB      00H\r
212         DB      08H\r
213         DW      03cH\r
214         DB      00H\r
215         DB      09H\r
216         DW      0d8H\r
217         DB      012H\r
218         DB      07H\r
219         DW      017H\r
220         DB      00H\r
221         DB      08H\r
222         DW      06cH\r
223         DB      00H\r
224         DB      08H\r
225         DW      02cH\r
226         DB      00H\r
227         DB      09H\r
228         DW      0b8H\r
229         DB      00H\r
230         DB      08H\r
231         DW      0cH\r
232         DB      00H\r
233         DB      08H\r
234         DW      08cH\r
235         DB      00H\r
236         DB      08H\r
237         DW      04cH\r
238         DB      00H\r
239         DB      09H\r
240         DW      0f8H\r
241         DB      010H\r
242         DB      07H\r
243         DW      03H\r
244         DB      00H\r
245         DB      08H\r
246         DW      052H\r
247         DB      00H\r
248         DB      08H\r
249         DW      012H\r
250         DB      015H\r
251         DB      08H\r
252         DW      0a3H\r
253         DB      013H\r
254         DB      07H\r
255         DW      023H\r
256         DB      00H\r
257         DB      08H\r
258         DW      072H\r
259         DB      00H\r
260         DB      08H\r
261         DW      032H\r
262         DB      00H\r
263         DB      09H\r
264         DW      0c4H\r
265         DB      011H\r
266         DB      07H\r
267         DW      0bH\r
268         DB      00H\r
269         DB      08H\r
270         DW      062H\r
271         DB      00H\r
272         DB      08H\r
273         DW      022H\r
274         DB      00H\r
275         DB      09H\r
276         DW      0a4H\r
277         DB      00H\r
278         DB      08H\r
279         DW      02H\r
280         DB      00H\r
281         DB      08H\r
282         DW      082H\r
283         DB      00H\r
284         DB      08H\r
285         DW      042H\r
286         DB      00H\r
287         DB      09H\r
288         DW      0e4H\r
289         DB      010H\r
290         DB      07H\r
291         DW      07H\r
292         DB      00H\r
293         DB      08H\r
294         DW      05aH\r
295         DB      00H\r
296         DB      08H\r
297         DW      01aH\r
298         DB      00H\r
299         DB      09H\r
300         DW      094H\r
301         DB      014H\r
302         DB      07H\r
303         DW      043H\r
304         DB      00H\r
305         DB      08H\r
306         DW      07aH\r
307         DB      00H\r
308         DB      08H\r
309         DW      03aH\r
310         DB      00H\r
311         DB      09H\r
312         DW      0d4H\r
313         DB      012H\r
314         DB      07H\r
315         DW      013H\r
316         DB      00H\r
317         DB      08H\r
318         DW      06aH\r
319         DB      00H\r
320         DB      08H\r
321         DW      02aH\r
322         DB      00H\r
323         DB      09H\r
324         DW      0b4H\r
325         DB      00H\r
326         DB      08H\r
327         DW      0aH\r
328         DB      00H\r
329         DB      08H\r
330         DW      08aH\r
331         DB      00H\r
332         DB      08H\r
333         DW      04aH\r
334         DB      00H\r
335         DB      09H\r
336         DW      0f4H\r
337         DB      010H\r
338         DB      07H\r
339         DW      05H\r
340         DB      00H\r
341         DB      08H\r
342         DW      056H\r
343         DB      00H\r
344         DB      08H\r
345         DW      016H\r
346         DB      040H\r
347         DB      08H\r
348         DW      00H\r
349         DB      013H\r
350         DB      07H\r
351         DW      033H\r
352         DB      00H\r
353         DB      08H\r
354         DW      076H\r
355         DB      00H\r
356         DB      08H\r
357         DW      036H\r
358         DB      00H\r
359         DB      09H\r
360         DW      0ccH\r
361         DB      011H\r
362         DB      07H\r
363         DW      0fH\r
364         DB      00H\r
365         DB      08H\r
366         DW      066H\r
367         DB      00H\r
368         DB      08H\r
369         DW      026H\r
370         DB      00H\r
371         DB      09H\r
372         DW      0acH\r
373         DB      00H\r
374         DB      08H\r
375         DW      06H\r
376         DB      00H\r
377         DB      08H\r
378         DW      086H\r
379         DB      00H\r
380         DB      08H\r
381         DW      046H\r
382         DB      00H\r
383         DB      09H\r
384         DW      0ecH\r
385         DB      010H\r
386         DB      07H\r
387         DW      09H\r
388         DB      00H\r
389         DB      08H\r
390         DW      05eH\r
391         DB      00H\r
392         DB      08H\r
393         DW      01eH\r
394         DB      00H\r
395         DB      09H\r
396         DW      09cH\r
397         DB      014H\r
398         DB      07H\r
399         DW      063H\r
400         DB      00H\r
401         DB      08H\r
402         DW      07eH\r
403         DB      00H\r
404         DB      08H\r
405         DW      03eH\r
406         DB      00H\r
407         DB      09H\r
408         DW      0dcH\r
409         DB      012H\r
410         DB      07H\r
411         DW      01bH\r
412         DB      00H\r
413         DB      08H\r
414         DW      06eH\r
415         DB      00H\r
416         DB      08H\r
417         DW      02eH\r
418         DB      00H\r
419         DB      09H\r
420         DW      0bcH\r
421         DB      00H\r
422         DB      08H\r
423         DW      0eH\r
424         DB      00H\r
425         DB      08H\r
426         DW      08eH\r
427         DB      00H\r
428         DB      08H\r
429         DW      04eH\r
430         DB      00H\r
431         DB      09H\r
432         DW      0fcH\r
433         DB      060H\r
434         DB      07H\r
435         DW      00H\r
436         DB      00H\r
437         DB      08H\r
438         DW      051H\r
439         DB      00H\r
440         DB      08H\r
441         DW      011H\r
442         DB      015H\r
443         DB      08H\r
444         DW      083H\r
445         DB      012H\r
446         DB      07H\r
447         DW      01fH\r
448         DB      00H\r
449         DB      08H\r
450         DW      071H\r
451         DB      00H\r
452         DB      08H\r
453         DW      031H\r
454         DB      00H\r
455         DB      09H\r
456         DW      0c2H\r
457         DB      010H\r
458         DB      07H\r
459         DW      0aH\r
460         DB      00H\r
461         DB      08H\r
462         DW      061H\r
463         DB      00H\r
464         DB      08H\r
465         DW      021H\r
466         DB      00H\r
467         DB      09H\r
468         DW      0a2H\r
469         DB      00H\r
470         DB      08H\r
471         DW      01H\r
472         DB      00H\r
473         DB      08H\r
474         DW      081H\r
475         DB      00H\r
476         DB      08H\r
477         DW      041H\r
478         DB      00H\r
479         DB      09H\r
480         DW      0e2H\r
481         DB      010H\r
482         DB      07H\r
483         DW      06H\r
484         DB      00H\r
485         DB      08H\r
486         DW      059H\r
487         DB      00H\r
488         DB      08H\r
489         DW      019H\r
490         DB      00H\r
491         DB      09H\r
492         DW      092H\r
493         DB      013H\r
494         DB      07H\r
495         DW      03bH\r
496         DB      00H\r
497         DB      08H\r
498         DW      079H\r
499         DB      00H\r
500         DB      08H\r
501         DW      039H\r
502         DB      00H\r
503         DB      09H\r
504         DW      0d2H\r
505         DB      011H\r
506         DB      07H\r
507         DW      011H\r
508         DB      00H\r
509         DB      08H\r
510         DW      069H\r
511         DB      00H\r
512         DB      08H\r
513         DW      029H\r
514         DB      00H\r
515         DB      09H\r
516         DW      0b2H\r
517         DB      00H\r
518         DB      08H\r
519         DW      09H\r
520         DB      00H\r
521         DB      08H\r
522         DW      089H\r
523         DB      00H\r
524         DB      08H\r
525         DW      049H\r
526         DB      00H\r
527         DB      09H\r
528         DW      0f2H\r
529         DB      010H\r
530         DB      07H\r
531         DW      04H\r
532         DB      00H\r
533         DB      08H\r
534         DW      055H\r
535         DB      00H\r
536         DB      08H\r
537         DW      015H\r
538         DB      010H\r
539         DB      08H\r
540         DW      0102H\r
541         DB      013H\r
542         DB      07H\r
543         DW      02bH\r
544         DB      00H\r
545         DB      08H\r
546         DW      075H\r
547         DB      00H\r
548         DB      08H\r
549         DW      035H\r
550         DB      00H\r
551         DB      09H\r
552         DW      0caH\r
553         DB      011H\r
554         DB      07H\r
555         DW      0dH\r
556         DB      00H\r
557         DB      08H\r
558         DW      065H\r
559         DB      00H\r
560         DB      08H\r
561         DW      025H\r
562         DB      00H\r
563         DB      09H\r
564         DW      0aaH\r
565         DB      00H\r
566         DB      08H\r
567         DW      05H\r
568         DB      00H\r
569         DB      08H\r
570         DW      085H\r
571         DB      00H\r
572         DB      08H\r
573         DW      045H\r
574         DB      00H\r
575         DB      09H\r
576         DW      0eaH\r
577         DB      010H\r
578         DB      07H\r
579         DW      08H\r
580         DB      00H\r
581         DB      08H\r
582         DW      05dH\r
583         DB      00H\r
584         DB      08H\r
585         DW      01dH\r
586         DB      00H\r
587         DB      09H\r
588         DW      09aH\r
589         DB      014H\r
590         DB      07H\r
591         DW      053H\r
592         DB      00H\r
593         DB      08H\r
594         DW      07dH\r
595         DB      00H\r
596         DB      08H\r
597         DW      03dH\r
598         DB      00H\r
599         DB      09H\r
600         DW      0daH\r
601         DB      012H\r
602         DB      07H\r
603         DW      017H\r
604         DB      00H\r
605         DB      08H\r
606         DW      06dH\r
607         DB      00H\r
608         DB      08H\r
609         DW      02dH\r
610         DB      00H\r
611         DB      09H\r
612         DW      0baH\r
613         DB      00H\r
614         DB      08H\r
615         DW      0dH\r
616         DB      00H\r
617         DB      08H\r
618         DW      08dH\r
619         DB      00H\r
620         DB      08H\r
621         DW      04dH\r
622         DB      00H\r
623         DB      09H\r
624         DW      0faH\r
625         DB      010H\r
626         DB      07H\r
627         DW      03H\r
628         DB      00H\r
629         DB      08H\r
630         DW      053H\r
631         DB      00H\r
632         DB      08H\r
633         DW      013H\r
634         DB      015H\r
635         DB      08H\r
636         DW      0c3H\r
637         DB      013H\r
638         DB      07H\r
639         DW      023H\r
640         DB      00H\r
641         DB      08H\r
642         DW      073H\r
643         DB      00H\r
644         DB      08H\r
645         DW      033H\r
646         DB      00H\r
647         DB      09H\r
648         DW      0c6H\r
649         DB      011H\r
650         DB      07H\r
651         DW      0bH\r
652         DB      00H\r
653         DB      08H\r
654         DW      063H\r
655         DB      00H\r
656         DB      08H\r
657         DW      023H\r
658         DB      00H\r
659         DB      09H\r
660         DW      0a6H\r
661         DB      00H\r
662         DB      08H\r
663         DW      03H\r
664         DB      00H\r
665         DB      08H\r
666         DW      083H\r
667         DB      00H\r
668         DB      08H\r
669         DW      043H\r
670         DB      00H\r
671         DB      09H\r
672         DW      0e6H\r
673         DB      010H\r
674         DB      07H\r
675         DW      07H\r
676         DB      00H\r
677         DB      08H\r
678         DW      05bH\r
679         DB      00H\r
680         DB      08H\r
681         DW      01bH\r
682         DB      00H\r
683         DB      09H\r
684         DW      096H\r
685         DB      014H\r
686         DB      07H\r
687         DW      043H\r
688         DB      00H\r
689         DB      08H\r
690         DW      07bH\r
691         DB      00H\r
692         DB      08H\r
693         DW      03bH\r
694         DB      00H\r
695         DB      09H\r
696         DW      0d6H\r
697         DB      012H\r
698         DB      07H\r
699         DW      013H\r
700         DB      00H\r
701         DB      08H\r
702         DW      06bH\r
703         DB      00H\r
704         DB      08H\r
705         DW      02bH\r
706         DB      00H\r
707         DB      09H\r
708         DW      0b6H\r
709         DB      00H\r
710         DB      08H\r
711         DW      0bH\r
712         DB      00H\r
713         DB      08H\r
714         DW      08bH\r
715         DB      00H\r
716         DB      08H\r
717         DW      04bH\r
718         DB      00H\r
719         DB      09H\r
720         DW      0f6H\r
721         DB      010H\r
722         DB      07H\r
723         DW      05H\r
724         DB      00H\r
725         DB      08H\r
726         DW      057H\r
727         DB      00H\r
728         DB      08H\r
729         DW      017H\r
730         DB      040H\r
731         DB      08H\r
732         DW      00H\r
733         DB      013H\r
734         DB      07H\r
735         DW      033H\r
736         DB      00H\r
737         DB      08H\r
738         DW      077H\r
739         DB      00H\r
740         DB      08H\r
741         DW      037H\r
742         DB      00H\r
743         DB      09H\r
744         DW      0ceH\r
745         DB      011H\r
746         DB      07H\r
747         DW      0fH\r
748         DB      00H\r
749         DB      08H\r
750         DW      067H\r
751         DB      00H\r
752         DB      08H\r
753         DW      027H\r
754         DB      00H\r
755         DB      09H\r
756         DW      0aeH\r
757         DB      00H\r
758         DB      08H\r
759         DW      07H\r
760         DB      00H\r
761         DB      08H\r
762         DW      087H\r
763         DB      00H\r
764         DB      08H\r
765         DW      047H\r
766         DB      00H\r
767         DB      09H\r
768         DW      0eeH\r
769         DB      010H\r
770         DB      07H\r
771         DW      09H\r
772         DB      00H\r
773         DB      08H\r
774         DW      05fH\r
775         DB      00H\r
776         DB      08H\r
777         DW      01fH\r
778         DB      00H\r
779         DB      09H\r
780         DW      09eH\r
781         DB      014H\r
782         DB      07H\r
783         DW      063H\r
784         DB      00H\r
785         DB      08H\r
786         DW      07fH\r
787         DB      00H\r
788         DB      08H\r
789         DW      03fH\r
790         DB      00H\r
791         DB      09H\r
792         DW      0deH\r
793         DB      012H\r
794         DB      07H\r
795         DW      01bH\r
796         DB      00H\r
797         DB      08H\r
798         DW      06fH\r
799         DB      00H\r
800         DB      08H\r
801         DW      02fH\r
802         DB      00H\r
803         DB      09H\r
804         DW      0beH\r
805         DB      00H\r
806         DB      08H\r
807         DW      0fH\r
808         DB      00H\r
809         DB      08H\r
810         DW      08fH\r
811         DB      00H\r
812         DB      08H\r
813         DW      04fH\r
814         DB      00H\r
815         DB      09H\r
816         DW      0feH\r
817         DB      060H\r
818         DB      07H\r
819         DW      00H\r
820         DB      00H\r
821         DB      08H\r
822         DW      050H\r
823         DB      00H\r
824         DB      08H\r
825         DW      010H\r
826         DB      014H\r
827         DB      08H\r
828         DW      073H\r
829         DB      012H\r
830         DB      07H\r
831         DW      01fH\r
832         DB      00H\r
833         DB      08H\r
834         DW      070H\r
835         DB      00H\r
836         DB      08H\r
837         DW      030H\r
838         DB      00H\r
839         DB      09H\r
840         DW      0c1H\r
841         DB      010H\r
842         DB      07H\r
843         DW      0aH\r
844         DB      00H\r
845         DB      08H\r
846         DW      060H\r
847         DB      00H\r
848         DB      08H\r
849         DW      020H\r
850         DB      00H\r
851         DB      09H\r
852         DW      0a1H\r
853         DB      00H\r
854         DB      08H\r
855         DW      00H\r
856         DB      00H\r
857         DB      08H\r
858         DW      080H\r
859         DB      00H\r
860         DB      08H\r
861         DW      040H\r
862         DB      00H\r
863         DB      09H\r
864         DW      0e1H\r
865         DB      010H\r
866         DB      07H\r
867         DW      06H\r
868         DB      00H\r
869         DB      08H\r
870         DW      058H\r
871         DB      00H\r
872         DB      08H\r
873         DW      018H\r
874         DB      00H\r
875         DB      09H\r
876         DW      091H\r
877         DB      013H\r
878         DB      07H\r
879         DW      03bH\r
880         DB      00H\r
881         DB      08H\r
882         DW      078H\r
883         DB      00H\r
884         DB      08H\r
885         DW      038H\r
886         DB      00H\r
887         DB      09H\r
888         DW      0d1H\r
889         DB      011H\r
890         DB      07H\r
891         DW      011H\r
892         DB      00H\r
893         DB      08H\r
894         DW      068H\r
895         DB      00H\r
896         DB      08H\r
897         DW      028H\r
898         DB      00H\r
899         DB      09H\r
900         DW      0b1H\r
901         DB      00H\r
902         DB      08H\r
903         DW      08H\r
904         DB      00H\r
905         DB      08H\r
906         DW      088H\r
907         DB      00H\r
908         DB      08H\r
909         DW      048H\r
910         DB      00H\r
911         DB      09H\r
912         DW      0f1H\r
913         DB      010H\r
914         DB      07H\r
915         DW      04H\r
916         DB      00H\r
917         DB      08H\r
918         DW      054H\r
919         DB      00H\r
920         DB      08H\r
921         DW      014H\r
922         DB      015H\r
923         DB      08H\r
924         DW      0e3H\r
925         DB      013H\r
926         DB      07H\r
927         DW      02bH\r
928         DB      00H\r
929         DB      08H\r
930         DW      074H\r
931         DB      00H\r
932         DB      08H\r
933         DW      034H\r
934         DB      00H\r
935         DB      09H\r
936         DW      0c9H\r
937         DB      011H\r
938         DB      07H\r
939         DW      0dH\r
940         DB      00H\r
941         DB      08H\r
942         DW      064H\r
943         DB      00H\r
944         DB      08H\r
945         DW      024H\r
946         DB      00H\r
947         DB      09H\r
948         DW      0a9H\r
949         DB      00H\r
950         DB      08H\r
951         DW      04H\r
952         DB      00H\r
953         DB      08H\r
954         DW      084H\r
955         DB      00H\r
956         DB      08H\r
957         DW      044H\r
958         DB      00H\r
959         DB      09H\r
960         DW      0e9H\r
961         DB      010H\r
962         DB      07H\r
963         DW      08H\r
964         DB      00H\r
965         DB      08H\r
966         DW      05cH\r
967         DB      00H\r
968         DB      08H\r
969         DW      01cH\r
970         DB      00H\r
971         DB      09H\r
972         DW      099H\r
973         DB      014H\r
974         DB      07H\r
975         DW      053H\r
976         DB      00H\r
977         DB      08H\r
978         DW      07cH\r
979         DB      00H\r
980         DB      08H\r
981         DW      03cH\r
982         DB      00H\r
983         DB      09H\r
984         DW      0d9H\r
985         DB      012H\r
986         DB      07H\r
987         DW      017H\r
988         DB      00H\r
989         DB      08H\r
990         DW      06cH\r
991         DB      00H\r
992         DB      08H\r
993         DW      02cH\r
994         DB      00H\r
995         DB      09H\r
996         DW      0b9H\r
997         DB      00H\r
998         DB      08H\r
999         DW      0cH\r
1000         DB      00H\r
1001         DB      08H\r
1002         DW      08cH\r
1003         DB      00H\r
1004         DB      08H\r
1005         DW      04cH\r
1006         DB      00H\r
1007         DB      09H\r
1008         DW      0f9H\r
1009         DB      010H\r
1010         DB      07H\r
1011         DW      03H\r
1012         DB      00H\r
1013         DB      08H\r
1014         DW      052H\r
1015         DB      00H\r
1016         DB      08H\r
1017         DW      012H\r
1018         DB      015H\r
1019         DB      08H\r
1020         DW      0a3H\r
1021         DB      013H\r
1022         DB      07H\r
1023         DW      023H\r
1024         DB      00H\r
1025         DB      08H\r
1026         DW      072H\r
1027         DB      00H\r
1028         DB      08H\r
1029         DW      032H\r
1030         DB      00H\r
1031         DB      09H\r
1032         DW      0c5H\r
1033         DB      011H\r
1034         DB      07H\r
1035         DW      0bH\r
1036         DB      00H\r
1037         DB      08H\r
1038         DW      062H\r
1039         DB      00H\r
1040         DB      08H\r
1041         DW      022H\r
1042         DB      00H\r
1043         DB      09H\r
1044         DW      0a5H\r
1045         DB      00H\r
1046         DB      08H\r
1047         DW      02H\r
1048         DB      00H\r
1049         DB      08H\r
1050         DW      082H\r
1051         DB      00H\r
1052         DB      08H\r
1053         DW      042H\r
1054         DB      00H\r
1055         DB      09H\r
1056         DW      0e5H\r
1057         DB      010H\r
1058         DB      07H\r
1059         DW      07H\r
1060         DB      00H\r
1061         DB      08H\r
1062         DW      05aH\r
1063         DB      00H\r
1064         DB      08H\r
1065         DW      01aH\r
1066         DB      00H\r
1067         DB      09H\r
1068         DW      095H\r
1069         DB      014H\r
1070         DB      07H\r
1071         DW      043H\r
1072         DB      00H\r
1073         DB      08H\r
1074         DW      07aH\r
1075         DB      00H\r
1076         DB      08H\r
1077         DW      03aH\r
1078         DB      00H\r
1079         DB      09H\r
1080         DW      0d5H\r
1081         DB      012H\r
1082         DB      07H\r
1083         DW      013H\r
1084         DB      00H\r
1085         DB      08H\r
1086         DW      06aH\r
1087         DB      00H\r
1088         DB      08H\r
1089         DW      02aH\r
1090         DB      00H\r
1091         DB      09H\r
1092         DW      0b5H\r
1093         DB      00H\r
1094         DB      08H\r
1095         DW      0aH\r
1096         DB      00H\r
1097         DB      08H\r
1098         DW      08aH\r
1099         DB      00H\r
1100         DB      08H\r
1101         DW      04aH\r
1102         DB      00H\r
1103         DB      09H\r
1104         DW      0f5H\r
1105         DB      010H\r
1106         DB      07H\r
1107         DW      05H\r
1108         DB      00H\r
1109         DB      08H\r
1110         DW      056H\r
1111         DB      00H\r
1112         DB      08H\r
1113         DW      016H\r
1114         DB      040H\r
1115         DB      08H\r
1116         DW      00H\r
1117         DB      013H\r
1118         DB      07H\r
1119         DW      033H\r
1120         DB      00H\r
1121         DB      08H\r
1122         DW      076H\r
1123         DB      00H\r
1124         DB      08H\r
1125         DW      036H\r
1126         DB      00H\r
1127         DB      09H\r
1128         DW      0cdH\r
1129         DB      011H\r
1130         DB      07H\r
1131         DW      0fH\r
1132         DB      00H\r
1133         DB      08H\r
1134         DW      066H\r
1135         DB      00H\r
1136         DB      08H\r
1137         DW      026H\r
1138         DB      00H\r
1139         DB      09H\r
1140         DW      0adH\r
1141         DB      00H\r
1142         DB      08H\r
1143         DW      06H\r
1144         DB      00H\r
1145         DB      08H\r
1146         DW      086H\r
1147         DB      00H\r
1148         DB      08H\r
1149         DW      046H\r
1150         DB      00H\r
1151         DB      09H\r
1152         DW      0edH\r
1153         DB      010H\r
1154         DB      07H\r
1155         DW      09H\r
1156         DB      00H\r
1157         DB      08H\r
1158         DW      05eH\r
1159         DB      00H\r
1160         DB      08H\r
1161         DW      01eH\r
1162         DB      00H\r
1163         DB      09H\r
1164         DW      09dH\r
1165         DB      014H\r
1166         DB      07H\r
1167         DW      063H\r
1168         DB      00H\r
1169         DB      08H\r
1170         DW      07eH\r
1171         DB      00H\r
1172         DB      08H\r
1173         DW      03eH\r
1174         DB      00H\r
1175         DB      09H\r
1176         DW      0ddH\r
1177         DB      012H\r
1178         DB      07H\r
1179         DW      01bH\r
1180         DB      00H\r
1181         DB      08H\r
1182         DW      06eH\r
1183         DB      00H\r
1184         DB      08H\r
1185         DW      02eH\r
1186         DB      00H\r
1187         DB      09H\r
1188         DW      0bdH\r
1189         DB      00H\r
1190         DB      08H\r
1191         DW      0eH\r
1192         DB      00H\r
1193         DB      08H\r
1194         DW      08eH\r
1195         DB      00H\r
1196         DB      08H\r
1197         DW      04eH\r
1198         DB      00H\r
1199         DB      09H\r
1200         DW      0fdH\r
1201         DB      060H\r
1202         DB      07H\r
1203         DW      00H\r
1204         DB      00H\r
1205         DB      08H\r
1206         DW      051H\r
1207         DB      00H\r
1208         DB      08H\r
1209         DW      011H\r
1210         DB      015H\r
1211         DB      08H\r
1212         DW      083H\r
1213         DB      012H\r
1214         DB      07H\r
1215         DW      01fH\r
1216         DB      00H\r
1217         DB      08H\r
1218         DW      071H\r
1219         DB      00H\r
1220         DB      08H\r
1221         DW      031H\r
1222         DB      00H\r
1223         DB      09H\r
1224         DW      0c3H\r
1225         DB      010H\r
1226         DB      07H\r
1227         DW      0aH\r
1228         DB      00H\r
1229         DB      08H\r
1230         DW      061H\r
1231         DB      00H\r
1232         DB      08H\r
1233         DW      021H\r
1234         DB      00H\r
1235         DB      09H\r
1236         DW      0a3H\r
1237         DB      00H\r
1238         DB      08H\r
1239         DW      01H\r
1240         DB      00H\r
1241         DB      08H\r
1242         DW      081H\r
1243         DB      00H\r
1244         DB      08H\r
1245         DW      041H\r
1246         DB      00H\r
1247         DB      09H\r
1248         DW      0e3H\r
1249         DB      010H\r
1250         DB      07H\r
1251         DW      06H\r
1252         DB      00H\r
1253         DB      08H\r
1254         DW      059H\r
1255         DB      00H\r
1256         DB      08H\r
1257         DW      019H\r
1258         DB      00H\r
1259         DB      09H\r
1260         DW      093H\r
1261         DB      013H\r
1262         DB      07H\r
1263         DW      03bH\r
1264         DB      00H\r
1265         DB      08H\r
1266         DW      079H\r
1267         DB      00H\r
1268         DB      08H\r
1269         DW      039H\r
1270         DB      00H\r
1271         DB      09H\r
1272         DW      0d3H\r
1273         DB      011H\r
1274         DB      07H\r
1275         DW      011H\r
1276         DB      00H\r
1277         DB      08H\r
1278         DW      069H\r
1279         DB      00H\r
1280         DB      08H\r
1281         DW      029H\r
1282         DB      00H\r
1283         DB      09H\r
1284         DW      0b3H\r
1285         DB      00H\r
1286         DB      08H\r
1287         DW      09H\r
1288         DB      00H\r
1289         DB      08H\r
1290         DW      089H\r
1291         DB      00H\r
1292         DB      08H\r
1293         DW      049H\r
1294         DB      00H\r
1295         DB      09H\r
1296         DW      0f3H\r
1297         DB      010H\r
1298         DB      07H\r
1299         DW      04H\r
1300         DB      00H\r
1301         DB      08H\r
1302         DW      055H\r
1303         DB      00H\r
1304         DB      08H\r
1305         DW      015H\r
1306         DB      010H\r
1307         DB      08H\r
1308         DW      0102H\r
1309         DB      013H\r
1310         DB      07H\r
1311         DW      02bH\r
1312         DB      00H\r
1313         DB      08H\r
1314         DW      075H\r
1315         DB      00H\r
1316         DB      08H\r
1317         DW      035H\r
1318         DB      00H\r
1319         DB      09H\r
1320         DW      0cbH\r
1321         DB      011H\r
1322         DB      07H\r
1323         DW      0dH\r
1324         DB      00H\r
1325         DB      08H\r
1326         DW      065H\r
1327         DB      00H\r
1328         DB      08H\r
1329         DW      025H\r
1330         DB      00H\r
1331         DB      09H\r
1332         DW      0abH\r
1333         DB      00H\r
1334         DB      08H\r
1335         DW      05H\r
1336         DB      00H\r
1337         DB      08H\r
1338         DW      085H\r
1339         DB      00H\r
1340         DB      08H\r
1341         DW      045H\r
1342         DB      00H\r
1343         DB      09H\r
1344         DW      0ebH\r
1345         DB      010H\r
1346         DB      07H\r
1347         DW      08H\r
1348         DB      00H\r
1349         DB      08H\r
1350         DW      05dH\r
1351         DB      00H\r
1352         DB      08H\r
1353         DW      01dH\r
1354         DB      00H\r
1355         DB      09H\r
1356         DW      09bH\r
1357         DB      014H\r
1358         DB      07H\r
1359         DW      053H\r
1360         DB      00H\r
1361         DB      08H\r
1362         DW      07dH\r
1363         DB      00H\r
1364         DB      08H\r
1365         DW      03dH\r
1366         DB      00H\r
1367         DB      09H\r
1368         DW      0dbH\r
1369         DB      012H\r
1370         DB      07H\r
1371         DW      017H\r
1372         DB      00H\r
1373         DB      08H\r
1374         DW      06dH\r
1375         DB      00H\r
1376         DB      08H\r
1377         DW      02dH\r
1378         DB      00H\r
1379         DB      09H\r
1380         DW      0bbH\r
1381         DB      00H\r
1382         DB      08H\r
1383         DW      0dH\r
1384         DB      00H\r
1385         DB      08H\r
1386         DW      08dH\r
1387         DB      00H\r
1388         DB      08H\r
1389         DW      04dH\r
1390         DB      00H\r
1391         DB      09H\r
1392         DW      0fbH\r
1393         DB      010H\r
1394         DB      07H\r
1395         DW      03H\r
1396         DB      00H\r
1397         DB      08H\r
1398         DW      053H\r
1399         DB      00H\r
1400         DB      08H\r
1401         DW      013H\r
1402         DB      015H\r
1403         DB      08H\r
1404         DW      0c3H\r
1405         DB      013H\r
1406         DB      07H\r
1407         DW      023H\r
1408         DB      00H\r
1409         DB      08H\r
1410         DW      073H\r
1411         DB      00H\r
1412         DB      08H\r
1413         DW      033H\r
1414         DB      00H\r
1415         DB      09H\r
1416         DW      0c7H\r
1417         DB      011H\r
1418         DB      07H\r
1419         DW      0bH\r
1420         DB      00H\r
1421         DB      08H\r
1422         DW      063H\r
1423         DB      00H\r
1424         DB      08H\r
1425         DW      023H\r
1426         DB      00H\r
1427         DB      09H\r
1428         DW      0a7H\r
1429         DB      00H\r
1430         DB      08H\r
1431         DW      03H\r
1432         DB      00H\r
1433         DB      08H\r
1434         DW      083H\r
1435         DB      00H\r
1436         DB      08H\r
1437         DW      043H\r
1438         DB      00H\r
1439         DB      09H\r
1440         DW      0e7H\r
1441         DB      010H\r
1442         DB      07H\r
1443         DW      07H\r
1444         DB      00H\r
1445         DB      08H\r
1446         DW      05bH\r
1447         DB      00H\r
1448         DB      08H\r
1449         DW      01bH\r
1450         DB      00H\r
1451         DB      09H\r
1452         DW      097H\r
1453         DB      014H\r
1454         DB      07H\r
1455         DW      043H\r
1456         DB      00H\r
1457         DB      08H\r
1458         DW      07bH\r
1459         DB      00H\r
1460         DB      08H\r
1461         DW      03bH\r
1462         DB      00H\r
1463         DB      09H\r
1464         DW      0d7H\r
1465         DB      012H\r
1466         DB      07H\r
1467         DW      013H\r
1468         DB      00H\r
1469         DB      08H\r
1470         DW      06bH\r
1471         DB      00H\r
1472         DB      08H\r
1473         DW      02bH\r
1474         DB      00H\r
1475         DB      09H\r
1476         DW      0b7H\r
1477         DB      00H\r
1478         DB      08H\r
1479         DW      0bH\r
1480         DB      00H\r
1481         DB      08H\r
1482         DW      08bH\r
1483         DB      00H\r
1484         DB      08H\r
1485         DW      04bH\r
1486         DB      00H\r
1487         DB      09H\r
1488         DW      0f7H\r
1489         DB      010H\r
1490         DB      07H\r
1491         DW      05H\r
1492         DB      00H\r
1493         DB      08H\r
1494         DW      057H\r
1495         DB      00H\r
1496         DB      08H\r
1497         DW      017H\r
1498         DB      040H\r
1499         DB      08H\r
1500         DW      00H\r
1501         DB      013H\r
1502         DB      07H\r
1503         DW      033H\r
1504         DB      00H\r
1505         DB      08H\r
1506         DW      077H\r
1507         DB      00H\r
1508         DB      08H\r
1509         DW      037H\r
1510         DB      00H\r
1511         DB      09H\r
1512         DW      0cfH\r
1513         DB      011H\r
1514         DB      07H\r
1515         DW      0fH\r
1516         DB      00H\r
1517         DB      08H\r
1518         DW      067H\r
1519         DB      00H\r
1520         DB      08H\r
1521         DW      027H\r
1522         DB      00H\r
1523         DB      09H\r
1524         DW      0afH\r
1525         DB      00H\r
1526         DB      08H\r
1527         DW      07H\r
1528         DB      00H\r
1529         DB      08H\r
1530         DW      087H\r
1531         DB      00H\r
1532         DB      08H\r
1533         DW      047H\r
1534         DB      00H\r
1535         DB      09H\r
1536         DW      0efH\r
1537         DB      010H\r
1538         DB      07H\r
1539         DW      09H\r
1540         DB      00H\r
1541         DB      08H\r
1542         DW      05fH\r
1543         DB      00H\r
1544         DB      08H\r
1545         DW      01fH\r
1546         DB      00H\r
1547         DB      09H\r
1548         DW      09fH\r
1549         DB      014H\r
1550         DB      07H\r
1551         DW      063H\r
1552         DB      00H\r
1553         DB      08H\r
1554         DW      07fH\r
1555         DB      00H\r
1556         DB      08H\r
1557         DW      03fH\r
1558         DB      00H\r
1559         DB      09H\r
1560         DW      0dfH\r
1561         DB      012H\r
1562         DB      07H\r
1563         DW      01bH\r
1564         DB      00H\r
1565         DB      08H\r
1566         DW      06fH\r
1567         DB      00H\r
1568         DB      08H\r
1569         DW      02fH\r
1570         DB      00H\r
1571         DB      09H\r
1572         DW      0bfH\r
1573         DB      00H\r
1574         DB      08H\r
1575         DW      0fH\r
1576         DB      00H\r
1577         DB      08H\r
1578         DW      08fH\r
1579         DB      00H\r
1580         DB      08H\r
1581         DW      04fH\r
1582         DB      00H\r
1583         DB      09H\r
1584         DW      0ffH\r
1585 ?distfix@?1??fixedtables@@9@9 DB 010H                   ; `fixedtables'::`2'::distfix\r
1586         DB      05H\r
1587         DW      01H\r
1588         DB      017H\r
1589         DB      05H\r
1590         DW      0101H\r
1591         DB      013H\r
1592         DB      05H\r
1593         DW      011H\r
1594         DB      01bH\r
1595         DB      05H\r
1596         DW      01001H\r
1597         DB      011H\r
1598         DB      05H\r
1599         DW      05H\r
1600         DB      019H\r
1601         DB      05H\r
1602         DW      0401H\r
1603         DB      015H\r
1604         DB      05H\r
1605         DW      041H\r
1606         DB      01dH\r
1607         DB      05H\r
1608         DW      04001H\r
1609         DB      010H\r
1610         DB      05H\r
1611         DW      03H\r
1612         DB      018H\r
1613         DB      05H\r
1614         DW      0201H\r
1615         DB      014H\r
1616         DB      05H\r
1617         DW      021H\r
1618         DB      01cH\r
1619         DB      05H\r
1620         DW      02001H\r
1621         DB      012H\r
1622         DB      05H\r
1623         DW      09H\r
1624         DB      01aH\r
1625         DB      05H\r
1626         DW      0801H\r
1627         DB      016H\r
1628         DB      05H\r
1629         DW      081H\r
1630         DB      040H\r
1631         DB      05H\r
1632         DW      00H\r
1633         DB      010H\r
1634         DB      05H\r
1635         DW      02H\r
1636         DB      017H\r
1637         DB      05H\r
1638         DW      0181H\r
1639         DB      013H\r
1640         DB      05H\r
1641         DW      019H\r
1642         DB      01bH\r
1643         DB      05H\r
1644         DW      01801H\r
1645         DB      011H\r
1646         DB      05H\r
1647         DW      07H\r
1648         DB      019H\r
1649         DB      05H\r
1650         DW      0601H\r
1651         DB      015H\r
1652         DB      05H\r
1653         DW      061H\r
1654         DB      01dH\r
1655         DB      05H\r
1656         DW      06001H\r
1657         DB      010H\r
1658         DB      05H\r
1659         DW      04H\r
1660         DB      018H\r
1661         DB      05H\r
1662         DW      0301H\r
1663         DB      014H\r
1664         DB      05H\r
1665         DW      031H\r
1666         DB      01cH\r
1667         DB      05H\r
1668         DW      03001H\r
1669         DB      012H\r
1670         DB      05H\r
1671         DW      0dH\r
1672         DB      01aH\r
1673         DB      05H\r
1674         DW      0c01H\r
1675         DB      016H\r
1676         DB      05H\r
1677         DW      0c1H\r
1678         DB      040H\r
1679         DB      05H\r
1680         DW      00H\r
1681 ?order@?1??inflate@@9@9 DW 010H                         ; `inflate'::`2'::order\r
1682         DW      011H\r
1683         DW      012H\r
1684         DW      00H\r
1685         DW      08H\r
1686         DW      07H\r
1687         DW      09H\r
1688         DW      06H\r
1689         DW      0aH\r
1690         DW      05H\r
1691         DW      0bH\r
1692         DW      04H\r
1693         DW      0cH\r
1694         DW      03H\r
1695         DW      0dH\r
1696         DW      02H\r
1697         DW      0eH\r
1698         DW      01H\r
1699         DW      0fH\r
1700 PUBLIC  _inflateMark@4\r
1701 ; Function compile flags: /Ogtp\r
1702 ; File d:\fmu\fmusolution\zlib-1.2.6\inflate.c\r
1703 ;       COMDAT _inflateMark@4\r
1704 _TEXT   SEGMENT\r
1705 _strm$ = 8                                              ; size = 4\r
1706 _inflateMark@4 PROC                                     ; COMDAT\r
1707 \r
1708 ; 1493 : {\r
1709 \r
1710   00000 55               push    ebp\r
1711   00001 8b ec            mov     ebp, esp\r
1712 \r
1713 ; 1494 :     struct inflate_state FAR *state;\r
1714 ; 1495 : \r
1715 ; 1496 :     if (strm == Z_NULL || strm->state == Z_NULL) return -1L << 16;\r
1716 \r
1717   00003 8b 45 08         mov     eax, DWORD PTR _strm$[ebp]\r
1718   00006 85 c0            test    eax, eax\r
1719   00008 74 4e            je      SHORT $LN1@inflateMar\r
1720   0000a 8b 40 1c         mov     eax, DWORD PTR [eax+28]\r
1721   0000d 85 c0            test    eax, eax\r
1722   0000f 74 47            je      SHORT $LN1@inflateMar\r
1723 \r
1724 ; 1497 :     state = (struct inflate_state FAR *)strm->state;\r
1725 ; 1498 :     return ((long)(state->back) << 16) +\r
1726 ; 1499 :         (state->mode == COPY ? state->length :\r
1727 ; 1500 :             (state->mode == MATCH ? state->was - state->length : 0));\r
1728 \r
1729   00011 8b 08            mov     ecx, DWORD PTR [eax]\r
1730   00013 83 f9 0f         cmp     ecx, 15                        ; 0000000fH\r
1731   00016 75 12            jne     SHORT $LN7@inflateMar\r
1732   00018 8b 48 40         mov     ecx, DWORD PTR [eax+64]\r
1733   0001b 8b 80 c4 1b 00\r
1734         00               mov     eax, DWORD PTR [eax+7108]\r
1735   00021 c1 e0 10         shl     eax, 16                        ; 00000010H\r
1736   00024 03 c1            add     eax, ecx\r
1737 \r
1738 ; 1501 : }\r
1739 \r
1740   00026 5d               pop     ebp\r
1741   00027 c2 04 00         ret     4\r
1742 $LN7@inflateMar:\r
1743 \r
1744 ; 1497 :     state = (struct inflate_state FAR *)strm->state;\r
1745 ; 1498 :     return ((long)(state->back) << 16) +\r
1746 ; 1499 :         (state->mode == COPY ? state->length :\r
1747 ; 1500 :             (state->mode == MATCH ? state->was - state->length : 0));\r
1748 \r
1749   0002a 83 f9 18         cmp     ecx, 24                        ; 00000018H\r
1750   0002d 75 18            jne     SHORT $LN5@inflateMar\r
1751   0002f 8b 88 c8 1b 00\r
1752         00               mov     ecx, DWORD PTR [eax+7112]\r
1753   00035 2b 48 40         sub     ecx, DWORD PTR [eax+64]\r
1754   00038 8b 80 c4 1b 00\r
1755         00               mov     eax, DWORD PTR [eax+7108]\r
1756   0003e c1 e0 10         shl     eax, 16                        ; 00000010H\r
1757   00041 03 c1            add     eax, ecx\r
1758 \r
1759 ; 1501 : }\r
1760 \r
1761   00043 5d               pop     ebp\r
1762   00044 c2 04 00         ret     4\r
1763 $LN5@inflateMar:\r
1764 \r
1765 ; 1497 :     state = (struct inflate_state FAR *)strm->state;\r
1766 ; 1498 :     return ((long)(state->back) << 16) +\r
1767 ; 1499 :         (state->mode == COPY ? state->length :\r
1768 ; 1500 :             (state->mode == MATCH ? state->was - state->length : 0));\r
1769 \r
1770   00047 8b 80 c4 1b 00\r
1771         00               mov     eax, DWORD PTR [eax+7108]\r
1772   0004d 33 c9            xor     ecx, ecx\r
1773   0004f c1 e0 10         shl     eax, 16                        ; 00000010H\r
1774   00052 03 c1            add     eax, ecx\r
1775 \r
1776 ; 1501 : }\r
1777 \r
1778   00054 5d               pop     ebp\r
1779   00055 c2 04 00         ret     4\r
1780 $LN1@inflateMar:\r
1781 \r
1782 ; 1494 :     struct inflate_state FAR *state;\r
1783 ; 1495 : \r
1784 ; 1496 :     if (strm == Z_NULL || strm->state == Z_NULL) return -1L << 16;\r
1785 \r
1786   00058 b8 00 00 ff ff   mov     eax, -65536            ; ffff0000H\r
1787 \r
1788 ; 1501 : }\r
1789 \r
1790   0005d 5d               pop     ebp\r
1791   0005e c2 04 00         ret     4\r
1792 _inflateMark@4 ENDP\r
1793 _TEXT   ENDS\r
1794 PUBLIC  _inflateUndermine@8\r
1795 ; Function compile flags: /Ogtp\r
1796 ;       COMDAT _inflateUndermine@8\r
1797 _TEXT   SEGMENT\r
1798 _strm$ = 8                                              ; size = 4\r
1799 _subvert$ = 12                                          ; size = 4\r
1800 _inflateUndermine@8 PROC                                ; COMDAT\r
1801 \r
1802 ; 1477 : {\r
1803 \r
1804   00000 55               push    ebp\r
1805   00001 8b ec            mov     ebp, esp\r
1806 \r
1807 ; 1478 :     struct inflate_state FAR *state;\r
1808 ; 1479 : \r
1809 ; 1480 :     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;\r
1810 \r
1811   00003 8b 45 08         mov     eax, DWORD PTR _strm$[ebp]\r
1812   00006 85 c0            test    eax, eax\r
1813   00008 74 1a            je      SHORT $LN1@inflateUnd\r
1814   0000a 8b 40 1c         mov     eax, DWORD PTR [eax+28]\r
1815   0000d 85 c0            test    eax, eax\r
1816   0000f 74 13            je      SHORT $LN1@inflateUnd\r
1817 \r
1818 ; 1481 :     state = (struct inflate_state FAR *)strm->state;\r
1819 ; 1482 :     state->sane = !subvert;\r
1820 ; 1483 : #ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\r
1821 ; 1484 :     return Z_OK;\r
1822 ; 1485 : #else\r
1823 ; 1486 :     state->sane = 1;\r
1824 \r
1825   00011 c7 80 c0 1b 00\r
1826         00 01 00 00 00   mov     DWORD PTR [eax+7104], 1\r
1827 \r
1828 ; 1487 :     return Z_DATA_ERROR;\r
1829 \r
1830   0001b b8 fd ff ff ff   mov     eax, -3                        ; fffffffdH\r
1831 \r
1832 ; 1488 : #endif\r
1833 ; 1489 : }\r
1834 \r
1835   00020 5d               pop     ebp\r
1836   00021 c2 08 00         ret     8\r
1837 $LN1@inflateUnd:\r
1838 \r
1839 ; 1478 :     struct inflate_state FAR *state;\r
1840 ; 1479 : \r
1841 ; 1480 :     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;\r
1842 \r
1843   00024 b8 fe ff ff ff   mov     eax, -2                        ; fffffffeH\r
1844 \r
1845 ; 1488 : #endif\r
1846 ; 1489 : }\r
1847 \r
1848   00029 5d               pop     ebp\r
1849   0002a c2 08 00         ret     8\r
1850 _inflateUndermine@8 ENDP\r
1851 _TEXT   ENDS\r
1852 PUBLIC  _inflateCopy@8\r
1853 EXTRN   _memcpy:PROC\r
1854 ; Function compile flags: /Ogtp\r
1855 ;       COMDAT _inflateCopy@8\r
1856 _TEXT   SEGMENT\r
1857 _copy$ = -4                                             ; size = 4\r
1858 _dest$ = 8                                              ; size = 4\r
1859 _window$ = 12                                           ; size = 4\r
1860 _source$ = 12                                           ; size = 4\r
1861 _inflateCopy@8 PROC                                     ; COMDAT\r
1862 \r
1863 ; 1430 : {\r
1864 \r
1865   00000 55               push    ebp\r
1866   00001 8b ec            mov     ebp, esp\r
1867   00003 51               push    ecx\r
1868 \r
1869 ; 1431 :     struct inflate_state FAR *state;\r
1870 ; 1432 :     struct inflate_state FAR *copy;\r
1871 ; 1433 :     unsigned char FAR *window;\r
1872 ; 1434 :     unsigned wsize;\r
1873 ; 1435 : \r
1874 ; 1436 :     /* check input */\r
1875 ; 1437 :     if (dest == Z_NULL || source == Z_NULL || source->state == Z_NULL ||\r
1876 ; 1438 :         source->zalloc == (alloc_func)0 || source->zfree == (free_func)0)\r
1877 \r
1878   00004 83 7d 08 00      cmp     DWORD PTR _dest$[ebp], 0\r
1879   00008 53               push    ebx\r
1880   00009 56               push    esi\r
1881   0000a 0f 84 36 01 00\r
1882         00               je      $LN6@inflateCop\r
1883   00010 8b 75 0c         mov     esi, DWORD PTR _source$[ebp]\r
1884   00013 85 f6            test    esi, esi\r
1885   00015 0f 84 2b 01 00\r
1886         00               je      $LN6@inflateCop\r
1887   0001b 8b 5e 1c         mov     ebx, DWORD PTR [esi+28]\r
1888   0001e 85 db            test    ebx, ebx\r
1889   00020 0f 84 20 01 00\r
1890         00               je      $LN6@inflateCop\r
1891   00026 8b 46 20         mov     eax, DWORD PTR [esi+32]\r
1892   00029 85 c0            test    eax, eax\r
1893   0002b 0f 84 15 01 00\r
1894         00               je      $LN6@inflateCop\r
1895   00031 83 7e 24 00      cmp     DWORD PTR [esi+36], 0\r
1896   00035 0f 84 0b 01 00\r
1897         00               je      $LN6@inflateCop\r
1898 \r
1899 ; 1440 :     state = (struct inflate_state FAR *)source->state;\r
1900 ; 1441 : \r
1901 ; 1442 :     /* allocate space */\r
1902 ; 1443 :     copy = (struct inflate_state FAR *)\r
1903 ; 1444 :            ZALLOC(source, 1, sizeof(struct inflate_state));\r
1904 \r
1905   0003b 8b 4e 28         mov     ecx, DWORD PTR [esi+40]\r
1906   0003e 57               push    edi\r
1907   0003f 68 cc 1b 00 00   push    7116                   ; 00001bccH\r
1908   00044 6a 01            push    1\r
1909   00046 51               push    ecx\r
1910   00047 ff d0            call    eax\r
1911   00049 8b f8            mov     edi, eax\r
1912   0004b 83 c4 0c         add     esp, 12                        ; 0000000cH\r
1913   0004e 89 7d fc         mov     DWORD PTR _copy$[ebp], edi\r
1914 \r
1915 ; 1445 :     if (copy == Z_NULL) return Z_MEM_ERROR;\r
1916 \r
1917   00051 85 ff            test    edi, edi\r
1918   00053 74 3a            je      SHORT $LN11@inflateCop\r
1919 \r
1920 ; 1446 :     window = Z_NULL;\r
1921 ; 1447 :     if (state->window != Z_NULL) {\r
1922 \r
1923   00055 83 7b 34 00      cmp     DWORD PTR [ebx+52], 0\r
1924   00059 c7 45 0c 00 00\r
1925         00 00            mov     DWORD PTR _window$[ebp], 0\r
1926   00060 74 3b            je      SHORT $LN3@inflateCop\r
1927 \r
1928 ; 1448 :         window = (unsigned char FAR *)\r
1929 ; 1449 :                  ZALLOC(source, 1U << state->wbits, sizeof(unsigned char));\r
1930 \r
1931   00062 8b 4b 24         mov     ecx, DWORD PTR [ebx+36]\r
1932   00065 8b 46 28         mov     eax, DWORD PTR [esi+40]\r
1933   00068 ba 01 00 00 00   mov     edx, 1\r
1934   0006d d3 e2            shl     edx, cl\r
1935   0006f 8b 4e 20         mov     ecx, DWORD PTR [esi+32]\r
1936   00072 6a 01            push    1\r
1937   00074 52               push    edx\r
1938   00075 50               push    eax\r
1939   00076 ff d1            call    ecx\r
1940   00078 83 c4 0c         add     esp, 12                        ; 0000000cH\r
1941   0007b 89 45 0c         mov     DWORD PTR _window$[ebp], eax\r
1942 \r
1943 ; 1450 :         if (window == Z_NULL) {\r
1944 \r
1945   0007e 85 c0            test    eax, eax\r
1946   00080 75 1b            jne     SHORT $LN3@inflateCop\r
1947 \r
1948 ; 1451 :             ZFREE(source, copy);\r
1949 \r
1950   00082 8b 56 28         mov     edx, DWORD PTR [esi+40]\r
1951   00085 8b 46 24         mov     eax, DWORD PTR [esi+36]\r
1952   00088 57               push    edi\r
1953   00089 52               push    edx\r
1954   0008a ff d0            call    eax\r
1955   0008c 83 c4 08         add     esp, 8\r
1956 $LN11@inflateCop:\r
1957 \r
1958 ; 1452 :             return Z_MEM_ERROR;\r
1959 \r
1960   0008f 5f               pop     edi\r
1961   00090 5e               pop     esi\r
1962   00091 b8 fc ff ff ff   mov     eax, -4                        ; fffffffcH\r
1963   00096 5b               pop     ebx\r
1964 \r
1965 ; 1472 : }\r
1966 \r
1967   00097 8b e5            mov     esp, ebp\r
1968   00099 5d               pop     ebp\r
1969   0009a c2 08 00         ret     8\r
1970 $LN3@inflateCop:\r
1971 \r
1972 ; 1453 :         }\r
1973 ; 1454 :     }\r
1974 ; 1455 : \r
1975 ; 1456 :     /* copy state */\r
1976 ; 1457 :     zmemcpy((voidpf)dest, (voidpf)source, sizeof(z_stream));\r
1977 \r
1978   0009d 8b 7d 08         mov     edi, DWORD PTR _dest$[ebp]\r
1979   000a0 b9 0e 00 00 00   mov     ecx, 14                        ; 0000000eH\r
1980 \r
1981 ; 1458 :     zmemcpy((voidpf)copy, (voidpf)state, sizeof(struct inflate_state));\r
1982 \r
1983   000a5 68 cc 1b 00 00   push    7116                   ; 00001bccH\r
1984   000aa f3 a5            rep movsd\r
1985   000ac 8b 75 fc         mov     esi, DWORD PTR _copy$[ebp]\r
1986   000af 53               push    ebx\r
1987   000b0 56               push    esi\r
1988   000b1 e8 00 00 00 00   call    _memcpy\r
1989 \r
1990 ; 1459 :     if (state->lencode >= state->codes &&\r
1991 ; 1460 :         state->lencode <= state->codes + ENOUGH - 1) {\r
1992 \r
1993   000b6 8b 43 4c         mov     eax, DWORD PTR [ebx+76]\r
1994   000b9 8d 8b 30 05 00\r
1995         00               lea     ecx, DWORD PTR [ebx+1328]\r
1996   000bf 83 c4 0c         add     esp, 12                        ; 0000000cH\r
1997   000c2 3b c1            cmp     eax, ecx\r
1998   000c4 72 36            jb      SHORT $LN2@inflateCop\r
1999   000c6 8d 93 bc 1b 00\r
2000         00               lea     edx, DWORD PTR [ebx+7100]\r
2001   000cc 3b c2            cmp     eax, edx\r
2002   000ce 77 2c            ja      SHORT $LN2@inflateCop\r
2003 \r
2004 ; 1461 :         copy->lencode = copy->codes + (state->lencode - state->codes);\r
2005 \r
2006   000d0 2b c3            sub     eax, ebx\r
2007   000d2 2d 30 05 00 00   sub     eax, 1328              ; 00000530H\r
2008   000d7 c1 f8 02         sar     eax, 2\r
2009   000da 8d 84 86 30 05\r
2010         00 00            lea     eax, DWORD PTR [esi+eax*4+1328]\r
2011   000e1 89 46 4c         mov     DWORD PTR [esi+76], eax\r
2012 \r
2013 ; 1462 :         copy->distcode = copy->codes + (state->distcode - state->codes);\r
2014 \r
2015   000e4 8b 4b 50         mov     ecx, DWORD PTR [ebx+80]\r
2016   000e7 2b cb            sub     ecx, ebx\r
2017   000e9 81 e9 30 05 00\r
2018         00               sub     ecx, 1328              ; 00000530H\r
2019   000ef c1 f9 02         sar     ecx, 2\r
2020   000f2 8d 94 8e 30 05\r
2021         00 00            lea     edx, DWORD PTR [esi+ecx*4+1328]\r
2022   000f9 89 56 50         mov     DWORD PTR [esi+80], edx\r
2023 $LN2@inflateCop:\r
2024 \r
2025 ; 1463 :     }\r
2026 ; 1464 :     copy->next = copy->codes + (state->next - state->codes);\r
2027 \r
2028   000fc 8b 43 6c         mov     eax, DWORD PTR [ebx+108]\r
2029 \r
2030 ; 1465 :     if (window != Z_NULL) {\r
2031 \r
2032   000ff 8b 7d 0c         mov     edi, DWORD PTR _window$[ebp]\r
2033   00102 2b c3            sub     eax, ebx\r
2034   00104 2d 30 05 00 00   sub     eax, 1328              ; 00000530H\r
2035   00109 c1 f8 02         sar     eax, 2\r
2036   0010c 8d 8c 86 30 05\r
2037         00 00            lea     ecx, DWORD PTR [esi+eax*4+1328]\r
2038   00113 89 4e 6c         mov     DWORD PTR [esi+108], ecx\r
2039   00116 85 ff            test    edi, edi\r
2040   00118 74 18            je      SHORT $LN1@inflateCop\r
2041 \r
2042 ; 1466 :         wsize = 1U << state->wbits;\r
2043 \r
2044   0011a 8b 4b 24         mov     ecx, DWORD PTR [ebx+36]\r
2045 \r
2046 ; 1467 :         zmemcpy(window, state->window, wsize);\r
2047 \r
2048   0011d 8b 43 34         mov     eax, DWORD PTR [ebx+52]\r
2049   00120 ba 01 00 00 00   mov     edx, 1\r
2050   00125 d3 e2            shl     edx, cl\r
2051   00127 52               push    edx\r
2052   00128 50               push    eax\r
2053   00129 57               push    edi\r
2054   0012a e8 00 00 00 00   call    _memcpy\r
2055   0012f 83 c4 0c         add     esp, 12                        ; 0000000cH\r
2056 $LN1@inflateCop:\r
2057 \r
2058 ; 1468 :     }\r
2059 ; 1469 :     copy->window = window;\r
2060 ; 1470 :     dest->state = (struct internal_state FAR *)copy;\r
2061 \r
2062   00132 8b 4d 08         mov     ecx, DWORD PTR _dest$[ebp]\r
2063   00135 89 7e 34         mov     DWORD PTR [esi+52], edi\r
2064   00138 5f               pop     edi\r
2065   00139 89 71 1c         mov     DWORD PTR [ecx+28], esi\r
2066   0013c 5e               pop     esi\r
2067 \r
2068 ; 1471 :     return Z_OK;\r
2069 \r
2070   0013d 33 c0            xor     eax, eax\r
2071   0013f 5b               pop     ebx\r
2072 \r
2073 ; 1472 : }\r
2074 \r
2075   00140 8b e5            mov     esp, ebp\r
2076   00142 5d               pop     ebp\r
2077   00143 c2 08 00         ret     8\r
2078 $LN6@inflateCop:\r
2079   00146 5e               pop     esi\r
2080 \r
2081 ; 1439 :         return Z_STREAM_ERROR;\r
2082 \r
2083   00147 b8 fe ff ff ff   mov     eax, -2                        ; fffffffeH\r
2084   0014c 5b               pop     ebx\r
2085 \r
2086 ; 1472 : }\r
2087 \r
2088   0014d 8b e5            mov     esp, ebp\r
2089   0014f 5d               pop     ebp\r
2090   00150 c2 08 00         ret     8\r
2091 _inflateCopy@8 ENDP\r
2092 _TEXT   ENDS\r
2093 PUBLIC  _inflateSyncPoint@4\r
2094 ; Function compile flags: /Ogtp\r
2095 ;       COMDAT _inflateSyncPoint@4\r
2096 _TEXT   SEGMENT\r
2097 _strm$ = 8                                              ; size = 4\r
2098 _inflateSyncPoint@4 PROC                                ; COMDAT\r
2099 \r
2100 ; 1419 : {\r
2101 \r
2102   00000 55               push    ebp\r
2103   00001 8b ec            mov     ebp, esp\r
2104 \r
2105 ; 1420 :     struct inflate_state FAR *state;\r
2106 ; 1421 : \r
2107 ; 1422 :     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;\r
2108 \r
2109   00003 8b 45 08         mov     eax, DWORD PTR _strm$[ebp]\r
2110   00006 85 c0            test    eax, eax\r
2111   00008 74 21            je      SHORT $LN1@inflateSyn\r
2112   0000a 8b 40 1c         mov     eax, DWORD PTR [eax+28]\r
2113   0000d 85 c0            test    eax, eax\r
2114   0000f 74 1a            je      SHORT $LN1@inflateSyn\r
2115 \r
2116 ; 1423 :     state = (struct inflate_state FAR *)strm->state;\r
2117 ; 1424 :     return state->mode == STORED && state->bits == 0;\r
2118 \r
2119   00011 83 38 0d         cmp     DWORD PTR [eax], 13    ; 0000000dH\r
2120   00014 75 0f            jne     SHORT $LN5@inflateSyn\r
2121   00016 83 78 3c 00      cmp     DWORD PTR [eax+60], 0\r
2122   0001a 75 09            jne     SHORT $LN5@inflateSyn\r
2123   0001c b8 01 00 00 00   mov     eax, 1\r
2124 \r
2125 ; 1425 : }\r
2126 \r
2127   00021 5d               pop     ebp\r
2128   00022 c2 04 00         ret     4\r
2129 $LN5@inflateSyn:\r
2130 \r
2131 ; 1423 :     state = (struct inflate_state FAR *)strm->state;\r
2132 ; 1424 :     return state->mode == STORED && state->bits == 0;\r
2133 \r
2134   00025 33 c0            xor     eax, eax\r
2135 \r
2136 ; 1425 : }\r
2137 \r
2138   00027 5d               pop     ebp\r
2139   00028 c2 04 00         ret     4\r
2140 $LN1@inflateSyn:\r
2141 \r
2142 ; 1420 :     struct inflate_state FAR *state;\r
2143 ; 1421 : \r
2144 ; 1422 :     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;\r
2145 \r
2146   0002b b8 fe ff ff ff   mov     eax, -2                        ; fffffffeH\r
2147 \r
2148 ; 1425 : }\r
2149 \r
2150   00030 5d               pop     ebp\r
2151   00031 c2 04 00         ret     4\r
2152 _inflateSyncPoint@4 ENDP\r
2153 ; Function compile flags: /Ogtp\r
2154 _TEXT   ENDS\r
2155 ;       COMDAT _syncsearch\r
2156 _TEXT   SEGMENT\r
2157 _have$ = 8                                              ; size = 4\r
2158 _len$ = 12                                              ; size = 4\r
2159 _syncsearch PROC                                        ; COMDAT\r
2160 ; _buf$ = esi\r
2161 \r
2162 ; 1347 : {\r
2163 \r
2164   00000 55               push    ebp\r
2165   00001 8b ec            mov     ebp, esp\r
2166   00003 8b 55 08         mov     edx, DWORD PTR _have$[ebp]\r
2167 \r
2168 ; 1348 :     unsigned got;\r
2169 ; 1349 :     unsigned next;\r
2170 ; 1350 : \r
2171 ; 1351 :     got = *have;\r
2172 \r
2173   00006 8b 0a            mov     ecx, DWORD PTR [edx]\r
2174 \r
2175 ; 1352 :     next = 0;\r
2176 \r
2177   00008 33 c0            xor     eax, eax\r
2178 \r
2179 ; 1353 :     while (next < len && got < 4) {\r
2180 \r
2181   0000a 39 45 0c         cmp     DWORD PTR _len$[ebp], eax\r
2182   0000d 76 41            jbe     SHORT $LN11@syncsearch\r
2183   0000f 53               push    ebx\r
2184   00010 57               push    edi\r
2185 $LL6@syncsearch:\r
2186   00011 83 f9 04         cmp     ecx, 4\r
2187   00014 73 35            jae     SHORT $LN12@syncsearch\r
2188 \r
2189 ; 1354 :         if ((int)(buf[next]) == (got < 2 ? 0 : 0xff))\r
2190 \r
2191   00016 8a 14 30         mov     dl, BYTE PTR [eax+esi]\r
2192   00019 83 f9 02         cmp     ecx, 2\r
2193   0001c 1b ff            sbb     edi, edi\r
2194   0001e 81 e7 01 ff ff\r
2195         ff               and     edi, -255              ; ffffff01H\r
2196   00024 0f b6 da         movzx   ebx, dl\r
2197   00027 81 c7 ff 00 00\r
2198         00               add     edi, 255               ; 000000ffH\r
2199   0002d 3b df            cmp     ebx, edi\r
2200   0002f 75 03            jne     SHORT $LN4@syncsearch\r
2201 \r
2202 ; 1355 :             got++;\r
2203 \r
2204   00031 41               inc     ecx\r
2205   00032 eb 11            jmp     SHORT $LN1@syncsearch\r
2206 $LN4@syncsearch:\r
2207 \r
2208 ; 1356 :         else if (buf[next])\r
2209 \r
2210   00034 84 d2            test    dl, dl\r
2211   00036 74 04            je      SHORT $LN2@syncsearch\r
2212 \r
2213 ; 1357 :             got = 0;\r
2214 \r
2215   00038 33 c9            xor     ecx, ecx\r
2216 \r
2217 ; 1358 :         else\r
2218 \r
2219   0003a eb 09            jmp     SHORT $LN1@syncsearch\r
2220 $LN2@syncsearch:\r
2221 \r
2222 ; 1359 :             got = 4 - got;\r
2223 \r
2224   0003c ba 04 00 00 00   mov     edx, 4\r
2225   00041 2b d1            sub     edx, ecx\r
2226   00043 8b ca            mov     ecx, edx\r
2227 $LN1@syncsearch:\r
2228 \r
2229 ; 1360 :         next++;\r
2230 \r
2231   00045 40               inc     eax\r
2232   00046 3b 45 0c         cmp     eax, DWORD PTR _len$[ebp]\r
2233   00049 72 c6            jb      SHORT $LL6@syncsearch\r
2234 $LN12@syncsearch:\r
2235 \r
2236 ; 1361 :     }\r
2237 ; 1362 :     *have = got;\r
2238 \r
2239   0004b 8b 55 08         mov     edx, DWORD PTR _have$[ebp]\r
2240   0004e 5f               pop     edi\r
2241   0004f 5b               pop     ebx\r
2242 $LN11@syncsearch:\r
2243   00050 89 0a            mov     DWORD PTR [edx], ecx\r
2244 \r
2245 ; 1363 :     return next;\r
2246 ; 1364 : }\r
2247 \r
2248   00052 5d               pop     ebp\r
2249   00053 c3               ret     0\r
2250 _syncsearch ENDP\r
2251 _TEXT   ENDS\r
2252 PUBLIC  _inflateGetHeader@8\r
2253 ; Function compile flags: /Ogtp\r
2254 ;       COMDAT _inflateGetHeader@8\r
2255 _TEXT   SEGMENT\r
2256 _strm$ = 8                                              ; size = 4\r
2257 _head$ = 12                                             ; size = 4\r
2258 _inflateGetHeader@8 PROC                                ; COMDAT\r
2259 \r
2260 ; 1318 : {\r
2261 \r
2262   00000 55               push    ebp\r
2263   00001 8b ec            mov     ebp, esp\r
2264 \r
2265 ; 1319 :     struct inflate_state FAR *state;\r
2266 ; 1320 : \r
2267 ; 1321 :     /* check state */\r
2268 ; 1322 :     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;\r
2269 \r
2270   00003 8b 45 08         mov     eax, DWORD PTR _strm$[ebp]\r
2271   00006 85 c0            test    eax, eax\r
2272   00008 74 20            je      SHORT $LN2@inflateGet\r
2273   0000a 8b 40 1c         mov     eax, DWORD PTR [eax+28]\r
2274   0000d 85 c0            test    eax, eax\r
2275   0000f 74 19            je      SHORT $LN2@inflateGet\r
2276 \r
2277 ; 1323 :     state = (struct inflate_state FAR *)strm->state;\r
2278 ; 1324 :     if ((state->wrap & 2) == 0) return Z_STREAM_ERROR;\r
2279 \r
2280   00011 f6 40 08 02      test    BYTE PTR [eax+8], 2\r
2281   00015 74 13            je      SHORT $LN2@inflateGet\r
2282 \r
2283 ; 1325 : \r
2284 ; 1326 :     /* save header structure */\r
2285 ; 1327 :     state->head = head;\r
2286 \r
2287   00017 8b 4d 0c         mov     ecx, DWORD PTR _head$[ebp]\r
2288   0001a 89 48 20         mov     DWORD PTR [eax+32], ecx\r
2289 \r
2290 ; 1328 :     head->done = 0;\r
2291 \r
2292   0001d c7 41 30 00 00\r
2293         00 00            mov     DWORD PTR [ecx+48], 0\r
2294 \r
2295 ; 1329 :     return Z_OK;\r
2296 \r
2297   00024 33 c0            xor     eax, eax\r
2298 \r
2299 ; 1330 : }\r
2300 \r
2301   00026 5d               pop     ebp\r
2302   00027 c2 08 00         ret     8\r
2303 $LN2@inflateGet:\r
2304 \r
2305 ; 1319 :     struct inflate_state FAR *state;\r
2306 ; 1320 : \r
2307 ; 1321 :     /* check state */\r
2308 ; 1322 :     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;\r
2309 \r
2310   0002a b8 fe ff ff ff   mov     eax, -2                        ; fffffffeH\r
2311 \r
2312 ; 1330 : }\r
2313 \r
2314   0002f 5d               pop     ebp\r
2315   00030 c2 08 00         ret     8\r
2316 _inflateGetHeader@8 ENDP\r
2317 _TEXT   ENDS\r
2318 PUBLIC  _inflateEnd@4\r
2319 ; Function compile flags: /Ogtp\r
2320 ;       COMDAT _inflateEnd@4\r
2321 _TEXT   SEGMENT\r
2322 _strm$ = 8                                              ; size = 4\r
2323 _inflateEnd@4 PROC                                      ; COMDAT\r
2324 \r
2325 ; 1260 : {\r
2326 \r
2327   00000 55               push    ebp\r
2328   00001 8b ec            mov     ebp, esp\r
2329   00003 56               push    esi\r
2330 \r
2331 ; 1261 :     struct inflate_state FAR *state;\r
2332 ; 1262 :     if (strm == Z_NULL || strm->state == Z_NULL || strm->zfree == (free_func)0)\r
2333 \r
2334   00004 8b 75 08         mov     esi, DWORD PTR _strm$[ebp]\r
2335   00007 85 f6            test    esi, esi\r
2336   00009 74 3d            je      SHORT $LN2@inflateEnd\r
2337   0000b 8b 46 1c         mov     eax, DWORD PTR [esi+28]\r
2338   0000e 85 c0            test    eax, eax\r
2339   00010 74 36            je      SHORT $LN2@inflateEnd\r
2340   00012 8b 4e 24         mov     ecx, DWORD PTR [esi+36]\r
2341   00015 85 c9            test    ecx, ecx\r
2342   00017 74 2f            je      SHORT $LN2@inflateEnd\r
2343 \r
2344 ; 1264 :     state = (struct inflate_state FAR *)strm->state;\r
2345 ; 1265 :     if (state->window != Z_NULL) ZFREE(strm, state->window);\r
2346 \r
2347   00019 8b 40 34         mov     eax, DWORD PTR [eax+52]\r
2348   0001c 85 c0            test    eax, eax\r
2349   0001e 74 0a            je      SHORT $LN1@inflateEnd\r
2350   00020 50               push    eax\r
2351   00021 8b 46 28         mov     eax, DWORD PTR [esi+40]\r
2352   00024 50               push    eax\r
2353   00025 ff d1            call    ecx\r
2354   00027 83 c4 08         add     esp, 8\r
2355 $LN1@inflateEnd:\r
2356 \r
2357 ; 1266 :     ZFREE(strm, strm->state);\r
2358 \r
2359   0002a 8b 4e 1c         mov     ecx, DWORD PTR [esi+28]\r
2360   0002d 8b 56 28         mov     edx, DWORD PTR [esi+40]\r
2361   00030 8b 46 24         mov     eax, DWORD PTR [esi+36]\r
2362   00033 51               push    ecx\r
2363   00034 52               push    edx\r
2364   00035 ff d0            call    eax\r
2365   00037 83 c4 08         add     esp, 8\r
2366 \r
2367 ; 1267 :     strm->state = Z_NULL;\r
2368 \r
2369   0003a c7 46 1c 00 00\r
2370         00 00            mov     DWORD PTR [esi+28], 0\r
2371 \r
2372 ; 1268 :     Tracev((stderr, "inflate: end\n"));\r
2373 ; 1269 :     return Z_OK;\r
2374 \r
2375   00041 33 c0            xor     eax, eax\r
2376   00043 5e               pop     esi\r
2377 \r
2378 ; 1270 : }\r
2379 \r
2380   00044 5d               pop     ebp\r
2381   00045 c2 04 00         ret     4\r
2382 $LN2@inflateEnd:\r
2383 \r
2384 ; 1263 :         return Z_STREAM_ERROR;\r
2385 \r
2386   00048 b8 fe ff ff ff   mov     eax, -2                        ; fffffffeH\r
2387   0004d 5e               pop     esi\r
2388 \r
2389 ; 1270 : }\r
2390 \r
2391   0004e 5d               pop     ebp\r
2392   0004f c2 04 00         ret     4\r
2393 _inflateEnd@4 ENDP\r
2394 ; Function compile flags: /Ogtp\r
2395 _TEXT   ENDS\r
2396 ;       COMDAT _updatewindow\r
2397 _TEXT   SEGMENT\r
2398 _dist$ = -4                                             ; size = 4\r
2399 _updatewindow PROC                                      ; COMDAT\r
2400 ; _strm$ = ebx\r
2401 ; _out$ = eax\r
2402 \r
2403 ; 381  : {\r
2404 \r
2405   00000 55               push    ebp\r
2406   00001 8b ec            mov     ebp, esp\r
2407   00003 51               push    ecx\r
2408   00004 56               push    esi\r
2409 \r
2410 ; 382  :     struct inflate_state FAR *state;\r
2411 ; 383  :     unsigned copy, dist;\r
2412 ; 384  : \r
2413 ; 385  :     state = (struct inflate_state FAR *)strm->state;\r
2414 \r
2415   00005 8b 73 1c         mov     esi, DWORD PTR [ebx+28]\r
2416 \r
2417 ; 386  : \r
2418 ; 387  :     /* if it hasn't been done already, allocate space for the window */\r
2419 ; 388  :     if (state->window == Z_NULL) {\r
2420 \r
2421   00008 83 7e 34 00      cmp     DWORD PTR [esi+52], 0\r
2422   0000c 57               push    edi\r
2423   0000d 8b f8            mov     edi, eax\r
2424   0000f 75 2b            jne     SHORT $LN13@updatewind\r
2425 \r
2426 ; 389  :         state->window = (unsigned char FAR *)\r
2427 ; 390  :                         ZALLOC(strm, 1U << state->wbits,\r
2428 ; 391  :                                sizeof(unsigned char));\r
2429 \r
2430   00011 8b 4e 24         mov     ecx, DWORD PTR [esi+36]\r
2431   00014 8b 53 20         mov     edx, DWORD PTR [ebx+32]\r
2432   00017 b8 01 00 00 00   mov     eax, 1\r
2433   0001c d3 e0            shl     eax, cl\r
2434   0001e 8b 4b 28         mov     ecx, DWORD PTR [ebx+40]\r
2435   00021 6a 01            push    1\r
2436   00023 50               push    eax\r
2437   00024 51               push    ecx\r
2438   00025 ff d2            call    edx\r
2439   00027 83 c4 0c         add     esp, 12                        ; 0000000cH\r
2440   0002a 89 46 34         mov     DWORD PTR [esi+52], eax\r
2441 \r
2442 ; 392  :         if (state->window == Z_NULL) return 1;\r
2443 \r
2444   0002d 85 c0            test    eax, eax\r
2445   0002f 75 0b            jne     SHORT $LN13@updatewind\r
2446   00031 5f               pop     edi\r
2447   00032 b8 01 00 00 00   mov     eax, 1\r
2448   00037 5e               pop     esi\r
2449 \r
2450 ; 426  : }\r
2451 \r
2452   00038 8b e5            mov     esp, ebp\r
2453   0003a 5d               pop     ebp\r
2454   0003b c3               ret     0\r
2455 $LN13@updatewind:\r
2456 \r
2457 ; 393  :     }\r
2458 ; 394  : \r
2459 ; 395  :     /* if window not in use yet, initialize */\r
2460 ; 396  :     if (state->wsize == 0) {\r
2461 \r
2462   0003c 33 c0            xor     eax, eax\r
2463   0003e 39 46 28         cmp     DWORD PTR [esi+40], eax\r
2464   00041 75 13            jne     SHORT $LN8@updatewind\r
2465 \r
2466 ; 397  :         state->wsize = 1U << state->wbits;\r
2467 \r
2468   00043 8b 4e 24         mov     ecx, DWORD PTR [esi+36]\r
2469   00046 ba 01 00 00 00   mov     edx, 1\r
2470   0004b d3 e2            shl     edx, cl\r
2471 \r
2472 ; 398  :         state->wnext = 0;\r
2473 \r
2474   0004d 89 46 30         mov     DWORD PTR [esi+48], eax\r
2475 \r
2476 ; 399  :         state->whave = 0;\r
2477 \r
2478   00050 89 46 2c         mov     DWORD PTR [esi+44], eax\r
2479   00053 89 56 28         mov     DWORD PTR [esi+40], edx\r
2480 $LN8@updatewind:\r
2481 \r
2482 ; 400  :     }\r
2483 ; 401  : \r
2484 ; 402  :     /* copy state->wsize or less output bytes into the circular window */\r
2485 ; 403  :     copy = out - strm->avail_out;\r
2486 \r
2487   00056 2b 7b 10         sub     edi, DWORD PTR [ebx+16]\r
2488 \r
2489 ; 404  :     if (copy >= state->wsize) {\r
2490 \r
2491   00059 8b 46 28         mov     eax, DWORD PTR [esi+40]\r
2492   0005c 3b f8            cmp     edi, eax\r
2493   0005e 72 28            jb      SHORT $LN7@updatewind\r
2494 \r
2495 ; 405  :         zmemcpy(state->window, strm->next_out - state->wsize, state->wsize);\r
2496 \r
2497   00060 8b 4b 0c         mov     ecx, DWORD PTR [ebx+12]\r
2498   00063 8b 56 34         mov     edx, DWORD PTR [esi+52]\r
2499   00066 50               push    eax\r
2500   00067 2b c8            sub     ecx, eax\r
2501   00069 51               push    ecx\r
2502   0006a 52               push    edx\r
2503   0006b e8 00 00 00 00   call    _memcpy\r
2504 \r
2505 ; 406  :         state->wnext = 0;\r
2506 ; 407  :         state->whave = state->wsize;\r
2507 \r
2508   00070 8b 46 28         mov     eax, DWORD PTR [esi+40]\r
2509   00073 83 c4 0c         add     esp, 12                        ; 0000000cH\r
2510   00076 89 46 2c         mov     DWORD PTR [esi+44], eax\r
2511   00079 5f               pop     edi\r
2512   0007a c7 46 30 00 00\r
2513         00 00            mov     DWORD PTR [esi+48], 0\r
2514 \r
2515 ; 423  :         }\r
2516 ; 424  :     }\r
2517 ; 425  :     return 0;\r
2518 \r
2519   00081 33 c0            xor     eax, eax\r
2520   00083 5e               pop     esi\r
2521 \r
2522 ; 426  : }\r
2523 \r
2524   00084 8b e5            mov     esp, ebp\r
2525   00086 5d               pop     ebp\r
2526   00087 c3               ret     0\r
2527 $LN7@updatewind:\r
2528 \r
2529 ; 408  :     }\r
2530 ; 409  :     else {\r
2531 ; 410  :         dist = state->wsize - state->wnext;\r
2532 \r
2533   00088 2b 46 30         sub     eax, DWORD PTR [esi+48]\r
2534   0008b 89 45 fc         mov     DWORD PTR _dist$[ebp], eax\r
2535 \r
2536 ; 411  :         if (dist > copy) dist = copy;\r
2537 \r
2538   0008e 3b c7            cmp     eax, edi\r
2539   00090 76 05            jbe     SHORT $LN5@updatewind\r
2540   00092 89 7d fc         mov     DWORD PTR _dist$[ebp], edi\r
2541   00095 8b c7            mov     eax, edi\r
2542 $LN5@updatewind:\r
2543 \r
2544 ; 412  :         zmemcpy(state->window + state->wnext, strm->next_out - copy, dist);\r
2545 \r
2546   00097 8b 4b 0c         mov     ecx, DWORD PTR [ebx+12]\r
2547   0009a 8b 56 34         mov     edx, DWORD PTR [esi+52]\r
2548   0009d 03 56 30         add     edx, DWORD PTR [esi+48]\r
2549   000a0 50               push    eax\r
2550   000a1 2b cf            sub     ecx, edi\r
2551   000a3 51               push    ecx\r
2552   000a4 52               push    edx\r
2553   000a5 e8 00 00 00 00   call    _memcpy\r
2554 \r
2555 ; 413  :         copy -= dist;\r
2556 \r
2557   000aa 8b 4d fc         mov     ecx, DWORD PTR _dist$[ebp]\r
2558   000ad 83 c4 0c         add     esp, 12                        ; 0000000cH\r
2559   000b0 2b f9            sub     edi, ecx\r
2560 \r
2561 ; 414  :         if (copy) {\r
2562 \r
2563   000b2 74 24            je      SHORT $LN4@updatewind\r
2564 \r
2565 ; 415  :             zmemcpy(state->window, strm->next_out - copy, copy);\r
2566 \r
2567   000b4 8b 43 0c         mov     eax, DWORD PTR [ebx+12]\r
2568   000b7 8b 4e 34         mov     ecx, DWORD PTR [esi+52]\r
2569   000ba 57               push    edi\r
2570   000bb 2b c7            sub     eax, edi\r
2571   000bd 50               push    eax\r
2572   000be 51               push    ecx\r
2573   000bf e8 00 00 00 00   call    _memcpy\r
2574 \r
2575 ; 416  :             state->wnext = copy;\r
2576 ; 417  :             state->whave = state->wsize;\r
2577 \r
2578   000c4 8b 56 28         mov     edx, DWORD PTR [esi+40]\r
2579   000c7 83 c4 0c         add     esp, 12                        ; 0000000cH\r
2580   000ca 89 7e 30         mov     DWORD PTR [esi+48], edi\r
2581   000cd 5f               pop     edi\r
2582 \r
2583 ; 422  :             if (state->whave < state->wsize) state->whave += dist;\r
2584 \r
2585   000ce 89 56 2c         mov     DWORD PTR [esi+44], edx\r
2586 \r
2587 ; 423  :         }\r
2588 ; 424  :     }\r
2589 ; 425  :     return 0;\r
2590 \r
2591   000d1 33 c0            xor     eax, eax\r
2592   000d3 5e               pop     esi\r
2593 \r
2594 ; 426  : }\r
2595 \r
2596   000d4 8b e5            mov     esp, ebp\r
2597   000d6 5d               pop     ebp\r
2598   000d7 c3               ret     0\r
2599 $LN4@updatewind:\r
2600 \r
2601 ; 418  :         }\r
2602 ; 419  :         else {\r
2603 ; 420  :             state->wnext += dist;\r
2604 ; 421  :             if (state->wnext == state->wsize) state->wnext = 0;\r
2605 \r
2606   000d8 8b 46 28         mov     eax, DWORD PTR [esi+40]\r
2607   000db 01 4e 30         add     DWORD PTR [esi+48], ecx\r
2608   000de 39 46 30         cmp     DWORD PTR [esi+48], eax\r
2609   000e1 75 07            jne     SHORT $LN2@updatewind\r
2610   000e3 c7 46 30 00 00\r
2611         00 00            mov     DWORD PTR [esi+48], 0\r
2612 $LN2@updatewind:\r
2613 \r
2614 ; 422  :             if (state->whave < state->wsize) state->whave += dist;\r
2615 \r
2616   000ea 8b 56 2c         mov     edx, DWORD PTR [esi+44]\r
2617   000ed 3b d0            cmp     edx, eax\r
2618   000ef 73 05            jae     SHORT $LN1@updatewind\r
2619   000f1 03 d1            add     edx, ecx\r
2620   000f3 89 56 2c         mov     DWORD PTR [esi+44], edx\r
2621 $LN1@updatewind:\r
2622 \r
2623 ; 423  :         }\r
2624 ; 424  :     }\r
2625 ; 425  :     return 0;\r
2626 \r
2627   000f6 5f               pop     edi\r
2628   000f7 33 c0            xor     eax, eax\r
2629   000f9 5e               pop     esi\r
2630 \r
2631 ; 426  : }\r
2632 \r
2633   000fa 8b e5            mov     esp, ebp\r
2634   000fc 5d               pop     ebp\r
2635   000fd c3               ret     0\r
2636 _updatewindow ENDP\r
2637 ; Function compile flags: /Ogtp\r
2638 _TEXT   ENDS\r
2639 ;       COMDAT _fixedtables\r
2640 _TEXT   SEGMENT\r
2641 _fixedtables PROC                                       ; COMDAT\r
2642 ; _state$ = eax\r
2643 \r
2644 ; 263  : #ifdef BUILDFIXED\r
2645 ; 264  :     static int virgin = 1;\r
2646 ; 265  :     static code *lenfix, *distfix;\r
2647 ; 266  :     static code fixed[544];\r
2648 ; 267  : \r
2649 ; 268  :     /* build fixed huffman tables if first call (may not be thread safe) */\r
2650 ; 269  :     if (virgin) {\r
2651 ; 270  :         unsigned sym, bits;\r
2652 ; 271  :         static code *next;\r
2653 ; 272  : \r
2654 ; 273  :         /* literal/length table */\r
2655 ; 274  :         sym = 0;\r
2656 ; 275  :         while (sym < 144) state->lens[sym++] = 8;\r
2657 ; 276  :         while (sym < 256) state->lens[sym++] = 9;\r
2658 ; 277  :         while (sym < 280) state->lens[sym++] = 7;\r
2659 ; 278  :         while (sym < 288) state->lens[sym++] = 8;\r
2660 ; 279  :         next = fixed;\r
2661 ; 280  :         lenfix = next;\r
2662 ; 281  :         bits = 9;\r
2663 ; 282  :         inflate_table(LENS, state->lens, 288, &(next), &(bits), state->work);\r
2664 ; 283  : \r
2665 ; 284  :         /* distance table */\r
2666 ; 285  :         sym = 0;\r
2667 ; 286  :         while (sym < 32) state->lens[sym++] = 5;\r
2668 ; 287  :         distfix = next;\r
2669 ; 288  :         bits = 5;\r
2670 ; 289  :         inflate_table(DISTS, state->lens, 32, &(next), &(bits), state->work);\r
2671 ; 290  : \r
2672 ; 291  :         /* do this just once */\r
2673 ; 292  :         virgin = 0;\r
2674 ; 293  :     }\r
2675 ; 294  : #else /* !BUILDFIXED */\r
2676 ; 295  : #   include "inffixed.h"\r
2677 ; 296  : #endif /* BUILDFIXED */\r
2678 ; 297  :     state->lencode = lenfix;\r
2679 \r
2680   00000 c7 40 4c 00 00\r
2681         00 00            mov     DWORD PTR [eax+76], OFFSET ?lenfix@?1??fixedtables@@9@9\r
2682 \r
2683 ; 298  :     state->lenbits = 9;\r
2684 \r
2685   00007 c7 40 54 09 00\r
2686         00 00            mov     DWORD PTR [eax+84], 9\r
2687 \r
2688 ; 299  :     state->distcode = distfix;\r
2689 \r
2690   0000e c7 40 50 00 00\r
2691         00 00            mov     DWORD PTR [eax+80], OFFSET ?distfix@?1??fixedtables@@9@9\r
2692 \r
2693 ; 300  :     state->distbits = 5;\r
2694 \r
2695   00015 c7 40 58 05 00\r
2696         00 00            mov     DWORD PTR [eax+88], 5\r
2697 \r
2698 ; 301  : }\r
2699 \r
2700   0001c c3               ret     0\r
2701 _fixedtables ENDP\r
2702 _TEXT   ENDS\r
2703 PUBLIC  _inflatePrime@12\r
2704 ; Function compile flags: /Ogtp\r
2705 ;       COMDAT _inflatePrime@12\r
2706 _TEXT   SEGMENT\r
2707 _strm$ = 8                                              ; size = 4\r
2708 _bits$ = 12                                             ; size = 4\r
2709 _value$ = 16                                            ; size = 4\r
2710 _inflatePrime@12 PROC                                   ; COMDAT\r
2711 \r
2712 ; 233  : {\r
2713 \r
2714   00000 55               push    ebp\r
2715   00001 8b ec            mov     ebp, esp\r
2716 \r
2717 ; 234  :     struct inflate_state FAR *state;\r
2718 ; 235  : \r
2719 ; 236  :     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;\r
2720 \r
2721   00003 8b 45 08         mov     eax, DWORD PTR _strm$[ebp]\r
2722   00006 33 d2            xor     edx, edx\r
2723   00008 3b c2            cmp     eax, edx\r
2724   0000a 74 53            je      SHORT $LN4@inflatePri\r
2725   0000c 8b 40 1c         mov     eax, DWORD PTR [eax+28]\r
2726   0000f 3b c2            cmp     eax, edx\r
2727   00011 74 4c            je      SHORT $LN4@inflatePri\r
2728 \r
2729 ; 237  :     state = (struct inflate_state FAR *)strm->state;\r
2730 ; 238  :     if (bits < 0) {\r
2731 \r
2732   00013 8b 4d 0c         mov     ecx, DWORD PTR _bits$[ebp]\r
2733   00016 3b ca            cmp     ecx, edx\r
2734   00018 7d 0c            jge     SHORT $LN3@inflatePri\r
2735 \r
2736 ; 239  :         state->hold = 0;\r
2737 \r
2738   0001a 89 50 38         mov     DWORD PTR [eax+56], edx\r
2739 \r
2740 ; 240  :         state->bits = 0;\r
2741 \r
2742   0001d 89 50 3c         mov     DWORD PTR [eax+60], edx\r
2743 \r
2744 ; 241  :         return Z_OK;\r
2745 \r
2746   00020 33 c0            xor     eax, eax\r
2747 \r
2748 ; 248  : }\r
2749 \r
2750   00022 5d               pop     ebp\r
2751   00023 c2 0c 00         ret     12                     ; 0000000cH\r
2752 $LN3@inflatePri:\r
2753   00026 56               push    esi\r
2754 \r
2755 ; 242  :     }\r
2756 ; 243  :     if (bits > 16 || state->bits + bits > 32) return Z_STREAM_ERROR;\r
2757 \r
2758   00027 83 f9 10         cmp     ecx, 16                        ; 00000010H\r
2759   0002a 7f 29            jg      SHORT $LN1@inflatePri\r
2760   0002c 8b 50 3c         mov     edx, DWORD PTR [eax+60]\r
2761   0002f 8d 34 0a         lea     esi, DWORD PTR [edx+ecx]\r
2762   00032 83 fe 20         cmp     esi, 32                        ; 00000020H\r
2763   00035 77 1e            ja      SHORT $LN1@inflatePri\r
2764 \r
2765 ; 244  :     value &= (1L << bits) - 1;\r
2766 \r
2767   00037 57               push    edi\r
2768   00038 bf 01 00 00 00   mov     edi, 1\r
2769   0003d d3 e7            shl     edi, cl\r
2770 \r
2771 ; 245  :     state->hold += value << state->bits;\r
2772 \r
2773   0003f 8b ca            mov     ecx, edx\r
2774 \r
2775 ; 246  :     state->bits += bits;\r
2776 \r
2777   00041 89 70 3c         mov     DWORD PTR [eax+60], esi\r
2778   00044 4f               dec     edi\r
2779   00045 23 7d 10         and     edi, DWORD PTR _value$[ebp]\r
2780   00048 d3 e7            shl     edi, cl\r
2781   0004a 01 78 38         add     DWORD PTR [eax+56], edi\r
2782   0004d 5f               pop     edi\r
2783 \r
2784 ; 247  :     return Z_OK;\r
2785 \r
2786   0004e 33 c0            xor     eax, eax\r
2787   00050 5e               pop     esi\r
2788 \r
2789 ; 248  : }\r
2790 \r
2791   00051 5d               pop     ebp\r
2792   00052 c2 0c 00         ret     12                     ; 0000000cH\r
2793 $LN1@inflatePri:\r
2794 \r
2795 ; 242  :     }\r
2796 ; 243  :     if (bits > 16 || state->bits + bits > 32) return Z_STREAM_ERROR;\r
2797 \r
2798   00055 b8 fe ff ff ff   mov     eax, -2                        ; fffffffeH\r
2799   0005a 5e               pop     esi\r
2800 \r
2801 ; 248  : }\r
2802 \r
2803   0005b 5d               pop     ebp\r
2804   0005c c2 0c 00         ret     12                     ; 0000000cH\r
2805 $LN4@inflatePri:\r
2806 \r
2807 ; 234  :     struct inflate_state FAR *state;\r
2808 ; 235  : \r
2809 ; 236  :     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;\r
2810 \r
2811   0005f b8 fe ff ff ff   mov     eax, -2                        ; fffffffeH\r
2812 \r
2813 ; 248  : }\r
2814 \r
2815   00064 5d               pop     ebp\r
2816   00065 c2 0c 00         ret     12                     ; 0000000cH\r
2817 _inflatePrime@12 ENDP\r
2818 _TEXT   ENDS\r
2819 PUBLIC  _inflateResetKeep@4\r
2820 ; Function compile flags: /Ogtp\r
2821 ;       COMDAT _inflateResetKeep@4\r
2822 _TEXT   SEGMENT\r
2823 _strm$ = 8                                              ; size = 4\r
2824 _inflateResetKeep@4 PROC                                ; COMDAT\r
2825 \r
2826 ; 105  : {\r
2827 \r
2828   00000 55               push    ebp\r
2829   00001 8b ec            mov     ebp, esp\r
2830 \r
2831 ; 106  :     struct inflate_state FAR *state;\r
2832 ; 107  : \r
2833 ; 108  :     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;\r
2834 \r
2835   00003 8b 4d 08         mov     ecx, DWORD PTR _strm$[ebp]\r
2836   00006 56               push    esi\r
2837   00007 33 f6            xor     esi, esi\r
2838   00009 3b ce            cmp     ecx, esi\r
2839   0000b 74 62            je      SHORT $LN2@inflateRes\r
2840   0000d 8b 41 1c         mov     eax, DWORD PTR [ecx+28]\r
2841   00010 3b c6            cmp     eax, esi\r
2842   00012 74 5b            je      SHORT $LN2@inflateRes\r
2843 \r
2844 ; 109  :     state = (struct inflate_state FAR *)strm->state;\r
2845 ; 110  :     strm->total_in = strm->total_out = state->total = 0;\r
2846 \r
2847   00014 89 70 1c         mov     DWORD PTR [eax+28], esi\r
2848   00017 89 71 14         mov     DWORD PTR [ecx+20], esi\r
2849   0001a 89 71 08         mov     DWORD PTR [ecx+8], esi\r
2850 \r
2851 ; 111  :     strm->msg = Z_NULL;\r
2852 \r
2853   0001d 89 71 18         mov     DWORD PTR [ecx+24], esi\r
2854 \r
2855 ; 112  :     if (state->wrap)        /* to support ill-conceived Java test suite */\r
2856 \r
2857   00020 8b 50 08         mov     edx, DWORD PTR [eax+8]\r
2858   00023 3b d6            cmp     edx, esi\r
2859   00025 74 06            je      SHORT $LN1@inflateRes\r
2860 \r
2861 ; 113  :         strm->adler = state->wrap & 1;\r
2862 \r
2863   00027 83 e2 01         and     edx, 1\r
2864   0002a 89 51 30         mov     DWORD PTR [ecx+48], edx\r
2865 $LN1@inflateRes:\r
2866 \r
2867 ; 114  :     state->mode = HEAD;\r
2868 ; 115  :     state->last = 0;\r
2869 ; 116  :     state->havedict = 0;\r
2870 ; 117  :     state->dmax = 32768U;\r
2871 ; 118  :     state->head = Z_NULL;\r
2872 ; 119  :     state->hold = 0;\r
2873 ; 120  :     state->bits = 0;\r
2874 ; 121  :     state->lencode = state->distcode = state->next = state->codes;\r
2875 \r
2876   0002d 8d 88 30 05 00\r
2877         00               lea     ecx, DWORD PTR [eax+1328]\r
2878   00033 89 30            mov     DWORD PTR [eax], esi\r
2879   00035 89 70 04         mov     DWORD PTR [eax+4], esi\r
2880   00038 89 70 0c         mov     DWORD PTR [eax+12], esi\r
2881   0003b 89 70 20         mov     DWORD PTR [eax+32], esi\r
2882   0003e 89 70 38         mov     DWORD PTR [eax+56], esi\r
2883   00041 89 70 3c         mov     DWORD PTR [eax+60], esi\r
2884   00044 c7 40 14 00 80\r
2885         00 00            mov     DWORD PTR [eax+20], 32768 ; 00008000H\r
2886   0004b 89 48 6c         mov     DWORD PTR [eax+108], ecx\r
2887   0004e 89 48 50         mov     DWORD PTR [eax+80], ecx\r
2888   00051 89 48 4c         mov     DWORD PTR [eax+76], ecx\r
2889 \r
2890 ; 122  :     state->sane = 1;\r
2891 \r
2892   00054 c7 80 c0 1b 00\r
2893         00 01 00 00 00   mov     DWORD PTR [eax+7104], 1\r
2894 \r
2895 ; 123  :     state->back = -1;\r
2896 \r
2897   0005e c7 80 c4 1b 00\r
2898         00 ff ff ff ff   mov     DWORD PTR [eax+7108], -1\r
2899 \r
2900 ; 124  :     Tracev((stderr, "inflate: reset\n"));\r
2901 ; 125  :     return Z_OK;\r
2902 \r
2903   00068 33 c0            xor     eax, eax\r
2904   0006a 5e               pop     esi\r
2905 \r
2906 ; 126  : }\r
2907 \r
2908   0006b 5d               pop     ebp\r
2909   0006c c2 04 00         ret     4\r
2910 $LN2@inflateRes:\r
2911 \r
2912 ; 106  :     struct inflate_state FAR *state;\r
2913 ; 107  : \r
2914 ; 108  :     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;\r
2915 \r
2916   0006f b8 fe ff ff ff   mov     eax, -2                        ; fffffffeH\r
2917   00074 5e               pop     esi\r
2918 \r
2919 ; 126  : }\r
2920 \r
2921   00075 5d               pop     ebp\r
2922   00076 c2 04 00         ret     4\r
2923 _inflateResetKeep@4 ENDP\r
2924 PUBLIC  _inflateSetDictionary@12\r
2925 ; Function compile flags: /Ogtp\r
2926 ;       COMDAT _inflateSetDictionary@12\r
2927 _TEXT   SEGMENT\r
2928 _avail$ = 8                                             ; size = 4\r
2929 _strm$ = 8                                              ; size = 4\r
2930 _dictionary$ = 12                                       ; size = 4\r
2931 _next$ = 16                                             ; size = 4\r
2932 _dictLength$ = 16                                       ; size = 4\r
2933 _inflateSetDictionary@12 PROC                           ; COMDAT\r
2934 \r
2935 ; 1276 : {\r
2936 \r
2937   00000 55               push    ebp\r
2938   00001 8b ec            mov     ebp, esp\r
2939   00003 53               push    ebx\r
2940 \r
2941 ; 1277 :     struct inflate_state FAR *state;\r
2942 ; 1278 :     unsigned long id;\r
2943 ; 1279 :     unsigned char *next;\r
2944 ; 1280 :     unsigned avail;\r
2945 ; 1281 :     int ret;\r
2946 ; 1282 : \r
2947 ; 1283 :     /* check state */\r
2948 ; 1284 :     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;\r
2949 \r
2950   00004 8b 5d 08         mov     ebx, DWORD PTR _strm$[ebp]\r
2951   00007 57               push    edi\r
2952   00008 85 db            test    ebx, ebx\r
2953   0000a 0f 84 a6 00 00\r
2954         00               je      $LN5@inflateSet\r
2955   00010 8b 7b 1c         mov     edi, DWORD PTR [ebx+28]\r
2956   00013 85 ff            test    edi, edi\r
2957   00015 0f 84 9b 00 00\r
2958         00               je      $LN5@inflateSet\r
2959 \r
2960 ; 1285 :     state = (struct inflate_state FAR *)strm->state;\r
2961 ; 1286 :     if (state->wrap != 0 && state->mode != DICT)\r
2962 \r
2963   0001b 83 7f 08 00      cmp     DWORD PTR [edi+8], 0\r
2964   0001f 56               push    esi\r
2965   00020 8b 75 10         mov     esi, DWORD PTR _dictLength$[ebp]\r
2966   00023 74 11            je      SHORT $LN4@inflateSet\r
2967   00025 83 3f 0a         cmp     DWORD PTR [edi], 10    ; 0000000aH\r
2968   00028 74 11            je      SHORT $LN9@inflateSet\r
2969 \r
2970 ; 1287 :         return Z_STREAM_ERROR;\r
2971 \r
2972   0002a 5e               pop     esi\r
2973   0002b 5f               pop     edi\r
2974   0002c b8 fe ff ff ff   mov     eax, -2                        ; fffffffeH\r
2975   00031 5b               pop     ebx\r
2976 \r
2977 ; 1313 : }\r
2978 \r
2979   00032 5d               pop     ebp\r
2980   00033 c2 0c 00         ret     12                     ; 0000000cH\r
2981 $LN4@inflateSet:\r
2982 \r
2983 ; 1288 : \r
2984 ; 1289 :     /* check for correct dictionary id */\r
2985 ; 1290 :     if (state->mode == DICT) {\r
2986 \r
2987   00036 83 3f 0a         cmp     DWORD PTR [edi], 10    ; 0000000aH\r
2988   00039 75 27            jne     SHORT $LN10@inflateSet\r
2989 $LN9@inflateSet:\r
2990 \r
2991 ; 1291 :         id = adler32(0L, Z_NULL, 0);\r
2992 ; 1292 :         id = adler32(id, dictionary, dictLength);\r
2993 \r
2994   0003b 8b 45 0c         mov     eax, DWORD PTR _dictionary$[ebp]\r
2995   0003e 56               push    esi\r
2996   0003f 50               push    eax\r
2997   00040 6a 00            push    0\r
2998   00042 6a 00            push    0\r
2999   00044 6a 00            push    0\r
3000   00046 e8 00 00 00 00   call    _adler32@12\r
3001   0004b 50               push    eax\r
3002   0004c e8 00 00 00 00   call    _adler32@12\r
3003 \r
3004 ; 1293 :         if (id != state->check)\r
3005 \r
3006   00051 3b 47 18         cmp     eax, DWORD PTR [edi+24]\r
3007   00054 74 0c            je      SHORT $LN10@inflateSet\r
3008 \r
3009 ; 1294 :             return Z_DATA_ERROR;\r
3010 \r
3011   00056 5e               pop     esi\r
3012   00057 5f               pop     edi\r
3013   00058 b8 fd ff ff ff   mov     eax, -3                        ; fffffffdH\r
3014   0005d 5b               pop     ebx\r
3015 \r
3016 ; 1313 : }\r
3017 \r
3018   0005e 5d               pop     ebp\r
3019   0005f c2 0c 00         ret     12                     ; 0000000cH\r
3020 $LN10@inflateSet:\r
3021 \r
3022 ; 1295 :     }\r
3023 ; 1296 : \r
3024 ; 1297 :     /* copy dictionary to window using updatewindow(), which will amend the\r
3025 ; 1298 :        existing dictionary if appropriate */\r
3026 ; 1299 :     next = strm->next_out;\r
3027 ; 1300 :     avail = strm->avail_out;\r
3028 ; 1301 :     strm->next_out = (Bytef *)dictionary + dictLength;\r
3029 \r
3030   00062 8b 45 0c         mov     eax, DWORD PTR _dictionary$[ebp]\r
3031   00065 8b 4b 0c         mov     ecx, DWORD PTR [ebx+12]\r
3032   00068 8b 53 10         mov     edx, DWORD PTR [ebx+16]\r
3033   0006b 03 c6            add     eax, esi\r
3034   0006d 89 43 0c         mov     DWORD PTR [ebx+12], eax\r
3035 \r
3036 ; 1302 :     strm->avail_out = 0;\r
3037 ; 1303 :     ret = updatewindow(strm, dictLength);\r
3038 \r
3039   00070 8b c6            mov     eax, esi\r
3040   00072 89 4d 10         mov     DWORD PTR _next$[ebp], ecx\r
3041   00075 89 55 08         mov     DWORD PTR _avail$[ebp], edx\r
3042   00078 c7 43 10 00 00\r
3043         00 00            mov     DWORD PTR [ebx+16], 0\r
3044   0007f e8 00 00 00 00   call    _updatewindow\r
3045 \r
3046 ; 1304 :     strm->avail_out = avail;\r
3047 \r
3048   00084 8b 4d 08         mov     ecx, DWORD PTR _avail$[ebp]\r
3049 \r
3050 ; 1305 :     strm->next_out = next;\r
3051 \r
3052   00087 8b 55 10         mov     edx, DWORD PTR _next$[ebp]\r
3053   0008a 89 4b 10         mov     DWORD PTR [ebx+16], ecx\r
3054   0008d 89 53 0c         mov     DWORD PTR [ebx+12], edx\r
3055 \r
3056 ; 1306 :     if (ret) {\r
3057 \r
3058   00090 85 c0            test    eax, eax\r
3059   00092 74 12            je      SHORT $LN1@inflateSet\r
3060 \r
3061 ; 1307 :         state->mode = MEM;\r
3062 \r
3063   00094 5e               pop     esi\r
3064   00095 c7 07 1e 00 00\r
3065         00               mov     DWORD PTR [edi], 30    ; 0000001eH\r
3066   0009b 5f               pop     edi\r
3067 \r
3068 ; 1308 :         return Z_MEM_ERROR;\r
3069 \r
3070   0009c b8 fc ff ff ff   mov     eax, -4                        ; fffffffcH\r
3071   000a1 5b               pop     ebx\r
3072 \r
3073 ; 1313 : }\r
3074 \r
3075   000a2 5d               pop     ebp\r
3076   000a3 c2 0c 00         ret     12                     ; 0000000cH\r
3077 $LN1@inflateSet:\r
3078   000a6 5e               pop     esi\r
3079 \r
3080 ; 1309 :     }\r
3081 ; 1310 :     state->havedict = 1;\r
3082 \r
3083   000a7 c7 47 0c 01 00\r
3084         00 00            mov     DWORD PTR [edi+12], 1\r
3085   000ae 5f               pop     edi\r
3086 \r
3087 ; 1311 :     Tracev((stderr, "inflate:   dictionary set\n"));\r
3088 ; 1312 :     return Z_OK;\r
3089 \r
3090   000af 33 c0            xor     eax, eax\r
3091   000b1 5b               pop     ebx\r
3092 \r
3093 ; 1313 : }\r
3094 \r
3095   000b2 5d               pop     ebp\r
3096   000b3 c2 0c 00         ret     12                     ; 0000000cH\r
3097 $LN5@inflateSet:\r
3098   000b6 5f               pop     edi\r
3099 \r
3100 ; 1277 :     struct inflate_state FAR *state;\r
3101 ; 1278 :     unsigned long id;\r
3102 ; 1279 :     unsigned char *next;\r
3103 ; 1280 :     unsigned avail;\r
3104 ; 1281 :     int ret;\r
3105 ; 1282 : \r
3106 ; 1283 :     /* check state */\r
3107 ; 1284 :     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;\r
3108 \r
3109   000b7 b8 fe ff ff ff   mov     eax, -2                        ; fffffffeH\r
3110   000bc 5b               pop     ebx\r
3111 \r
3112 ; 1313 : }\r
3113 \r
3114   000bd 5d               pop     ebp\r
3115   000be c2 0c 00         ret     12                     ; 0000000cH\r
3116 _inflateSetDictionary@12 ENDP\r
3117 _TEXT   ENDS\r
3118 PUBLIC  _inflate@8\r
3119 ; Function compile flags: /Ogtp\r
3120 ;       COMDAT _inflate@8\r
3121 _TEXT   SEGMENT\r
3122 _in$ = -48                                              ; size = 4\r
3123 tv3076 = -44                                            ; size = 4\r
3124 tv2368 = -44                                            ; size = 4\r
3125 tv2363 = -44                                            ; size = 4\r
3126 tv2303 = -44                                            ; size = 4\r
3127 tv2288 = -44                                            ; size = 4\r
3128 tv2173 = -44                                            ; size = 4\r
3129 tv2157 = -44                                            ; size = 4\r
3130 tv2134 = -44                                            ; size = 4\r
3131 _from$ = -44                                            ; size = 4\r
3132 _ret$ = -40                                             ; size = 4\r
3133 tv2314 = -36                                            ; size = 4\r
3134 tv2131 = -36                                            ; size = 4\r
3135 _last$ = -36                                            ; size = 4\r
3136 _out$ = -32                                             ; size = 4\r
3137 tv2387 = -28                                            ; size = 4\r
3138 tv2366 = -28                                            ; size = 4\r
3139 tv2361 = -28                                            ; size = 4\r
3140 tv2289 = -28                                            ; size = 4\r
3141 _len$ = -28                                             ; size = 4\r
3142 _put$ = -24                                             ; size = 4\r
3143 _hbuf$ = -20                                            ; size = 4\r
3144 _left$ = -16                                            ; size = 4\r
3145 _here$ = -12                                            ; size = 4\r
3146 _copy$ = -12                                            ; size = 4\r
3147 _next$ = -8                                             ; size = 4\r
3148 _have$ = -4                                             ; size = 4\r
3149 tv1321 = 8                                              ; size = 4\r
3150 _strm$ = 8                                              ; size = 4\r
3151 _flush$ = 12                                            ; size = 4\r
3152 _inflate@8 PROC                                         ; COMDAT\r
3153 \r
3154 ; 612  : {\r
3155 \r
3156   00000 55               push    ebp\r
3157   00001 8b ec            mov     ebp, esp\r
3158 \r
3159 ; 613  :     struct inflate_state FAR *state;\r
3160 ; 614  :     unsigned char FAR *next;    /* next input */\r
3161 ; 615  :     unsigned char FAR *put;     /* next output */\r
3162 ; 616  :     unsigned have, left;        /* available input and output */\r
3163 ; 617  :     unsigned long hold;         /* bit buffer */\r
3164 ; 618  :     unsigned bits;              /* bits in bit buffer */\r
3165 ; 619  :     unsigned in, out;           /* save starting available input and output */\r
3166 ; 620  :     unsigned copy;              /* number of stored or match bytes to copy */\r
3167 ; 621  :     unsigned char FAR *from;    /* where to copy match bytes from */\r
3168 ; 622  :     code here;                  /* current decoding table entry */\r
3169 ; 623  :     code last;                  /* parent table entry */\r
3170 ; 624  :     unsigned len;               /* length to copy for repeats, bits to drop */\r
3171 ; 625  :     int ret;                    /* return code */\r
3172 ; 626  : #ifdef GUNZIP\r
3173 ; 627  :     unsigned char hbuf[4];      /* buffer for gzip header crc calculation */\r
3174 ; 628  : #endif\r
3175 ; 629  :     static const unsigned short order[19] = /* permutation of code lengths */\r
3176 ; 630  :         {16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15};\r
3177 ; 631  : \r
3178 ; 632  :     if (strm == Z_NULL || strm->state == Z_NULL || strm->next_out == Z_NULL ||\r
3179 ; 633  :         (strm->next_in == Z_NULL && strm->avail_in != 0))\r
3180 \r
3181   00003 8b 45 08         mov     eax, DWORD PTR _strm$[ebp]\r
3182   00006 83 ec 30         sub     esp, 48                        ; 00000030H\r
3183   00009 57               push    edi\r
3184   0000a 85 c0            test    eax, eax\r
3185   0000c 0f 84 48 14 00\r
3186         00               je      $LN498@inflate\r
3187   00012 8b 78 1c         mov     edi, DWORD PTR [eax+28]\r
3188   00015 85 ff            test    edi, edi\r
3189   00017 0f 84 3d 14 00\r
3190         00               je      $LN498@inflate\r
3191   0001d 83 78 0c 00      cmp     DWORD PTR [eax+12], 0\r
3192   00021 0f 84 33 14 00\r
3193         00               je      $LN498@inflate\r
3194   00027 83 38 00         cmp     DWORD PTR [eax], 0\r
3195   0002a 75 0a            jne     SHORT $LN499@inflate\r
3196   0002c 83 78 04 00      cmp     DWORD PTR [eax+4], 0\r
3197   00030 0f 85 24 14 00\r
3198         00               jne     $LN498@inflate\r
3199 $LN499@inflate:\r
3200 \r
3201 ; 635  : \r
3202 ; 636  :     state = (struct inflate_state FAR *)strm->state;\r
3203 ; 637  :     if (state->mode == TYPE) state->mode = TYPEDO;      /* skip check */\r
3204 \r
3205   00036 83 3f 0b         cmp     DWORD PTR [edi], 11    ; 0000000bH\r
3206   00039 75 06            jne     SHORT $LN496@inflate\r
3207   0003b c7 07 0c 00 00\r
3208         00               mov     DWORD PTR [edi], 12    ; 0000000cH\r
3209 $LN496@inflate:\r
3210 \r
3211 ; 638  :     LOAD();\r
3212 \r
3213   00041 8b 48 0c         mov     ecx, DWORD PTR [eax+12]\r
3214   00044 8b 10            mov     edx, DWORD PTR [eax]\r
3215   00046 89 4d e8         mov     DWORD PTR _put$[ebp], ecx\r
3216   00049 8b 48 10         mov     ecx, DWORD PTR [eax+16]\r
3217   0004c 8b 40 04         mov     eax, DWORD PTR [eax+4]\r
3218   0004f 53               push    ebx\r
3219   00050 8b 5f 38         mov     ebx, DWORD PTR [edi+56]\r
3220   00053 89 45 fc         mov     DWORD PTR _have$[ebp], eax\r
3221 \r
3222 ; 639  :     in = have;\r
3223 \r
3224   00056 89 45 d0         mov     DWORD PTR _in$[ebp], eax\r
3225 \r
3226 ; 640  :     out = left;\r
3227 ; 641  :     ret = Z_OK;\r
3228 ; 642  :     for (;;)\r
3229 ; 643  :         switch (state->mode) {\r
3230 \r
3231   00059 8b 07            mov     eax, DWORD PTR [edi]\r
3232   0005b 56               push    esi\r
3233   0005c 8b 77 3c         mov     esi, DWORD PTR [edi+60]\r
3234   0005f 89 4d f0         mov     DWORD PTR _left$[ebp], ecx\r
3235   00062 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
3236   00065 89 4d e0         mov     DWORD PTR _out$[ebp], ecx\r
3237   00068 c7 45 d8 00 00\r
3238         00 00            mov     DWORD PTR _ret$[ebp], 0\r
3239   0006f 83 f8 1e         cmp     eax, 30                        ; 0000001eH\r
3240   00072 0f 87 6a 12 00\r
3241         00               ja      $LN12@inflate\r
3242 $LL493@inflate:\r
3243   00078 ff 24 85 00 00\r
3244         00 00            jmp     DWORD PTR $LN787@inflate[eax*4]\r
3245 $LN489@inflate:\r
3246 \r
3247 ; 644  :         case HEAD:\r
3248 ; 645  :             if (state->wrap == 0) {\r
3249 \r
3250   0007f 8b 47 08         mov     eax, DWORD PTR [edi+8]\r
3251   00082 85 c0            test    eax, eax\r
3252   00084 75 0b            jne     SHORT $LN487@inflate\r
3253 \r
3254 ; 646  :                 state->mode = TYPEDO;\r
3255 \r
3256   00086 c7 07 0c 00 00\r
3257         00               mov     DWORD PTR [edi], 12    ; 0000000cH\r
3258 \r
3259 ; 647  :                 break;\r
3260 \r
3261   0008c e9 46 12 00 00   jmp     $LN490@inflate\r
3262 $LN487@inflate:\r
3263 \r
3264 ; 648  :             }\r
3265 ; 649  :             NEEDBITS(16);\r
3266 \r
3267   00091 83 fe 10         cmp     esi, 16                        ; 00000010H\r
3268   00094 73 22            jae     SHORT $LN486@inflate\r
3269 $LL484@inflate:\r
3270   00096 83 7d fc 00      cmp     DWORD PTR _have$[ebp], 0\r
3271   0009a 0f 84 95 12 00\r
3272         00               je      $inf_leave$80408\r
3273   000a0 0f b6 02         movzx   eax, BYTE PTR [edx]\r
3274   000a3 ff 4d fc         dec     DWORD PTR _have$[ebp]\r
3275   000a6 8b ce            mov     ecx, esi\r
3276   000a8 d3 e0            shl     eax, cl\r
3277   000aa 42               inc     edx\r
3278   000ab 83 c6 08         add     esi, 8\r
3279   000ae 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
3280   000b1 03 d8            add     ebx, eax\r
3281   000b3 83 fe 10         cmp     esi, 16                        ; 00000010H\r
3282   000b6 72 de            jb      SHORT $LL484@inflate\r
3283 $LN486@inflate:\r
3284 \r
3285 ; 650  : #ifdef GUNZIP\r
3286 ; 651  :             if ((state->wrap & 2) && hold == 0x8b1f) {  /* gzip header */\r
3287 \r
3288   000b8 f6 47 08 02      test    BYTE PTR [edi+8], 2\r
3289   000bc 74 3b            je      SHORT $LN478@inflate\r
3290   000be 81 fb 1f 8b 00\r
3291         00               cmp     ebx, 35615             ; 00008b1fH\r
3292   000c4 75 33            jne     SHORT $LN478@inflate\r
3293 \r
3294 ; 652  :                 state->check = crc32(0L, Z_NULL, 0);\r
3295 \r
3296   000c6 6a 00            push    0\r
3297   000c8 6a 00            push    0\r
3298   000ca 6a 00            push    0\r
3299   000cc e8 00 00 00 00   call    _crc32@12\r
3300 \r
3301 ; 653  :                 CRC2(state->check, hold);\r
3302 \r
3303   000d1 6a 02            push    2\r
3304   000d3 8d 4d ec         lea     ecx, DWORD PTR _hbuf$[ebp]\r
3305   000d6 51               push    ecx\r
3306   000d7 50               push    eax\r
3307   000d8 89 47 18         mov     DWORD PTR [edi+24], eax\r
3308   000db 66 89 5d ec      mov     WORD PTR _hbuf$[ebp], bx\r
3309   000df e8 00 00 00 00   call    _crc32@12\r
3310 \r
3311 ; 654  :                 INITBITS();\r
3312 ; 655  :                 state->mode = FLAGS;\r
3313 ; 656  :                 break;\r
3314 \r
3315   000e4 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
3316   000e7 33 db            xor     ebx, ebx\r
3317   000e9 89 47 18         mov     DWORD PTR [edi+24], eax\r
3318   000ec 33 f6            xor     esi, esi\r
3319   000ee c7 07 01 00 00\r
3320         00               mov     DWORD PTR [edi], 1\r
3321   000f4 e9 de 11 00 00   jmp     $LN490@inflate\r
3322 $LN478@inflate:\r
3323 \r
3324 ; 657  :             }\r
3325 ; 658  :             state->flags = 0;           /* expect zlib header */\r
3326 ; 659  :             if (state->head != Z_NULL)\r
3327 \r
3328   000f9 8b 47 20         mov     eax, DWORD PTR [edi+32]\r
3329   000fc c7 47 10 00 00\r
3330         00 00            mov     DWORD PTR [edi+16], 0\r
3331   00103 85 c0            test    eax, eax\r
3332   00105 74 07            je      SHORT $LN471@inflate\r
3333 \r
3334 ; 660  :                 state->head->done = -1;\r
3335 \r
3336   00107 c7 40 30 ff ff\r
3337         ff ff            mov     DWORD PTR [eax+48], -1\r
3338 $LN471@inflate:\r
3339 \r
3340 ; 661  :             if (!(state->wrap & 1) ||   /* check if zlib header allowed */\r
3341 ; 662  : #else\r
3342 ; 663  :             if (\r
3343 ; 664  : #endif\r
3344 ; 665  :                 ((BITS(8) << 8) + (hold >> 8)) % 31) {\r
3345 \r
3346   0010e f6 47 08 01      test    BYTE PTR [edi+8], 1\r
3347   00112 0f 84 9f 00 00\r
3348         00               je      $LN469@inflate\r
3349   00118 0f b6 c3         movzx   eax, bl\r
3350   0011b c1 e0 08         shl     eax, 8\r
3351   0011e 8b d3            mov     edx, ebx\r
3352   00120 c1 ea 08         shr     edx, 8\r
3353   00123 03 c2            add     eax, edx\r
3354   00125 33 d2            xor     edx, edx\r
3355   00127 b9 1f 00 00 00   mov     ecx, 31                        ; 0000001fH\r
3356   0012c f7 f1            div     ecx\r
3357   0012e 85 d2            test    edx, edx\r
3358   00130 0f 85 81 00 00\r
3359         00               jne     $LN469@inflate\r
3360 \r
3361 ; 669  :             }\r
3362 ; 670  :             if (BITS(4) != Z_DEFLATED) {\r
3363 \r
3364   00136 8b d3            mov     edx, ebx\r
3365   00138 80 e2 0f         and     dl, 15                 ; 0000000fH\r
3366   0013b 80 fa 08         cmp     dl, 8\r
3367   0013e 74 12            je      SHORT $LN467@inflate\r
3368 \r
3369 ; 671  :                 strm->msg = (char *)"unknown compression method";\r
3370 \r
3371   00140 8b 45 08         mov     eax, DWORD PTR _strm$[ebp]\r
3372 \r
3373 ; 672  :                 state->mode = BAD;\r
3374 ; 673  :                 break;\r
3375 \r
3376   00143 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
3377   00146 c7 40 18 00 00\r
3378         00 00            mov     DWORD PTR [eax+24], OFFSET ??_C@_0BL@IHKGDAEE@unknown?5compression?5method?$AA@\r
3379   0014d e9 7f 11 00 00   jmp     $LN786@inflate\r
3380 $LN467@inflate:\r
3381 \r
3382 ; 674  :             }\r
3383 ; 675  :             DROPBITS(4);\r
3384 ; 676  :             len = BITS(4) + 8;\r
3385 ; 677  :             if (state->wbits == 0)\r
3386 \r
3387   00152 8b 47 24         mov     eax, DWORD PTR [edi+36]\r
3388   00155 c1 eb 04         shr     ebx, 4\r
3389   00158 8b cb            mov     ecx, ebx\r
3390   0015a 83 e1 0f         and     ecx, 15                        ; 0000000fH\r
3391   0015d 83 ee 04         sub     esi, 4\r
3392   00160 83 c1 08         add     ecx, 8\r
3393   00163 85 c0            test    eax, eax\r
3394   00165 75 3a            jne     SHORT $LN464@inflate\r
3395 \r
3396 ; 678  :                 state->wbits = len;\r
3397 \r
3398   00167 89 4f 24         mov     DWORD PTR [edi+36], ecx\r
3399 $LN462@inflate:\r
3400 \r
3401 ; 683  :             }\r
3402 ; 684  :             state->dmax = 1U << len;\r
3403 \r
3404   0016a ba 01 00 00 00   mov     edx, 1\r
3405 \r
3406 ; 685  :             Tracev((stderr, "inflate:   zlib header ok\n"));\r
3407 ; 686  :             strm->adler = state->check = adler32(0L, Z_NULL, 0);\r
3408 \r
3409   0016f 6a 00            push    0\r
3410   00171 d3 e2            shl     edx, cl\r
3411   00173 6a 00            push    0\r
3412   00175 6a 00            push    0\r
3413   00177 89 57 14         mov     DWORD PTR [edi+20], edx\r
3414   0017a e8 00 00 00 00   call    _adler32@12\r
3415   0017f 8b 4d 08         mov     ecx, DWORD PTR _strm$[ebp]\r
3416 \r
3417 ; 687  :             state->mode = hold & 0x200 ? DICTID : TYPE;\r
3418 ; 688  :             INITBITS();\r
3419 ; 689  :             break;\r
3420 \r
3421   00182 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
3422   00185 c1 eb 08         shr     ebx, 8\r
3423   00188 f7 d3            not     ebx\r
3424   0018a 83 e3 02         and     ebx, 2\r
3425   0018d 83 cb 09         or      ebx, 9\r
3426   00190 89 47 18         mov     DWORD PTR [edi+24], eax\r
3427   00193 89 41 30         mov     DWORD PTR [ecx+48], eax\r
3428   00196 89 1f            mov     DWORD PTR [edi], ebx\r
3429   00198 33 db            xor     ebx, ebx\r
3430   0019a 33 f6            xor     esi, esi\r
3431   0019c e9 36 11 00 00   jmp     $LN490@inflate\r
3432 $LN464@inflate:\r
3433 \r
3434 ; 679  :             else if (len > state->wbits) {\r
3435 \r
3436   001a1 3b c8            cmp     ecx, eax\r
3437   001a3 76 c5            jbe     SHORT $LN462@inflate\r
3438 \r
3439 ; 680  :                 strm->msg = (char *)"invalid window size";\r
3440 \r
3441   001a5 8b 4d 08         mov     ecx, DWORD PTR _strm$[ebp]\r
3442 \r
3443 ; 681  :                 state->mode = BAD;\r
3444 ; 682  :                 break;\r
3445 \r
3446   001a8 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
3447   001ab c7 41 18 00 00\r
3448         00 00            mov     DWORD PTR [ecx+24], OFFSET ??_C@_0BE@EMOGCLGO@invalid?5window?5size?$AA@\r
3449   001b2 e9 1a 11 00 00   jmp     $LN786@inflate\r
3450 $LN469@inflate:\r
3451 \r
3452 ; 666  :                 strm->msg = (char *)"incorrect header check";\r
3453 \r
3454   001b7 8b 55 08         mov     edx, DWORD PTR _strm$[ebp]\r
3455   001ba c7 42 18 00 00\r
3456         00 00            mov     DWORD PTR [edx+24], OFFSET ??_C@_0BH@LIBMMIGA@incorrect?5header?5check?$AA@\r
3457 \r
3458 ; 667  :                 state->mode = BAD;\r
3459 ; 668  :                 break;\r
3460 \r
3461   001c1 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
3462   001c4 e9 08 11 00 00   jmp     $LN786@inflate\r
3463 $LN457@inflate:\r
3464 \r
3465 ; 690  : #ifdef GUNZIP\r
3466 ; 691  :         case FLAGS:\r
3467 ; 692  :             NEEDBITS(16);\r
3468 \r
3469   001c9 83 fe 10         cmp     esi, 16                        ; 00000010H\r
3470   001cc 73 24            jae     SHORT $LN456@inflate\r
3471   001ce 8b ff            npad    2\r
3472 $LL454@inflate:\r
3473   001d0 83 7d fc 00      cmp     DWORD PTR _have$[ebp], 0\r
3474   001d4 0f 84 5b 11 00\r
3475         00               je      $inf_leave$80408\r
3476   001da 0f b6 02         movzx   eax, BYTE PTR [edx]\r
3477   001dd ff 4d fc         dec     DWORD PTR _have$[ebp]\r
3478   001e0 8b ce            mov     ecx, esi\r
3479   001e2 d3 e0            shl     eax, cl\r
3480   001e4 42               inc     edx\r
3481   001e5 83 c6 08         add     esi, 8\r
3482   001e8 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
3483   001eb 03 d8            add     ebx, eax\r
3484   001ed 83 fe 10         cmp     esi, 16                        ; 00000010H\r
3485   001f0 72 de            jb      SHORT $LL454@inflate\r
3486 $LN456@inflate:\r
3487 \r
3488 ; 693  :             state->flags = (int)(hold);\r
3489 \r
3490   001f2 89 5f 10         mov     DWORD PTR [edi+16], ebx\r
3491 \r
3492 ; 694  :             if ((state->flags & 0xff) != Z_DEFLATED) {\r
3493 \r
3494   001f5 80 fb 08         cmp     bl, 8\r
3495   001f8 74 0f            je      SHORT $LN448@inflate\r
3496 \r
3497 ; 695  :                 strm->msg = (char *)"unknown compression method";\r
3498 \r
3499   001fa 8b 4d 08         mov     ecx, DWORD PTR _strm$[ebp]\r
3500   001fd c7 41 18 00 00\r
3501         00 00            mov     DWORD PTR [ecx+24], OFFSET ??_C@_0BL@IHKGDAEE@unknown?5compression?5method?$AA@\r
3502 \r
3503 ; 696  :                 state->mode = BAD;\r
3504 ; 697  :                 break;\r
3505 \r
3506   00204 e9 c8 10 00 00   jmp     $LN786@inflate\r
3507 $LN448@inflate:\r
3508 \r
3509 ; 698  :             }\r
3510 ; 699  :             if (state->flags & 0xe000) {\r
3511 \r
3512   00209 f7 c3 00 e0 00\r
3513         00               test    ebx, 57344             ; 0000e000H\r
3514   0020f 74 0f            je      SHORT $LN447@inflate\r
3515 \r
3516 ; 700  :                 strm->msg = (char *)"unknown header flags set";\r
3517 \r
3518   00211 8b 45 08         mov     eax, DWORD PTR _strm$[ebp]\r
3519   00214 c7 40 18 00 00\r
3520         00 00            mov     DWORD PTR [eax+24], OFFSET ??_C@_0BJ@BLBBCOMO@unknown?5header?5flags?5set?$AA@\r
3521 \r
3522 ; 701  :                 state->mode = BAD;\r
3523 ; 702  :                 break;\r
3524 \r
3525   0021b e9 b1 10 00 00   jmp     $LN786@inflate\r
3526 $LN447@inflate:\r
3527 \r
3528 ; 703  :             }\r
3529 ; 704  :             if (state->head != Z_NULL)\r
3530 \r
3531   00220 8b 47 20         mov     eax, DWORD PTR [edi+32]\r
3532   00223 85 c0            test    eax, eax\r
3533   00225 74 0a            je      SHORT $LN446@inflate\r
3534 \r
3535 ; 705  :                 state->head->text = (int)((hold >> 8) & 1);\r
3536 \r
3537   00227 8b cb            mov     ecx, ebx\r
3538   00229 c1 e9 08         shr     ecx, 8\r
3539   0022c 83 e1 01         and     ecx, 1\r
3540   0022f 89 08            mov     DWORD PTR [eax], ecx\r
3541 $LN446@inflate:\r
3542 \r
3543 ; 706  :             if (state->flags & 0x0200) CRC2(state->check, hold);\r
3544 \r
3545   00231 f7 47 10 00 02\r
3546         00 00            test    DWORD PTR [edi+16], 512        ; 00000200H\r
3547   00238 74 1e            je      SHORT $LN442@inflate\r
3548   0023a 8b 47 18         mov     eax, DWORD PTR [edi+24]\r
3549   0023d 6a 02            push    2\r
3550   0023f 8d 55 ec         lea     edx, DWORD PTR _hbuf$[ebp]\r
3551   00242 88 5d ec         mov     BYTE PTR _hbuf$[ebp], bl\r
3552   00245 52               push    edx\r
3553   00246 c1 eb 08         shr     ebx, 8\r
3554   00249 50               push    eax\r
3555   0024a 88 5d ed         mov     BYTE PTR _hbuf$[ebp+1], bl\r
3556   0024d e8 00 00 00 00   call    _crc32@12\r
3557   00252 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
3558   00255 89 47 18         mov     DWORD PTR [edi+24], eax\r
3559 $LN442@inflate:\r
3560 \r
3561 ; 707  :             INITBITS();\r
3562 \r
3563   00258 33 db            xor     ebx, ebx\r
3564   0025a 33 f6            xor     esi, esi\r
3565 \r
3566 ; 708  :             state->mode = TIME;\r
3567 \r
3568   0025c c7 07 02 00 00\r
3569         00               mov     DWORD PTR [edi], 2\r
3570 \r
3571 ; 709  :         case TIME:\r
3572 ; 710  :             NEEDBITS(32);\r
3573 \r
3574   00262 eb 0c            jmp     SHORT $LL434@inflate\r
3575 $LN437@inflate:\r
3576   00264 83 fe 20         cmp     esi, 32                        ; 00000020H\r
3577   00267 73 29            jae     SHORT $LN436@inflate\r
3578   00269 8d a4 24 00 00\r
3579         00 00            npad    7\r
3580 $LL434@inflate:\r
3581   00270 83 7d fc 00      cmp     DWORD PTR _have$[ebp], 0\r
3582   00274 0f 84 bb 10 00\r
3583         00               je      $inf_leave$80408\r
3584   0027a 0f b6 02         movzx   eax, BYTE PTR [edx]\r
3585   0027d ff 4d fc         dec     DWORD PTR _have$[ebp]\r
3586   00280 8b ce            mov     ecx, esi\r
3587   00282 d3 e0            shl     eax, cl\r
3588   00284 42               inc     edx\r
3589   00285 83 c6 08         add     esi, 8\r
3590   00288 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
3591   0028b 03 d8            add     ebx, eax\r
3592   0028d 83 fe 20         cmp     esi, 32                        ; 00000020H\r
3593   00290 72 de            jb      SHORT $LL434@inflate\r
3594 $LN436@inflate:\r
3595 \r
3596 ; 711  :             if (state->head != Z_NULL)\r
3597 \r
3598   00292 8b 47 20         mov     eax, DWORD PTR [edi+32]\r
3599   00295 85 c0            test    eax, eax\r
3600   00297 74 03            je      SHORT $LN428@inflate\r
3601 \r
3602 ; 712  :                 state->head->time = hold;\r
3603 \r
3604   00299 89 58 04         mov     DWORD PTR [eax+4], ebx\r
3605 $LN428@inflate:\r
3606 \r
3607 ; 713  :             if (state->flags & 0x0200) CRC4(state->check, hold);\r
3608 \r
3609   0029c f7 47 10 00 02\r
3610         00 00            test    DWORD PTR [edi+16], 512        ; 00000200H\r
3611   002a3 74 2e            je      SHORT $LN424@inflate\r
3612   002a5 8b cb            mov     ecx, ebx\r
3613   002a7 c1 e9 08         shr     ecx, 8\r
3614   002aa 6a 04            push    4\r
3615   002ac 8d 45 ec         lea     eax, DWORD PTR _hbuf$[ebp]\r
3616   002af 88 4d ed         mov     BYTE PTR _hbuf$[ebp+1], cl\r
3617   002b2 8b 4f 18         mov     ecx, DWORD PTR [edi+24]\r
3618   002b5 8b d3            mov     edx, ebx\r
3619   002b7 88 5d ec         mov     BYTE PTR _hbuf$[ebp], bl\r
3620   002ba 50               push    eax\r
3621   002bb c1 ea 10         shr     edx, 16                        ; 00000010H\r
3622   002be c1 eb 18         shr     ebx, 24                        ; 00000018H\r
3623   002c1 51               push    ecx\r
3624   002c2 88 55 ee         mov     BYTE PTR _hbuf$[ebp+2], dl\r
3625   002c5 88 5d ef         mov     BYTE PTR _hbuf$[ebp+3], bl\r
3626   002c8 e8 00 00 00 00   call    _crc32@12\r
3627   002cd 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
3628   002d0 89 47 18         mov     DWORD PTR [edi+24], eax\r
3629 $LN424@inflate:\r
3630 \r
3631 ; 714  :             INITBITS();\r
3632 \r
3633   002d3 33 db            xor     ebx, ebx\r
3634   002d5 33 f6            xor     esi, esi\r
3635 \r
3636 ; 715  :             state->mode = OS;\r
3637 \r
3638   002d7 c7 07 03 00 00\r
3639         00               mov     DWORD PTR [edi], 3\r
3640 \r
3641 ; 716  :         case OS:\r
3642 ; 717  :             NEEDBITS(16);\r
3643 \r
3644   002dd eb 05            jmp     SHORT $LL416@inflate\r
3645 $LN419@inflate:\r
3646   002df 83 fe 10         cmp     esi, 16                        ; 00000010H\r
3647   002e2 73 22            jae     SHORT $LN418@inflate\r
3648 $LL416@inflate:\r
3649   002e4 83 7d fc 00      cmp     DWORD PTR _have$[ebp], 0\r
3650   002e8 0f 84 47 10 00\r
3651         00               je      $inf_leave$80408\r
3652   002ee 0f b6 02         movzx   eax, BYTE PTR [edx]\r
3653   002f1 ff 4d fc         dec     DWORD PTR _have$[ebp]\r
3654   002f4 8b ce            mov     ecx, esi\r
3655   002f6 d3 e0            shl     eax, cl\r
3656   002f8 42               inc     edx\r
3657   002f9 83 c6 08         add     esi, 8\r
3658   002fc 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
3659   002ff 03 d8            add     ebx, eax\r
3660   00301 83 fe 10         cmp     esi, 16                        ; 00000010H\r
3661   00304 72 de            jb      SHORT $LL416@inflate\r
3662 $LN418@inflate:\r
3663 \r
3664 ; 718  :             if (state->head != Z_NULL) {\r
3665 \r
3666   00306 8b 47 20         mov     eax, DWORD PTR [edi+32]\r
3667   00309 85 c0            test    eax, eax\r
3668   0030b 74 16            je      SHORT $LN410@inflate\r
3669 \r
3670 ; 719  :                 state->head->xflags = (int)(hold & 0xff);\r
3671 \r
3672   0030d 8b cb            mov     ecx, ebx\r
3673   0030f 81 e1 ff 00 00\r
3674         00               and     ecx, 255               ; 000000ffH\r
3675   00315 89 48 08         mov     DWORD PTR [eax+8], ecx\r
3676 \r
3677 ; 720  :                 state->head->os = (int)(hold >> 8);\r
3678 \r
3679   00318 8b 4f 20         mov     ecx, DWORD PTR [edi+32]\r
3680   0031b 8b c3            mov     eax, ebx\r
3681   0031d c1 e8 08         shr     eax, 8\r
3682   00320 89 41 0c         mov     DWORD PTR [ecx+12], eax\r
3683 $LN410@inflate:\r
3684 \r
3685 ; 721  :             }\r
3686 ; 722  :             if (state->flags & 0x0200) CRC2(state->check, hold);\r
3687 \r
3688   00323 f7 47 10 00 02\r
3689         00 00            test    DWORD PTR [edi+16], 512        ; 00000200H\r
3690   0032a 74 1e            je      SHORT $LN406@inflate\r
3691   0032c 8b 47 18         mov     eax, DWORD PTR [edi+24]\r
3692   0032f 6a 02            push    2\r
3693   00331 8d 55 ec         lea     edx, DWORD PTR _hbuf$[ebp]\r
3694   00334 88 5d ec         mov     BYTE PTR _hbuf$[ebp], bl\r
3695   00337 52               push    edx\r
3696   00338 c1 eb 08         shr     ebx, 8\r
3697   0033b 50               push    eax\r
3698   0033c 88 5d ed         mov     BYTE PTR _hbuf$[ebp+1], bl\r
3699   0033f e8 00 00 00 00   call    _crc32@12\r
3700   00344 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
3701   00347 89 47 18         mov     DWORD PTR [edi+24], eax\r
3702 $LN406@inflate:\r
3703 \r
3704 ; 723  :             INITBITS();\r
3705 \r
3706   0034a 33 db            xor     ebx, ebx\r
3707   0034c 33 f6            xor     esi, esi\r
3708 \r
3709 ; 724  :             state->mode = EXLEN;\r
3710 \r
3711   0034e c7 07 04 00 00\r
3712         00               mov     DWORD PTR [edi], 4\r
3713 $LN713@inflate:\r
3714 \r
3715 ; 725  :         case EXLEN:\r
3716 ; 726  :             if (state->flags & 0x0400) {\r
3717 \r
3718   00354 f7 47 10 00 04\r
3719         00 00            test    DWORD PTR [edi+16], 1024 ; 00000400H\r
3720   0035b 74 61            je      SHORT $LN401@inflate\r
3721 \r
3722 ; 727  :                 NEEDBITS(16);\r
3723 \r
3724   0035d 83 fe 10         cmp     esi, 16                        ; 00000010H\r
3725   00360 73 22            jae     SHORT $LN399@inflate\r
3726 $LL397@inflate:\r
3727   00362 83 7d fc 00      cmp     DWORD PTR _have$[ebp], 0\r
3728   00366 0f 84 c9 0f 00\r
3729         00               je      $inf_leave$80408\r
3730   0036c 0f b6 02         movzx   eax, BYTE PTR [edx]\r
3731   0036f ff 4d fc         dec     DWORD PTR _have$[ebp]\r
3732   00372 8b ce            mov     ecx, esi\r
3733   00374 d3 e0            shl     eax, cl\r
3734   00376 42               inc     edx\r
3735   00377 83 c6 08         add     esi, 8\r
3736   0037a 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
3737   0037d 03 d8            add     ebx, eax\r
3738   0037f 83 fe 10         cmp     esi, 16                        ; 00000010H\r
3739   00382 72 de            jb      SHORT $LL397@inflate\r
3740 $LN399@inflate:\r
3741 \r
3742 ; 728  :                 state->length = (unsigned)(hold);\r
3743 ; 729  :                 if (state->head != Z_NULL)\r
3744 \r
3745   00384 8b 47 20         mov     eax, DWORD PTR [edi+32]\r
3746   00387 89 5f 40         mov     DWORD PTR [edi+64], ebx\r
3747   0038a 85 c0            test    eax, eax\r
3748   0038c 74 03            je      SHORT $LN391@inflate\r
3749 \r
3750 ; 730  :                     state->head->extra_len = (unsigned)hold;\r
3751 \r
3752   0038e 89 58 14         mov     DWORD PTR [eax+20], ebx\r
3753 $LN391@inflate:\r
3754 \r
3755 ; 731  :                 if (state->flags & 0x0200) CRC2(state->check, hold);\r
3756 \r
3757   00391 f7 47 10 00 02\r
3758         00 00            test    DWORD PTR [edi+16], 512        ; 00000200H\r
3759   00398 74 1e            je      SHORT $LN387@inflate\r
3760   0039a 8b 57 18         mov     edx, DWORD PTR [edi+24]\r
3761   0039d 6a 02            push    2\r
3762   0039f 8d 4d ec         lea     ecx, DWORD PTR _hbuf$[ebp]\r
3763   003a2 88 5d ec         mov     BYTE PTR _hbuf$[ebp], bl\r
3764   003a5 51               push    ecx\r
3765   003a6 c1 eb 08         shr     ebx, 8\r
3766   003a9 52               push    edx\r
3767   003aa 88 5d ed         mov     BYTE PTR _hbuf$[ebp+1], bl\r
3768   003ad e8 00 00 00 00   call    _crc32@12\r
3769   003b2 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
3770   003b5 89 47 18         mov     DWORD PTR [edi+24], eax\r
3771 $LN387@inflate:\r
3772 \r
3773 ; 732  :                 INITBITS();\r
3774 \r
3775   003b8 33 db            xor     ebx, ebx\r
3776   003ba 33 f6            xor     esi, esi\r
3777 \r
3778 ; 733  :             }\r
3779 ; 734  :             else if (state->head != Z_NULL)\r
3780 \r
3781   003bc eb 0e            jmp     SHORT $LN382@inflate\r
3782 $LN401@inflate:\r
3783   003be 8b 47 20         mov     eax, DWORD PTR [edi+32]\r
3784   003c1 85 c0            test    eax, eax\r
3785   003c3 74 07            je      SHORT $LN382@inflate\r
3786 \r
3787 ; 735  :                 state->head->extra = Z_NULL;\r
3788 \r
3789   003c5 c7 40 10 00 00\r
3790         00 00            mov     DWORD PTR [eax+16], 0\r
3791 $LN382@inflate:\r
3792 \r
3793 ; 736  :             state->mode = EXTRA;\r
3794 \r
3795   003cc c7 07 05 00 00\r
3796         00               mov     DWORD PTR [edi], 5\r
3797 $LN715@inflate:\r
3798 \r
3799 ; 737  :         case EXTRA:\r
3800 ; 738  :             if (state->flags & 0x0400) {\r
3801 \r
3802   003d2 f7 47 10 00 04\r
3803         00 00            test    DWORD PTR [edi+16], 1024 ; 00000400H\r
3804   003d9 0f 84 93 00 00\r
3805         00               je      $LN375@inflate\r
3806 \r
3807 ; 739  :                 copy = state->length;\r
3808 \r
3809   003df 8b 47 40         mov     eax, DWORD PTR [edi+64]\r
3810 \r
3811 ; 740  :                 if (copy > have) copy = have;\r
3812 \r
3813   003e2 8b 4d fc         mov     ecx, DWORD PTR _have$[ebp]\r
3814   003e5 89 45 f4         mov     DWORD PTR _copy$[ebp], eax\r
3815   003e8 3b c1            cmp     eax, ecx\r
3816   003ea 76 05            jbe     SHORT $LN379@inflate\r
3817   003ec 8b c1            mov     eax, ecx\r
3818   003ee 89 4d f4         mov     DWORD PTR _copy$[ebp], ecx\r
3819 $LN379@inflate:\r
3820 \r
3821 ; 741  :                 if (copy) {\r
3822 \r
3823   003f1 85 c0            test    eax, eax\r
3824   003f3 74 73            je      SHORT $LN378@inflate\r
3825 \r
3826 ; 742  :                     if (state->head != Z_NULL &&\r
3827 ; 743  :                         state->head->extra != Z_NULL) {\r
3828 \r
3829   003f5 8b 4f 20         mov     ecx, DWORD PTR [edi+32]\r
3830   003f8 85 c9            test    ecx, ecx\r
3831   003fa 74 3e            je      SHORT $LN750@inflate\r
3832   003fc 8b 49 10         mov     ecx, DWORD PTR [ecx+16]\r
3833   003ff 89 4d d4         mov     DWORD PTR tv2134[ebp], ecx\r
3834   00402 85 c9            test    ecx, ecx\r
3835   00404 74 34            je      SHORT $LN750@inflate\r
3836 \r
3837 ; 744  :                         len = state->head->extra_len - state->length;\r
3838 \r
3839   00406 8b 57 20         mov     edx, DWORD PTR [edi+32]\r
3840   00409 8b 4a 14         mov     ecx, DWORD PTR [edx+20]\r
3841   0040c 2b 4f 40         sub     ecx, DWORD PTR [edi+64]\r
3842 \r
3843 ; 745  :                         zmemcpy(state->head->extra + len, next,\r
3844 ; 746  :                                 len + copy > state->head->extra_max ?\r
3845 ; 747  :                                 state->head->extra_max - len : copy);\r
3846 \r
3847   0040f 8b 52 18         mov     edx, DWORD PTR [edx+24]\r
3848   00412 89 4d e4         mov     DWORD PTR _len$[ebp], ecx\r
3849   00415 03 c8            add     ecx, eax\r
3850   00417 3b ca            cmp     ecx, edx\r
3851   00419 76 05            jbe     SHORT $LN502@inflate\r
3852   0041b 2b 55 e4         sub     edx, DWORD PTR _len$[ebp]\r
3853   0041e 8b c2            mov     eax, edx\r
3854 $LN502@inflate:\r
3855   00420 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
3856   00423 50               push    eax\r
3857   00424 8b 45 d4         mov     eax, DWORD PTR tv2134[ebp]\r
3858   00427 03 45 e4         add     eax, DWORD PTR _len$[ebp]\r
3859   0042a 52               push    edx\r
3860   0042b 50               push    eax\r
3861   0042c e8 00 00 00 00   call    _memcpy\r
3862   00431 8b 45 f4         mov     eax, DWORD PTR _copy$[ebp]\r
3863   00434 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
3864   00437 83 c4 0c         add     esp, 12                        ; 0000000cH\r
3865 $LN750@inflate:\r
3866 \r
3867 ; 748  :                     }\r
3868 ; 749  :                     if (state->flags & 0x0200)\r
3869 \r
3870   0043a f7 47 10 00 02\r
3871         00 00            test    DWORD PTR [edi+16], 512        ; 00000200H\r
3872   00441 74 1a            je      SHORT $LN376@inflate\r
3873 \r
3874 ; 750  :                         state->check = crc32(state->check, next, copy);\r
3875 \r
3876   00443 8b 55 f4         mov     edx, DWORD PTR _copy$[ebp]\r
3877   00446 8b 45 f8         mov     eax, DWORD PTR _next$[ebp]\r
3878   00449 8b 4f 18         mov     ecx, DWORD PTR [edi+24]\r
3879   0044c 52               push    edx\r
3880   0044d 50               push    eax\r
3881   0044e 51               push    ecx\r
3882   0044f e8 00 00 00 00   call    _crc32@12\r
3883   00454 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
3884   00457 89 47 18         mov     DWORD PTR [edi+24], eax\r
3885   0045a 8b 45 f4         mov     eax, DWORD PTR _copy$[ebp]\r
3886 $LN376@inflate:\r
3887 \r
3888 ; 751  :                     have -= copy;\r
3889 \r
3890   0045d 29 45 fc         sub     DWORD PTR _have$[ebp], eax\r
3891 \r
3892 ; 752  :                     next += copy;\r
3893 \r
3894   00460 03 d0            add     edx, eax\r
3895 \r
3896 ; 753  :                     state->length -= copy;\r
3897 \r
3898   00462 29 47 40         sub     DWORD PTR [edi+64], eax\r
3899   00465 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
3900 $LN378@inflate:\r
3901 \r
3902 ; 754  :                 }\r
3903 ; 755  :                 if (state->length) goto inf_leave;\r
3904 \r
3905   00468 83 7f 40 00      cmp     DWORD PTR [edi+64], 0\r
3906   0046c 0f 85 c3 0e 00\r
3907         00               jne     $inf_leave$80408\r
3908 $LN375@inflate:\r
3909 \r
3910 ; 756  :             }\r
3911 ; 757  :             state->length = 0;\r
3912 \r
3913   00472 c7 47 40 00 00\r
3914         00 00            mov     DWORD PTR [edi+64], 0\r
3915 \r
3916 ; 758  :             state->mode = NAME;\r
3917 \r
3918   00479 c7 07 06 00 00\r
3919         00               mov     DWORD PTR [edi], 6\r
3920 $LN716@inflate:\r
3921 \r
3922 ; 759  :         case NAME:\r
3923 ; 760  :             if (state->flags & 0x0800) {\r
3924 \r
3925   0047f f7 47 10 00 08\r
3926         00 00            test    DWORD PTR [edi+16], 2048 ; 00000800H\r
3927   00486 0f 84 84 00 00\r
3928         00               je      $LN373@inflate\r
3929 \r
3930 ; 761  :                 if (have == 0) goto inf_leave;\r
3931 \r
3932   0048c 83 7d fc 00      cmp     DWORD PTR _have$[ebp], 0\r
3933   00490 0f 84 9f 0e 00\r
3934         00               je      $inf_leave$80408\r
3935 \r
3936 ; 762  :                 copy = 0;\r
3937 \r
3938   00496 33 c0            xor     eax, eax\r
3939 $LL371@inflate:\r
3940 \r
3941 ; 763  :                 do {\r
3942 ; 764  :                     len = (unsigned)(next[copy++]);\r
3943 \r
3944   00498 0f b6 0c 10      movzx   ecx, BYTE PTR [eax+edx]\r
3945   0049c 40               inc     eax\r
3946   0049d 89 45 f4         mov     DWORD PTR _copy$[ebp], eax\r
3947 \r
3948 ; 765  :                     if (state->head != Z_NULL &&\r
3949 ; 766  :                             state->head->name != Z_NULL &&\r
3950 ; 767  :                             state->length < state->head->name_max)\r
3951 \r
3952   004a0 8b 47 20         mov     eax, DWORD PTR [edi+32]\r
3953   004a3 89 4d e4         mov     DWORD PTR _len$[ebp], ecx\r
3954   004a6 85 c0            test    eax, eax\r
3955   004a8 74 21            je      SHORT $LN370@inflate\r
3956   004aa 8b 48 1c         mov     ecx, DWORD PTR [eax+28]\r
3957   004ad 89 4d d4         mov     DWORD PTR tv2157[ebp], ecx\r
3958   004b0 85 c9            test    ecx, ecx\r
3959   004b2 74 17            je      SHORT $LN370@inflate\r
3960   004b4 8b 4f 40         mov     ecx, DWORD PTR [edi+64]\r
3961   004b7 3b 48 20         cmp     ecx, DWORD PTR [eax+32]\r
3962   004ba 73 0f            jae     SHORT $LN370@inflate\r
3963 \r
3964 ; 768  :                         state->head->name[state->length++] = len;\r
3965 \r
3966   004bc 8b 55 d4         mov     edx, DWORD PTR tv2157[ebp]\r
3967   004bf 8a 45 e4         mov     al, BYTE PTR _len$[ebp]\r
3968   004c2 88 04 0a         mov     BYTE PTR [edx+ecx], al\r
3969   004c5 ff 47 40         inc     DWORD PTR [edi+64]\r
3970   004c8 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
3971 $LN370@inflate:\r
3972 \r
3973 ; 769  :                 } while (len && copy < have);\r
3974 \r
3975   004cb 83 7d e4 00      cmp     DWORD PTR _len$[ebp], 0\r
3976   004cf 74 08            je      SHORT $LN367@inflate\r
3977   004d1 8b 45 f4         mov     eax, DWORD PTR _copy$[ebp]\r
3978   004d4 3b 45 fc         cmp     eax, DWORD PTR _have$[ebp]\r
3979   004d7 72 bf            jb      SHORT $LL371@inflate\r
3980 $LN367@inflate:\r
3981 \r
3982 ; 770  :                 if (state->flags & 0x0200)\r
3983 \r
3984   004d9 f7 47 10 00 02\r
3985         00 00            test    DWORD PTR [edi+16], 512        ; 00000200H\r
3986   004e0 74 17            je      SHORT $LN366@inflate\r
3987 \r
3988 ; 771  :                     state->check = crc32(state->check, next, copy);\r
3989 \r
3990   004e2 8b 4d f4         mov     ecx, DWORD PTR _copy$[ebp]\r
3991   004e5 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
3992   004e8 8b 47 18         mov     eax, DWORD PTR [edi+24]\r
3993   004eb 51               push    ecx\r
3994   004ec 52               push    edx\r
3995   004ed 50               push    eax\r
3996   004ee e8 00 00 00 00   call    _crc32@12\r
3997   004f3 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
3998   004f6 89 47 18         mov     DWORD PTR [edi+24], eax\r
3999 $LN366@inflate:\r
4000 \r
4001 ; 772  :                 have -= copy;\r
4002 \r
4003   004f9 8b 45 f4         mov     eax, DWORD PTR _copy$[ebp]\r
4004   004fc 29 45 fc         sub     DWORD PTR _have$[ebp], eax\r
4005 \r
4006 ; 773  :                 next += copy;\r
4007 \r
4008   004ff 03 d0            add     edx, eax\r
4009 \r
4010 ; 774  :                 if (len) goto inf_leave;\r
4011 \r
4012   00501 83 7d e4 00      cmp     DWORD PTR _len$[ebp], 0\r
4013   00505 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
4014   00508 0f 85 27 0e 00\r
4015         00               jne     $inf_leave$80408\r
4016 \r
4017 ; 775  :             }\r
4018 ; 776  :             else if (state->head != Z_NULL)\r
4019 \r
4020   0050e eb 0e            jmp     SHORT $LN363@inflate\r
4021 $LN373@inflate:\r
4022   00510 8b 47 20         mov     eax, DWORD PTR [edi+32]\r
4023   00513 85 c0            test    eax, eax\r
4024   00515 74 07            je      SHORT $LN363@inflate\r
4025 \r
4026 ; 777  :                 state->head->name = Z_NULL;\r
4027 \r
4028   00517 c7 40 1c 00 00\r
4029         00 00            mov     DWORD PTR [eax+28], 0\r
4030 $LN363@inflate:\r
4031 \r
4032 ; 778  :             state->length = 0;\r
4033 \r
4034   0051e c7 47 40 00 00\r
4035         00 00            mov     DWORD PTR [edi+64], 0\r
4036 \r
4037 ; 779  :             state->mode = COMMENT;\r
4038 \r
4039   00525 c7 07 07 00 00\r
4040         00               mov     DWORD PTR [edi], 7\r
4041 $LN720@inflate:\r
4042 \r
4043 ; 780  :         case COMMENT:\r
4044 ; 781  :             if (state->flags & 0x1000) {\r
4045 \r
4046   0052b f7 47 10 00 10\r
4047         00 00            test    DWORD PTR [edi+16], 4096 ; 00001000H\r
4048   00532 0f 84 84 00 00\r
4049         00               je      $LN361@inflate\r
4050 \r
4051 ; 782  :                 if (have == 0) goto inf_leave;\r
4052 \r
4053   00538 83 7d fc 00      cmp     DWORD PTR _have$[ebp], 0\r
4054   0053c 0f 84 f3 0d 00\r
4055         00               je      $inf_leave$80408\r
4056 \r
4057 ; 783  :                 copy = 0;\r
4058 \r
4059   00542 33 c0            xor     eax, eax\r
4060 $LL359@inflate:\r
4061 \r
4062 ; 784  :                 do {\r
4063 ; 785  :                     len = (unsigned)(next[copy++]);\r
4064 \r
4065   00544 0f b6 0c 10      movzx   ecx, BYTE PTR [eax+edx]\r
4066   00548 40               inc     eax\r
4067   00549 89 45 f4         mov     DWORD PTR _copy$[ebp], eax\r
4068 \r
4069 ; 786  :                     if (state->head != Z_NULL &&\r
4070 ; 787  :                             state->head->comment != Z_NULL &&\r
4071 ; 788  :                             state->length < state->head->comm_max)\r
4072 \r
4073   0054c 8b 47 20         mov     eax, DWORD PTR [edi+32]\r
4074   0054f 89 4d e4         mov     DWORD PTR _len$[ebp], ecx\r
4075   00552 85 c0            test    eax, eax\r
4076   00554 74 21            je      SHORT $LN358@inflate\r
4077   00556 8b 48 24         mov     ecx, DWORD PTR [eax+36]\r
4078   00559 89 4d d4         mov     DWORD PTR tv2173[ebp], ecx\r
4079   0055c 85 c9            test    ecx, ecx\r
4080   0055e 74 17            je      SHORT $LN358@inflate\r
4081   00560 8b 4f 40         mov     ecx, DWORD PTR [edi+64]\r
4082   00563 3b 48 28         cmp     ecx, DWORD PTR [eax+40]\r
4083   00566 73 0f            jae     SHORT $LN358@inflate\r
4084 \r
4085 ; 789  :                         state->head->comment[state->length++] = len;\r
4086 \r
4087   00568 8b 55 d4         mov     edx, DWORD PTR tv2173[ebp]\r
4088   0056b 8a 45 e4         mov     al, BYTE PTR _len$[ebp]\r
4089   0056e 88 04 0a         mov     BYTE PTR [edx+ecx], al\r
4090   00571 ff 47 40         inc     DWORD PTR [edi+64]\r
4091   00574 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
4092 $LN358@inflate:\r
4093 \r
4094 ; 790  :                 } while (len && copy < have);\r
4095 \r
4096   00577 83 7d e4 00      cmp     DWORD PTR _len$[ebp], 0\r
4097   0057b 74 08            je      SHORT $LN355@inflate\r
4098   0057d 8b 45 f4         mov     eax, DWORD PTR _copy$[ebp]\r
4099   00580 3b 45 fc         cmp     eax, DWORD PTR _have$[ebp]\r
4100   00583 72 bf            jb      SHORT $LL359@inflate\r
4101 $LN355@inflate:\r
4102 \r
4103 ; 791  :                 if (state->flags & 0x0200)\r
4104 \r
4105   00585 f7 47 10 00 02\r
4106         00 00            test    DWORD PTR [edi+16], 512        ; 00000200H\r
4107   0058c 74 17            je      SHORT $LN354@inflate\r
4108 \r
4109 ; 792  :                     state->check = crc32(state->check, next, copy);\r
4110 \r
4111   0058e 8b 4d f4         mov     ecx, DWORD PTR _copy$[ebp]\r
4112   00591 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
4113   00594 8b 47 18         mov     eax, DWORD PTR [edi+24]\r
4114   00597 51               push    ecx\r
4115   00598 52               push    edx\r
4116   00599 50               push    eax\r
4117   0059a e8 00 00 00 00   call    _crc32@12\r
4118   0059f 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
4119   005a2 89 47 18         mov     DWORD PTR [edi+24], eax\r
4120 $LN354@inflate:\r
4121 \r
4122 ; 793  :                 have -= copy;\r
4123 \r
4124   005a5 8b 45 f4         mov     eax, DWORD PTR _copy$[ebp]\r
4125   005a8 29 45 fc         sub     DWORD PTR _have$[ebp], eax\r
4126 \r
4127 ; 794  :                 next += copy;\r
4128 \r
4129   005ab 03 d0            add     edx, eax\r
4130 \r
4131 ; 795  :                 if (len) goto inf_leave;\r
4132 \r
4133   005ad 83 7d e4 00      cmp     DWORD PTR _len$[ebp], 0\r
4134   005b1 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
4135   005b4 0f 85 7b 0d 00\r
4136         00               jne     $inf_leave$80408\r
4137 \r
4138 ; 796  :             }\r
4139 ; 797  :             else if (state->head != Z_NULL)\r
4140 \r
4141   005ba eb 0e            jmp     SHORT $LN351@inflate\r
4142 $LN361@inflate:\r
4143   005bc 8b 47 20         mov     eax, DWORD PTR [edi+32]\r
4144   005bf 85 c0            test    eax, eax\r
4145   005c1 74 07            je      SHORT $LN351@inflate\r
4146 \r
4147 ; 798  :                 state->head->comment = Z_NULL;\r
4148 \r
4149   005c3 c7 40 24 00 00\r
4150         00 00            mov     DWORD PTR [eax+36], 0\r
4151 $LN351@inflate:\r
4152 \r
4153 ; 799  :             state->mode = HCRC;\r
4154 \r
4155   005ca c7 07 08 00 00\r
4156         00               mov     DWORD PTR [edi], 8\r
4157 $LN724@inflate:\r
4158 \r
4159 ; 800  :         case HCRC:\r
4160 ; 801  :             if (state->flags & 0x0200) {\r
4161 \r
4162   005d0 f7 47 10 00 02\r
4163         00 00            test    DWORD PTR [edi+16], 512        ; 00000200H\r
4164   005d7 74 44            je      SHORT $LN336@inflate\r
4165 \r
4166 ; 802  :                 NEEDBITS(16);\r
4167 \r
4168   005d9 83 fe 10         cmp     esi, 16                        ; 00000010H\r
4169   005dc 73 24            jae     SHORT $LN347@inflate\r
4170   005de 8b ff            npad    2\r
4171 $LL345@inflate:\r
4172   005e0 83 7d fc 00      cmp     DWORD PTR _have$[ebp], 0\r
4173   005e4 0f 84 4b 0d 00\r
4174         00               je      $inf_leave$80408\r
4175   005ea 0f b6 02         movzx   eax, BYTE PTR [edx]\r
4176   005ed ff 4d fc         dec     DWORD PTR _have$[ebp]\r
4177   005f0 8b ce            mov     ecx, esi\r
4178   005f2 d3 e0            shl     eax, cl\r
4179   005f4 42               inc     edx\r
4180   005f5 83 c6 08         add     esi, 8\r
4181   005f8 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
4182   005fb 03 d8            add     ebx, eax\r
4183   005fd 83 fe 10         cmp     esi, 16                        ; 00000010H\r
4184   00600 72 de            jb      SHORT $LL345@inflate\r
4185 $LN347@inflate:\r
4186 \r
4187 ; 803  :                 if (hold != (state->check & 0xffff)) {\r
4188 \r
4189   00602 0f b7 4f 18      movzx   ecx, WORD PTR [edi+24]\r
4190   00606 3b d9            cmp     ebx, ecx\r
4191   00608 74 0f            je      SHORT $LN338@inflate\r
4192 \r
4193 ; 804  :                     strm->msg = (char *)"header crc mismatch";\r
4194 \r
4195   0060a 8b 45 08         mov     eax, DWORD PTR _strm$[ebp]\r
4196   0060d c7 40 18 00 00\r
4197         00 00            mov     DWORD PTR [eax+24], OFFSET ??_C@_0BE@GONKLEPM@header?5crc?5mismatch?$AA@\r
4198 \r
4199 ; 805  :                     state->mode = BAD;\r
4200 ; 806  :                     break;\r
4201 \r
4202   00614 e9 b8 0c 00 00   jmp     $LN786@inflate\r
4203 $LN338@inflate:\r
4204 \r
4205 ; 807  :                 }\r
4206 ; 808  :                 INITBITS();\r
4207 \r
4208   00619 33 db            xor     ebx, ebx\r
4209   0061b 33 f6            xor     esi, esi\r
4210 $LN336@inflate:\r
4211 \r
4212 ; 809  :             }\r
4213 ; 810  :             if (state->head != Z_NULL) {\r
4214 \r
4215   0061d 8b 47 20         mov     eax, DWORD PTR [edi+32]\r
4216   00620 85 c0            test    eax, eax\r
4217   00622 74 16            je      SHORT $LN335@inflate\r
4218 \r
4219 ; 811  :                 state->head->hcrc = (int)((state->flags >> 9) & 1);\r
4220 \r
4221   00624 8b 4f 10         mov     ecx, DWORD PTR [edi+16]\r
4222   00627 c1 f9 09         sar     ecx, 9\r
4223   0062a 83 e1 01         and     ecx, 1\r
4224   0062d 89 48 2c         mov     DWORD PTR [eax+44], ecx\r
4225 \r
4226 ; 812  :                 state->head->done = 1;\r
4227 \r
4228   00630 8b 57 20         mov     edx, DWORD PTR [edi+32]\r
4229   00633 c7 42 30 01 00\r
4230         00 00            mov     DWORD PTR [edx+48], 1\r
4231 $LN335@inflate:\r
4232 \r
4233 ; 813  :             }\r
4234 ; 814  :             strm->adler = state->check = crc32(0L, Z_NULL, 0);\r
4235 \r
4236   0063a 6a 00            push    0\r
4237   0063c 6a 00            push    0\r
4238   0063e 6a 00            push    0\r
4239   00640 e8 00 00 00 00   call    _crc32@12\r
4240   00645 8b 4d 08         mov     ecx, DWORD PTR _strm$[ebp]\r
4241 \r
4242 ; 815  :             state->mode = TYPE;\r
4243 ; 816  :             break;\r
4244 \r
4245   00648 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
4246   0064b 89 47 18         mov     DWORD PTR [edi+24], eax\r
4247   0064e 89 41 30         mov     DWORD PTR [ecx+48], eax\r
4248   00651 c7 07 0b 00 00\r
4249         00               mov     DWORD PTR [edi], 11    ; 0000000bH\r
4250   00657 e9 7b 0c 00 00   jmp     $LN490@inflate\r
4251 $LN333@inflate:\r
4252 \r
4253 ; 817  : #endif\r
4254 ; 818  :         case DICTID:\r
4255 ; 819  :             NEEDBITS(32);\r
4256 \r
4257   0065c 83 fe 20         cmp     esi, 32                        ; 00000020H\r
4258   0065f 73 22            jae     SHORT $LN332@inflate\r
4259 $LL330@inflate:\r
4260   00661 83 7d fc 00      cmp     DWORD PTR _have$[ebp], 0\r
4261   00665 0f 84 ca 0c 00\r
4262         00               je      $inf_leave$80408\r
4263   0066b 0f b6 02         movzx   eax, BYTE PTR [edx]\r
4264   0066e ff 4d fc         dec     DWORD PTR _have$[ebp]\r
4265   00671 8b ce            mov     ecx, esi\r
4266   00673 d3 e0            shl     eax, cl\r
4267   00675 42               inc     edx\r
4268   00676 83 c6 08         add     esi, 8\r
4269   00679 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
4270   0067c 03 d8            add     ebx, eax\r
4271   0067e 83 fe 20         cmp     esi, 32                        ; 00000020H\r
4272   00681 72 de            jb      SHORT $LL330@inflate\r
4273 $LN332@inflate:\r
4274 \r
4275 ; 820  :             strm->adler = state->check = REVERSE(hold);\r
4276 \r
4277   00683 8b cb            mov     ecx, ebx\r
4278   00685 8b c3            mov     eax, ebx\r
4279   00687 c1 e0 10         shl     eax, 16                        ; 00000010H\r
4280   0068a 81 e1 00 ff 00\r
4281         00               and     ecx, 65280             ; 0000ff00H\r
4282   00690 03 c8            add     ecx, eax\r
4283   00692 8b c3            mov     eax, ebx\r
4284   00694 c1 e8 08         shr     eax, 8\r
4285   00697 c1 e1 08         shl     ecx, 8\r
4286   0069a 25 00 ff 00 00   and     eax, 65280             ; 0000ff00H\r
4287   0069f 03 c1            add     eax, ecx\r
4288   006a1 8b 4d 08         mov     ecx, DWORD PTR _strm$[ebp]\r
4289   006a4 c1 eb 18         shr     ebx, 24                        ; 00000018H\r
4290   006a7 03 c3            add     eax, ebx\r
4291   006a9 89 47 18         mov     DWORD PTR [edi+24], eax\r
4292   006ac 89 41 30         mov     DWORD PTR [ecx+48], eax\r
4293 \r
4294 ; 821  :             INITBITS();\r
4295 \r
4296   006af 33 db            xor     ebx, ebx\r
4297   006b1 33 f6            xor     esi, esi\r
4298 \r
4299 ; 822  :             state->mode = DICT;\r
4300 \r
4301   006b3 c7 07 0a 00 00\r
4302         00               mov     DWORD PTR [edi], 10    ; 0000000aH\r
4303 $LN726@inflate:\r
4304 \r
4305 ; 823  :         case DICT:\r
4306 ; 824  :             if (state->havedict == 0) {\r
4307 \r
4308   006b9 83 7f 0c 00      cmp     DWORD PTR [edi+12], 0\r
4309   006bd 0f 84 2d 0c 00\r
4310         00               je      $LN579@inflate\r
4311 \r
4312 ; 827  :             }\r
4313 ; 828  :             strm->adler = state->check = adler32(0L, Z_NULL, 0);\r
4314 \r
4315   006c3 6a 00            push    0\r
4316   006c5 6a 00            push    0\r
4317   006c7 6a 00            push    0\r
4318   006c9 e8 00 00 00 00   call    _adler32@12\r
4319   006ce 8b 55 08         mov     edx, DWORD PTR _strm$[ebp]\r
4320   006d1 89 47 18         mov     DWORD PTR [edi+24], eax\r
4321   006d4 89 42 30         mov     DWORD PTR [edx+48], eax\r
4322 \r
4323 ; 829  :             state->mode = TYPE;\r
4324 \r
4325   006d7 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
4326   006da c7 07 0b 00 00\r
4327         00               mov     DWORD PTR [edi], 11    ; 0000000bH\r
4328 $LN316@inflate:\r
4329 \r
4330 ; 830  :         case TYPE:\r
4331 ; 831  :             if (flush == Z_BLOCK || flush == Z_TREES) goto inf_leave;\r
4332 \r
4333   006e0 83 7d 0c 05      cmp     DWORD PTR _flush$[ebp], 5\r
4334   006e4 0f 84 4b 0c 00\r
4335         00               je      $inf_leave$80408\r
4336   006ea 83 7d 0c 06      cmp     DWORD PTR _flush$[ebp], 6\r
4337   006ee 0f 84 41 0c 00\r
4338         00               je      $inf_leave$80408\r
4339 $LN315@inflate:\r
4340 \r
4341 ; 832  :         case TYPEDO:\r
4342 ; 833  :             if (state->last) {\r
4343 \r
4344   006f4 83 7f 04 00      cmp     DWORD PTR [edi+4], 0\r
4345   006f8 74 14            je      SHORT $LN308@inflate\r
4346 \r
4347 ; 834  :                 BYTEBITS();\r
4348 \r
4349   006fa 8b ce            mov     ecx, esi\r
4350   006fc 83 e1 07         and     ecx, 7\r
4351   006ff d3 eb            shr     ebx, cl\r
4352   00701 2b f1            sub     esi, ecx\r
4353 \r
4354 ; 835  :                 state->mode = CHECK;\r
4355 \r
4356   00703 c7 07 1a 00 00\r
4357         00               mov     DWORD PTR [edi], 26    ; 0000001aH\r
4358 \r
4359 ; 836  :                 break;\r
4360 \r
4361   00709 e9 c9 0b 00 00   jmp     $LN490@inflate\r
4362 $LN308@inflate:\r
4363 \r
4364 ; 837  :             }\r
4365 ; 838  :             NEEDBITS(3);\r
4366 \r
4367   0070e 83 fe 03         cmp     esi, 3\r
4368   00711 73 22            jae     SHORT $LN307@inflate\r
4369 $LL305@inflate:\r
4370   00713 83 7d fc 00      cmp     DWORD PTR _have$[ebp], 0\r
4371   00717 0f 84 18 0c 00\r
4372         00               je      $inf_leave$80408\r
4373   0071d 0f b6 02         movzx   eax, BYTE PTR [edx]\r
4374   00720 ff 4d fc         dec     DWORD PTR _have$[ebp]\r
4375   00723 8b ce            mov     ecx, esi\r
4376   00725 d3 e0            shl     eax, cl\r
4377   00727 42               inc     edx\r
4378   00728 83 c6 08         add     esi, 8\r
4379   0072b 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
4380   0072e 03 d8            add     ebx, eax\r
4381   00730 83 fe 03         cmp     esi, 3\r
4382   00733 72 de            jb      SHORT $LL305@inflate\r
4383 $LN307@inflate:\r
4384 \r
4385 ; 839  :             state->last = BITS(1);\r
4386 \r
4387   00735 8b cb            mov     ecx, ebx\r
4388 \r
4389 ; 840  :             DROPBITS(1);\r
4390 \r
4391   00737 d1 eb            shr     ebx, 1\r
4392 \r
4393 ; 841  :             switch (BITS(2)) {\r
4394 \r
4395   00739 8b c3            mov     eax, ebx\r
4396   0073b 83 e1 01         and     ecx, 1\r
4397   0073e 83 e0 03         and     eax, 3\r
4398   00741 89 4f 04         mov     DWORD PTR [edi+4], ecx\r
4399   00744 83 f8 03         cmp     eax, 3\r
4400   00747 77 57            ja      SHORT $LN286@inflate\r
4401   00749 ff 24 85 00 00\r
4402         00 00            jmp     DWORD PTR $LN788@inflate[eax*4]\r
4403 $LN294@inflate:\r
4404 \r
4405 ; 865  :             }\r
4406 ; 866  :             DROPBITS(2);\r
4407 \r
4408   00750 c1 eb 02         shr     ebx, 2\r
4409   00753 c7 07 0d 00 00\r
4410         00               mov     DWORD PTR [edi], 13    ; 0000000dH\r
4411   00759 83 ee 03         sub     esi, 3\r
4412 \r
4413 ; 867  :             break;\r
4414 \r
4415   0075c e9 76 0b 00 00   jmp     $LN490@inflate\r
4416 $LN293@inflate:\r
4417 \r
4418 ; 842  :             case 0:                             /* stored block */\r
4419 ; 843  :                 Tracev((stderr, "inflate:     stored block%s\n",\r
4420 ; 844  :                         state->last ? " (last)" : ""));\r
4421 ; 845  :                 state->mode = STORED;\r
4422 ; 846  :                 break;\r
4423 ; 847  :             case 1:                             /* fixed block */\r
4424 ; 848  :                 fixedtables(state);\r
4425 \r
4426   00761 8b c7            mov     eax, edi\r
4427   00763 e8 00 00 00 00   call    _fixedtables\r
4428 \r
4429 ; 849  :                 Tracev((stderr, "inflate:     fixed codes block%s\n",\r
4430 ; 850  :                         state->last ? " (last)" : ""));\r
4431 ; 851  :                 state->mode = LEN_;             /* decode codes */\r
4432 ; 852  :                 if (flush == Z_TREES) {\r
4433 \r
4434   00768 83 7d 0c 06      cmp     DWORD PTR _flush$[ebp], 6\r
4435   0076c c7 07 13 00 00\r
4436         00               mov     DWORD PTR [edi], 19    ; 00000013H\r
4437   00772 75 2c            jne     SHORT $LN286@inflate\r
4438 \r
4439 ; 853  :                     DROPBITS(2);\r
4440 \r
4441   00774 c1 eb 02         shr     ebx, 2\r
4442   00777 83 ee 03         sub     esi, 3\r
4443 \r
4444 ; 854  :                     goto inf_leave;\r
4445 \r
4446   0077a e9 b6 0b 00 00   jmp     $inf_leave$80408\r
4447 $LN288@inflate:\r
4448 \r
4449 ; 865  :             }\r
4450 ; 866  :             DROPBITS(2);\r
4451 \r
4452   0077f c1 eb 02         shr     ebx, 2\r
4453   00782 c7 07 10 00 00\r
4454         00               mov     DWORD PTR [edi], 16    ; 00000010H\r
4455   00788 83 ee 03         sub     esi, 3\r
4456 \r
4457 ; 867  :             break;\r
4458 \r
4459   0078b e9 47 0b 00 00   jmp     $LN490@inflate\r
4460 $LN287@inflate:\r
4461 \r
4462 ; 855  :                 }\r
4463 ; 856  :                 break;\r
4464 ; 857  :             case 2:                             /* dynamic block */\r
4465 ; 858  :                 Tracev((stderr, "inflate:     dynamic codes block%s\n",\r
4466 ; 859  :                         state->last ? " (last)" : ""));\r
4467 ; 860  :                 state->mode = TABLE;\r
4468 ; 861  :                 break;\r
4469 ; 862  :             case 3:\r
4470 ; 863  :                 strm->msg = (char *)"invalid block type";\r
4471 \r
4472   00790 8b 45 08         mov     eax, DWORD PTR _strm$[ebp]\r
4473   00793 c7 40 18 00 00\r
4474         00 00            mov     DWORD PTR [eax+24], OFFSET ??_C@_0BD@PJCBIDD@invalid?5block?5type?$AA@\r
4475 \r
4476 ; 864  :                 state->mode = BAD;\r
4477 \r
4478   0079a c7 07 1d 00 00\r
4479         00               mov     DWORD PTR [edi], 29    ; 0000001dH\r
4480 $LN286@inflate:\r
4481 \r
4482 ; 865  :             }\r
4483 ; 866  :             DROPBITS(2);\r
4484 \r
4485   007a0 c1 eb 02         shr     ebx, 2\r
4486   007a3 83 ee 03         sub     esi, 3\r
4487 \r
4488 ; 867  :             break;\r
4489 \r
4490   007a6 e9 2c 0b 00 00   jmp     $LN490@inflate\r
4491 $LN282@inflate:\r
4492 \r
4493 ; 868  :         case STORED:\r
4494 ; 869  :             BYTEBITS();                         /* go to byte boundary */\r
4495 \r
4496   007ab 8b ce            mov     ecx, esi\r
4497   007ad 83 e1 07         and     ecx, 7\r
4498   007b0 2b f1            sub     esi, ecx\r
4499   007b2 d3 eb            shr     ebx, cl\r
4500 \r
4501 ; 870  :             NEEDBITS(32);\r
4502 \r
4503   007b4 83 fe 20         cmp     esi, 32                        ; 00000020H\r
4504   007b7 73 29            jae     SHORT $LN278@inflate\r
4505   007b9 8d a4 24 00 00\r
4506         00 00            npad    7\r
4507 $LL276@inflate:\r
4508   007c0 83 7d fc 00      cmp     DWORD PTR _have$[ebp], 0\r
4509   007c4 0f 84 6b 0b 00\r
4510         00               je      $inf_leave$80408\r
4511   007ca 0f b6 02         movzx   eax, BYTE PTR [edx]\r
4512   007cd ff 4d fc         dec     DWORD PTR _have$[ebp]\r
4513   007d0 8b ce            mov     ecx, esi\r
4514   007d2 d3 e0            shl     eax, cl\r
4515   007d4 42               inc     edx\r
4516   007d5 83 c6 08         add     esi, 8\r
4517   007d8 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
4518   007db 03 d8            add     ebx, eax\r
4519   007dd 83 fe 20         cmp     esi, 32                        ; 00000020H\r
4520   007e0 72 de            jb      SHORT $LL276@inflate\r
4521 $LN278@inflate:\r
4522 \r
4523 ; 871  :             if ((hold & 0xffff) != ((hold >> 16) ^ 0xffff)) {\r
4524 \r
4525   007e2 8b cb            mov     ecx, ebx\r
4526   007e4 8b c3            mov     eax, ebx\r
4527   007e6 f7 d1            not     ecx\r
4528   007e8 25 ff ff 00 00   and     eax, 65535             ; 0000ffffH\r
4529   007ed c1 e9 10         shr     ecx, 16                        ; 00000010H\r
4530   007f0 3b c1            cmp     eax, ecx\r
4531   007f2 74 0f            je      SHORT $LN270@inflate\r
4532 \r
4533 ; 872  :                 strm->msg = (char *)"invalid stored block lengths";\r
4534 \r
4535   007f4 8b 45 08         mov     eax, DWORD PTR _strm$[ebp]\r
4536   007f7 c7 40 18 00 00\r
4537         00 00            mov     DWORD PTR [eax+24], OFFSET ??_C@_0BN@LGAADGOK@invalid?5stored?5block?5lengths?$AA@\r
4538 \r
4539 ; 873  :                 state->mode = BAD;\r
4540 ; 874  :                 break;\r
4541 \r
4542   007fe e9 ce 0a 00 00   jmp     $LN786@inflate\r
4543 $LN270@inflate:\r
4544 \r
4545 ; 875  :             }\r
4546 ; 876  :             state->length = (unsigned)hold & 0xffff;\r
4547 ; 877  :             Tracev((stderr, "inflate:       stored length %u\n",\r
4548 ; 878  :                     state->length));\r
4549 ; 879  :             INITBITS();\r
4550 \r
4551   00803 33 db            xor     ebx, ebx\r
4552   00805 33 f6            xor     esi, esi\r
4553 \r
4554 ; 880  :             state->mode = COPY_;\r
4555 ; 881  :             if (flush == Z_TREES) goto inf_leave;\r
4556 \r
4557   00807 83 7d 0c 06      cmp     DWORD PTR _flush$[ebp], 6\r
4558   0080b 89 47 40         mov     DWORD PTR [edi+64], eax\r
4559   0080e c7 07 0e 00 00\r
4560         00               mov     DWORD PTR [edi], 14    ; 0000000eH\r
4561   00814 0f 84 1b 0b 00\r
4562         00               je      $inf_leave$80408\r
4563 $LN266@inflate:\r
4564 \r
4565 ; 882  :         case COPY_:\r
4566 ; 883  :             state->mode = COPY;\r
4567 \r
4568   0081a c7 07 0f 00 00\r
4569         00               mov     DWORD PTR [edi], 15    ; 0000000fH\r
4570 $LN264@inflate:\r
4571 \r
4572 ; 884  :         case COPY:\r
4573 ; 885  :             copy = state->length;\r
4574 \r
4575   00820 8b 47 40         mov     eax, DWORD PTR [edi+64]\r
4576   00823 89 45 f4         mov     DWORD PTR _copy$[ebp], eax\r
4577 \r
4578 ; 886  :             if (copy) {\r
4579 \r
4580   00826 85 c0            test    eax, eax\r
4581   00828 0f 84 73 06 00\r
4582         00               je      $LN263@inflate\r
4583 \r
4584 ; 887  :                 if (copy > have) copy = have;\r
4585 \r
4586   0082e 8b 4d fc         mov     ecx, DWORD PTR _have$[ebp]\r
4587   00831 3b c1            cmp     eax, ecx\r
4588   00833 76 05            jbe     SHORT $LN262@inflate\r
4589   00835 8b c1            mov     eax, ecx\r
4590   00837 89 4d f4         mov     DWORD PTR _copy$[ebp], ecx\r
4591 $LN262@inflate:\r
4592 \r
4593 ; 888  :                 if (copy > left) copy = left;\r
4594 \r
4595   0083a 8b 4d f0         mov     ecx, DWORD PTR _left$[ebp]\r
4596   0083d 3b c1            cmp     eax, ecx\r
4597   0083f 76 05            jbe     SHORT $LN261@inflate\r
4598   00841 8b c1            mov     eax, ecx\r
4599   00843 89 45 f4         mov     DWORD PTR _copy$[ebp], eax\r
4600 $LN261@inflate:\r
4601 \r
4602 ; 889  :                 if (copy == 0) goto inf_leave;\r
4603 \r
4604   00846 85 c0            test    eax, eax\r
4605   00848 0f 84 e7 0a 00\r
4606         00               je      $inf_leave$80408\r
4607 \r
4608 ; 890  :                 zmemcpy(put, next, copy);\r
4609 \r
4610   0084e 8b 4d f4         mov     ecx, DWORD PTR _copy$[ebp]\r
4611   00851 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
4612   00854 8b 45 e8         mov     eax, DWORD PTR _put$[ebp]\r
4613   00857 51               push    ecx\r
4614   00858 52               push    edx\r
4615   00859 50               push    eax\r
4616   0085a e8 00 00 00 00   call    _memcpy\r
4617 \r
4618 ; 891  :                 have -= copy;\r
4619 \r
4620   0085f 8b 45 f4         mov     eax, DWORD PTR _copy$[ebp]\r
4621 \r
4622 ; 892  :                 next += copy;\r
4623 \r
4624   00862 01 45 f8         add     DWORD PTR _next$[ebp], eax\r
4625   00865 29 45 fc         sub     DWORD PTR _have$[ebp], eax\r
4626 \r
4627 ; 893  :                 left -= copy;\r
4628 \r
4629   00868 29 45 f0         sub     DWORD PTR _left$[ebp], eax\r
4630 \r
4631 ; 894  :                 put += copy;\r
4632 \r
4633   0086b 01 45 e8         add     DWORD PTR _put$[ebp], eax\r
4634 \r
4635 ; 895  :                 state->length -= copy;\r
4636 ; 896  :                 break;\r
4637 \r
4638   0086e 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
4639   00871 83 c4 0c         add     esp, 12                        ; 0000000cH\r
4640   00874 29 47 40         sub     DWORD PTR [edi+64], eax\r
4641   00877 e9 5b 0a 00 00   jmp     $LN490@inflate\r
4642 $LN258@inflate:\r
4643 \r
4644 ; 897  :             }\r
4645 ; 898  :             Tracev((stderr, "inflate:       stored end\n"));\r
4646 ; 899  :             state->mode = TYPE;\r
4647 ; 900  :             break;\r
4648 ; 901  :         case TABLE:\r
4649 ; 902  :             NEEDBITS(14);\r
4650 \r
4651   0087c 83 fe 0e         cmp     esi, 14                        ; 0000000eH\r
4652   0087f 73 22            jae     SHORT $LN257@inflate\r
4653 $LL255@inflate:\r
4654   00881 83 7d fc 00      cmp     DWORD PTR _have$[ebp], 0\r
4655   00885 0f 84 aa 0a 00\r
4656         00               je      $inf_leave$80408\r
4657   0088b 0f b6 02         movzx   eax, BYTE PTR [edx]\r
4658   0088e ff 4d fc         dec     DWORD PTR _have$[ebp]\r
4659   00891 8b ce            mov     ecx, esi\r
4660   00893 d3 e0            shl     eax, cl\r
4661   00895 42               inc     edx\r
4662   00896 83 c6 08         add     esi, 8\r
4663   00899 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
4664   0089c 03 d8            add     ebx, eax\r
4665   0089e 83 fe 0e         cmp     esi, 14                        ; 0000000eH\r
4666   008a1 72 de            jb      SHORT $LL255@inflate\r
4667 $LN257@inflate:\r
4668 \r
4669 ; 903  :             state->nlen = BITS(5) + 257;\r
4670 \r
4671   008a3 8b cb            mov     ecx, ebx\r
4672   008a5 83 e1 1f         and     ecx, 31                        ; 0000001fH\r
4673 \r
4674 ; 904  :             DROPBITS(5);\r
4675 \r
4676   008a8 c1 eb 05         shr     ebx, 5\r
4677   008ab 81 c1 01 01 00\r
4678         00               add     ecx, 257               ; 00000101H\r
4679 \r
4680 ; 905  :             state->ndist = BITS(5) + 1;\r
4681 \r
4682   008b1 8b c3            mov     eax, ebx\r
4683   008b3 89 4f 60         mov     DWORD PTR [edi+96], ecx\r
4684 \r
4685 ; 906  :             DROPBITS(5);\r
4686 \r
4687   008b6 c1 eb 05         shr     ebx, 5\r
4688 \r
4689 ; 907  :             state->ncode = BITS(4) + 4;\r
4690 \r
4691   008b9 8b cb            mov     ecx, ebx\r
4692   008bb 83 e0 1f         and     eax, 31                        ; 0000001fH\r
4693   008be 83 e1 0f         and     ecx, 15                        ; 0000000fH\r
4694   008c1 40               inc     eax\r
4695   008c2 83 c1 04         add     ecx, 4\r
4696 \r
4697 ; 908  :             DROPBITS(4);\r
4698 \r
4699   008c5 c1 eb 04         shr     ebx, 4\r
4700   008c8 83 ee 0e         sub     esi, 14                        ; 0000000eH\r
4701 \r
4702 ; 909  : #ifndef PKZIP_BUG_WORKAROUND\r
4703 ; 910  :             if (state->nlen > 286 || state->ndist > 30) {\r
4704 \r
4705   008cb 81 7f 60 1e 01\r
4706         00 00            cmp     DWORD PTR [edi+96], 286        ; 0000011eH\r
4707   008d2 89 47 64         mov     DWORD PTR [edi+100], eax\r
4708   008d5 89 4f 5c         mov     DWORD PTR [edi+92], ecx\r
4709   008d8 0f 87 e5 00 00\r
4710         00               ja      $LN239@inflate\r
4711   008de 83 f8 1e         cmp     eax, 30                        ; 0000001eH\r
4712   008e1 0f 87 dc 00 00\r
4713         00               ja      $LN239@inflate\r
4714 \r
4715 ; 914  :             }\r
4716 ; 915  : #endif\r
4717 ; 916  :             Tracev((stderr, "inflate:       table sizes ok\n"));\r
4718 ; 917  :             state->have = 0;\r
4719 \r
4720   008e7 c7 47 68 00 00\r
4721         00 00            mov     DWORD PTR [edi+104], 0\r
4722 \r
4723 ; 918  :             state->mode = LENLENS;\r
4724 \r
4725   008ee c7 07 11 00 00\r
4726         00               mov     DWORD PTR [edi], 17    ; 00000011H\r
4727 $LN730@inflate:\r
4728 \r
4729 ; 919  :         case LENLENS:\r
4730 ; 920  :             while (state->have < state->ncode) {\r
4731 \r
4732   008f4 8b 4f 68         mov     ecx, DWORD PTR [edi+104]\r
4733   008f7 3b 4f 5c         cmp     ecx, DWORD PTR [edi+92]\r
4734   008fa 73 51            jae     SHORT $LN527@inflate\r
4735   008fc 8d 64 24 00      npad    4\r
4736 $LL237@inflate:\r
4737 \r
4738 ; 921  :                 NEEDBITS(3);\r
4739 \r
4740   00900 83 fe 03         cmp     esi, 3\r
4741   00903 73 22            jae     SHORT $LN234@inflate\r
4742 $LL232@inflate:\r
4743   00905 83 7d fc 00      cmp     DWORD PTR _have$[ebp], 0\r
4744   00909 0f 84 26 0a 00\r
4745         00               je      $inf_leave$80408\r
4746   0090f 0f b6 02         movzx   eax, BYTE PTR [edx]\r
4747   00912 ff 4d fc         dec     DWORD PTR _have$[ebp]\r
4748   00915 8b ce            mov     ecx, esi\r
4749   00917 d3 e0            shl     eax, cl\r
4750   00919 42               inc     edx\r
4751   0091a 83 c6 08         add     esi, 8\r
4752   0091d 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
4753   00920 03 d8            add     ebx, eax\r
4754   00922 83 fe 03         cmp     esi, 3\r
4755   00925 72 de            jb      SHORT $LL232@inflate\r
4756 $LN234@inflate:\r
4757 \r
4758 ; 922  :                 state->lens[order[state->have++]] = (unsigned short)BITS(3);\r
4759 \r
4760   00927 8b 47 68         mov     eax, DWORD PTR [edi+104]\r
4761   0092a 0f b7 04 45 00\r
4762         00 00 00         movzx   eax, WORD PTR ?order@?1??inflate@@9@9[eax*2]\r
4763   00932 8b cb            mov     ecx, ebx\r
4764   00934 83 e1 07         and     ecx, 7\r
4765   00937 66 89 4c 47 70   mov     WORD PTR [edi+eax*2+112], cx\r
4766   0093c ff 47 68         inc     DWORD PTR [edi+104]\r
4767   0093f 8b 4f 68         mov     ecx, DWORD PTR [edi+104]\r
4768 \r
4769 ; 923  :                 DROPBITS(3);\r
4770 \r
4771   00942 c1 eb 03         shr     ebx, 3\r
4772   00945 83 ee 03         sub     esi, 3\r
4773   00948 3b 4f 5c         cmp     ecx, DWORD PTR [edi+92]\r
4774   0094b 72 b3            jb      SHORT $LL237@inflate\r
4775 $LN527@inflate:\r
4776 \r
4777 ; 924  :             }\r
4778 ; 925  :             while (state->have < 19)\r
4779 \r
4780   0094d b8 13 00 00 00   mov     eax, 19                        ; 00000013H\r
4781   00952 39 47 68         cmp     DWORD PTR [edi+104], eax\r
4782   00955 73 23            jae     SHORT $LN222@inflate\r
4783   00957 eb 07 8d a4 24\r
4784         00 00 00 00      npad    9\r
4785 $LL223@inflate:\r
4786 \r
4787 ; 926  :                 state->lens[order[state->have++]] = 0;\r
4788 \r
4789   00960 8b 57 68         mov     edx, DWORD PTR [edi+104]\r
4790   00963 0f b7 0c 55 00\r
4791         00 00 00         movzx   ecx, WORD PTR ?order@?1??inflate@@9@9[edx*2]\r
4792   0096b 33 d2            xor     edx, edx\r
4793   0096d 66 89 54 4f 70   mov     WORD PTR [edi+ecx*2+112], dx\r
4794   00972 ff 47 68         inc     DWORD PTR [edi+104]\r
4795   00975 39 47 68         cmp     DWORD PTR [edi+104], eax\r
4796   00978 72 e6            jb      SHORT $LL223@inflate\r
4797 $LN222@inflate:\r
4798 \r
4799 ; 927  :             state->next = state->codes;\r
4800 \r
4801   0097a 8d 87 30 05 00\r
4802         00               lea     eax, DWORD PTR [edi+1328]\r
4803   00980 8d 4f 6c         lea     ecx, DWORD PTR [edi+108]\r
4804   00983 89 01            mov     DWORD PTR [ecx], eax\r
4805 \r
4806 ; 928  :             state->lencode = (code const FAR *)(state->next);\r
4807 \r
4808   00985 89 47 4c         mov     DWORD PTR [edi+76], eax\r
4809 \r
4810 ; 929  :             state->lenbits = 7;\r
4811 ; 930  :             ret = inflate_table(CODES, state->lens, 19, &(state->next),\r
4812 ; 931  :                                 &(state->lenbits), state->work);\r
4813 \r
4814   00988 8d 97 f0 02 00\r
4815         00               lea     edx, DWORD PTR [edi+752]\r
4816   0098e 52               push    edx\r
4817   0098f 8d 47 54         lea     eax, DWORD PTR [edi+84]\r
4818   00992 50               push    eax\r
4819   00993 51               push    ecx\r
4820   00994 c7 00 07 00 00\r
4821         00               mov     DWORD PTR [eax], 7\r
4822   0099a 6a 13            push    19                     ; 00000013H\r
4823   0099c 8d 47 70         lea     eax, DWORD PTR [edi+112]\r
4824   0099f 50               push    eax\r
4825   009a0 6a 00            push    0\r
4826   009a2 e8 00 00 00 00   call    _inflate_table\r
4827 \r
4828 ; 934  :                 state->mode = BAD;\r
4829 ; 935  :                 break;\r
4830 \r
4831   009a7 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
4832   009aa 83 c4 18         add     esp, 24                        ; 00000018H\r
4833   009ad 89 45 d8         mov     DWORD PTR _ret$[ebp], eax\r
4834   009b0 85 c0            test    eax, eax\r
4835   009b2 74 1e            je      SHORT $LN221@inflate\r
4836 \r
4837 ; 932  :             if (ret) {\r
4838 ; 933  :                 strm->msg = (char *)"invalid code lengths set";\r
4839 \r
4840   009b4 8b 4d 08         mov     ecx, DWORD PTR _strm$[ebp]\r
4841   009b7 c7 41 18 00 00\r
4842         00 00            mov     DWORD PTR [ecx+24], OFFSET ??_C@_0BJ@HDEPPGOH@invalid?5code?5lengths?5set?$AA@\r
4843 \r
4844 ; 934  :                 state->mode = BAD;\r
4845 ; 935  :                 break;\r
4846 \r
4847   009be e9 0e 09 00 00   jmp     $LN786@inflate\r
4848 $LN239@inflate:\r
4849 \r
4850 ; 911  :                 strm->msg = (char *)"too many length or distance symbols";\r
4851 \r
4852   009c3 8b 45 08         mov     eax, DWORD PTR _strm$[ebp]\r
4853   009c6 c7 40 18 00 00\r
4854         00 00            mov     DWORD PTR [eax+24], OFFSET ??_C@_0CE@GMIGFPBB@too?5many?5length?5or?5distance?5symb@\r
4855 \r
4856 ; 912  :                 state->mode = BAD;\r
4857 ; 913  :                 break;\r
4858 \r
4859   009cd e9 ff 08 00 00   jmp     $LN786@inflate\r
4860 $LN221@inflate:\r
4861 \r
4862 ; 936  :             }\r
4863 ; 937  :             Tracev((stderr, "inflate:       code lengths ok\n"));\r
4864 ; 938  :             state->have = 0;\r
4865 \r
4866   009d2 c7 47 68 00 00\r
4867         00 00            mov     DWORD PTR [edi+104], 0\r
4868 \r
4869 ; 939  :             state->mode = CODELENS;\r
4870 \r
4871   009d9 c7 07 12 00 00\r
4872         00               mov     DWORD PTR [edi], 18    ; 00000012H\r
4873 $LN528@inflate:\r
4874 \r
4875 ; 940  :         case CODELENS:\r
4876 ; 941  :             while (state->have < state->nlen + state->ndist) {\r
4877 \r
4878   009df 8b 47 64         mov     eax, DWORD PTR [edi+100]\r
4879   009e2 03 47 60         add     eax, DWORD PTR [edi+96]\r
4880   009e5 39 47 68         cmp     DWORD PTR [edi+104], eax\r
4881   009e8 0f 83 e5 01 00\r
4882         00               jae     $LN218@inflate\r
4883   009ee 8b ff            npad    2\r
4884 $LL219@inflate:\r
4885 \r
4886 ; 942  :                 for (;;) {\r
4887 ; 943  :                     here = state->lencode[BITS(state->lenbits)];\r
4888 \r
4889   009f0 8b 4f 54         mov     ecx, DWORD PTR [edi+84]\r
4890   009f3 b8 01 00 00 00   mov     eax, 1\r
4891   009f8 d3 e0            shl     eax, cl\r
4892   009fa 8b 4f 4c         mov     ecx, DWORD PTR [edi+76]\r
4893   009fd 48               dec     eax\r
4894   009fe 23 c3            and     eax, ebx\r
4895   00a00 8b 0c 81         mov     ecx, DWORD PTR [ecx+eax*4]\r
4896 \r
4897 ; 944  :                     if ((unsigned)(here.bits) <= bits) break;\r
4898 \r
4899   00a03 8b c1            mov     eax, ecx\r
4900   00a05 c1 e8 08         shr     eax, 8\r
4901   00a08 0f b6 c0         movzx   eax, al\r
4902   00a0b 89 4d f4         mov     DWORD PTR _here$[ebp], ecx\r
4903   00a0e 3b c6            cmp     eax, esi\r
4904   00a10 76 3f            jbe     SHORT $LN555@inflate\r
4905 $LL217@inflate:\r
4906 \r
4907 ; 945  :                     PULLBYTE();\r
4908 \r
4909   00a12 83 7d fc 00      cmp     DWORD PTR _have$[ebp], 0\r
4910   00a16 0f 84 19 09 00\r
4911         00               je      $inf_leave$80408\r
4912   00a1c 0f b6 02         movzx   eax, BYTE PTR [edx]\r
4913   00a1f ff 4d fc         dec     DWORD PTR _have$[ebp]\r
4914   00a22 8b ce            mov     ecx, esi\r
4915   00a24 d3 e0            shl     eax, cl\r
4916   00a26 8b 4f 54         mov     ecx, DWORD PTR [edi+84]\r
4917   00a29 42               inc     edx\r
4918   00a2a 83 c6 08         add     esi, 8\r
4919   00a2d 03 d8            add     ebx, eax\r
4920   00a2f b8 01 00 00 00   mov     eax, 1\r
4921   00a34 d3 e0            shl     eax, cl\r
4922   00a36 8b 4f 4c         mov     ecx, DWORD PTR [edi+76]\r
4923   00a39 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
4924   00a3c 48               dec     eax\r
4925   00a3d 23 c3            and     eax, ebx\r
4926   00a3f 8b 0c 81         mov     ecx, DWORD PTR [ecx+eax*4]\r
4927   00a42 8b c1            mov     eax, ecx\r
4928   00a44 c1 e8 08         shr     eax, 8\r
4929   00a47 0f b6 c0         movzx   eax, al\r
4930   00a4a 89 4d f4         mov     DWORD PTR _here$[ebp], ecx\r
4931   00a4d 3b c6            cmp     eax, esi\r
4932   00a4f 77 c1            ja      SHORT $LL217@inflate\r
4933 $LN555@inflate:\r
4934 \r
4935 ; 946  :                 }\r
4936 ; 947  :                 if (here.val < 16) {\r
4937 \r
4938   00a51 8b c1            mov     eax, ecx\r
4939   00a53 c1 e8 10         shr     eax, 16                        ; 00000010H\r
4940   00a56 89 45 d4         mov     DWORD PTR tv2303[ebp], eax\r
4941   00a59 66 83 f8 10      cmp     ax, 16                 ; 00000010H\r
4942   00a5d 73 1a            jae     SHORT $LN782@inflate\r
4943 \r
4944 ; 948  :                     DROPBITS(here.bits);\r
4945 \r
4946   00a5f c1 e9 08         shr     ecx, 8\r
4947   00a62 0f b6 c9         movzx   ecx, cl\r
4948   00a65 d3 eb            shr     ebx, cl\r
4949   00a67 2b f1            sub     esi, ecx\r
4950 \r
4951 ; 949  :                     state->lens[state->have++] = here.val;\r
4952 \r
4953   00a69 8b 4f 68         mov     ecx, DWORD PTR [edi+104]\r
4954   00a6c 66 89 44 4f 70   mov     WORD PTR [edi+ecx*2+112], ax\r
4955   00a71 ff 47 68         inc     DWORD PTR [edi+104]\r
4956 \r
4957 ; 950  :                 }\r
4958 ; 951  :                 else {\r
4959 \r
4960   00a74 e9 4b 01 00 00   jmp     $LN733@inflate\r
4961 $LN782@inflate:\r
4962 \r
4963 ; 952  :                     if (here.val == 16) {\r
4964 \r
4965   00a79 75 6f            jne     SHORT $LN205@inflate\r
4966 \r
4967 ; 953  :                         NEEDBITS(here.bits + 2);\r
4968 \r
4969   00a7b 8b c1            mov     eax, ecx\r
4970   00a7d c1 e8 08         shr     eax, 8\r
4971   00a80 0f b6 c0         movzx   eax, al\r
4972   00a83 83 c0 02         add     eax, 2\r
4973   00a86 3b f0            cmp     esi, eax\r
4974   00a88 73 30            jae     SHORT $LN203@inflate\r
4975   00a8a 8d 9b 00 00 00\r
4976         00               npad    6\r
4977 $LL201@inflate:\r
4978   00a90 83 7d fc 00      cmp     DWORD PTR _have$[ebp], 0\r
4979   00a94 0f 84 9b 08 00\r
4980         00               je      $inf_leave$80408\r
4981   00a9a 0f b6 02         movzx   eax, BYTE PTR [edx]\r
4982   00a9d ff 4d fc         dec     DWORD PTR _have$[ebp]\r
4983   00aa0 8b ce            mov     ecx, esi\r
4984   00aa2 d3 e0            shl     eax, cl\r
4985   00aa4 8b 4d f4         mov     ecx, DWORD PTR _here$[ebp]\r
4986   00aa7 42               inc     edx\r
4987   00aa8 83 c6 08         add     esi, 8\r
4988   00aab 03 d8            add     ebx, eax\r
4989   00aad 0f b6 c5         movzx   eax, ch\r
4990   00ab0 83 c0 02         add     eax, 2\r
4991   00ab3 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
4992   00ab6 3b f0            cmp     esi, eax\r
4993   00ab8 72 d6            jb      SHORT $LL201@inflate\r
4994 $LN203@inflate:\r
4995 \r
4996 ; 954  :                         DROPBITS(here.bits);\r
4997 ; 955  :                         if (state->have == 0) {\r
4998 \r
4999   00aba 8b 47 68         mov     eax, DWORD PTR [edi+104]\r
5000   00abd 0f b6 cd         movzx   ecx, ch\r
5001   00ac0 d3 eb            shr     ebx, cl\r
5002   00ac2 2b f1            sub     esi, ecx\r
5003   00ac4 85 c0            test    eax, eax\r
5004   00ac6 0f 84 29 01 00\r
5005         00               je      $LN560@inflate\r
5006 \r
5007 ; 959  :                         }\r
5008 ; 960  :                         len = state->lens[state->have - 1];\r
5009 \r
5010   00acc 0f b7 4c 47 6e   movzx   ecx, WORD PTR [edi+eax*2+110]\r
5011 \r
5012 ; 961  :                         copy = 3 + BITS(2);\r
5013 \r
5014   00ad1 8b c3            mov     eax, ebx\r
5015   00ad3 83 e0 03         and     eax, 3\r
5016   00ad6 83 c0 03         add     eax, 3\r
5017 \r
5018 ; 962  :                         DROPBITS(2);\r
5019 \r
5020   00ad9 c1 eb 02         shr     ebx, 2\r
5021   00adc 89 4d e4         mov     DWORD PTR _len$[ebp], ecx\r
5022   00adf 89 45 f4         mov     DWORD PTR _copy$[ebp], eax\r
5023   00ae2 83 ee 02         sub     esi, 2\r
5024 \r
5025 ; 963  :                     }\r
5026 ; 964  :                     else if (here.val == 17) {\r
5027 \r
5028   00ae5 e9 a5 00 00 00   jmp     $LN156@inflate\r
5029 $LN205@inflate:\r
5030   00aea 66 83 7d f6 11   cmp     WORD PTR _here$[ebp+2], 17 ; 00000011H\r
5031 \r
5032 ; 965  :                         NEEDBITS(here.bits + 3);\r
5033 \r
5034   00aef 0f b6 cd         movzx   ecx, ch\r
5035   00af2 89 4d dc         mov     DWORD PTR tv2314[ebp], ecx\r
5036   00af5 75 47            jne     SHORT $LN170@inflate\r
5037   00af7 8d 41 03         lea     eax, DWORD PTR [ecx+3]\r
5038   00afa 3b f0            cmp     esi, eax\r
5039   00afc 73 29            jae     SHORT $LN185@inflate\r
5040   00afe 8b ff            npad    2\r
5041 $LL183@inflate:\r
5042   00b00 83 7d fc 00      cmp     DWORD PTR _have$[ebp], 0\r
5043   00b04 0f 84 2b 08 00\r
5044         00               je      $inf_leave$80408\r
5045   00b0a 0f b6 02         movzx   eax, BYTE PTR [edx]\r
5046   00b0d ff 4d fc         dec     DWORD PTR _have$[ebp]\r
5047   00b10 8b ce            mov     ecx, esi\r
5048   00b12 d3 e0            shl     eax, cl\r
5049   00b14 8b 4d dc         mov     ecx, DWORD PTR tv2314[ebp]\r
5050   00b17 42               inc     edx\r
5051   00b18 83 c6 08         add     esi, 8\r
5052   00b1b 03 d8            add     ebx, eax\r
5053   00b1d 8d 41 03         lea     eax, DWORD PTR [ecx+3]\r
5054   00b20 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
5055   00b23 3b f0            cmp     esi, eax\r
5056   00b25 72 d9            jb      SHORT $LL183@inflate\r
5057 $LN185@inflate:\r
5058 \r
5059 ; 966  :                         DROPBITS(here.bits);\r
5060 \r
5061   00b27 d3 eb            shr     ebx, cl\r
5062 \r
5063 ; 967  :                         len = 0;\r
5064 ; 968  :                         copy = 3 + BITS(3);\r
5065 \r
5066   00b29 8b c3            mov     eax, ebx\r
5067   00b2b 83 e0 07         and     eax, 7\r
5068   00b2e 83 c0 03         add     eax, 3\r
5069   00b31 89 45 f4         mov     DWORD PTR _copy$[ebp], eax\r
5070 \r
5071 ; 969  :                         DROPBITS(3);\r
5072 \r
5073   00b34 c1 eb 03         shr     ebx, 3\r
5074   00b37 b8 fd ff ff ff   mov     eax, -3                        ; fffffffdH\r
5075 \r
5076 ; 970  :                     }\r
5077 ; 971  :                     else {\r
5078 \r
5079   00b3c eb 43            jmp     SHORT $LN783@inflate\r
5080 $LN170@inflate:\r
5081 \r
5082 ; 972  :                         NEEDBITS(here.bits + 7);\r
5083 \r
5084   00b3e 8d 41 07         lea     eax, DWORD PTR [ecx+7]\r
5085   00b41 3b f0            cmp     esi, eax\r
5086   00b43 73 27            jae     SHORT $LN169@inflate\r
5087 $LL167@inflate:\r
5088   00b45 83 7d fc 00      cmp     DWORD PTR _have$[ebp], 0\r
5089   00b49 0f 84 e6 07 00\r
5090         00               je      $inf_leave$80408\r
5091   00b4f 0f b6 02         movzx   eax, BYTE PTR [edx]\r
5092   00b52 ff 4d fc         dec     DWORD PTR _have$[ebp]\r
5093   00b55 8b ce            mov     ecx, esi\r
5094   00b57 d3 e0            shl     eax, cl\r
5095   00b59 8b 4d dc         mov     ecx, DWORD PTR tv2314[ebp]\r
5096   00b5c 42               inc     edx\r
5097   00b5d 83 c6 08         add     esi, 8\r
5098   00b60 03 d8            add     ebx, eax\r
5099   00b62 8d 41 07         lea     eax, DWORD PTR [ecx+7]\r
5100   00b65 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
5101   00b68 3b f0            cmp     esi, eax\r
5102   00b6a 72 d9            jb      SHORT $LL167@inflate\r
5103 $LN169@inflate:\r
5104 \r
5105 ; 973  :                         DROPBITS(here.bits);\r
5106 \r
5107   00b6c d3 eb            shr     ebx, cl\r
5108 \r
5109 ; 974  :                         len = 0;\r
5110 ; 975  :                         copy = 11 + BITS(7);\r
5111 \r
5112   00b6e 8b c3            mov     eax, ebx\r
5113   00b70 83 e0 7f         and     eax, 127               ; 0000007fH\r
5114   00b73 83 c0 0b         add     eax, 11                        ; 0000000bH\r
5115   00b76 89 45 f4         mov     DWORD PTR _copy$[ebp], eax\r
5116 \r
5117 ; 976  :                         DROPBITS(7);\r
5118 \r
5119   00b79 c1 eb 07         shr     ebx, 7\r
5120   00b7c b8 f9 ff ff ff   mov     eax, -7                        ; fffffff9H\r
5121 $LN783@inflate:\r
5122   00b81 2b c1            sub     eax, ecx\r
5123   00b83 03 f0            add     esi, eax\r
5124   00b85 8b 45 f4         mov     eax, DWORD PTR _copy$[ebp]\r
5125   00b88 c7 45 e4 00 00\r
5126         00 00            mov     DWORD PTR _len$[ebp], 0\r
5127 $LN156@inflate:\r
5128 \r
5129 ; 977  :                     }\r
5130 ; 978  :                     if (state->have + copy > state->nlen + state->ndist) {\r
5131 \r
5132   00b8f 8b 4f 68         mov     ecx, DWORD PTR [edi+104]\r
5133   00b92 03 c8            add     ecx, eax\r
5134   00b94 8b 47 64         mov     eax, DWORD PTR [edi+100]\r
5135   00b97 03 47 60         add     eax, DWORD PTR [edi+96]\r
5136   00b9a 3b c8            cmp     ecx, eax\r
5137   00b9c 77 66            ja      SHORT $LN561@inflate\r
5138 \r
5139 ; 980  :                         state->mode = BAD;\r
5140 ; 981  :                         break;\r
5141 ; 982  :                     }\r
5142 ; 983  :                     while (copy--)\r
5143 \r
5144   00b9e 83 7d f4 00      cmp     DWORD PTR _copy$[ebp], 0\r
5145   00ba2 74 20            je      SHORT $LN733@inflate\r
5146   00ba4 8b 45 e4         mov     eax, DWORD PTR _len$[ebp]\r
5147   00ba7 eb 07 8d a4 24\r
5148         00 00 00 00      npad    9\r
5149 $LL154@inflate:\r
5150 \r
5151 ; 984  :                         state->lens[state->have++] = (unsigned short)len;\r
5152 \r
5153   00bb0 8b 4f 68         mov     ecx, DWORD PTR [edi+104]\r
5154   00bb3 ff 4d f4         dec     DWORD PTR _copy$[ebp]\r
5155   00bb6 66 89 44 4f 70   mov     WORD PTR [edi+ecx*2+112], ax\r
5156   00bbb ff 47 68         inc     DWORD PTR [edi+104]\r
5157   00bbe 83 7d f4 00      cmp     DWORD PTR _copy$[ebp], 0\r
5158   00bc2 75 ec            jne     SHORT $LL154@inflate\r
5159 $LN733@inflate:\r
5160 \r
5161 ; 940  :         case CODELENS:\r
5162 ; 941  :             while (state->have < state->nlen + state->ndist) {\r
5163 \r
5164   00bc4 8b 47 64         mov     eax, DWORD PTR [edi+100]\r
5165   00bc7 03 47 60         add     eax, DWORD PTR [edi+96]\r
5166   00bca 39 47 68         cmp     DWORD PTR [edi+104], eax\r
5167   00bcd 0f 82 1d fe ff\r
5168         ff               jb      $LL219@inflate\r
5169 $LN218@inflate:\r
5170 \r
5171 ; 985  :                 }\r
5172 ; 986  :             }\r
5173 ; 987  : \r
5174 ; 988  :             /* handle error breaks in while */\r
5175 ; 989  :             if (state->mode == BAD) break;\r
5176 \r
5177   00bd3 83 3f 1d         cmp     DWORD PTR [edi], 29    ; 0000001dH\r
5178   00bd6 0f 84 fb 06 00\r
5179         00               je      $LN490@inflate\r
5180 \r
5181 ; 990  : \r
5182 ; 991  :             /* check for end-of-block code (better have one) */\r
5183 ; 992  :             if (state->lens[256] == 0) {\r
5184 \r
5185   00bdc 66 83 bf 70 02\r
5186         00 00 00         cmp     WORD PTR [edi+624], 0\r
5187   00be4 75 2d            jne     SHORT $LN151@inflate\r
5188 \r
5189 ; 993  :                 strm->msg = (char *)"invalid code -- missing end-of-block";\r
5190 \r
5191   00be6 8b 4d 08         mov     ecx, DWORD PTR _strm$[ebp]\r
5192   00be9 c7 41 18 00 00\r
5193         00 00            mov     DWORD PTR [ecx+24], OFFSET ??_C@_0CF@DGDMADCD@invalid?5code?5?9?9?5missing?5end?9of?9b@\r
5194 \r
5195 ; 994  :                 state->mode = BAD;\r
5196 ; 995  :                 break;\r
5197 \r
5198   00bf0 e9 dc 06 00 00   jmp     $LN786@inflate\r
5199 $LN560@inflate:\r
5200 \r
5201 ; 956  :                             strm->msg = (char *)"invalid bit length repeat";\r
5202 \r
5203   00bf5 8b 4d 08         mov     ecx, DWORD PTR _strm$[ebp]\r
5204   00bf8 c7 41 18 00 00\r
5205         00 00            mov     DWORD PTR [ecx+24], OFFSET ??_C@_0BK@BMMPFBBH@invalid?5bit?5length?5repeat?$AA@\r
5206 \r
5207 ; 957  :                             state->mode = BAD;\r
5208 ; 958  :                             break;\r
5209 \r
5210   00bff e9 cd 06 00 00   jmp     $LN786@inflate\r
5211 $LN561@inflate:\r
5212 \r
5213 ; 979  :                         strm->msg = (char *)"invalid bit length repeat";\r
5214 \r
5215   00c04 8b 45 08         mov     eax, DWORD PTR _strm$[ebp]\r
5216   00c07 c7 40 18 00 00\r
5217         00 00            mov     DWORD PTR [eax+24], OFFSET ??_C@_0BK@BMMPFBBH@invalid?5bit?5length?5repeat?$AA@\r
5218 \r
5219 ; 985  :                 }\r
5220 ; 986  :             }\r
5221 ; 987  : \r
5222 ; 988  :             /* handle error breaks in while */\r
5223 ; 989  :             if (state->mode == BAD) break;\r
5224 \r
5225   00c0e e9 be 06 00 00   jmp     $LN786@inflate\r
5226 $LN151@inflate:\r
5227 \r
5228 ; 996  :             }\r
5229 ; 997  : \r
5230 ; 998  :             /* build code tables -- note: do not change the lenbits or distbits\r
5231 ; 999  :                values here (9 and 6) without reading the comments in inftrees.h\r
5232 ; 1000 :                concerning the ENOUGH constants, which depend on those values */\r
5233 ; 1001 :             state->next = state->codes;\r
5234 \r
5235   00c13 8d 87 30 05 00\r
5236         00               lea     eax, DWORD PTR [edi+1328]\r
5237   00c19 8d 4f 6c         lea     ecx, DWORD PTR [edi+108]\r
5238   00c1c 89 01            mov     DWORD PTR [ecx], eax\r
5239 \r
5240 ; 1002 :             state->lencode = (code const FAR *)(state->next);\r
5241 \r
5242   00c1e 89 47 4c         mov     DWORD PTR [edi+76], eax\r
5243 \r
5244 ; 1003 :             state->lenbits = 9;\r
5245 ; 1004 :             ret = inflate_table(LENS, state->lens, state->nlen, &(state->next),\r
5246 ; 1005 :                                 &(state->lenbits), state->work);\r
5247 \r
5248   00c21 8d 97 f0 02 00\r
5249         00               lea     edx, DWORD PTR [edi+752]\r
5250   00c27 52               push    edx\r
5251   00c28 8b 57 60         mov     edx, DWORD PTR [edi+96]\r
5252   00c2b 8d 47 54         lea     eax, DWORD PTR [edi+84]\r
5253   00c2e 50               push    eax\r
5254   00c2f 51               push    ecx\r
5255   00c30 c7 00 09 00 00\r
5256         00               mov     DWORD PTR [eax], 9\r
5257   00c36 52               push    edx\r
5258   00c37 8d 47 70         lea     eax, DWORD PTR [edi+112]\r
5259   00c3a 50               push    eax\r
5260   00c3b 6a 01            push    1\r
5261   00c3d e8 00 00 00 00   call    _inflate_table\r
5262   00c42 83 c4 18         add     esp, 24                        ; 00000018H\r
5263   00c45 89 45 d8         mov     DWORD PTR _ret$[ebp], eax\r
5264 \r
5265 ; 1006 :             if (ret) {\r
5266 \r
5267   00c48 85 c0            test    eax, eax\r
5268   00c4a 74 12            je      SHORT $LN150@inflate\r
5269 \r
5270 ; 1007 :                 strm->msg = (char *)"invalid literal/lengths set";\r
5271 \r
5272   00c4c 8b 4d 08         mov     ecx, DWORD PTR _strm$[ebp]\r
5273 \r
5274 ; 1008 :                 state->mode = BAD;\r
5275 ; 1009 :                 break;\r
5276 \r
5277   00c4f 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
5278   00c52 c7 41 18 00 00\r
5279         00 00            mov     DWORD PTR [ecx+24], OFFSET ??_C@_0BM@IIMGAINC@invalid?5literal?1lengths?5set?$AA@\r
5280   00c59 e9 73 06 00 00   jmp     $LN786@inflate\r
5281 $LN150@inflate:\r
5282 \r
5283 ; 1010 :             }\r
5284 ; 1011 :             state->distcode = (code const FAR *)(state->next);\r
5285 \r
5286   00c5e 8b 57 6c         mov     edx, DWORD PTR [edi+108]\r
5287   00c61 8d 4f 6c         lea     ecx, DWORD PTR [edi+108]\r
5288   00c64 89 57 50         mov     DWORD PTR [edi+80], edx\r
5289 \r
5290 ; 1012 :             state->distbits = 6;\r
5291 ; 1013 :             ret = inflate_table(DISTS, state->lens + state->nlen, state->ndist,\r
5292 ; 1014 :                             &(state->next), &(state->distbits), state->work);\r
5293 \r
5294   00c67 8d 97 f0 02 00\r
5295         00               lea     edx, DWORD PTR [edi+752]\r
5296   00c6d 52               push    edx\r
5297   00c6e 8d 47 58         lea     eax, DWORD PTR [edi+88]\r
5298   00c71 50               push    eax\r
5299   00c72 51               push    ecx\r
5300   00c73 8b 4f 60         mov     ecx, DWORD PTR [edi+96]\r
5301   00c76 c7 00 06 00 00\r
5302         00               mov     DWORD PTR [eax], 6\r
5303   00c7c 8b 47 64         mov     eax, DWORD PTR [edi+100]\r
5304   00c7f 50               push    eax\r
5305   00c80 8d 54 4f 70      lea     edx, DWORD PTR [edi+ecx*2+112]\r
5306   00c84 52               push    edx\r
5307   00c85 6a 02            push    2\r
5308   00c87 e8 00 00 00 00   call    _inflate_table\r
5309 \r
5310 ; 1017 :                 state->mode = BAD;\r
5311 ; 1018 :                 break;\r
5312 \r
5313   00c8c 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
5314   00c8f 83 c4 18         add     esp, 24                        ; 00000018H\r
5315   00c92 89 45 d8         mov     DWORD PTR _ret$[ebp], eax\r
5316   00c95 85 c0            test    eax, eax\r
5317   00c97 74 0f            je      SHORT $LN149@inflate\r
5318 \r
5319 ; 1015 :             if (ret) {\r
5320 ; 1016 :                 strm->msg = (char *)"invalid distances set";\r
5321 \r
5322   00c99 8b 45 08         mov     eax, DWORD PTR _strm$[ebp]\r
5323   00c9c c7 40 18 00 00\r
5324         00 00            mov     DWORD PTR [eax+24], OFFSET ??_C@_0BG@GMDFCBGP@invalid?5distances?5set?$AA@\r
5325 \r
5326 ; 1017 :                 state->mode = BAD;\r
5327 ; 1018 :                 break;\r
5328 \r
5329   00ca3 e9 29 06 00 00   jmp     $LN786@inflate\r
5330 $LN149@inflate:\r
5331 \r
5332 ; 1019 :             }\r
5333 ; 1020 :             Tracev((stderr, "inflate:       codes ok\n"));\r
5334 ; 1021 :             state->mode = LEN_;\r
5335 ; 1022 :             if (flush == Z_TREES) goto inf_leave;\r
5336 \r
5337   00ca8 83 7d 0c 06      cmp     DWORD PTR _flush$[ebp], 6\r
5338   00cac c7 07 13 00 00\r
5339         00               mov     DWORD PTR [edi], 19    ; 00000013H\r
5340   00cb2 0f 84 7d 06 00\r
5341         00               je      $inf_leave$80408\r
5342 $LN148@inflate:\r
5343 \r
5344 ; 1023 :         case LEN_:\r
5345 ; 1024 :             state->mode = LEN;\r
5346 \r
5347   00cb8 c7 07 14 00 00\r
5348         00               mov     DWORD PTR [edi], 20    ; 00000014H\r
5349 $LN146@inflate:\r
5350 \r
5351 ; 1025 :         case LEN:\r
5352 ; 1026 :             if (have >= 6 && left >= 258) {\r
5353 \r
5354   00cbe 83 7d fc 06      cmp     DWORD PTR _have$[ebp], 6\r
5355   00cc2 72 6e            jb      SHORT $LN145@inflate\r
5356   00cc4 81 7d f0 02 01\r
5357         00 00            cmp     DWORD PTR _left$[ebp], 258 ; 00000102H\r
5358   00ccb 72 65            jb      SHORT $LN145@inflate\r
5359 \r
5360 ; 1027 :                 RESTORE();\r
5361 \r
5362   00ccd 8b 45 08         mov     eax, DWORD PTR _strm$[ebp]\r
5363   00cd0 8b 4d e8         mov     ecx, DWORD PTR _put$[ebp]\r
5364   00cd3 8b 55 f0         mov     edx, DWORD PTR _left$[ebp]\r
5365   00cd6 89 48 0c         mov     DWORD PTR [eax+12], ecx\r
5366   00cd9 8b 4d f8         mov     ecx, DWORD PTR _next$[ebp]\r
5367   00cdc 89 08            mov     DWORD PTR [eax], ecx\r
5368 \r
5369 ; 1028 :                 inflate_fast(strm, out);\r
5370 \r
5371   00cde 8b 4d e0         mov     ecx, DWORD PTR _out$[ebp]\r
5372   00ce1 89 50 10         mov     DWORD PTR [eax+16], edx\r
5373   00ce4 8b 55 fc         mov     edx, DWORD PTR _have$[ebp]\r
5374   00ce7 51               push    ecx\r
5375   00ce8 89 50 04         mov     DWORD PTR [eax+4], edx\r
5376   00ceb 50               push    eax\r
5377   00cec 89 5f 38         mov     DWORD PTR [edi+56], ebx\r
5378   00cef 89 77 3c         mov     DWORD PTR [edi+60], esi\r
5379   00cf2 e8 00 00 00 00   call    _inflate_fast\r
5380 \r
5381 ; 1029 :                 LOAD();\r
5382 \r
5383   00cf7 8b 45 08         mov     eax, DWORD PTR _strm$[ebp]\r
5384   00cfa 8b 50 0c         mov     edx, DWORD PTR [eax+12]\r
5385   00cfd 8b 48 10         mov     ecx, DWORD PTR [eax+16]\r
5386   00d00 8b 5f 38         mov     ebx, DWORD PTR [edi+56]\r
5387   00d03 8b 77 3c         mov     esi, DWORD PTR [edi+60]\r
5388   00d06 89 55 e8         mov     DWORD PTR _put$[ebp], edx\r
5389   00d09 8b 10            mov     edx, DWORD PTR [eax]\r
5390   00d0b 8b 40 04         mov     eax, DWORD PTR [eax+4]\r
5391   00d0e 83 c4 08         add     esp, 8\r
5392 \r
5393 ; 1030 :                 if (state->mode == TYPE)\r
5394 \r
5395   00d11 83 3f 0b         cmp     DWORD PTR [edi], 11    ; 0000000bH\r
5396   00d14 89 4d f0         mov     DWORD PTR _left$[ebp], ecx\r
5397   00d17 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
5398   00d1a 89 45 fc         mov     DWORD PTR _have$[ebp], eax\r
5399   00d1d 0f 85 b4 05 00\r
5400         00               jne     $LN490@inflate\r
5401 \r
5402 ; 1031 :                     state->back = -1;\r
5403 \r
5404   00d23 c7 87 c4 1b 00\r
5405         00 ff ff ff ff   mov     DWORD PTR [edi+7108], -1\r
5406 \r
5407 ; 1032 :                 break;\r
5408 \r
5409   00d2d e9 a5 05 00 00   jmp     $LN490@inflate\r
5410 $LN145@inflate:\r
5411 \r
5412 ; 1033 :             }\r
5413 ; 1034 :             state->back = 0;\r
5414 ; 1035 :             for (;;) {\r
5415 ; 1036 :                 here = state->lencode[BITS(state->lenbits)];\r
5416 \r
5417   00d32 8b 4f 54         mov     ecx, DWORD PTR [edi+84]\r
5418   00d35 b8 01 00 00 00   mov     eax, 1\r
5419   00d3a d3 e0            shl     eax, cl\r
5420   00d3c c7 87 c4 1b 00\r
5421         00 00 00 00 00   mov     DWORD PTR [edi+7108], 0\r
5422   00d46 48               dec     eax\r
5423   00d47 23 c3            and     eax, ebx\r
5424   00d49 8b c8            mov     ecx, eax\r
5425   00d4b 8b 47 4c         mov     eax, DWORD PTR [edi+76]\r
5426   00d4e 8b 04 88         mov     eax, DWORD PTR [eax+ecx*4]\r
5427 \r
5428 ; 1037 :                 if ((unsigned)(here.bits) <= bits) break;\r
5429 \r
5430   00d51 8b c8            mov     ecx, eax\r
5431   00d53 c1 e9 08         shr     ecx, 8\r
5432   00d56 0f b6 c9         movzx   ecx, cl\r
5433   00d59 89 45 f4         mov     DWORD PTR _here$[ebp], eax\r
5434   00d5c 3b ce            cmp     ecx, esi\r
5435   00d5e 76 3f            jbe     SHORT $LN562@inflate\r
5436 $LL137@inflate:\r
5437 \r
5438 ; 1038 :                 PULLBYTE();\r
5439 \r
5440   00d60 83 7d fc 00      cmp     DWORD PTR _have$[ebp], 0\r
5441   00d64 0f 84 cb 05 00\r
5442         00               je      $inf_leave$80408\r
5443   00d6a 0f b6 02         movzx   eax, BYTE PTR [edx]\r
5444   00d6d ff 4d fc         dec     DWORD PTR _have$[ebp]\r
5445   00d70 8b ce            mov     ecx, esi\r
5446   00d72 d3 e0            shl     eax, cl\r
5447   00d74 8b 4f 54         mov     ecx, DWORD PTR [edi+84]\r
5448   00d77 42               inc     edx\r
5449   00d78 83 c6 08         add     esi, 8\r
5450   00d7b 03 d8            add     ebx, eax\r
5451   00d7d b8 01 00 00 00   mov     eax, 1\r
5452   00d82 d3 e0            shl     eax, cl\r
5453   00d84 8b 4f 4c         mov     ecx, DWORD PTR [edi+76]\r
5454   00d87 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
5455   00d8a 48               dec     eax\r
5456   00d8b 23 c3            and     eax, ebx\r
5457   00d8d 8b 04 81         mov     eax, DWORD PTR [ecx+eax*4]\r
5458   00d90 8b c8            mov     ecx, eax\r
5459   00d92 c1 e9 08         shr     ecx, 8\r
5460   00d95 0f b6 c9         movzx   ecx, cl\r
5461   00d98 89 45 f4         mov     DWORD PTR _here$[ebp], eax\r
5462   00d9b 3b ce            cmp     ecx, esi\r
5463   00d9d 77 c1            ja      SHORT $LL137@inflate\r
5464 $LN562@inflate:\r
5465 \r
5466 ; 1039 :             }\r
5467 ; 1040 :             if (here.op && (here.op & 0xf0) == 0) {\r
5468 \r
5469   00d9f 84 c0            test    al, al\r
5470   00da1 0f 84 c0 00 00\r
5471         00               je      $LN119@inflate\r
5472   00da7 a8 f0            test    al, 240                        ; 000000f0H\r
5473   00da9 0f 85 b8 00 00\r
5474         00               jne     $LN119@inflate\r
5475 \r
5476 ; 1041 :                 last = here;\r
5477 ; 1042 :                 for (;;) {\r
5478 ; 1043 :                     here = state->lencode[last.val +\r
5479 ; 1044 :                             (BITS(last.bits + last.op) >> last.bits)];\r
5480 \r
5481   00daf 8b c8            mov     ecx, eax\r
5482   00db1 c1 e9 08         shr     ecx, 8\r
5483   00db4 89 4d d4         mov     DWORD PTR tv2288[ebp], ecx\r
5484   00db7 0f b6 c9         movzx   ecx, cl\r
5485   00dba 89 4d e4         mov     DWORD PTR tv2289[ebp], ecx\r
5486   00dbd 0f b6 c8         movzx   ecx, al\r
5487   00dc0 03 4d e4         add     ecx, DWORD PTR tv2289[ebp]\r
5488   00dc3 89 45 dc         mov     DWORD PTR _last$[ebp], eax\r
5489   00dc6 b8 01 00 00 00   mov     eax, 1\r
5490   00dcb d3 e0            shl     eax, cl\r
5491   00dcd 8b 4d e4         mov     ecx, DWORD PTR tv2289[ebp]\r
5492   00dd0 48               dec     eax\r
5493   00dd1 23 c3            and     eax, ebx\r
5494   00dd3 d3 e8            shr     eax, cl\r
5495   00dd5 8b 4d f4         mov     ecx, DWORD PTR _here$[ebp]\r
5496   00dd8 c1 e9 10         shr     ecx, 16                        ; 00000010H\r
5497   00ddb 03 c1            add     eax, ecx\r
5498   00ddd 8b c8            mov     ecx, eax\r
5499   00ddf 8b 47 4c         mov     eax, DWORD PTR [edi+76]\r
5500   00de2 8b 04 88         mov     eax, DWORD PTR [eax+ecx*4]\r
5501 \r
5502 ; 1045 :                     if ((unsigned)(last.bits + here.bits) <= bits) break;\r
5503 \r
5504   00de5 0f b6 4d d4      movzx   ecx, BYTE PTR tv2288[ebp]\r
5505   00de9 89 45 f4         mov     DWORD PTR _here$[ebp], eax\r
5506   00dec c1 e8 08         shr     eax, 8\r
5507   00def 0f b6 c0         movzx   eax, al\r
5508   00df2 03 c1            add     eax, ecx\r
5509   00df4 3b c6            cmp     eax, esi\r
5510   00df6 76 5e            jbe     SHORT $LN122@inflate\r
5511   00df8 eb 06 8d 9b 00\r
5512         00 00 00         npad    8\r
5513 $LL129@inflate:\r
5514 \r
5515 ; 1046 :                     PULLBYTE();\r
5516 \r
5517   00e00 83 7d fc 00      cmp     DWORD PTR _have$[ebp], 0\r
5518   00e04 0f 84 2b 05 00\r
5519         00               je      $inf_leave$80408\r
5520   00e0a 0f b6 02         movzx   eax, BYTE PTR [edx]\r
5521   00e0d 8b ce            mov     ecx, esi\r
5522   00e0f d3 e0            shl     eax, cl\r
5523   00e11 8b 4d dc         mov     ecx, DWORD PTR _last$[ebp]\r
5524   00e14 ff 4d fc         dec     DWORD PTR _have$[ebp]\r
5525   00e17 42               inc     edx\r
5526   00e18 03 d8            add     ebx, eax\r
5527   00e1a 0f b6 c5         movzx   eax, ch\r
5528   00e1d 89 45 e4         mov     DWORD PTR tv2387[ebp], eax\r
5529   00e20 0f b6 c9         movzx   ecx, cl\r
5530   00e23 03 c8            add     ecx, eax\r
5531   00e25 b8 01 00 00 00   mov     eax, 1\r
5532   00e2a d3 e0            shl     eax, cl\r
5533   00e2c 8b 4d e4         mov     ecx, DWORD PTR tv2387[ebp]\r
5534   00e2f 83 c6 08         add     esi, 8\r
5535   00e32 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
5536   00e35 48               dec     eax\r
5537   00e36 23 c3            and     eax, ebx\r
5538   00e38 d3 e8            shr     eax, cl\r
5539   00e3a 0f b7 4d de      movzx   ecx, WORD PTR _last$[ebp+2]\r
5540   00e3e 03 c1            add     eax, ecx\r
5541   00e40 8b 4f 4c         mov     ecx, DWORD PTR [edi+76]\r
5542   00e43 8b 04 81         mov     eax, DWORD PTR [ecx+eax*4]\r
5543   00e46 89 45 f4         mov     DWORD PTR _here$[ebp], eax\r
5544   00e49 c1 e8 08         shr     eax, 8\r
5545   00e4c 0f b6 c0         movzx   eax, al\r
5546   00e4f 03 45 e4         add     eax, DWORD PTR tv2387[ebp]\r
5547   00e52 3b c6            cmp     eax, esi\r
5548   00e54 77 aa            ja      SHORT $LL129@inflate\r
5549 $LN122@inflate:\r
5550 \r
5551 ; 1047 :                 }\r
5552 ; 1048 :                 DROPBITS(last.bits);\r
5553 \r
5554   00e56 0f b6 4d dd      movzx   ecx, BYTE PTR _last$[ebp+1]\r
5555 \r
5556 ; 1049 :                 state->back += last.bits;\r
5557 \r
5558   00e5a 8b 45 f4         mov     eax, DWORD PTR _here$[ebp]\r
5559   00e5d d3 eb            shr     ebx, cl\r
5560   00e5f 2b f1            sub     esi, ecx\r
5561   00e61 89 8f c4 1b 00\r
5562         00               mov     DWORD PTR [edi+7108], ecx\r
5563 $LN119@inflate:\r
5564 \r
5565 ; 1050 :             }\r
5566 ; 1051 :             DROPBITS(here.bits);\r
5567 \r
5568   00e67 8b c8            mov     ecx, eax\r
5569   00e69 c1 e9 08         shr     ecx, 8\r
5570   00e6c 0f b6 c9         movzx   ecx, cl\r
5571 \r
5572 ; 1052 :             state->back += here.bits;\r
5573 \r
5574   00e6f 01 8f c4 1b 00\r
5575         00               add     DWORD PTR [edi+7108], ecx\r
5576   00e75 d3 eb            shr     ebx, cl\r
5577   00e77 2b f1            sub     esi, ecx\r
5578   00e79 89 4d e4         mov     DWORD PTR tv2289[ebp], ecx\r
5579 \r
5580 ; 1053 :             state->length = (unsigned)here.val;\r
5581 \r
5582   00e7c 8b c8            mov     ecx, eax\r
5583   00e7e c1 e9 10         shr     ecx, 16                        ; 00000010H\r
5584   00e81 89 4f 40         mov     DWORD PTR [edi+64], ecx\r
5585 \r
5586 ; 1054 :             if ((int)(here.op) == 0) {\r
5587 \r
5588   00e84 84 c0            test    al, al\r
5589   00e86 75 0b            jne     SHORT $LN116@inflate\r
5590 \r
5591 ; 1055 :                 Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\r
5592 ; 1056 :                         "inflate:         literal '%c'\n" :\r
5593 ; 1057 :                         "inflate:         literal 0x%02x\n", here.val));\r
5594 ; 1058 :                 state->mode = LIT;\r
5595 \r
5596   00e88 c7 07 19 00 00\r
5597         00               mov     DWORD PTR [edi], 25    ; 00000019H\r
5598 \r
5599 ; 1059 :                 break;\r
5600 \r
5601   00e8e e9 44 04 00 00   jmp     $LN490@inflate\r
5602 $LN116@inflate:\r
5603 \r
5604 ; 1060 :             }\r
5605 ; 1061 :             if (here.op & 32) {\r
5606 \r
5607   00e93 a8 20            test    al, 32                 ; 00000020H\r
5608   00e95 74 15            je      SHORT $LN115@inflate\r
5609 \r
5610 ; 1062 :                 Tracevv((stderr, "inflate:         end of block\n"));\r
5611 ; 1063 :                 state->back = -1;\r
5612 \r
5613   00e97 c7 87 c4 1b 00\r
5614         00 ff ff ff ff   mov     DWORD PTR [edi+7108], -1\r
5615 $LN263@inflate:\r
5616 \r
5617 ; 1064 :                 state->mode = TYPE;\r
5618 \r
5619   00ea1 c7 07 0b 00 00\r
5620         00               mov     DWORD PTR [edi], 11    ; 0000000bH\r
5621 \r
5622 ; 1065 :                 break;\r
5623 \r
5624   00ea7 e9 2b 04 00 00   jmp     $LN490@inflate\r
5625 $LN115@inflate:\r
5626 \r
5627 ; 1066 :             }\r
5628 ; 1067 :             if (here.op & 64) {\r
5629 \r
5630   00eac a8 40            test    al, 64                 ; 00000040H\r
5631   00eae 74 0f            je      SHORT $LN114@inflate\r
5632 \r
5633 ; 1068 :                 strm->msg = (char *)"invalid literal/length code";\r
5634 \r
5635   00eb0 8b 45 08         mov     eax, DWORD PTR _strm$[ebp]\r
5636   00eb3 c7 40 18 00 00\r
5637         00 00            mov     DWORD PTR [eax+24], OFFSET ??_C@_0BM@FFFLPBBC@invalid?5literal?1length?5code?$AA@\r
5638 \r
5639 ; 1069 :                 state->mode = BAD;\r
5640 ; 1070 :                 break;\r
5641 \r
5642   00eba e9 12 04 00 00   jmp     $LN786@inflate\r
5643 $LN114@inflate:\r
5644 \r
5645 ; 1071 :             }\r
5646 ; 1072 :             state->extra = (unsigned)(here.op) & 15;\r
5647 \r
5648   00ebf 0f b6 c8         movzx   ecx, al\r
5649   00ec2 83 e1 0f         and     ecx, 15                        ; 0000000fH\r
5650   00ec5 89 4f 48         mov     DWORD PTR [edi+72], ecx\r
5651 \r
5652 ; 1073 :             state->mode = LENEXT;\r
5653 \r
5654   00ec8 c7 07 15 00 00\r
5655         00               mov     DWORD PTR [edi], 21    ; 00000015H\r
5656 $LN699@inflate:\r
5657 \r
5658 ; 1074 :         case LENEXT:\r
5659 ; 1075 :             if (state->extra) {\r
5660 \r
5661   00ece 8b 47 48         mov     eax, DWORD PTR [edi+72]\r
5662   00ed1 85 c0            test    eax, eax\r
5663   00ed3 74 47            je      SHORT $LN736@inflate\r
5664 \r
5665 ; 1076 :                 NEEDBITS(state->extra);\r
5666 \r
5667   00ed5 3b f0            cmp     esi, eax\r
5668   00ed7 73 29            jae     SHORT $LN110@inflate\r
5669   00ed9 8d a4 24 00 00\r
5670         00 00            npad    7\r
5671 $LL108@inflate:\r
5672   00ee0 83 7d fc 00      cmp     DWORD PTR _have$[ebp], 0\r
5673   00ee4 0f 84 4b 04 00\r
5674         00               je      $inf_leave$80408\r
5675   00eea 0f b6 02         movzx   eax, BYTE PTR [edx]\r
5676   00eed ff 4d fc         dec     DWORD PTR _have$[ebp]\r
5677   00ef0 8b ce            mov     ecx, esi\r
5678   00ef2 d3 e0            shl     eax, cl\r
5679   00ef4 42               inc     edx\r
5680   00ef5 83 c6 08         add     esi, 8\r
5681   00ef8 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
5682   00efb 03 d8            add     ebx, eax\r
5683   00efd 3b 77 48         cmp     esi, DWORD PTR [edi+72]\r
5684   00f00 72 de            jb      SHORT $LL108@inflate\r
5685 $LN110@inflate:\r
5686 \r
5687 ; 1077 :                 state->length += BITS(state->extra);\r
5688 \r
5689   00f02 8b 4f 48         mov     ecx, DWORD PTR [edi+72]\r
5690   00f05 b8 01 00 00 00   mov     eax, 1\r
5691   00f0a d3 e0            shl     eax, cl\r
5692 \r
5693 ; 1078 :                 DROPBITS(state->extra);\r
5694 \r
5695   00f0c 2b f1            sub     esi, ecx\r
5696   00f0e 48               dec     eax\r
5697   00f0f 23 c3            and     eax, ebx\r
5698   00f11 01 47 40         add     DWORD PTR [edi+64], eax\r
5699   00f14 d3 eb            shr     ebx, cl\r
5700 \r
5701 ; 1079 :                 state->back += state->extra;\r
5702 \r
5703   00f16 01 8f c4 1b 00\r
5704         00               add     DWORD PTR [edi+7108], ecx\r
5705 $LN736@inflate:\r
5706 \r
5707 ; 1080 :             }\r
5708 ; 1081 :             Tracevv((stderr, "inflate:         length %u\n", state->length));\r
5709 ; 1082 :             state->was = state->length;\r
5710 \r
5711   00f1c 8b 4f 40         mov     ecx, DWORD PTR [edi+64]\r
5712   00f1f 89 8f c8 1b 00\r
5713         00               mov     DWORD PTR [edi+7112], ecx\r
5714 \r
5715 ; 1083 :             state->mode = DIST;\r
5716 \r
5717   00f25 c7 07 16 00 00\r
5718         00               mov     DWORD PTR [edi], 22    ; 00000016H\r
5719 $LN700@inflate:\r
5720 \r
5721 ; 1084 :         case DIST:\r
5722 ; 1085 :             for (;;) {\r
5723 ; 1086 :                 here = state->distcode[BITS(state->distbits)];\r
5724 \r
5725   00f2b 8b 4f 58         mov     ecx, DWORD PTR [edi+88]\r
5726   00f2e b8 01 00 00 00   mov     eax, 1\r
5727   00f33 d3 e0            shl     eax, cl\r
5728   00f35 48               dec     eax\r
5729   00f36 23 c3            and     eax, ebx\r
5730   00f38 8b c8            mov     ecx, eax\r
5731   00f3a 8b 47 50         mov     eax, DWORD PTR [edi+80]\r
5732   00f3d 8b 04 88         mov     eax, DWORD PTR [eax+ecx*4]\r
5733 \r
5734 ; 1087 :                 if ((unsigned)(here.bits) <= bits) break;\r
5735 \r
5736   00f40 8b c8            mov     ecx, eax\r
5737   00f42 c1 e9 08         shr     ecx, 8\r
5738   00f45 0f b6 c9         movzx   ecx, cl\r
5739   00f48 89 45 f4         mov     DWORD PTR _here$[ebp], eax\r
5740   00f4b 3b ce            cmp     ecx, esi\r
5741   00f4d 76 40            jbe     SHORT $LN567@inflate\r
5742   00f4f 90               npad    1\r
5743 $LL98@inflate:\r
5744 \r
5745 ; 1088 :                 PULLBYTE();\r
5746 \r
5747   00f50 83 7d fc 00      cmp     DWORD PTR _have$[ebp], 0\r
5748   00f54 0f 84 db 03 00\r
5749         00               je      $inf_leave$80408\r
5750   00f5a 0f b6 02         movzx   eax, BYTE PTR [edx]\r
5751   00f5d ff 4d fc         dec     DWORD PTR _have$[ebp]\r
5752   00f60 8b ce            mov     ecx, esi\r
5753   00f62 d3 e0            shl     eax, cl\r
5754   00f64 8b 4f 58         mov     ecx, DWORD PTR [edi+88]\r
5755   00f67 42               inc     edx\r
5756   00f68 83 c6 08         add     esi, 8\r
5757   00f6b 03 d8            add     ebx, eax\r
5758   00f6d b8 01 00 00 00   mov     eax, 1\r
5759   00f72 d3 e0            shl     eax, cl\r
5760   00f74 8b 4f 50         mov     ecx, DWORD PTR [edi+80]\r
5761   00f77 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
5762   00f7a 48               dec     eax\r
5763   00f7b 23 c3            and     eax, ebx\r
5764   00f7d 8b 04 81         mov     eax, DWORD PTR [ecx+eax*4]\r
5765   00f80 8b c8            mov     ecx, eax\r
5766   00f82 c1 e9 08         shr     ecx, 8\r
5767   00f85 0f b6 c9         movzx   ecx, cl\r
5768   00f88 89 45 f4         mov     DWORD PTR _here$[ebp], eax\r
5769   00f8b 3b ce            cmp     ecx, esi\r
5770   00f8d 77 c1            ja      SHORT $LL98@inflate\r
5771 $LN567@inflate:\r
5772 \r
5773 ; 1089 :             }\r
5774 ; 1090 :             if ((here.op & 0xf0) == 0) {\r
5775 \r
5776   00f8f a8 f0            test    al, 240                        ; 000000f0H\r
5777   00f91 0f 85 b0 00 00\r
5778         00               jne     $LN80@inflate\r
5779 \r
5780 ; 1091 :                 last = here;\r
5781 ; 1092 :                 for (;;) {\r
5782 ; 1093 :                     here = state->distcode[last.val +\r
5783 ; 1094 :                             (BITS(last.bits + last.op) >> last.bits)];\r
5784 \r
5785   00f97 8b c8            mov     ecx, eax\r
5786   00f99 c1 e9 08         shr     ecx, 8\r
5787   00f9c 89 4d d4         mov     DWORD PTR tv2288[ebp], ecx\r
5788   00f9f 0f b6 c9         movzx   ecx, cl\r
5789   00fa2 89 4d e4         mov     DWORD PTR tv2289[ebp], ecx\r
5790   00fa5 0f b6 c8         movzx   ecx, al\r
5791   00fa8 03 4d e4         add     ecx, DWORD PTR tv2289[ebp]\r
5792   00fab 89 45 dc         mov     DWORD PTR _last$[ebp], eax\r
5793   00fae b8 01 00 00 00   mov     eax, 1\r
5794   00fb3 d3 e0            shl     eax, cl\r
5795   00fb5 8b 4d e4         mov     ecx, DWORD PTR tv2289[ebp]\r
5796   00fb8 48               dec     eax\r
5797   00fb9 23 c3            and     eax, ebx\r
5798   00fbb d3 e8            shr     eax, cl\r
5799   00fbd 8b 4d f4         mov     ecx, DWORD PTR _here$[ebp]\r
5800   00fc0 c1 e9 10         shr     ecx, 16                        ; 00000010H\r
5801   00fc3 03 c1            add     eax, ecx\r
5802   00fc5 8b c8            mov     ecx, eax\r
5803   00fc7 8b 47 50         mov     eax, DWORD PTR [edi+80]\r
5804   00fca 8b 04 88         mov     eax, DWORD PTR [eax+ecx*4]\r
5805 \r
5806 ; 1095 :                     if ((unsigned)(last.bits + here.bits) <= bits) break;\r
5807 \r
5808   00fcd 0f b6 4d d4      movzx   ecx, BYTE PTR tv2288[ebp]\r
5809   00fd1 89 45 f4         mov     DWORD PTR _here$[ebp], eax\r
5810   00fd4 c1 e8 08         shr     eax, 8\r
5811   00fd7 0f b6 c0         movzx   eax, al\r
5812   00fda 03 c1            add     eax, ecx\r
5813   00fdc 3b c6            cmp     eax, esi\r
5814   00fde 76 56            jbe     SHORT $LN83@inflate\r
5815 $LL90@inflate:\r
5816 \r
5817 ; 1096 :                     PULLBYTE();\r
5818 \r
5819   00fe0 83 7d fc 00      cmp     DWORD PTR _have$[ebp], 0\r
5820   00fe4 0f 84 4b 03 00\r
5821         00               je      $inf_leave$80408\r
5822   00fea 0f b6 02         movzx   eax, BYTE PTR [edx]\r
5823   00fed 8b ce            mov     ecx, esi\r
5824   00fef d3 e0            shl     eax, cl\r
5825   00ff1 8b 4d dc         mov     ecx, DWORD PTR _last$[ebp]\r
5826   00ff4 ff 4d fc         dec     DWORD PTR _have$[ebp]\r
5827   00ff7 42               inc     edx\r
5828   00ff8 03 d8            add     ebx, eax\r
5829   00ffa 0f b6 c5         movzx   eax, ch\r
5830   00ffd 89 45 e4         mov     DWORD PTR tv2387[ebp], eax\r
5831   01000 0f b6 c9         movzx   ecx, cl\r
5832   01003 03 c8            add     ecx, eax\r
5833   01005 b8 01 00 00 00   mov     eax, 1\r
5834   0100a d3 e0            shl     eax, cl\r
5835   0100c 8b 4d e4         mov     ecx, DWORD PTR tv2387[ebp]\r
5836   0100f 83 c6 08         add     esi, 8\r
5837   01012 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
5838   01015 48               dec     eax\r
5839   01016 23 c3            and     eax, ebx\r
5840   01018 d3 e8            shr     eax, cl\r
5841   0101a 0f b7 4d de      movzx   ecx, WORD PTR _last$[ebp+2]\r
5842   0101e 03 c1            add     eax, ecx\r
5843   01020 8b 4f 50         mov     ecx, DWORD PTR [edi+80]\r
5844   01023 8b 04 81         mov     eax, DWORD PTR [ecx+eax*4]\r
5845   01026 89 45 f4         mov     DWORD PTR _here$[ebp], eax\r
5846   01029 c1 e8 08         shr     eax, 8\r
5847   0102c 0f b6 c0         movzx   eax, al\r
5848   0102f 03 45 e4         add     eax, DWORD PTR tv2387[ebp]\r
5849   01032 3b c6            cmp     eax, esi\r
5850   01034 77 aa            ja      SHORT $LL90@inflate\r
5851 $LN83@inflate:\r
5852 \r
5853 ; 1097 :                 }\r
5854 ; 1098 :                 DROPBITS(last.bits);\r
5855 \r
5856   01036 0f b6 4d dd      movzx   ecx, BYTE PTR _last$[ebp+1]\r
5857 \r
5858 ; 1099 :                 state->back += last.bits;\r
5859 \r
5860   0103a 8b 45 f4         mov     eax, DWORD PTR _here$[ebp]\r
5861   0103d d3 eb            shr     ebx, cl\r
5862   0103f 2b f1            sub     esi, ecx\r
5863   01041 01 8f c4 1b 00\r
5864         00               add     DWORD PTR [edi+7108], ecx\r
5865 $LN80@inflate:\r
5866 \r
5867 ; 1100 :             }\r
5868 ; 1101 :             DROPBITS(here.bits);\r
5869 \r
5870   01047 8b c8            mov     ecx, eax\r
5871   01049 c1 e9 08         shr     ecx, 8\r
5872   0104c 0f b6 c9         movzx   ecx, cl\r
5873 \r
5874 ; 1102 :             state->back += here.bits;\r
5875 \r
5876   0104f 01 8f c4 1b 00\r
5877         00               add     DWORD PTR [edi+7108], ecx\r
5878   01055 d3 eb            shr     ebx, cl\r
5879   01057 2b f1            sub     esi, ecx\r
5880   01059 89 4d e4         mov     DWORD PTR tv2289[ebp], ecx\r
5881 \r
5882 ; 1103 :             if (here.op & 64) {\r
5883 \r
5884   0105c a8 40            test    al, 64                 ; 00000040H\r
5885   0105e 74 0f            je      SHORT $LN77@inflate\r
5886 \r
5887 ; 1104 :                 strm->msg = (char *)"invalid distance code";\r
5888 \r
5889   01060 8b 45 08         mov     eax, DWORD PTR _strm$[ebp]\r
5890   01063 c7 40 18 00 00\r
5891         00 00            mov     DWORD PTR [eax+24], OFFSET ??_C@_0BG@LBKINIKP@invalid?5distance?5code?$AA@\r
5892 \r
5893 ; 1105 :                 state->mode = BAD;\r
5894 ; 1106 :                 break;\r
5895 \r
5896   0106a e9 62 02 00 00   jmp     $LN786@inflate\r
5897 $LN77@inflate:\r
5898 \r
5899 ; 1107 :             }\r
5900 ; 1108 :             state->offset = (unsigned)here.val;\r
5901 \r
5902   0106f 8b c8            mov     ecx, eax\r
5903 \r
5904 ; 1109 :             state->extra = (unsigned)(here.op) & 15;\r
5905 \r
5906   01071 0f b6 c0         movzx   eax, al\r
5907   01074 c1 e9 10         shr     ecx, 16                        ; 00000010H\r
5908   01077 83 e0 0f         and     eax, 15                        ; 0000000fH\r
5909   0107a 89 4f 44         mov     DWORD PTR [edi+68], ecx\r
5910   0107d 89 47 48         mov     DWORD PTR [edi+72], eax\r
5911 \r
5912 ; 1110 :             state->mode = DISTEXT;\r
5913 \r
5914   01080 c7 07 17 00 00\r
5915         00               mov     DWORD PTR [edi], 23    ; 00000017H\r
5916 $LN701@inflate:\r
5917 \r
5918 ; 1111 :         case DISTEXT:\r
5919 ; 1112 :             if (state->extra) {\r
5920 \r
5921   01086 8b 47 48         mov     eax, DWORD PTR [edi+72]\r
5922   01089 85 c0            test    eax, eax\r
5923   0108b 74 40            je      SHORT $LN75@inflate\r
5924 \r
5925 ; 1113 :                 NEEDBITS(state->extra);\r
5926 \r
5927   0108d 3b f0            cmp     esi, eax\r
5928   0108f 73 22            jae     SHORT $LN73@inflate\r
5929 $LL71@inflate:\r
5930   01091 83 7d fc 00      cmp     DWORD PTR _have$[ebp], 0\r
5931   01095 0f 84 9a 02 00\r
5932         00               je      $inf_leave$80408\r
5933   0109b 0f b6 02         movzx   eax, BYTE PTR [edx]\r
5934   0109e ff 4d fc         dec     DWORD PTR _have$[ebp]\r
5935   010a1 8b ce            mov     ecx, esi\r
5936   010a3 d3 e0            shl     eax, cl\r
5937   010a5 42               inc     edx\r
5938   010a6 83 c6 08         add     esi, 8\r
5939   010a9 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
5940   010ac 03 d8            add     ebx, eax\r
5941   010ae 3b 77 48         cmp     esi, DWORD PTR [edi+72]\r
5942   010b1 72 de            jb      SHORT $LL71@inflate\r
5943 $LN73@inflate:\r
5944 \r
5945 ; 1114 :                 state->offset += BITS(state->extra);\r
5946 \r
5947   010b3 8b 4f 48         mov     ecx, DWORD PTR [edi+72]\r
5948   010b6 b8 01 00 00 00   mov     eax, 1\r
5949   010bb d3 e0            shl     eax, cl\r
5950 \r
5951 ; 1115 :                 DROPBITS(state->extra);\r
5952 \r
5953   010bd 2b f1            sub     esi, ecx\r
5954   010bf 48               dec     eax\r
5955   010c0 23 c3            and     eax, ebx\r
5956   010c2 01 47 44         add     DWORD PTR [edi+68], eax\r
5957   010c5 d3 eb            shr     ebx, cl\r
5958 \r
5959 ; 1116 :                 state->back += state->extra;\r
5960 \r
5961   010c7 01 8f c4 1b 00\r
5962         00               add     DWORD PTR [edi+7108], ecx\r
5963 $LN75@inflate:\r
5964 \r
5965 ; 1117 :             }\r
5966 ; 1118 : #ifdef INFLATE_STRICT\r
5967 ; 1119 :             if (state->offset > state->dmax) {\r
5968 ; 1120 :                 strm->msg = (char *)"invalid distance too far back";\r
5969 ; 1121 :                 state->mode = BAD;\r
5970 ; 1122 :                 break;\r
5971 ; 1123 :             }\r
5972 ; 1124 : #endif\r
5973 ; 1125 :             Tracevv((stderr, "inflate:         distance %u\n", state->offset));\r
5974 ; 1126 :             state->mode = MATCH;\r
5975 \r
5976   010cd c7 07 18 00 00\r
5977         00               mov     DWORD PTR [edi], 24    ; 00000018H\r
5978 $LN702@inflate:\r
5979 \r
5980 ; 1127 :         case MATCH:\r
5981 ; 1128 :             if (left == 0) goto inf_leave;\r
5982 \r
5983   010d3 83 7d f0 00      cmp     DWORD PTR _left$[ebp], 0\r
5984   010d7 0f 84 58 02 00\r
5985         00               je      $inf_leave$80408\r
5986 \r
5987 ; 1129 :             copy = out - left;\r
5988 \r
5989   010dd 8b 4d e0         mov     ecx, DWORD PTR _out$[ebp]\r
5990   010e0 2b 4d f0         sub     ecx, DWORD PTR _left$[ebp]\r
5991 \r
5992 ; 1130 :             if (state->offset > copy) {         /* copy from window */\r
5993 \r
5994   010e3 8b 47 44         mov     eax, DWORD PTR [edi+68]\r
5995   010e6 3b c1            cmp     eax, ecx\r
5996   010e8 76 54            jbe     SHORT $LN60@inflate\r
5997 \r
5998 ; 1131 :                 copy = state->offset - copy;\r
5999 \r
6000   010ea 2b c1            sub     eax, ecx\r
6001   010ec 89 45 f4         mov     DWORD PTR _copy$[ebp], eax\r
6002 \r
6003 ; 1132 :                 if (copy > state->whave) {\r
6004 \r
6005   010ef 3b 47 2c         cmp     eax, DWORD PTR [edi+44]\r
6006   010f2 76 18            jbe     SHORT $LN58@inflate\r
6007 \r
6008 ; 1133 :                     if (state->sane) {\r
6009 \r
6010   010f4 83 bf c0 1b 00\r
6011         00 00            cmp     DWORD PTR [edi+7104], 0\r
6012   010fb 74 0f            je      SHORT $LN58@inflate\r
6013 \r
6014 ; 1134 :                         strm->msg = (char *)"invalid distance too far back";\r
6015 \r
6016   010fd 8b 4d 08         mov     ecx, DWORD PTR _strm$[ebp]\r
6017   01100 c7 41 18 00 00\r
6018         00 00            mov     DWORD PTR [ecx+24], OFFSET ??_C@_0BO@ECPMAOGG@invalid?5distance?5too?5far?5back?$AA@\r
6019 \r
6020 ; 1135 :                         state->mode = BAD;\r
6021 ; 1136 :                         break;\r
6022 \r
6023   01107 e9 c5 01 00 00   jmp     $LN786@inflate\r
6024 $LN58@inflate:\r
6025 \r
6026 ; 1137 :                     }\r
6027 ; 1138 : #ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\r
6028 ; 1139 :                     Trace((stderr, "inflate.c too far\n"));\r
6029 ; 1140 :                     copy -= state->whave;\r
6030 ; 1141 :                     if (copy > state->length) copy = state->length;\r
6031 ; 1142 :                     if (copy > left) copy = left;\r
6032 ; 1143 :                     left -= copy;\r
6033 ; 1144 :                     state->length -= copy;\r
6034 ; 1145 :                     do {\r
6035 ; 1146 :                         *put++ = 0;\r
6036 ; 1147 :                     } while (--copy);\r
6037 ; 1148 :                     if (state->length == 0) state->mode = LEN;\r
6038 ; 1149 :                     break;\r
6039 ; 1150 : #endif\r
6040 ; 1151 :                 }\r
6041 ; 1152 :                 if (copy > state->wnext) {\r
6042 \r
6043   0110c 8b 4f 30         mov     ecx, DWORD PTR [edi+48]\r
6044   0110f 3b c1            cmp     eax, ecx\r
6045   01111 76 0f            jbe     SHORT $LN57@inflate\r
6046 \r
6047 ; 1153 :                     copy -= state->wnext;\r
6048 \r
6049   01113 2b c1            sub     eax, ecx\r
6050 \r
6051 ; 1154 :                     from = state->window + (state->wsize - copy);\r
6052 \r
6053   01115 8b 4f 34         mov     ecx, DWORD PTR [edi+52]\r
6054   01118 03 4f 28         add     ecx, DWORD PTR [edi+40]\r
6055   0111b 89 45 f4         mov     DWORD PTR _copy$[ebp], eax\r
6056   0111e 2b c8            sub     ecx, eax\r
6057 \r
6058 ; 1155 :                 }\r
6059 ; 1156 :                 else\r
6060 \r
6061   01120 eb 0b            jmp     SHORT $LN784@inflate\r
6062 $LN57@inflate:\r
6063 \r
6064 ; 1157 :                     from = state->window + (state->wnext - copy);\r
6065 \r
6066   01122 8b 4f 34         mov     ecx, DWORD PTR [edi+52]\r
6067   01125 2b c8            sub     ecx, eax\r
6068   01127 03 4f 30         add     ecx, DWORD PTR [edi+48]\r
6069   0112a 8b 45 f4         mov     eax, DWORD PTR _copy$[ebp]\r
6070 $LN784@inflate:\r
6071   0112d 89 4d d4         mov     DWORD PTR _from$[ebp], ecx\r
6072 \r
6073 ; 1158 :                 if (copy > state->length) copy = state->length;\r
6074 \r
6075   01130 8b 4f 40         mov     ecx, DWORD PTR [edi+64]\r
6076   01133 89 4d dc         mov     DWORD PTR tv2131[ebp], ecx\r
6077   01136 3b c1            cmp     eax, ecx\r
6078   01138 76 15            jbe     SHORT $LN54@inflate\r
6079   0113a 8b c1            mov     eax, ecx\r
6080 \r
6081 ; 1159 :             }\r
6082 ; 1160 :             else {                              /* copy from output */\r
6083 \r
6084   0113c eb 0e            jmp     SHORT $LN785@inflate\r
6085 $LN60@inflate:\r
6086 \r
6087 ; 1161 :                 from = put - state->offset;\r
6088 \r
6089   0113e 8b 4d e8         mov     ecx, DWORD PTR _put$[ebp]\r
6090   01141 2b c8            sub     ecx, eax\r
6091 \r
6092 ; 1162 :                 copy = state->length;\r
6093 \r
6094   01143 8b 47 40         mov     eax, DWORD PTR [edi+64]\r
6095   01146 89 4d d4         mov     DWORD PTR _from$[ebp], ecx\r
6096   01149 89 45 dc         mov     DWORD PTR tv2131[ebp], eax\r
6097 $LN785@inflate:\r
6098   0114c 89 45 f4         mov     DWORD PTR _copy$[ebp], eax\r
6099 $LN54@inflate:\r
6100 \r
6101 ; 1163 :             }\r
6102 ; 1164 :             if (copy > left) copy = left;\r
6103 \r
6104   0114f 8b 4d f0         mov     ecx, DWORD PTR _left$[ebp]\r
6105   01152 3b c1            cmp     eax, ecx\r
6106   01154 76 05            jbe     SHORT $LN53@inflate\r
6107   01156 8b c1            mov     eax, ecx\r
6108   01158 89 45 f4         mov     DWORD PTR _copy$[ebp], eax\r
6109 $LN53@inflate:\r
6110 \r
6111 ; 1165 :             left -= copy;\r
6112 \r
6113   0115b 2b c8            sub     ecx, eax\r
6114   0115d 89 4d f0         mov     DWORD PTR _left$[ebp], ecx\r
6115 \r
6116 ; 1166 :             state->length -= copy;\r
6117 \r
6118   01160 8b 4d dc         mov     ecx, DWORD PTR tv2131[ebp]\r
6119   01163 2b c8            sub     ecx, eax\r
6120 \r
6121 ; 1169 :             } while (--copy);\r
6122 \r
6123   01165 8b 45 e8         mov     eax, DWORD PTR _put$[ebp]\r
6124   01168 89 4f 40         mov     DWORD PTR [edi+64], ecx\r
6125   0116b 8b 4d d4         mov     ecx, DWORD PTR _from$[ebp]\r
6126   0116e 2b 4d e8         sub     ecx, DWORD PTR _put$[ebp]\r
6127   01171 89 4d d4         mov     DWORD PTR tv3076[ebp], ecx\r
6128   01174 eb 03            jmp     SHORT $LN52@inflate\r
6129 $LL739@inflate:\r
6130   01176 8b 4d d4         mov     ecx, DWORD PTR tv3076[ebp]\r
6131 $LN52@inflate:\r
6132 \r
6133 ; 1167 :             do {\r
6134 ; 1168 :                 *put++ = *from++;\r
6135 \r
6136   01179 8a 0c 01         mov     cl, BYTE PTR [ecx+eax]\r
6137   0117c 8b 45 e8         mov     eax, DWORD PTR _put$[ebp]\r
6138   0117f 88 08            mov     BYTE PTR [eax], cl\r
6139   01181 40               inc     eax\r
6140 \r
6141 ; 1169 :             } while (--copy);\r
6142 \r
6143   01182 ff 4d f4         dec     DWORD PTR _copy$[ebp]\r
6144   01185 89 45 e8         mov     DWORD PTR _put$[ebp], eax\r
6145   01188 75 ec            jne     SHORT $LL739@inflate\r
6146 \r
6147 ; 1170 :             if (state->length == 0) state->mode = LEN;\r
6148 \r
6149   0118a 83 7f 40 00      cmp     DWORD PTR [edi+64], 0\r
6150   0118e 0f 85 43 01 00\r
6151         00               jne     $LN490@inflate\r
6152   01194 c7 07 14 00 00\r
6153         00               mov     DWORD PTR [edi], 20    ; 00000014H\r
6154 \r
6155 ; 1171 :             break;\r
6156 \r
6157   0119a e9 38 01 00 00   jmp     $LN490@inflate\r
6158 $LN48@inflate:\r
6159 \r
6160 ; 1172 :         case LIT:\r
6161 ; 1173 :             if (left == 0) goto inf_leave;\r
6162 \r
6163   0119f 83 7d f0 00      cmp     DWORD PTR _left$[ebp], 0\r
6164   011a3 0f 84 8c 01 00\r
6165         00               je      $inf_leave$80408\r
6166 \r
6167 ; 1174 :             *put++ = (unsigned char)(state->length);\r
6168 \r
6169   011a9 8b 45 e8         mov     eax, DWORD PTR _put$[ebp]\r
6170   011ac 8a 4f 40         mov     cl, BYTE PTR [edi+64]\r
6171   011af 88 08            mov     BYTE PTR [eax], cl\r
6172   011b1 40               inc     eax\r
6173 \r
6174 ; 1175 :             left--;\r
6175 \r
6176   011b2 ff 4d f0         dec     DWORD PTR _left$[ebp]\r
6177   011b5 89 45 e8         mov     DWORD PTR _put$[ebp], eax\r
6178 \r
6179 ; 1176 :             state->mode = LEN;\r
6180 \r
6181   011b8 c7 07 14 00 00\r
6182         00               mov     DWORD PTR [edi], 20    ; 00000014H\r
6183 \r
6184 ; 1177 :             break;\r
6185 \r
6186   011be e9 14 01 00 00   jmp     $LN490@inflate\r
6187 $LN46@inflate:\r
6188 \r
6189 ; 1178 :         case CHECK:\r
6190 ; 1179 :             if (state->wrap) {\r
6191 \r
6192   011c3 83 7f 08 00      cmp     DWORD PTR [edi+8], 0\r
6193   011c7 0f 84 ac 00 00\r
6194         00               je      $LN31@inflate\r
6195 \r
6196 ; 1180 :                 NEEDBITS(32);\r
6197 \r
6198   011cd 83 fe 20         cmp     esi, 32                        ; 00000020H\r
6199   011d0 73 22            jae     SHORT $LN43@inflate\r
6200 $LL41@inflate:\r
6201   011d2 83 7d fc 00      cmp     DWORD PTR _have$[ebp], 0\r
6202   011d6 0f 84 59 01 00\r
6203         00               je      $inf_leave$80408\r
6204   011dc 0f b6 02         movzx   eax, BYTE PTR [edx]\r
6205   011df ff 4d fc         dec     DWORD PTR _have$[ebp]\r
6206   011e2 8b ce            mov     ecx, esi\r
6207   011e4 d3 e0            shl     eax, cl\r
6208   011e6 42               inc     edx\r
6209   011e7 83 c6 08         add     esi, 8\r
6210   011ea 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
6211   011ed 03 d8            add     ebx, eax\r
6212   011ef 83 fe 20         cmp     esi, 32                        ; 00000020H\r
6213   011f2 72 de            jb      SHORT $LL41@inflate\r
6214 $LN43@inflate:\r
6215 \r
6216 ; 1181 :                 out -= left;\r
6217 \r
6218   011f4 8b 45 e0         mov     eax, DWORD PTR _out$[ebp]\r
6219   011f7 2b 45 f0         sub     eax, DWORD PTR _left$[ebp]\r
6220 \r
6221 ; 1182 :                 strm->total_out += out;\r
6222 \r
6223   011fa 8b 4d 08         mov     ecx, DWORD PTR _strm$[ebp]\r
6224   011fd 01 41 14         add     DWORD PTR [ecx+20], eax\r
6225 \r
6226 ; 1183 :                 state->total += out;\r
6227 \r
6228   01200 01 47 1c         add     DWORD PTR [edi+28], eax\r
6229   01203 89 45 e0         mov     DWORD PTR _out$[ebp], eax\r
6230 \r
6231 ; 1184 :                 if (out)\r
6232 \r
6233   01206 85 c0            test    eax, eax\r
6234   01208 74 29            je      SHORT $LN35@inflate\r
6235 \r
6236 ; 1185 :                     strm->adler = state->check =\r
6237 ; 1186 :                         UPDATE(state->check, put - out, out);\r
6238 \r
6239   0120a 8b 4d e8         mov     ecx, DWORD PTR _put$[ebp]\r
6240   0120d 8b 57 18         mov     edx, DWORD PTR [edi+24]\r
6241   01210 50               push    eax\r
6242   01211 2b c8            sub     ecx, eax\r
6243   01213 83 7f 10 00      cmp     DWORD PTR [edi+16], 0\r
6244   01217 51               push    ecx\r
6245   01218 52               push    edx\r
6246   01219 74 07            je      SHORT $LN504@inflate\r
6247   0121b e8 00 00 00 00   call    _crc32@12\r
6248   01220 eb 05            jmp     SHORT $LN505@inflate\r
6249 $LN504@inflate:\r
6250   01222 e8 00 00 00 00   call    _adler32@12\r
6251 $LN505@inflate:\r
6252   01227 8b 4d 08         mov     ecx, DWORD PTR _strm$[ebp]\r
6253   0122a 8b 55 f8         mov     edx, DWORD PTR _next$[ebp]\r
6254   0122d 89 47 18         mov     DWORD PTR [edi+24], eax\r
6255   01230 89 41 30         mov     DWORD PTR [ecx+48], eax\r
6256 $LN35@inflate:\r
6257 \r
6258 ; 1187 :                 out = left;\r
6259 ; 1188 :                 if ((\r
6260 ; 1189 : #ifdef GUNZIP\r
6261 ; 1190 :                      state->flags ? hold :\r
6262 ; 1191 : #endif\r
6263 ; 1192 :                      REVERSE(hold)) != state->check) {\r
6264 \r
6265   01233 83 7f 10 00      cmp     DWORD PTR [edi+16], 0\r
6266   01237 8b 45 f0         mov     eax, DWORD PTR _left$[ebp]\r
6267   0123a 89 45 e0         mov     DWORD PTR _out$[ebp], eax\r
6268   0123d 8b c3            mov     eax, ebx\r
6269   0123f 75 23            jne     SHORT $LN507@inflate\r
6270   01241 25 00 ff 00 00   and     eax, 65280             ; 0000ff00H\r
6271   01246 8b cb            mov     ecx, ebx\r
6272   01248 c1 e1 10         shl     ecx, 16                        ; 00000010H\r
6273   0124b 03 c1            add     eax, ecx\r
6274   0124d 8b cb            mov     ecx, ebx\r
6275   0124f c1 e9 08         shr     ecx, 8\r
6276   01252 81 e1 00 ff 00\r
6277         00               and     ecx, 65280             ; 0000ff00H\r
6278   01258 c1 e0 08         shl     eax, 8\r
6279   0125b 03 c1            add     eax, ecx\r
6280   0125d 8b cb            mov     ecx, ebx\r
6281   0125f c1 e9 18         shr     ecx, 24                        ; 00000018H\r
6282   01262 03 c1            add     eax, ecx\r
6283 $LN507@inflate:\r
6284   01264 3b 47 18         cmp     eax, DWORD PTR [edi+24]\r
6285   01267 74 0c            je      SHORT $LN33@inflate\r
6286 \r
6287 ; 1193 :                     strm->msg = (char *)"incorrect data check";\r
6288 \r
6289   01269 8b 45 08         mov     eax, DWORD PTR _strm$[ebp]\r
6290   0126c c7 40 18 00 00\r
6291         00 00            mov     DWORD PTR [eax+24], OFFSET ??_C@_0BF@MEIGEHBE@incorrect?5data?5check?$AA@\r
6292 \r
6293 ; 1194 :                     state->mode = BAD;\r
6294 ; 1195 :                     break;\r
6295 \r
6296   01273 eb 5c            jmp     SHORT $LN786@inflate\r
6297 $LN33@inflate:\r
6298 \r
6299 ; 1196 :                 }\r
6300 ; 1197 :                 INITBITS();\r
6301 \r
6302   01275 33 db            xor     ebx, ebx\r
6303   01277 33 f6            xor     esi, esi\r
6304 $LN31@inflate:\r
6305 \r
6306 ; 1198 :                 Tracev((stderr, "inflate:   check matches trailer\n"));\r
6307 ; 1199 :             }\r
6308 ; 1200 : #ifdef GUNZIP\r
6309 ; 1201 :             state->mode = LENGTH;\r
6310 \r
6311   01279 c7 07 1b 00 00\r
6312         00               mov     DWORD PTR [edi], 27    ; 0000001bH\r
6313 $LN742@inflate:\r
6314 \r
6315 ; 1202 :         case LENGTH:\r
6316 ; 1203 :             if (state->wrap && state->flags) {\r
6317 \r
6318   0127f 83 7f 08 00      cmp     DWORD PTR [edi+8], 0\r
6319   01283 0f 84 96 00 00\r
6320         00               je      $LN16@inflate\r
6321   01289 83 7f 10 00      cmp     DWORD PTR [edi+16], 0\r
6322   0128d 0f 84 8c 00 00\r
6323         00               je      $LN16@inflate\r
6324 \r
6325 ; 1204 :                 NEEDBITS(32);\r
6326 \r
6327   01293 83 fe 20         cmp     esi, 32                        ; 00000020H\r
6328   01296 73 2a            jae     SHORT $LN27@inflate\r
6329   01298 eb 06 8d 9b 00\r
6330         00 00 00         npad    8\r
6331 $LL25@inflate:\r
6332   012a0 83 7d fc 00      cmp     DWORD PTR _have$[ebp], 0\r
6333   012a4 0f 84 8b 00 00\r
6334         00               je      $inf_leave$80408\r
6335   012aa 0f b6 02         movzx   eax, BYTE PTR [edx]\r
6336   012ad ff 4d fc         dec     DWORD PTR _have$[ebp]\r
6337   012b0 8b ce            mov     ecx, esi\r
6338   012b2 d3 e0            shl     eax, cl\r
6339   012b4 42               inc     edx\r
6340   012b5 83 c6 08         add     esi, 8\r
6341   012b8 89 55 f8         mov     DWORD PTR _next$[ebp], edx\r
6342   012bb 03 d8            add     ebx, eax\r
6343   012bd 83 fe 20         cmp     esi, 32                        ; 00000020H\r
6344   012c0 72 de            jb      SHORT $LL25@inflate\r
6345 $LN27@inflate:\r
6346 \r
6347 ; 1205 :                 if (hold != (state->total & 0xffffffffUL)) {\r
6348 \r
6349   012c2 3b 5f 1c         cmp     ebx, DWORD PTR [edi+28]\r
6350   012c5 74 54            je      SHORT $LN18@inflate\r
6351 \r
6352 ; 1206 :                     strm->msg = (char *)"incorrect length check";\r
6353 \r
6354   012c7 8b 4d 08         mov     ecx, DWORD PTR _strm$[ebp]\r
6355   012ca c7 41 18 00 00\r
6356         00 00            mov     DWORD PTR [ecx+24], OFFSET ??_C@_0BH@FGKKJGOC@incorrect?5length?5check?$AA@\r
6357 $LN786@inflate:\r
6358 \r
6359 ; 1207 :                     state->mode = BAD;\r
6360 \r
6361   012d1 c7 07 1d 00 00\r
6362         00               mov     DWORD PTR [edi], 29    ; 0000001dH\r
6363 $LN490@inflate:\r
6364 \r
6365 ; 640  :     out = left;\r
6366 ; 641  :     ret = Z_OK;\r
6367 ; 642  :     for (;;)\r
6368 ; 643  :         switch (state->mode) {\r
6369 \r
6370   012d7 8b 07            mov     eax, DWORD PTR [edi]\r
6371   012d9 83 f8 1e         cmp     eax, 30                        ; 0000001eH\r
6372   012dc 0f 86 96 ed ff\r
6373         ff               jbe     $LL493@inflate\r
6374 $LN12@inflate:\r
6375 \r
6376 ; 1220 :             goto inf_leave;\r
6377 ; 1221 :         case MEM:\r
6378 ; 1222 :             return Z_MEM_ERROR;\r
6379 ; 1223 :         case SYNC:\r
6380 ; 1224 :         default:\r
6381 ; 1225 :             return Z_STREAM_ERROR;\r
6382 \r
6383   012e2 b8 fe ff ff ff   mov     eax, -2                        ; fffffffeH\r
6384 $LN780@inflate:\r
6385   012e7 5e               pop     esi\r
6386   012e8 5b               pop     ebx\r
6387   012e9 5f               pop     edi\r
6388 \r
6389 ; 1255 :     return ret;\r
6390 ; 1256 : }\r
6391 \r
6392   012ea 8b e5            mov     esp, ebp\r
6393   012ec 5d               pop     ebp\r
6394   012ed c2 08 00         ret     8\r
6395 $LN579@inflate:\r
6396 \r
6397 ; 825  :                 RESTORE();\r
6398 \r
6399   012f0 8b 45 08         mov     eax, DWORD PTR _strm$[ebp]\r
6400   012f3 8b 4d e8         mov     ecx, DWORD PTR _put$[ebp]\r
6401   012f6 89 48 0c         mov     DWORD PTR [eax+12], ecx\r
6402   012f9 8b 4d f0         mov     ecx, DWORD PTR _left$[ebp]\r
6403   012fc 89 10            mov     DWORD PTR [eax], edx\r
6404   012fe 8b 55 fc         mov     edx, DWORD PTR _have$[ebp]\r
6405   01301 89 48 10         mov     DWORD PTR [eax+16], ecx\r
6406   01304 89 50 04         mov     DWORD PTR [eax+4], edx\r
6407   01307 89 77 3c         mov     DWORD PTR [edi+60], esi\r
6408   0130a 5e               pop     esi\r
6409   0130b 89 5f 38         mov     DWORD PTR [edi+56], ebx\r
6410   0130e 5b               pop     ebx\r
6411 \r
6412 ; 826  :                 return Z_NEED_DICT;\r
6413 \r
6414   0130f b8 02 00 00 00   mov     eax, 2\r
6415   01314 5f               pop     edi\r
6416 \r
6417 ; 1255 :     return ret;\r
6418 ; 1256 : }\r
6419 \r
6420   01315 8b e5            mov     esp, ebp\r
6421   01317 5d               pop     ebp\r
6422   01318 c2 08 00         ret     8\r
6423 $LN18@inflate:\r
6424 \r
6425 ; 1208 :                     break;\r
6426 ; 1209 :                 }\r
6427 ; 1210 :                 INITBITS();\r
6428 \r
6429   0131b 33 db            xor     ebx, ebx\r
6430   0131d 33 f6            xor     esi, esi\r
6431 $LN16@inflate:\r
6432 \r
6433 ; 1211 :                 Tracev((stderr, "inflate:   length matches trailer\n"));\r
6434 ; 1212 :             }\r
6435 ; 1213 : #endif\r
6436 ; 1214 :             state->mode = DONE;\r
6437 \r
6438   0131f c7 07 1c 00 00\r
6439         00               mov     DWORD PTR [edi], 28    ; 0000001cH\r
6440 $LN747@inflate:\r
6441 \r
6442 ; 1215 :         case DONE:\r
6443 ; 1216 :             ret = Z_STREAM_END;\r
6444 \r
6445   01325 c7 45 d8 01 00\r
6446         00 00            mov     DWORD PTR _ret$[ebp], 1\r
6447 \r
6448 ; 1217 :             goto inf_leave;\r
6449 \r
6450   0132c eb 07            jmp     SHORT $inf_leave$80408\r
6451 $LN14@inflate:\r
6452 \r
6453 ; 1218 :         case BAD:\r
6454 ; 1219 :             ret = Z_DATA_ERROR;\r
6455 \r
6456   0132e c7 45 d8 fd ff\r
6457         ff ff            mov     DWORD PTR _ret$[ebp], -3 ; fffffffdH\r
6458 $inf_leave$80408:\r
6459 \r
6460 ; 1226 :         }\r
6461 ; 1227 : \r
6462 ; 1228 :     /*\r
6463 ; 1229 :        Return from inflate(), updating the total counts and the check value.\r
6464 ; 1230 :        If there was no progress during the inflate() call, return a buffer\r
6465 ; 1231 :        error.  Call updatewindow() to create and/or update the window state.\r
6466 ; 1232 :        Note: a memory error from inflate() is non-recoverable.\r
6467 ; 1233 :      */\r
6468 ; 1234 :   inf_leave:\r
6469 ; 1235 :     RESTORE();\r
6470 \r
6471   01335 8b 45 08         mov     eax, DWORD PTR _strm$[ebp]\r
6472   01338 8b 4d e8         mov     ecx, DWORD PTR _put$[ebp]\r
6473   0133b 89 48 0c         mov     DWORD PTR [eax+12], ecx\r
6474   0133e 8b 4d f0         mov     ecx, DWORD PTR _left$[ebp]\r
6475   01341 89 10            mov     DWORD PTR [eax], edx\r
6476   01343 8b 55 fc         mov     edx, DWORD PTR _have$[ebp]\r
6477   01346 89 48 10         mov     DWORD PTR [eax+16], ecx\r
6478   01349 89 50 04         mov     DWORD PTR [eax+4], edx\r
6479 \r
6480 ; 1236 :     if (state->wsize || (out != strm->avail_out && state->mode < BAD &&\r
6481 ; 1237 :             (state->mode < CHECK || flush != Z_FINISH)))\r
6482 \r
6483   0134c 83 7f 28 00      cmp     DWORD PTR [edi+40], 0\r
6484   01350 89 5f 38         mov     DWORD PTR [edi+56], ebx\r
6485   01353 89 77 3c         mov     DWORD PTR [edi+60], esi\r
6486   01356 75 1a            jne     SHORT $LN6@inflate\r
6487   01358 8b 4d e0         mov     ecx, DWORD PTR _out$[ebp]\r
6488   0135b 3b 48 10         cmp     ecx, DWORD PTR [eax+16]\r
6489   0135e 74 35            je      SHORT $LN704@inflate\r
6490   01360 8b 07            mov     eax, DWORD PTR [edi]\r
6491   01362 83 f8 1d         cmp     eax, 29                        ; 0000001dH\r
6492   01365 7d 2e            jge     SHORT $LN704@inflate\r
6493   01367 83 f8 1a         cmp     eax, 26                        ; 0000001aH\r
6494   0136a 7c 06            jl      SHORT $LN6@inflate\r
6495   0136c 83 7d 0c 04      cmp     DWORD PTR _flush$[ebp], 4\r
6496   01370 74 23            je      SHORT $LN704@inflate\r
6497 $LN6@inflate:\r
6498 \r
6499 ; 1238 :         if (updatewindow(strm, out)) {\r
6500 \r
6501   01372 8b 45 e0         mov     eax, DWORD PTR _out$[ebp]\r
6502   01375 8b 5d 08         mov     ebx, DWORD PTR _strm$[ebp]\r
6503   01378 e8 00 00 00 00   call    _updatewindow\r
6504   0137d 85 c0            test    eax, eax\r
6505   0137f 74 14            je      SHORT $LN704@inflate\r
6506 \r
6507 ; 1239 :             state->mode = MEM;\r
6508 \r
6509   01381 c7 07 1e 00 00\r
6510         00               mov     DWORD PTR [edi], 30    ; 0000001eH\r
6511 $LN13@inflate:\r
6512   01387 5e               pop     esi\r
6513   01388 5b               pop     ebx\r
6514 \r
6515 ; 1240 :             return Z_MEM_ERROR;\r
6516 \r
6517   01389 b8 fc ff ff ff   mov     eax, -4                        ; fffffffcH\r
6518   0138e 5f               pop     edi\r
6519 \r
6520 ; 1255 :     return ret;\r
6521 ; 1256 : }\r
6522 \r
6523   0138f 8b e5            mov     esp, ebp\r
6524   01391 5d               pop     ebp\r
6525   01392 c2 08 00         ret     8\r
6526 $LN704@inflate:\r
6527 \r
6528 ; 1241 :         }\r
6529 ; 1242 :     in -= strm->avail_in;\r
6530 \r
6531   01395 8b 75 08         mov     esi, DWORD PTR _strm$[ebp]\r
6532   01398 8b 45 d0         mov     eax, DWORD PTR _in$[ebp]\r
6533   0139b 2b 46 04         sub     eax, DWORD PTR [esi+4]\r
6534 \r
6535 ; 1243 :     out -= strm->avail_out;\r
6536 \r
6537   0139e 8b 5d e0         mov     ebx, DWORD PTR _out$[ebp]\r
6538   013a1 2b 5e 10         sub     ebx, DWORD PTR [esi+16]\r
6539 \r
6540 ; 1244 :     strm->total_in += in;\r
6541 \r
6542   013a4 01 46 08         add     DWORD PTR [esi+8], eax\r
6543 \r
6544 ; 1245 :     strm->total_out += out;\r
6545 \r
6546   013a7 01 5e 14         add     DWORD PTR [esi+20], ebx\r
6547 \r
6548 ; 1246 :     state->total += out;\r
6549 \r
6550   013aa 01 5f 1c         add     DWORD PTR [edi+28], ebx\r
6551 \r
6552 ; 1247 :     if (state->wrap && out)\r
6553 \r
6554   013ad 83 7f 08 00      cmp     DWORD PTR [edi+8], 0\r
6555   013b1 89 45 d0         mov     DWORD PTR _in$[ebp], eax\r
6556   013b4 74 31            je      SHORT $LN4@inflate\r
6557   013b6 85 db            test    ebx, ebx\r
6558   013b8 74 2d            je      SHORT $LN4@inflate\r
6559 \r
6560 ; 1248 :         strm->adler = state->check =\r
6561 ; 1249 :             UPDATE(state->check, strm->next_out - out, out);\r
6562 \r
6563   013ba 83 7f 10 00      cmp     DWORD PTR [edi+16], 0\r
6564   013be 53               push    ebx\r
6565   013bf 74 11            je      SHORT $LN508@inflate\r
6566   013c1 8b 56 0c         mov     edx, DWORD PTR [esi+12]\r
6567   013c4 8b 47 18         mov     eax, DWORD PTR [edi+24]\r
6568   013c7 2b d3            sub     edx, ebx\r
6569   013c9 52               push    edx\r
6570   013ca 50               push    eax\r
6571   013cb e8 00 00 00 00   call    _crc32@12\r
6572   013d0 eb 0f            jmp     SHORT $LN509@inflate\r
6573 $LN508@inflate:\r
6574   013d2 8b 4e 0c         mov     ecx, DWORD PTR [esi+12]\r
6575   013d5 8b 57 18         mov     edx, DWORD PTR [edi+24]\r
6576   013d8 2b cb            sub     ecx, ebx\r
6577   013da 51               push    ecx\r
6578   013db 52               push    edx\r
6579   013dc e8 00 00 00 00   call    _adler32@12\r
6580 $LN509@inflate:\r
6581   013e1 89 47 18         mov     DWORD PTR [edi+24], eax\r
6582   013e4 89 46 30         mov     DWORD PTR [esi+48], eax\r
6583 $LN4@inflate:\r
6584 \r
6585 ; 1250 :     strm->data_type = state->bits + (state->last ? 64 : 0) +\r
6586 ; 1251 :                       (state->mode == TYPE ? 128 : 0) +\r
6587 ; 1252 :                       (state->mode == LEN_ || state->mode == COPY_ ? 256 : 0);\r
6588 \r
6589   013e7 8b 07            mov     eax, DWORD PTR [edi]\r
6590   013e9 83 f8 13         cmp     eax, 19                        ; 00000013H\r
6591   013ec 74 0c            je      SHORT $LN510@inflate\r
6592   013ee c7 45 08 00 00\r
6593         00 00            mov     DWORD PTR tv1321[ebp], 0\r
6594   013f5 83 f8 0e         cmp     eax, 14                        ; 0000000eH\r
6595   013f8 75 07            jne     SHORT $LN511@inflate\r
6596 $LN510@inflate:\r
6597   013fa c7 45 08 00 01\r
6598         00 00            mov     DWORD PTR tv1321[ebp], 256 ; 00000100H\r
6599 $LN511@inflate:\r
6600   01401 8b 4f 04         mov     ecx, DWORD PTR [edi+4]\r
6601   01404 f7 d9            neg     ecx\r
6602   01406 1b c9            sbb     ecx, ecx\r
6603   01408 33 d2            xor     edx, edx\r
6604   0140a 83 e1 40         and     ecx, 64                        ; 00000040H\r
6605   0140d 83 f8 0b         cmp     eax, 11                        ; 0000000bH\r
6606   01410 0f 95 c2         setne   dl\r
6607   01413 03 4d 08         add     ecx, DWORD PTR tv1321[ebp]\r
6608   01416 4a               dec     edx\r
6609   01417 81 e2 80 00 00\r
6610         00               and     edx, 128               ; 00000080H\r
6611   0141d 03 d1            add     edx, ecx\r
6612   0141f 03 57 3c         add     edx, DWORD PTR [edi+60]\r
6613 \r
6614 ; 1253 :     if (((in == 0 && out == 0) || flush == Z_FINISH) && ret == Z_OK)\r
6615 \r
6616   01422 83 7d d0 00      cmp     DWORD PTR _in$[ebp], 0\r
6617   01426 89 56 2c         mov     DWORD PTR [esi+44], edx\r
6618   01429 75 04            jne     SHORT $LN1@inflate\r
6619   0142b 85 db            test    ebx, ebx\r
6620   0142d 74 06            je      SHORT $LN2@inflate\r
6621 $LN1@inflate:\r
6622   0142f 83 7d 0c 04      cmp     DWORD PTR _flush$[ebp], 4\r
6623   01433 75 19            jne     SHORT $LN705@inflate\r
6624 $LN2@inflate:\r
6625   01435 8b 45 d8         mov     eax, DWORD PTR _ret$[ebp]\r
6626   01438 85 c0            test    eax, eax\r
6627   0143a 0f 85 a7 fe ff\r
6628         ff               jne     $LN780@inflate\r
6629 \r
6630 ; 1254 :         ret = Z_BUF_ERROR;\r
6631 \r
6632   01440 5e               pop     esi\r
6633   01441 5b               pop     ebx\r
6634   01442 b8 fb ff ff ff   mov     eax, -5                        ; fffffffbH\r
6635   01447 5f               pop     edi\r
6636 \r
6637 ; 1255 :     return ret;\r
6638 ; 1256 : }\r
6639 \r
6640   01448 8b e5            mov     esp, ebp\r
6641   0144a 5d               pop     ebp\r
6642   0144b c2 08 00         ret     8\r
6643 $LN705@inflate:\r
6644 \r
6645 ; 1254 :         ret = Z_BUF_ERROR;\r
6646 \r
6647   0144e 8b 45 d8         mov     eax, DWORD PTR _ret$[ebp]\r
6648   01451 5e               pop     esi\r
6649   01452 5b               pop     ebx\r
6650   01453 5f               pop     edi\r
6651 \r
6652 ; 1255 :     return ret;\r
6653 ; 1256 : }\r
6654 \r
6655   01454 8b e5            mov     esp, ebp\r
6656   01456 5d               pop     ebp\r
6657   01457 c2 08 00         ret     8\r
6658 $LN498@inflate:\r
6659 \r
6660 ; 634  :         return Z_STREAM_ERROR;\r
6661 \r
6662   0145a b8 fe ff ff ff   mov     eax, -2                        ; fffffffeH\r
6663   0145f 5f               pop     edi\r
6664 \r
6665 ; 1255 :     return ret;\r
6666 ; 1256 : }\r
6667 \r
6668   01460 8b e5            mov     esp, ebp\r
6669   01462 5d               pop     ebp\r
6670   01463 c2 08 00         ret     8\r
6671   01466 8b ff            npad    2\r
6672 $LN787@inflate:\r
6673   01468 00 00 00 00      DD      $LN489@inflate\r
6674   0146c 00 00 00 00      DD      $LN457@inflate\r
6675   01470 00 00 00 00      DD      $LN437@inflate\r
6676   01474 00 00 00 00      DD      $LN419@inflate\r
6677   01478 00 00 00 00      DD      $LN713@inflate\r
6678   0147c 00 00 00 00      DD      $LN715@inflate\r
6679   01480 00 00 00 00      DD      $LN716@inflate\r
6680   01484 00 00 00 00      DD      $LN720@inflate\r
6681   01488 00 00 00 00      DD      $LN724@inflate\r
6682   0148c 00 00 00 00      DD      $LN333@inflate\r
6683   01490 00 00 00 00      DD      $LN726@inflate\r
6684   01494 00 00 00 00      DD      $LN316@inflate\r
6685   01498 00 00 00 00      DD      $LN315@inflate\r
6686   0149c 00 00 00 00      DD      $LN282@inflate\r
6687   014a0 00 00 00 00      DD      $LN266@inflate\r
6688   014a4 00 00 00 00      DD      $LN264@inflate\r
6689   014a8 00 00 00 00      DD      $LN258@inflate\r
6690   014ac 00 00 00 00      DD      $LN730@inflate\r
6691   014b0 00 00 00 00      DD      $LN528@inflate\r
6692   014b4 00 00 00 00      DD      $LN148@inflate\r
6693   014b8 00 00 00 00      DD      $LN146@inflate\r
6694   014bc 00 00 00 00      DD      $LN699@inflate\r
6695   014c0 00 00 00 00      DD      $LN700@inflate\r
6696   014c4 00 00 00 00      DD      $LN701@inflate\r
6697   014c8 00 00 00 00      DD      $LN702@inflate\r
6698   014cc 00 00 00 00      DD      $LN48@inflate\r
6699   014d0 00 00 00 00      DD      $LN46@inflate\r
6700   014d4 00 00 00 00      DD      $LN742@inflate\r
6701   014d8 00 00 00 00      DD      $LN747@inflate\r
6702   014dc 00 00 00 00      DD      $LN14@inflate\r
6703   014e0 00 00 00 00      DD      $LN13@inflate\r
6704 $LN788@inflate:\r
6705   014e4 00 00 00 00      DD      $LN294@inflate\r
6706   014e8 00 00 00 00      DD      $LN293@inflate\r
6707   014ec 00 00 00 00      DD      $LN288@inflate\r
6708   014f0 00 00 00 00      DD      $LN287@inflate\r
6709 _inflate@8 ENDP\r
6710 _TEXT   ENDS\r
6711 PUBLIC  _inflateReset@4\r
6712 ; Function compile flags: /Ogtp\r
6713 ;       COMDAT _inflateReset@4\r
6714 _TEXT   SEGMENT\r
6715 _strm$ = 8                                              ; size = 4\r
6716 _inflateReset@4 PROC                                    ; COMDAT\r
6717 \r
6718 ; 130  : {\r
6719 \r
6720   00000 55               push    ebp\r
6721   00001 8b ec            mov     ebp, esp\r
6722 \r
6723 ; 131  :     struct inflate_state FAR *state;\r
6724 ; 132  : \r
6725 ; 133  :     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;\r
6726 \r
6727   00003 8b 4d 08         mov     ecx, DWORD PTR _strm$[ebp]\r
6728   00006 33 d2            xor     edx, edx\r
6729   00008 3b ca            cmp     ecx, edx\r
6730   0000a 74 1a            je      SHORT $LN1@inflateRes@2\r
6731   0000c 8b 41 1c         mov     eax, DWORD PTR [ecx+28]\r
6732   0000f 3b c2            cmp     eax, edx\r
6733   00011 74 13            je      SHORT $LN1@inflateRes@2\r
6734 \r
6735 ; 134  :     state = (struct inflate_state FAR *)strm->state;\r
6736 ; 135  :     state->wsize = 0;\r
6737 ; 136  :     state->whave = 0;\r
6738 ; 137  :     state->wnext = 0;\r
6739 ; 138  :     return inflateResetKeep(strm);\r
6740 \r
6741   00013 51               push    ecx\r
6742   00014 89 50 28         mov     DWORD PTR [eax+40], edx\r
6743   00017 89 50 2c         mov     DWORD PTR [eax+44], edx\r
6744   0001a 89 50 30         mov     DWORD PTR [eax+48], edx\r
6745   0001d e8 00 00 00 00   call    _inflateResetKeep@4\r
6746 \r
6747 ; 139  : }\r
6748 \r
6749   00022 5d               pop     ebp\r
6750   00023 c2 04 00         ret     4\r
6751 $LN1@inflateRes@2:\r
6752 \r
6753 ; 131  :     struct inflate_state FAR *state;\r
6754 ; 132  : \r
6755 ; 133  :     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;\r
6756 \r
6757   00026 b8 fe ff ff ff   mov     eax, -2                        ; fffffffeH\r
6758 \r
6759 ; 139  : }\r
6760 \r
6761   0002b 5d               pop     ebp\r
6762   0002c c2 04 00         ret     4\r
6763 _inflateReset@4 ENDP\r
6764 PUBLIC  _inflateSync@4\r
6765 ; Function compile flags: /Ogtp\r
6766 ;       COMDAT _inflateSync@4\r
6767 _TEXT   SEGMENT\r
6768 _out$ = 8                                               ; size = 4\r
6769 _buf$ = 8                                               ; size = 4\r
6770 _strm$ = 8                                              ; size = 4\r
6771 _inflateSync@4 PROC                                     ; COMDAT\r
6772 \r
6773 ; 1368 : {\r
6774 \r
6775   00000 55               push    ebp\r
6776   00001 8b ec            mov     ebp, esp\r
6777   00003 53               push    ebx\r
6778 \r
6779 ; 1369 :     unsigned len;               /* number of bytes to look at or looked at */\r
6780 ; 1370 :     unsigned long in, out;      /* temporary to save total_in and total_out */\r
6781 ; 1371 :     unsigned char buf[4];       /* to restore bit buffer to byte string */\r
6782 ; 1372 :     struct inflate_state FAR *state;\r
6783 ; 1373 : \r
6784 ; 1374 :     /* check parameters */\r
6785 ; 1375 :     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;\r
6786 \r
6787   00004 8b 5d 08         mov     ebx, DWORD PTR _strm$[ebp]\r
6788   00007 57               push    edi\r
6789   00008 85 db            test    ebx, ebx\r
6790   0000a 0f 84 d2 00 00\r
6791         00               je      $LN6@inflateSyn@2\r
6792   00010 8b 7b 1c         mov     edi, DWORD PTR [ebx+28]\r
6793   00013 85 ff            test    edi, edi\r
6794   00015 0f 84 c7 00 00\r
6795         00               je      $LN6@inflateSyn@2\r
6796 \r
6797 ; 1376 :     state = (struct inflate_state FAR *)strm->state;\r
6798 ; 1377 :     if (strm->avail_in == 0 && state->bits < 8) return Z_BUF_ERROR;\r
6799 \r
6800   0001b 83 7b 04 00      cmp     DWORD PTR [ebx+4], 0\r
6801   0001f 75 11            jne     SHORT $LN5@inflateSyn@2\r
6802   00021 83 7f 3c 08      cmp     DWORD PTR [edi+60], 8\r
6803   00025 73 0b            jae     SHORT $LN5@inflateSyn@2\r
6804   00027 5f               pop     edi\r
6805   00028 b8 fb ff ff ff   mov     eax, -5                        ; fffffffbH\r
6806   0002d 5b               pop     ebx\r
6807 \r
6808 ; 1407 : }\r
6809 \r
6810   0002e 5d               pop     ebp\r
6811   0002f c2 04 00         ret     4\r
6812 $LN5@inflateSyn@2:\r
6813 \r
6814 ; 1378 : \r
6815 ; 1379 :     /* if first time, start search in bit buffer */\r
6816 ; 1380 :     if (state->mode != SYNC) {\r
6817 \r
6818   00032 83 3f 1f         cmp     DWORD PTR [edi], 31    ; 0000001fH\r
6819   00035 56               push    esi\r
6820   00036 74 57            je      SHORT $LN4@inflateSyn@2\r
6821 \r
6822 ; 1381 :         state->mode = SYNC;\r
6823 ; 1382 :         state->hold <<= state->bits & 7;\r
6824 \r
6825   00038 8b 47 3c         mov     eax, DWORD PTR [edi+60]\r
6826   0003b 8b c8            mov     ecx, eax\r
6827   0003d 83 e1 07         and     ecx, 7\r
6828   00040 d3 67 38         shl     DWORD PTR [edi+56], cl\r
6829 \r
6830 ; 1383 :         state->bits -= state->bits & 7;\r
6831 \r
6832   00043 2b c1            sub     eax, ecx\r
6833 \r
6834 ; 1384 :         len = 0;\r
6835 \r
6836   00045 33 c9            xor     ecx, ecx\r
6837   00047 c7 07 1f 00 00\r
6838         00               mov     DWORD PTR [edi], 31    ; 0000001fH\r
6839   0004d 89 47 3c         mov     DWORD PTR [edi+60], eax\r
6840 \r
6841 ; 1385 :         while (state->bits >= 8) {\r
6842 \r
6843   00050 83 f8 08         cmp     eax, 8\r
6844   00053 72 24            jb      SHORT $LN2@inflateSyn@2\r
6845   00055 8b 77 38         mov     esi, DWORD PTR [edi+56]\r
6846   00058 eb 06 8d 9b 00\r
6847         00 00 00         npad    8\r
6848 $LL3@inflateSyn@2:\r
6849 \r
6850 ; 1386 :             buf[len++] = (unsigned char)(state->hold);\r
6851 \r
6852   00060 8a 57 38         mov     dl, BYTE PTR [edi+56]\r
6853 \r
6854 ; 1387 :             state->hold >>= 8;\r
6855 ; 1388 :             state->bits -= 8;\r
6856 \r
6857   00063 83 e8 08         sub     eax, 8\r
6858   00066 88 54 0d 08      mov     BYTE PTR _buf$[ebp+ecx], dl\r
6859   0006a c1 ee 08         shr     esi, 8\r
6860   0006d 41               inc     ecx\r
6861   0006e 89 77 38         mov     DWORD PTR [edi+56], esi\r
6862   00071 89 47 3c         mov     DWORD PTR [edi+60], eax\r
6863   00074 83 f8 08         cmp     eax, 8\r
6864   00077 73 e7            jae     SHORT $LL3@inflateSyn@2\r
6865 $LN2@inflateSyn@2:\r
6866 \r
6867 ; 1389 :         }\r
6868 ; 1390 :         state->have = 0;\r
6869 \r
6870   00079 8d 47 68         lea     eax, DWORD PTR [edi+104]\r
6871 \r
6872 ; 1391 :         syncsearch(&(state->have), buf, len);\r
6873 \r
6874   0007c 51               push    ecx\r
6875   0007d 50               push    eax\r
6876   0007e 8d 75 08         lea     esi, DWORD PTR _buf$[ebp]\r
6877   00081 c7 00 00 00 00\r
6878         00               mov     DWORD PTR [eax], 0\r
6879   00087 e8 00 00 00 00   call    _syncsearch\r
6880   0008c 83 c4 08         add     esp, 8\r
6881 $LN4@inflateSyn@2:\r
6882 \r
6883 ; 1392 :     }\r
6884 ; 1393 : \r
6885 ; 1394 :     /* search available input */\r
6886 ; 1395 :     len = syncsearch(&(state->have), strm->next_in, strm->avail_in);\r
6887 \r
6888   0008f 8b 4b 04         mov     ecx, DWORD PTR [ebx+4]\r
6889   00092 8b 33            mov     esi, DWORD PTR [ebx]\r
6890   00094 8d 47 68         lea     eax, DWORD PTR [edi+104]\r
6891   00097 51               push    ecx\r
6892   00098 50               push    eax\r
6893   00099 e8 00 00 00 00   call    _syncsearch\r
6894 \r
6895 ; 1396 :     strm->avail_in -= len;\r
6896 ; 1397 :     strm->next_in += len;\r
6897 ; 1398 :     strm->total_in += len;\r
6898 \r
6899   0009e 01 43 08         add     DWORD PTR [ebx+8], eax\r
6900   000a1 29 43 04         sub     DWORD PTR [ebx+4], eax\r
6901   000a4 01 03            add     DWORD PTR [ebx], eax\r
6902   000a6 8b 73 08         mov     esi, DWORD PTR [ebx+8]\r
6903   000a9 83 c4 08         add     esp, 8\r
6904 \r
6905 ; 1399 : \r
6906 ; 1400 :     /* return no joy or set up to restart inflate() on a new block */\r
6907 ; 1401 :     if (state->have != 4) return Z_DATA_ERROR;\r
6908 \r
6909   000ac 83 7f 68 04      cmp     DWORD PTR [edi+104], 4\r
6910   000b0 74 0c            je      SHORT $LN1@inflateSyn@2\r
6911   000b2 5e               pop     esi\r
6912   000b3 5f               pop     edi\r
6913   000b4 b8 fd ff ff ff   mov     eax, -3                        ; fffffffdH\r
6914   000b9 5b               pop     ebx\r
6915 \r
6916 ; 1407 : }\r
6917 \r
6918   000ba 5d               pop     ebp\r
6919   000bb c2 04 00         ret     4\r
6920 $LN1@inflateSyn@2:\r
6921 \r
6922 ; 1402 :     in = strm->total_in;  out = strm->total_out;\r
6923 \r
6924   000be 8b 53 14         mov     edx, DWORD PTR [ebx+20]\r
6925 \r
6926 ; 1403 :     inflateReset(strm);\r
6927 \r
6928   000c1 53               push    ebx\r
6929   000c2 89 55 08         mov     DWORD PTR _out$[ebp], edx\r
6930   000c5 e8 00 00 00 00   call    _inflateReset@4\r
6931 \r
6932 ; 1404 :     strm->total_in = in;  strm->total_out = out;\r
6933 \r
6934   000ca 8b 45 08         mov     eax, DWORD PTR _out$[ebp]\r
6935   000cd 89 73 08         mov     DWORD PTR [ebx+8], esi\r
6936   000d0 89 43 14         mov     DWORD PTR [ebx+20], eax\r
6937   000d3 5e               pop     esi\r
6938 \r
6939 ; 1405 :     state->mode = TYPE;\r
6940 \r
6941   000d4 c7 07 0b 00 00\r
6942         00               mov     DWORD PTR [edi], 11    ; 0000000bH\r
6943   000da 5f               pop     edi\r
6944 \r
6945 ; 1406 :     return Z_OK;\r
6946 \r
6947   000db 33 c0            xor     eax, eax\r
6948   000dd 5b               pop     ebx\r
6949 \r
6950 ; 1407 : }\r
6951 \r
6952   000de 5d               pop     ebp\r
6953   000df c2 04 00         ret     4\r
6954 $LN6@inflateSyn@2:\r
6955   000e2 5f               pop     edi\r
6956 \r
6957 ; 1369 :     unsigned len;               /* number of bytes to look at or looked at */\r
6958 ; 1370 :     unsigned long in, out;      /* temporary to save total_in and total_out */\r
6959 ; 1371 :     unsigned char buf[4];       /* to restore bit buffer to byte string */\r
6960 ; 1372 :     struct inflate_state FAR *state;\r
6961 ; 1373 : \r
6962 ; 1374 :     /* check parameters */\r
6963 ; 1375 :     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;\r
6964 \r
6965   000e3 b8 fe ff ff ff   mov     eax, -2                        ; fffffffeH\r
6966   000e8 5b               pop     ebx\r
6967 \r
6968 ; 1407 : }\r
6969 \r
6970   000e9 5d               pop     ebp\r
6971   000ea c2 04 00         ret     4\r
6972 _inflateSync@4 ENDP\r
6973 _TEXT   ENDS\r
6974 PUBLIC  _inflateReset2@8\r
6975 ; Function compile flags: /Ogtp\r
6976 ;       COMDAT _inflateReset2@8\r
6977 _TEXT   SEGMENT\r
6978 _strm$ = 8                                              ; size = 4\r
6979 _windowBits$ = 12                                       ; size = 4\r
6980 _inflateReset2@8 PROC                                   ; COMDAT\r
6981 \r
6982 ; 144  : {\r
6983 \r
6984   00000 55               push    ebp\r
6985   00001 8b ec            mov     ebp, esp\r
6986 \r
6987 ; 145  :     int wrap;\r
6988 ; 146  :     struct inflate_state FAR *state;\r
6989 ; 147  : \r
6990 ; 148  :     /* get the state */\r
6991 ; 149  :     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;\r
6992 \r
6993   00003 8b 4d 08         mov     ecx, DWORD PTR _strm$[ebp]\r
6994   00006 57               push    edi\r
6995   00007 85 c9            test    ecx, ecx\r
6996   00009 74 74            je      SHORT $LN7@inflateRes@3\r
6997   0000b 8b 79 1c         mov     edi, DWORD PTR [ecx+28]\r
6998   0000e 85 ff            test    edi, edi\r
6999   00010 74 6d            je      SHORT $LN7@inflateRes@3\r
7000 \r
7001 ; 150  :     state = (struct inflate_state FAR *)strm->state;\r
7002 ; 151  : \r
7003 ; 152  :     /* extract wrap request from windowBits parameter */\r
7004 ; 153  :     if (windowBits < 0) {\r
7005 \r
7006   00012 53               push    ebx\r
7007   00013 56               push    esi\r
7008   00014 8b 75 0c         mov     esi, DWORD PTR _windowBits$[ebp]\r
7009   00017 85 f6            test    esi, esi\r
7010   00019 79 06            jns     SHORT $LN6@inflateRes@3\r
7011 \r
7012 ; 154  :         wrap = 0;\r
7013 \r
7014   0001b 33 db            xor     ebx, ebx\r
7015 \r
7016 ; 155  :         windowBits = -windowBits;\r
7017 \r
7018   0001d f7 de            neg     esi\r
7019 \r
7020 ; 156  :     }\r
7021 ; 157  :     else {\r
7022 \r
7023   0001f eb 0e            jmp     SHORT $LN4@inflateRes@3\r
7024 $LN6@inflateRes@3:\r
7025 \r
7026 ; 158  :         wrap = (windowBits >> 4) + 1;\r
7027 \r
7028   00021 8b de            mov     ebx, esi\r
7029   00023 c1 fb 04         sar     ebx, 4\r
7030   00026 43               inc     ebx\r
7031 \r
7032 ; 159  : #ifdef GUNZIP\r
7033 ; 160  :         if (windowBits < 48)\r
7034 \r
7035   00027 83 fe 30         cmp     esi, 48                        ; 00000030H\r
7036   0002a 7d 03            jge     SHORT $LN4@inflateRes@3\r
7037 \r
7038 ; 161  :             windowBits &= 15;\r
7039 \r
7040   0002c 83 e6 0f         and     esi, 15                        ; 0000000fH\r
7041 $LN4@inflateRes@3:\r
7042 \r
7043 ; 162  : #endif\r
7044 ; 163  :     }\r
7045 ; 164  : \r
7046 ; 165  :     /* set number of window bits, free window if different */\r
7047 ; 166  :     if (windowBits && (windowBits < 8 || windowBits > 15))\r
7048 \r
7049   0002f 85 f6            test    esi, esi\r
7050   00031 74 16            je      SHORT $LN3@inflateRes@3\r
7051   00033 83 fe 08         cmp     esi, 8\r
7052   00036 7c 05            jl      SHORT $LN2@inflateRes@3\r
7053   00038 83 fe 0f         cmp     esi, 15                        ; 0000000fH\r
7054   0003b 7e 0c            jle     SHORT $LN3@inflateRes@3\r
7055 $LN2@inflateRes@3:\r
7056   0003d 5e               pop     esi\r
7057   0003e 5b               pop     ebx\r
7058 \r
7059 ; 167  :         return Z_STREAM_ERROR;\r
7060 \r
7061   0003f b8 fe ff ff ff   mov     eax, -2                        ; fffffffeH\r
7062   00044 5f               pop     edi\r
7063 \r
7064 ; 177  : }\r
7065 \r
7066   00045 5d               pop     ebp\r
7067   00046 c2 08 00         ret     8\r
7068 $LN3@inflateRes@3:\r
7069 \r
7070 ; 168  :     if (state->window != Z_NULL && state->wbits != (unsigned)windowBits) {\r
7071 \r
7072   00049 8b 47 34         mov     eax, DWORD PTR [edi+52]\r
7073   0004c 85 c0            test    eax, eax\r
7074   0004e 74 1c            je      SHORT $LN1@inflateRes@3\r
7075   00050 39 77 24         cmp     DWORD PTR [edi+36], esi\r
7076   00053 74 17            je      SHORT $LN1@inflateRes@3\r
7077 \r
7078 ; 169  :         ZFREE(strm, state->window);\r
7079 \r
7080   00055 50               push    eax\r
7081   00056 8b 41 28         mov     eax, DWORD PTR [ecx+40]\r
7082   00059 8b 49 24         mov     ecx, DWORD PTR [ecx+36]\r
7083   0005c 50               push    eax\r
7084   0005d ff d1            call    ecx\r
7085 \r
7086 ; 170  :         state->window = Z_NULL;\r
7087 \r
7088   0005f 8b 4d 08         mov     ecx, DWORD PTR _strm$[ebp]\r
7089   00062 83 c4 08         add     esp, 8\r
7090   00065 c7 47 34 00 00\r
7091         00 00            mov     DWORD PTR [edi+52], 0\r
7092 $LN1@inflateRes@3:\r
7093 \r
7094 ; 171  :     }\r
7095 ; 172  : \r
7096 ; 173  :     /* update state and reset the rest of it */\r
7097 ; 174  :     state->wrap = wrap;\r
7098 ; 175  :     state->wbits = (unsigned)windowBits;\r
7099 ; 176  :     return inflateReset(strm);\r
7100 \r
7101   0006c 51               push    ecx\r
7102   0006d 89 5f 08         mov     DWORD PTR [edi+8], ebx\r
7103   00070 89 77 24         mov     DWORD PTR [edi+36], esi\r
7104   00073 e8 00 00 00 00   call    _inflateReset@4\r
7105   00078 5e               pop     esi\r
7106   00079 5b               pop     ebx\r
7107   0007a 5f               pop     edi\r
7108 \r
7109 ; 177  : }\r
7110 \r
7111   0007b 5d               pop     ebp\r
7112   0007c c2 08 00         ret     8\r
7113 $LN7@inflateRes@3:\r
7114 \r
7115 ; 145  :     int wrap;\r
7116 ; 146  :     struct inflate_state FAR *state;\r
7117 ; 147  : \r
7118 ; 148  :     /* get the state */\r
7119 ; 149  :     if (strm == Z_NULL || strm->state == Z_NULL) return Z_STREAM_ERROR;\r
7120 \r
7121   0007f b8 fe ff ff ff   mov     eax, -2                        ; fffffffeH\r
7122   00084 5f               pop     edi\r
7123 \r
7124 ; 177  : }\r
7125 \r
7126   00085 5d               pop     ebp\r
7127   00086 c2 08 00         ret     8\r
7128 _inflateReset2@8 ENDP\r
7129 PUBLIC  _inflateInit2_@16\r
7130 ; Function compile flags: /Ogtp\r
7131 ;       COMDAT _inflateInit2_@16\r
7132 _TEXT   SEGMENT\r
7133 _strm$ = 8                                              ; size = 4\r
7134 _windowBits$ = 12                                       ; size = 4\r
7135 _version$ = 16                                          ; size = 4\r
7136 _stream_size$ = 20                                      ; size = 4\r
7137 _inflateInit2_@16 PROC                                  ; COMDAT\r
7138 \r
7139 ; 184  : {\r
7140 \r
7141   00000 55               push    ebp\r
7142   00001 8b ec            mov     ebp, esp\r
7143 \r
7144 ; 185  :     int ret;\r
7145 ; 186  :     struct inflate_state FAR *state;\r
7146 ; 187  : \r
7147 ; 188  :     if (version == Z_NULL || version[0] != ZLIB_VERSION[0] ||\r
7148 ; 189  :         stream_size != (int)(sizeof(z_stream)))\r
7149 \r
7150   00003 8b 45 10         mov     eax, DWORD PTR _version$[ebp]\r
7151   00006 53               push    ebx\r
7152   00007 33 db            xor     ebx, ebx\r
7153   00009 3b c3            cmp     eax, ebx\r
7154   0000b 0f 84 9b 00 00\r
7155         00               je      $LN6@inflateIni\r
7156   00011 80 38 31         cmp     BYTE PTR [eax], 49     ; 00000031H\r
7157   00014 0f 85 92 00 00\r
7158         00               jne     $LN6@inflateIni\r
7159   0001a 83 7d 14 38      cmp     DWORD PTR _stream_size$[ebp], 56 ; 00000038H\r
7160   0001e 0f 85 88 00 00\r
7161         00               jne     $LN6@inflateIni\r
7162 \r
7163 ; 191  :     if (strm == Z_NULL) return Z_STREAM_ERROR;\r
7164 \r
7165   00024 56               push    esi\r
7166   00025 8b 75 08         mov     esi, DWORD PTR _strm$[ebp]\r
7167   00028 3b f3            cmp     esi, ebx\r
7168   0002a 75 09            jne     SHORT $LN5@inflateIni\r
7169   0002c 5e               pop     esi\r
7170   0002d 8d 43 fe         lea     eax, DWORD PTR [ebx-2]\r
7171   00030 5b               pop     ebx\r
7172 \r
7173 ; 219  : }\r
7174 \r
7175   00031 5d               pop     ebp\r
7176   00032 c2 10 00         ret     16                     ; 00000010H\r
7177 $LN5@inflateIni:\r
7178 \r
7179 ; 192  :     strm->msg = Z_NULL;                 /* in case we return an error */\r
7180 \r
7181   00035 89 5e 18         mov     DWORD PTR [esi+24], ebx\r
7182 \r
7183 ; 193  :     if (strm->zalloc == (alloc_func)0) {\r
7184 \r
7185   00038 39 5e 20         cmp     DWORD PTR [esi+32], ebx\r
7186   0003b 75 0a            jne     SHORT $LN4@inflateIni\r
7187 \r
7188 ; 194  : #ifdef Z_SOLO\r
7189 ; 195  :         return Z_STREAM_ERROR;\r
7190 ; 196  : #else\r
7191 ; 197  :         strm->zalloc = zcalloc;\r
7192 \r
7193   0003d c7 46 20 00 00\r
7194         00 00            mov     DWORD PTR [esi+32], OFFSET _zcalloc\r
7195 \r
7196 ; 198  :         strm->opaque = (voidpf)0;\r
7197 \r
7198   00044 89 5e 28         mov     DWORD PTR [esi+40], ebx\r
7199 $LN4@inflateIni:\r
7200 \r
7201 ; 199  : #endif\r
7202 ; 200  :     }\r
7203 ; 201  :     if (strm->zfree == (free_func)0)\r
7204 \r
7205   00047 39 5e 24         cmp     DWORD PTR [esi+36], ebx\r
7206   0004a 75 07            jne     SHORT $LN3@inflateIni\r
7207 \r
7208 ; 202  : #ifdef Z_SOLO\r
7209 ; 203  :         return Z_STREAM_ERROR;\r
7210 ; 204  : #else\r
7211 ; 205  :         strm->zfree = zcfree;\r
7212 \r
7213   0004c c7 46 24 00 00\r
7214         00 00            mov     DWORD PTR [esi+36], OFFSET _zcfree\r
7215 $LN3@inflateIni:\r
7216 \r
7217 ; 206  : #endif\r
7218 ; 207  :     state = (struct inflate_state FAR *)\r
7219 ; 208  :             ZALLOC(strm, 1, sizeof(struct inflate_state));\r
7220 \r
7221   00053 8b 46 28         mov     eax, DWORD PTR [esi+40]\r
7222   00056 8b 4e 20         mov     ecx, DWORD PTR [esi+32]\r
7223   00059 57               push    edi\r
7224   0005a 68 cc 1b 00 00   push    7116                   ; 00001bccH\r
7225   0005f 6a 01            push    1\r
7226   00061 50               push    eax\r
7227   00062 ff d1            call    ecx\r
7228   00064 8b f8            mov     edi, eax\r
7229   00066 83 c4 0c         add     esp, 12                        ; 0000000cH\r
7230 \r
7231 ; 209  :     if (state == Z_NULL) return Z_MEM_ERROR;\r
7232 \r
7233   00069 3b fb            cmp     edi, ebx\r
7234   0006b 75 0c            jne     SHORT $LN2@inflateIni\r
7235   0006d 5f               pop     edi\r
7236   0006e 5e               pop     esi\r
7237   0006f b8 fc ff ff ff   mov     eax, -4                        ; fffffffcH\r
7238   00074 5b               pop     ebx\r
7239 \r
7240 ; 219  : }\r
7241 \r
7242   00075 5d               pop     ebp\r
7243   00076 c2 10 00         ret     16                     ; 00000010H\r
7244 $LN2@inflateIni:\r
7245 \r
7246 ; 210  :     Tracev((stderr, "inflate: allocated\n"));\r
7247 ; 211  :     strm->state = (struct internal_state FAR *)state;\r
7248 ; 212  :     state->window = Z_NULL;\r
7249 ; 213  :     ret = inflateReset2(strm, windowBits);\r
7250 \r
7251   00079 8b 55 0c         mov     edx, DWORD PTR _windowBits$[ebp]\r
7252   0007c 52               push    edx\r
7253   0007d 89 7e 1c         mov     DWORD PTR [esi+28], edi\r
7254   00080 56               push    esi\r
7255   00081 89 5f 34         mov     DWORD PTR [edi+52], ebx\r
7256   00084 e8 00 00 00 00   call    _inflateReset2@8\r
7257   00089 8b d8            mov     ebx, eax\r
7258 \r
7259 ; 214  :     if (ret != Z_OK) {\r
7260 \r
7261   0008b 85 db            test    ebx, ebx\r
7262   0008d 74 14            je      SHORT $LN1@inflateIni\r
7263 \r
7264 ; 215  :         ZFREE(strm, state);\r
7265 \r
7266   0008f 8b 46 28         mov     eax, DWORD PTR [esi+40]\r
7267   00092 8b 4e 24         mov     ecx, DWORD PTR [esi+36]\r
7268   00095 57               push    edi\r
7269   00096 50               push    eax\r
7270   00097 ff d1            call    ecx\r
7271   00099 83 c4 08         add     esp, 8\r
7272 \r
7273 ; 216  :         strm->state = Z_NULL;\r
7274 \r
7275   0009c c7 46 1c 00 00\r
7276         00 00            mov     DWORD PTR [esi+28], 0\r
7277 $LN1@inflateIni:\r
7278 \r
7279 ; 217  :     }\r
7280 ; 218  :     return ret;\r
7281 \r
7282   000a3 5f               pop     edi\r
7283   000a4 5e               pop     esi\r
7284   000a5 8b c3            mov     eax, ebx\r
7285   000a7 5b               pop     ebx\r
7286 \r
7287 ; 219  : }\r
7288 \r
7289   000a8 5d               pop     ebp\r
7290   000a9 c2 10 00         ret     16                     ; 00000010H\r
7291 $LN6@inflateIni:\r
7292 \r
7293 ; 190  :         return Z_VERSION_ERROR;\r
7294 \r
7295   000ac b8 fa ff ff ff   mov     eax, -6                        ; fffffffaH\r
7296   000b1 5b               pop     ebx\r
7297 \r
7298 ; 219  : }\r
7299 \r
7300   000b2 5d               pop     ebp\r
7301   000b3 c2 10 00         ret     16                     ; 00000010H\r
7302 _inflateInit2_@16 ENDP\r
7303 PUBLIC  _inflateInit_@12\r
7304 ; Function compile flags: /Ogtp\r
7305 ;       COMDAT _inflateInit_@12\r
7306 _TEXT   SEGMENT\r
7307 _strm$ = 8                                              ; size = 4\r
7308 _version$ = 12                                          ; size = 4\r
7309 _stream_size$ = 16                                      ; size = 4\r
7310 _inflateInit_@12 PROC                                   ; COMDAT\r
7311 \r
7312 ; 225  : {\r
7313 \r
7314   00000 55               push    ebp\r
7315   00001 8b ec            mov     ebp, esp\r
7316 \r
7317 ; 226  :     return inflateInit2_(strm, DEF_WBITS, version, stream_size);\r
7318 \r
7319   00003 8b 45 10         mov     eax, DWORD PTR _stream_size$[ebp]\r
7320   00006 8b 4d 0c         mov     ecx, DWORD PTR _version$[ebp]\r
7321   00009 8b 55 08         mov     edx, DWORD PTR _strm$[ebp]\r
7322   0000c 50               push    eax\r
7323   0000d 51               push    ecx\r
7324   0000e 6a 0f            push    15                     ; 0000000fH\r
7325   00010 52               push    edx\r
7326   00011 e8 00 00 00 00   call    _inflateInit2_@16\r
7327 \r
7328 ; 227  : }\r
7329 \r
7330   00016 5d               pop     ebp\r
7331   00017 c2 0c 00         ret     12                     ; 0000000cH\r
7332 _inflateInit_@12 ENDP\r
7333 END\r