finishm 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.document +5 -0
- data/.gitmodules +3 -0
- data/.rspec +1 -0
- data/Gemfile +31 -0
- data/LICENSE.txt +20 -0
- data/README.md +59 -0
- data/Rakefile +51 -0
- data/VERSION +1 -0
- data/bin/assembly_visualiser +106 -0
- data/bin/check_primer_combinations.rb +73 -0
- data/bin/contig_joiner.rb +244 -0
- data/bin/contigs_against_assembly.rb +153 -0
- data/bin/finishm +143 -0
- data/bin/finishm_assembler +55 -0
- data/bin/finishm_gap_closer.rb +241 -0
- data/bin/kmer_abundance_file_tool.rb +49 -0
- data/bin/kmer_pattern_to_assembly.rb +377 -0
- data/bin/kmer_profile_finder.rb +92 -0
- data/bin/kmers_count_parse.d +52 -0
- data/bin/kmers_count_tabulate.d +123 -0
- data/bin/kmers_count_tabulate.rb +84 -0
- data/bin/pcr_result_parser.rb +108 -0
- data/bin/primer_finder.rb +119 -0
- data/bin/read_selection_by_kmer.d +174 -0
- data/bin/scaffold_by_pattern.rb +119 -0
- data/bin/scaffold_connection_possibilities_to_knowns.rb +193 -0
- data/bin/scaffold_end_coverages.rb +69 -0
- data/bin/trail_validator.rb +84 -0
- data/ext/mkrf_conf.rb +56 -0
- data/ext/src/Makefile +140 -0
- data/ext/src/src/allocArray.c +305 -0
- data/ext/src/src/allocArray.h +86 -0
- data/ext/src/src/autoOpen.c +107 -0
- data/ext/src/src/autoOpen.h +18 -0
- data/ext/src/src/binarySequences.c +813 -0
- data/ext/src/src/binarySequences.h +125 -0
- data/ext/src/src/concatenatedGraph.c +233 -0
- data/ext/src/src/concatenatedGraph.h +30 -0
- data/ext/src/src/concatenatedPreGraph.c +262 -0
- data/ext/src/src/concatenatedPreGraph.h +29 -0
- data/ext/src/src/correctedGraph.c +2643 -0
- data/ext/src/src/correctedGraph.h +32 -0
- data/ext/src/src/dfib.c +509 -0
- data/ext/src/src/dfib.h +69 -0
- data/ext/src/src/dfibHeap.c +89 -0
- data/ext/src/src/dfibHeap.h +39 -0
- data/ext/src/src/dfibpriv.h +105 -0
- data/ext/src/src/fib.c +628 -0
- data/ext/src/src/fib.h +78 -0
- data/ext/src/src/fibHeap.c +79 -0
- data/ext/src/src/fibHeap.h +41 -0
- data/ext/src/src/fibpriv.h +110 -0
- data/ext/src/src/globals.h +154 -0
- data/ext/src/src/graph.c +3932 -0
- data/ext/src/src/graph.h +233 -0
- data/ext/src/src/graphReConstruction.c +1472 -0
- data/ext/src/src/graphReConstruction.h +30 -0
- data/ext/src/src/graphStats.c +2167 -0
- data/ext/src/src/graphStats.h +72 -0
- data/ext/src/src/graphStructures.h +52 -0
- data/ext/src/src/kmer.c +652 -0
- data/ext/src/src/kmer.h +73 -0
- data/ext/src/src/kmerOccurenceTable.c +236 -0
- data/ext/src/src/kmerOccurenceTable.h +44 -0
- data/ext/src/src/kseq.h +223 -0
- data/ext/src/src/locallyCorrectedGraph.c +557 -0
- data/ext/src/src/locallyCorrectedGraph.h +40 -0
- data/ext/src/src/passageMarker.c +677 -0
- data/ext/src/src/passageMarker.h +137 -0
- data/ext/src/src/preGraph.c +1717 -0
- data/ext/src/src/preGraph.h +106 -0
- data/ext/src/src/preGraphConstruction.c +990 -0
- data/ext/src/src/preGraphConstruction.h +26 -0
- data/ext/src/src/probe_node_finder.c +84 -0
- data/ext/src/src/probe_node_finder.h +6 -0
- data/ext/src/src/readCoherentGraph.c +557 -0
- data/ext/src/src/readCoherentGraph.h +30 -0
- data/ext/src/src/readSet.c +1734 -0
- data/ext/src/src/readSet.h +67 -0
- data/ext/src/src/readToNode.c +218 -0
- data/ext/src/src/readToNode.h +35 -0
- data/ext/src/src/recycleBin.c +199 -0
- data/ext/src/src/recycleBin.h +58 -0
- data/ext/src/src/roadMap.c +342 -0
- data/ext/src/src/roadMap.h +65 -0
- data/ext/src/src/run.c +318 -0
- data/ext/src/src/run.h +52 -0
- data/ext/src/src/run2.c +744 -0
- data/ext/src/src/runReadToNode.c +29 -0
- data/ext/src/src/scaffold.c +1876 -0
- data/ext/src/src/scaffold.h +64 -0
- data/ext/src/src/shortReadPairs.c +1243 -0
- data/ext/src/src/shortReadPairs.h +32 -0
- data/ext/src/src/splay.c +259 -0
- data/ext/src/src/splay.h +43 -0
- data/ext/src/src/splayTable.c +1315 -0
- data/ext/src/src/splayTable.h +31 -0
- data/ext/src/src/tightString.c +362 -0
- data/ext/src/src/tightString.h +82 -0
- data/ext/src/src/utility.c +199 -0
- data/ext/src/src/utility.h +98 -0
- data/ext/src/third-party/zlib-1.2.3/ChangeLog +855 -0
- data/ext/src/third-party/zlib-1.2.3/FAQ +339 -0
- data/ext/src/third-party/zlib-1.2.3/INDEX +51 -0
- data/ext/src/third-party/zlib-1.2.3/Makefile +154 -0
- data/ext/src/third-party/zlib-1.2.3/Makefile.in +154 -0
- data/ext/src/third-party/zlib-1.2.3/README +125 -0
- data/ext/src/third-party/zlib-1.2.3/adler32.c +149 -0
- data/ext/src/third-party/zlib-1.2.3/adler32.o +0 -0
- data/ext/src/third-party/zlib-1.2.3/algorithm.txt +209 -0
- data/ext/src/third-party/zlib-1.2.3/amiga/Makefile.pup +66 -0
- data/ext/src/third-party/zlib-1.2.3/amiga/Makefile.sas +65 -0
- data/ext/src/third-party/zlib-1.2.3/as400/bndsrc +132 -0
- data/ext/src/third-party/zlib-1.2.3/as400/compile.clp +123 -0
- data/ext/src/third-party/zlib-1.2.3/as400/readme.txt +111 -0
- data/ext/src/third-party/zlib-1.2.3/as400/zlib.inc +331 -0
- data/ext/src/third-party/zlib-1.2.3/compress.c +79 -0
- data/ext/src/third-party/zlib-1.2.3/compress.o +0 -0
- data/ext/src/third-party/zlib-1.2.3/configure +459 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/README.contrib +71 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/ada/buffer_demo.adb +106 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/ada/mtest.adb +156 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/ada/read.adb +156 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/ada/readme.txt +65 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/ada/test.adb +463 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib-streams.adb +225 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib-streams.ads +114 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib-thin.adb +141 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib-thin.ads +450 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib.adb +701 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib.ads +328 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib.gpr +20 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/asm586/README.586 +43 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/asm586/match.S +364 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/asm686/README.686 +34 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/asm686/match.S +329 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/blast/Makefile +8 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/blast/README +4 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/blast/blast.c +444 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/blast/blast.h +71 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/blast/test.pk +0 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/blast/test.txt +1 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/delphi/ZLib.pas +557 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/delphi/ZLibConst.pas +11 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/delphi/readme.txt +76 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/delphi/zlibd32.mak +93 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib.build +33 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib.chm +0 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib.sln +21 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/AssemblyInfo.cs +58 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/ChecksumImpl.cs +202 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/CircularBuffer.cs +83 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/CodecBase.cs +198 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/Deflater.cs +106 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/DotZLib.cs +288 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/DotZLib.csproj +141 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/GZipStream.cs +301 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/Inflater.cs +105 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/UnitTests.cs +274 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/LICENSE_1_0.txt +23 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/readme.txt +58 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/infback9/README +1 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/infback9/infback9.c +608 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/infback9/infback9.h +37 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/infback9/inffix9.h +107 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/infback9/inflate9.h +47 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/infback9/inftree9.c +323 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/infback9/inftree9.h +55 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/inflate86/inffas86.c +1157 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/inflate86/inffast.S +1368 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/iostream/test.cpp +24 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/iostream/zfstream.cpp +329 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/iostream/zfstream.h +128 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/iostream2/zstream.h +307 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/iostream2/zstream_test.cpp +25 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/iostream3/README +35 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/iostream3/TODO +17 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/iostream3/test.cc +50 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/iostream3/zfstream.cc +479 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/iostream3/zfstream.h +466 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masm686/match.asm +413 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/bld_ml64.bat +2 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/gvmat64.asm +513 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/gvmat64.obj +0 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/inffas8664.c +186 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/inffasx64.asm +392 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/inffasx64.obj +0 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/readme.txt +28 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/bld_ml32.bat +2 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/gvmat32.asm +972 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/gvmat32.obj +0 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/gvmat32c.c +62 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/inffas32.asm +1083 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/inffas32.obj +0 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/mkasm.bat +3 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/readme.txt +21 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/ChangeLogUnzip +67 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/Makefile +25 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/crypt.h +132 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/ioapi.c +177 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/ioapi.h +75 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/iowin32.c +270 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/iowin32.h +21 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/miniunz.c +585 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/minizip.c +420 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/mztools.c +281 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/mztools.h +31 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/unzip.c +1598 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/unzip.h +354 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/zip.c +1219 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/minizip/zip.h +235 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/pascal/example.pas +599 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/pascal/readme.txt +76 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/pascal/zlibd32.mak +93 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/pascal/zlibpas.pas +236 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/puff/Makefile +8 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/puff/README +63 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/puff/puff.c +837 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/puff/puff.h +31 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/puff/zeros.raw +0 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/testzlib/testzlib.c +275 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/testzlib/testzlib.txt +10 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/untgz/Makefile +14 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/untgz/Makefile.msc +17 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/untgz/untgz.c +674 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/readme.txt +73 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/miniunz.vcproj +126 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/minizip.vcproj +126 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/testzlib.vcproj +126 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/zlib.rc +32 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/zlibstat.vcproj +246 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/zlibvc.def +92 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/zlibvc.sln +78 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/zlibvc.vcproj +445 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/miniunz.vcproj +566 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/minizip.vcproj +563 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/testzlib.vcproj +948 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/testzlibdll.vcproj +567 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/zlib.rc +32 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/zlibstat.vcproj +870 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/zlibvc.def +92 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/zlibvc.sln +144 -0
- data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/zlibvc.vcproj +1219 -0
- data/ext/src/third-party/zlib-1.2.3/crc32.c +423 -0
- data/ext/src/third-party/zlib-1.2.3/crc32.h +441 -0
- data/ext/src/third-party/zlib-1.2.3/crc32.o +0 -0
- data/ext/src/third-party/zlib-1.2.3/deflate.c +1736 -0
- data/ext/src/third-party/zlib-1.2.3/deflate.h +331 -0
- data/ext/src/third-party/zlib-1.2.3/deflate.o +0 -0
- data/ext/src/third-party/zlib-1.2.3/example +0 -0
- data/ext/src/third-party/zlib-1.2.3/example.c +565 -0
- data/ext/src/third-party/zlib-1.2.3/examples/README.examples +42 -0
- data/ext/src/third-party/zlib-1.2.3/examples/fitblk.c +233 -0
- data/ext/src/third-party/zlib-1.2.3/examples/gun.c +693 -0
- data/ext/src/third-party/zlib-1.2.3/examples/gzappend.c +500 -0
- data/ext/src/third-party/zlib-1.2.3/examples/gzjoin.c +448 -0
- data/ext/src/third-party/zlib-1.2.3/examples/gzlog.c +413 -0
- data/ext/src/third-party/zlib-1.2.3/examples/gzlog.h +58 -0
- data/ext/src/third-party/zlib-1.2.3/examples/zlib_how.html +523 -0
- data/ext/src/third-party/zlib-1.2.3/examples/zpipe.c +191 -0
- data/ext/src/third-party/zlib-1.2.3/examples/zran.c +404 -0
- data/ext/src/third-party/zlib-1.2.3/gzio.c +1026 -0
- data/ext/src/third-party/zlib-1.2.3/gzio.o +0 -0
- data/ext/src/third-party/zlib-1.2.3/infback.c +623 -0
- data/ext/src/third-party/zlib-1.2.3/infback.o +0 -0
- data/ext/src/third-party/zlib-1.2.3/inffast.c +318 -0
- data/ext/src/third-party/zlib-1.2.3/inffast.h +11 -0
- data/ext/src/third-party/zlib-1.2.3/inffast.o +0 -0
- data/ext/src/third-party/zlib-1.2.3/inffixed.h +94 -0
- data/ext/src/third-party/zlib-1.2.3/inflate.c +1368 -0
- data/ext/src/third-party/zlib-1.2.3/inflate.h +115 -0
- data/ext/src/third-party/zlib-1.2.3/inflate.o +0 -0
- data/ext/src/third-party/zlib-1.2.3/inftrees.c +329 -0
- data/ext/src/third-party/zlib-1.2.3/inftrees.h +55 -0
- data/ext/src/third-party/zlib-1.2.3/inftrees.o +0 -0
- data/ext/src/third-party/zlib-1.2.3/libz.a +0 -0
- data/ext/src/third-party/zlib-1.2.3/make_vms.com +461 -0
- data/ext/src/third-party/zlib-1.2.3/minigzip +0 -0
- data/ext/src/third-party/zlib-1.2.3/minigzip.c +322 -0
- data/ext/src/third-party/zlib-1.2.3/msdos/Makefile.bor +109 -0
- data/ext/src/third-party/zlib-1.2.3/msdos/Makefile.dj2 +104 -0
- data/ext/src/third-party/zlib-1.2.3/msdos/Makefile.emx +69 -0
- data/ext/src/third-party/zlib-1.2.3/msdos/Makefile.msc +106 -0
- data/ext/src/third-party/zlib-1.2.3/msdos/Makefile.tc +94 -0
- data/ext/src/third-party/zlib-1.2.3/old/Makefile.riscos +151 -0
- data/ext/src/third-party/zlib-1.2.3/old/README +3 -0
- data/ext/src/third-party/zlib-1.2.3/old/descrip.mms +48 -0
- data/ext/src/third-party/zlib-1.2.3/old/os2/Makefile.os2 +136 -0
- data/ext/src/third-party/zlib-1.2.3/old/os2/zlib.def +51 -0
- data/ext/src/third-party/zlib-1.2.3/old/visual-basic.txt +160 -0
- data/ext/src/third-party/zlib-1.2.3/old/zlib.html +971 -0
- data/ext/src/third-party/zlib-1.2.3/projects/README.projects +41 -0
- data/ext/src/third-party/zlib-1.2.3/projects/visualc6/README.txt +73 -0
- data/ext/src/third-party/zlib-1.2.3/projects/visualc6/example.dsp +278 -0
- data/ext/src/third-party/zlib-1.2.3/projects/visualc6/minigzip.dsp +278 -0
- data/ext/src/third-party/zlib-1.2.3/projects/visualc6/zlib.dsp +609 -0
- data/ext/src/third-party/zlib-1.2.3/projects/visualc6/zlib.dsw +59 -0
- data/ext/src/third-party/zlib-1.2.3/qnx/package.qpg +141 -0
- data/ext/src/third-party/zlib-1.2.3/trees.c +1219 -0
- data/ext/src/third-party/zlib-1.2.3/trees.h +128 -0
- data/ext/src/third-party/zlib-1.2.3/trees.o +0 -0
- data/ext/src/third-party/zlib-1.2.3/uncompr.c +61 -0
- data/ext/src/third-party/zlib-1.2.3/uncompr.o +0 -0
- data/ext/src/third-party/zlib-1.2.3/win32/DLL_FAQ.txt +397 -0
- data/ext/src/third-party/zlib-1.2.3/win32/Makefile.bor +107 -0
- data/ext/src/third-party/zlib-1.2.3/win32/Makefile.emx +69 -0
- data/ext/src/third-party/zlib-1.2.3/win32/Makefile.gcc +141 -0
- data/ext/src/third-party/zlib-1.2.3/win32/Makefile.msc +126 -0
- data/ext/src/third-party/zlib-1.2.3/win32/VisualC.txt +3 -0
- data/ext/src/third-party/zlib-1.2.3/win32/zlib.def +60 -0
- data/ext/src/third-party/zlib-1.2.3/win32/zlib1.rc +39 -0
- data/ext/src/third-party/zlib-1.2.3/zconf.h +332 -0
- data/ext/src/third-party/zlib-1.2.3/zconf.in.h +332 -0
- data/ext/src/third-party/zlib-1.2.3/zlib.3 +159 -0
- data/ext/src/third-party/zlib-1.2.3/zlib.h +1357 -0
- data/ext/src/third-party/zlib-1.2.3/zutil.c +318 -0
- data/ext/src/third-party/zlib-1.2.3/zutil.h +269 -0
- data/ext/src/third-party/zlib-1.2.3/zutil.o +0 -0
- data/lib/assembly/a_b_visualiser.rb +169 -0
- data/lib/assembly/acyclic_connection_finder.rb +81 -0
- data/lib/assembly/all_orfs.rb +615 -0
- data/lib/assembly/bad_format_writer.rb +46 -0
- data/lib/assembly/bam_probe_read_selector.rb +48 -0
- data/lib/assembly/bubbly_assembler.rb +842 -0
- data/lib/assembly/c_probe_node_finder.rb +38 -0
- data/lib/assembly/connection_interpreter.rb +350 -0
- data/lib/assembly/contig_printer.rb +400 -0
- data/lib/assembly/coverage_based_graph_filter.rb +68 -0
- data/lib/assembly/depth_first_search.rb +63 -0
- data/lib/assembly/dijkstra.rb +216 -0
- data/lib/assembly/fluffer.rb +253 -0
- data/lib/assembly/graph_explorer.rb +85 -0
- data/lib/assembly/graph_generator.rb +315 -0
- data/lib/assembly/height_finder.rb +355 -0
- data/lib/assembly/hybrid_velvet_graph.rb +70 -0
- data/lib/assembly/input_genome.rb +182 -0
- data/lib/assembly/kmer_coverage_based_path_filter.rb +65 -0
- data/lib/assembly/node_finder.rb +171 -0
- data/lib/assembly/oriented_node_trail.rb +507 -0
- data/lib/assembly/paired_end_assembler.rb +53 -0
- data/lib/assembly/paired_end_neighbour_finder.rb +176 -0
- data/lib/assembly/probed_graph.rb +105 -0
- data/lib/assembly/read_input.rb +79 -0
- data/lib/assembly/read_to_node.rb +37 -0
- data/lib/assembly/scaffold_breaker.rb +126 -0
- data/lib/assembly/sequence_hasher.rb +71 -0
- data/lib/assembly/single_coherent_paths_between_nodes.rb +533 -0
- data/lib/assembly/single_coherent_wanderer.rb +261 -0
- data/lib/assembly/single_ended_assembler.rb +441 -0
- data/lib/assembly/velvet_c_binding.rb +54 -0
- data/lib/assembly/velvet_graph_sequence_extractor.rb +123 -0
- data/lib/external/VERSION +1 -0
- data/lib/finishm/assemble.rb +224 -0
- data/lib/finishm/explore.rb +217 -0
- data/lib/finishm/finisher.rb +303 -0
- data/lib/finishm/fluff.rb +122 -0
- data/lib/finishm/gapfiller.rb +325 -0
- data/lib/finishm/orfs_finder.rb +88 -0
- data/lib/finishm/path_counter.rb +90 -0
- data/lib/finishm/primers.rb +425 -0
- data/lib/finishm/primers_check.rb +176 -0
- data/lib/finishm/roundup.rb +344 -0
- data/lib/finishm/sequence.rb +142 -0
- data/lib/finishm/visualise.rb +430 -0
- data/lib/finishm/wander.rb +270 -0
- data/lib/kmer_abundance_pattern.rb +79 -0
- data/lib/kmer_multi_abundance_file.rb +48 -0
- data/lib/oligo_designer.rb +88 -0
- data/lib/priner.rb +66 -0
- data/spec/acyclic_connection_finder_spec.rb +551 -0
- data/spec/all_orfs_spec.rb +443 -0
- data/spec/assemble_spec.rb +186 -0
- data/spec/bubbly_assembler_spec.rb +707 -0
- data/spec/c_node_finder_spec.rb +58 -0
- data/spec/connection_interpreter_spec.rb +284 -0
- data/spec/contig_printer_spec.rb +291 -0
- data/spec/coverage_based_graph_filter_spec.rb +102 -0
- data/spec/data/6_3e4e5e6e.1vANME.bam +0 -0
- data/spec/data/6_3e4e5e6e.1vANME.bam.bai +0 -0
- data/spec/data/acyclic_connection_finder/1/probes.fa +5 -0
- data/spec/data/acyclic_connection_finder/1/random1.fa +2 -0
- data/spec/data/acyclic_connection_finder/1/random1.sammy.fa.gz +0 -0
- data/spec/data/acyclic_connection_finder/1/random2.fa +2 -0
- data/spec/data/acyclic_connection_finder/1/random2.sammy.fa.gz +0 -0
- data/spec/data/assembly/1_simple_bubble_uneven_coverage/random3000.fa +39 -0
- data/spec/data/assembly/1_simple_bubble_uneven_coverage/random3000.slightly_changed.fa +39 -0
- data/spec/data/assembly/1_simple_bubble_uneven_coverage/reads_combined.fa.gz +0 -0
- data/spec/data/assembly_visualiser/Contig_6_1_to_250.fa.kmers31 +220 -0
- data/spec/data/assembly_visualiser/Contig_7_1_to_250.fa.kmers31 +220 -0
- data/spec/data/assembly_visualiser/Graph +46 -0
- data/spec/data/assembly_visualiser/start_kmers1 +2 -0
- data/spec/data/bands.csv +1 -0
- data/spec/data/c_probe_node_finder/1/CnyUnifiedSeq +0 -0
- data/spec/data/c_probe_node_finder/1/CnyUnifiedSeq.names +544 -0
- data/spec/data/c_probe_node_finder/1/Graph2 +668 -0
- data/spec/data/c_probe_node_finder/1/LastGraph +668 -0
- data/spec/data/c_probe_node_finder/1/Log +756 -0
- data/spec/data/c_probe_node_finder/1/PreGraph +11 -0
- data/spec/data/c_probe_node_finder/1/Roadmaps +2009 -0
- data/spec/data/c_probe_node_finder/1/contigs.fa +29 -0
- data/spec/data/c_probe_node_finder/1/stats.txt +6 -0
- data/spec/data/contig_printer/1/HOWTO_RECREATE +17 -0
- data/spec/data/contig_printer/1/contigs.fa +4 -0
- data/spec/data/contig_printer/1/seq.fa +2408 -0
- data/spec/data/contig_printer/1/seq.fa.svg +153 -0
- data/spec/data/contig_printer/1/seq.fa.velvet/Graph2 +2953 -0
- data/spec/data/contig_printer/1/seq.fa.velvet/LastGraph +2953 -0
- data/spec/data/contig_printer/1/seq.fa.velvet/Log +21 -0
- data/spec/data/contig_printer/1/seq.fa.velvet/PreGraph +27 -0
- data/spec/data/contig_printer/1/seq.fa.velvet/Roadmaps +5182 -0
- data/spec/data/contig_printer/1/seq.fa.velvet/Sequences +3612 -0
- data/spec/data/contig_printer/1/seq.fa.velvet/contigs.fa +36 -0
- data/spec/data/contig_printer/1/seq.fa.velvet/stats.txt +14 -0
- data/spec/data/contig_printer/1/seq.faVseq2_1to550.fa.bam +0 -0
- data/spec/data/contig_printer/1/seq.faVseq2_1to550.fa.bam.bai +0 -0
- data/spec/data/contig_printer/1/seq.node12.fa +4 -0
- data/spec/data/contig_printer/1/seq1_1to550.fa +2 -0
- data/spec/data/contig_printer/1/seq2_1to550.fa +2 -0
- data/spec/data/contig_printer/1/seq2_1to550.fa.fai +1 -0
- data/spec/data/explore/1/2seqs.sammy.fa +12004 -0
- data/spec/data/explore/1/HOWTO_RECREATE.txt +6 -0
- data/spec/data/explore/1/a.fa +2 -0
- data/spec/data/explore/1/seq1_and_a.fa +3 -0
- data/spec/data/explore/1/seq2.fa +2 -0
- data/spec/data/fluff/1/2seqs.sammy.fa +12004 -0
- data/spec/data/fluff/1/HOWTO_RECREATE.txt +5 -0
- data/spec/data/fluff/1/seq1.fa +2 -0
- data/spec/data/fluff/1/seq2.fa +2 -0
- data/spec/data/gapfilling/1/reads.fa +171 -0
- data/spec/data/gapfilling/1/trail_with_Ns.fa +5 -0
- data/spec/data/gapfilling/1/velvetAssembly/Graph2 +130 -0
- data/spec/data/gapfilling/1/velvetAssembly/LastGraph +130 -0
- data/spec/data/gapfilling/1/velvetAssembly/Log +199 -0
- data/spec/data/gapfilling/1/velvetAssembly/PreGraph +7 -0
- data/spec/data/gapfilling/1/velvetAssembly/Roadmaps +239 -0
- data/spec/data/gapfilling/1/velvetAssembly/Sequences +281 -0
- data/spec/data/gapfilling/1/velvetAssembly/contigs.fa +12 -0
- data/spec/data/gapfilling/1/velvetAssembly/stats.txt +4 -0
- data/spec/data/gapfilling/2/HOWTO_recreate +17 -0
- data/spec/data/gapfilling/2/reference.fa +2 -0
- data/spec/data/gapfilling/2/reference_part1.fa +4 -0
- data/spec/data/gapfilling/2/reference_part2.fa +4 -0
- data/spec/data/gapfilling/2/sammy_reads.fa.gz +0 -0
- data/spec/data/gapfilling/2/with_gaps.fa +4 -0
- data/spec/data/gapfilling/3/HOWTO_recreate +4 -0
- data/spec/data/gapfilling/3/reads.fa.gz +0 -0
- data/spec/data/gapfilling/3/reference_part1.fa +4 -0
- data/spec/data/gapfilling/3/reference_part2.fa +4 -0
- data/spec/data/gapfilling/3/with_gaps.fa +4 -0
- data/spec/data/gapfilling/4/HOWTO_recreate +1 -0
- data/spec/data/gapfilling/4/reads.fa.gz +0 -0
- data/spec/data/gapfilling/5/HOWTO_RECREATE +7 -0
- data/spec/data/gapfilling/5/answer.fna +2 -0
- data/spec/data/gapfilling/5/gappy.fna +2 -0
- data/spec/data/gapfilling/5/reads.fa +17961 -0
- data/spec/data/gapfilling/5/velvet51_3.5/LastGraph +8337 -0
- data/spec/data/gapfilling/5/velvet51_3.5/Sequences +20921 -0
- data/spec/data/gapfilling/6/random1.fa +28 -0
- data/spec/data/gapfilling/6/random2.fa +28 -0
- data/spec/data/gapfilling/6/random_sequence_length_2000 +0 -0
- data/spec/data/gapfilling/6/reads.random1.fa.gz +0 -0
- data/spec/data/gapfilling/6/reads.random2.fa.gz +0 -0
- data/spec/data/gapfilling/6/to_gapfill.fa +22 -0
- data/spec/data/kmer_profile_to_assembly/multiple_abundance_file1.csv +2 -0
- data/spec/data/kmers_count1.csv +2 -0
- data/spec/data/kmers_count2.csv +3 -0
- data/spec/data/out +3 -0
- data/spec/data/positive_latching_pair.fa +2 -0
- data/spec/data/primers.csv +4 -0
- data/spec/data/read_selection_by_kmer/blacklist1.txt +1 -0
- data/spec/data/read_selection_by_kmer/input.fasta +6 -0
- data/spec/data/read_selection_by_kmer/whitelist1.txt +1 -0
- data/spec/data/read_selection_by_kmer/whitelist2.txt +2 -0
- data/spec/data/read_to_node/1_a_graph/HOWTO_RECREATE.txt +2 -0
- data/spec/data/read_to_node/1_a_graph/LastGraph +6695 -0
- data/spec/data/read_to_node/1_a_graph/ReadToNode.bin +0 -0
- data/spec/data/read_to_node/2_no_read256_or_259/HOWTO_RECREATE.txt +3 -0
- data/spec/data/read_to_node/2_no_read256_or_259/LastGraph +6693 -0
- data/spec/data/read_to_node/2_no_read256_or_259/ReadToNode.bin +0 -0
- data/spec/data/read_to_node/3_no_last_read/LastGraph +6694 -0
- data/spec/data/read_to_node/3_no_last_read/ReadToNode.bin +0 -0
- data/spec/data/t/details.txt +5 -0
- data/spec/data/t/details.txt.srt +5 -0
- data/spec/data/t/location.txt +3 -0
- data/spec/data/t/location.txt.srt +3 -0
- data/spec/data/tweak/1_gap_then_unscaffolded/answer.fa +2 -0
- data/spec/data/tweak/1_gap_then_unscaffolded/reads.fa.gz +0 -0
- data/spec/data/tweak/1_gap_then_unscaffolded/scaffolds.fa +6 -0
- data/spec/data/tweak/2_second_genome/answer2.fa +2 -0
- data/spec/data/tweak/2_second_genome/reads.fa.gz +0 -0
- data/spec/data/tweak/3_variant/answer.fa +2 -0
- data/spec/data/tweak/3_variant/lesser_answer.fa +2 -0
- data/spec/data/tweak/3_variant/reads.fa.gz +0 -0
- data/spec/data/tweak/3_variant/with_gaps.fa +2 -0
- data/spec/data/velvet_test_trails/Assem/Graph +17 -0
- data/spec/data/velvet_test_trails/Assem/Graph2 +40 -0
- data/spec/data/velvet_test_trails/Assem/LastGraph +40 -0
- data/spec/data/velvet_test_trails/Assem/Log +35 -0
- data/spec/data/velvet_test_trails/Assem/PreGraph +9 -0
- data/spec/data/velvet_test_trails/Assem/Roadmaps +89 -0
- data/spec/data/velvet_test_trails/Assem/Sequences +50 -0
- data/spec/data/velvet_test_trails/Assem/a.svg +53 -0
- data/spec/data/velvet_test_trails/Assem/contigs.fa +15 -0
- data/spec/data/velvet_test_trails/Assem/stats.txt +5 -0
- data/spec/data/velvet_test_trails/node_fwds.fa +8 -0
- data/spec/data/velvet_test_trails/node_seqs.fa +9 -0
- data/spec/data/velvet_test_trails/nodes_fwd_rev.fa +16 -0
- data/spec/data/velvet_test_trails/read1.fa +2 -0
- data/spec/data/velvet_test_trails/reads.fa +50 -0
- data/spec/data/velvet_test_trails_reverse/Assem/LastGraph +17 -0
- data/spec/data/velvet_test_trails_reverse/Assem/a.svg +53 -0
- data/spec/data/velvet_test_trails_reverse/reads_reversed.fa +10 -0
- data/spec/data/visualise/1/LastGraph +6695 -0
- data/spec/data/visualise/2_paired_end/HOWTO_RECREATE.txt +10 -0
- data/spec/data/visualise/2_paired_end/rand1.fa +2 -0
- data/spec/data/visualise/2_paired_end/rand2.fa +2 -0
- data/spec/data/visualise/2_paired_end/with_gaps.fa +8 -0
- data/spec/data/visualise/2_paired_end/with_gaps.read_pairs.fa.gz +0 -0
- data/spec/data/wander/1/random1.fa +2 -0
- data/spec/data/wander/1/random1.sammy.fa +804 -0
- data/spec/depth_first_search_spec.rb +190 -0
- data/spec/dijkstra_spec.rb +143 -0
- data/spec/explore_spec.rb +29 -0
- data/spec/fluffer_spec.rb +155 -0
- data/spec/gapfiller_spec.rb +107 -0
- data/spec/graph_explorer_spec.rb +475 -0
- data/spec/graph_generator_spec.rb +99 -0
- data/spec/height_finder_spec.rb +306 -0
- data/spec/kmer_abundance_pattern_spec.rb +56 -0
- data/spec/kmer_coverage_based_path_filter_spec.rb +73 -0
- data/spec/kmer_profile_finder_spec.rb +38 -0
- data/spec/kmers_count_tabulate_spec.rb +120 -0
- data/spec/oriented_node_trail_spec.rb +221 -0
- data/spec/paired_end_neighbours_spec.rb +126 -0
- data/spec/paths_between_nodes_spec.rb +349 -0
- data/spec/priner_spec.rb +7 -0
- data/spec/read_input_spec.rb +23 -0
- data/spec/read_selection_by_kmer_spec.rb +166 -0
- data/spec/read_to_node_spec.rb +35 -0
- data/spec/roundup_spec.rb +366 -0
- data/spec/scaffold_breaker_spec.rb +144 -0
- data/spec/sequence_spec.rb +43 -0
- data/spec/single_coherent_paths_between_nodes_spec.rb +492 -0
- data/spec/single_coherent_wanderer_spec.rb +120 -0
- data/spec/single_ended_assembler_spec.rb +398 -0
- data/spec/spec_helper.rb +310 -0
- data/spec/velvet_graph_sequence_extractor_spec.rb +80 -0
- data/spec/visualise_spec.rb +105 -0
- data/spec/wander_spec.rb +119 -0
- data/spec/watch_for_changes.sh +16 -0
- data/validation/fasta_compare.rb +72 -0
- data/validation/gapfill_simulate_perfect.rb +108 -0
- metadata +899 -0
|
Binary file
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/* gvmat32.c -- C portion of the optimized longest_match for 32 bits x86
|
|
2
|
+
* Copyright (C) 1995-1996 Jean-loup Gailly and Gilles Vollant.
|
|
3
|
+
* File written by Gilles Vollant, by modifiying the longest_match
|
|
4
|
+
* from Jean-loup Gailly in deflate.c
|
|
5
|
+
* it prepare all parameters and call the assembly longest_match_gvasm
|
|
6
|
+
* longest_match execute standard C code is wmask != 0x7fff
|
|
7
|
+
* (assembly code is faster with a fixed wmask)
|
|
8
|
+
*
|
|
9
|
+
* Read comment at beginning of gvmat32.asm for more information
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
#if defined(ASMV) && (!defined(NOOLDPENTIUMCODE))
|
|
13
|
+
#include "deflate.h"
|
|
14
|
+
|
|
15
|
+
/* if your C compiler don't add underline before function name,
|
|
16
|
+
define ADD_UNDERLINE_ASMFUNC */
|
|
17
|
+
#ifdef ADD_UNDERLINE_ASMFUNC
|
|
18
|
+
#define longest_match_7fff _longest_match_7fff
|
|
19
|
+
#define longest_match_686 _longest_match_686
|
|
20
|
+
#define cpudetect32 _cpudetect32
|
|
21
|
+
#endif
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
unsigned long cpudetect32();
|
|
25
|
+
|
|
26
|
+
uInt longest_match_c(
|
|
27
|
+
deflate_state *s,
|
|
28
|
+
IPos cur_match); /* current match */
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
uInt longest_match_7fff(
|
|
32
|
+
deflate_state *s,
|
|
33
|
+
IPos cur_match); /* current match */
|
|
34
|
+
|
|
35
|
+
uInt longest_match_686(
|
|
36
|
+
deflate_state *s,
|
|
37
|
+
IPos cur_match); /* current match */
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
static uInt iIsPPro=2;
|
|
41
|
+
|
|
42
|
+
void match_init ()
|
|
43
|
+
{
|
|
44
|
+
iIsPPro = (((cpudetect32()/0x100)&0xf)>=6) ? 1 : 0;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
uInt longest_match(
|
|
48
|
+
deflate_state *s,
|
|
49
|
+
IPos cur_match) /* current match */
|
|
50
|
+
{
|
|
51
|
+
if (iIsPPro!=0)
|
|
52
|
+
return longest_match_686(s,cur_match);
|
|
53
|
+
|
|
54
|
+
if (s->w_mask != 0x7fff)
|
|
55
|
+
return longest_match_686(s,cur_match);
|
|
56
|
+
|
|
57
|
+
/* now ((s->w_mask == 0x7fff) && (iIsPPro==0)) */
|
|
58
|
+
return longest_match_7fff(s,cur_match);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
#endif /* defined(ASMV) && (!defined(NOOLDPENTIUMCODE)) */
|
|
@@ -0,0 +1,1083 @@
|
|
|
1
|
+
;/* inffas32.asm is a hand tuned assembler version of inffast.c -- fast decoding
|
|
2
|
+
; *
|
|
3
|
+
; * inffas32.asm is derivated from inffas86.c, with translation of assembly code
|
|
4
|
+
; *
|
|
5
|
+
; * Copyright (C) 1995-2003 Mark Adler
|
|
6
|
+
; * For conditions of distribution and use, see copyright notice in zlib.h
|
|
7
|
+
; *
|
|
8
|
+
; * Copyright (C) 2003 Chris Anderson <christop@charm.net>
|
|
9
|
+
; * Please use the copyright conditions above.
|
|
10
|
+
; *
|
|
11
|
+
; * Mar-13-2003 -- Most of this is derived from inffast.S which is derived from
|
|
12
|
+
; * the gcc -S output of zlib-1.2.0/inffast.c. Zlib-1.2.0 is in beta release at
|
|
13
|
+
; * the moment. I have successfully compiled and tested this code with gcc2.96,
|
|
14
|
+
; * gcc3.2, icc5.0, msvc6.0. It is very close to the speed of inffast.S
|
|
15
|
+
; * compiled with gcc -DNO_MMX, but inffast.S is still faster on the P3 with MMX
|
|
16
|
+
; * enabled. I will attempt to merge the MMX code into this version. Newer
|
|
17
|
+
; * versions of this and inffast.S can be found at
|
|
18
|
+
; * http://www.eetbeetee.com/zlib/ and http://www.charm.net/~christop/zlib/
|
|
19
|
+
; *
|
|
20
|
+
; * 2005 : modification by Gilles Vollant
|
|
21
|
+
; */
|
|
22
|
+
; For Visual C++ 4.x and higher and ML 6.x and higher
|
|
23
|
+
; ml.exe is in directory \MASM611C of Win95 DDK
|
|
24
|
+
; ml.exe is also distributed in http://www.masm32.com/masmdl.htm
|
|
25
|
+
; and in VC++2003 toolkit at http://msdn.microsoft.com/visualc/vctoolkit2003/
|
|
26
|
+
;
|
|
27
|
+
;
|
|
28
|
+
; compile with command line option
|
|
29
|
+
; ml /coff /Zi /c /Flinffas32.lst inffas32.asm
|
|
30
|
+
|
|
31
|
+
; if you define NO_GZIP (see inflate.h), compile with
|
|
32
|
+
; ml /coff /Zi /c /Flinffas32.lst /DNO_GUNZIP inffas32.asm
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
; zlib122sup is 0 fort zlib 1.2.2.1 and lower
|
|
36
|
+
; zlib122sup is 8 fort zlib 1.2.2.2 and more (with addition of dmax and head
|
|
37
|
+
; in inflate_state in inflate.h)
|
|
38
|
+
zlib1222sup equ 8
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
IFDEF GUNZIP
|
|
42
|
+
INFLATE_MODE_TYPE equ 11
|
|
43
|
+
INFLATE_MODE_BAD equ 26
|
|
44
|
+
ELSE
|
|
45
|
+
IFNDEF NO_GUNZIP
|
|
46
|
+
INFLATE_MODE_TYPE equ 11
|
|
47
|
+
INFLATE_MODE_BAD equ 26
|
|
48
|
+
ELSE
|
|
49
|
+
INFLATE_MODE_TYPE equ 3
|
|
50
|
+
INFLATE_MODE_BAD equ 17
|
|
51
|
+
ENDIF
|
|
52
|
+
ENDIF
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
; 75 "inffast.S"
|
|
56
|
+
;FILE "inffast.S"
|
|
57
|
+
|
|
58
|
+
;;;GLOBAL _inflate_fast
|
|
59
|
+
|
|
60
|
+
;;;SECTION .text
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
.586p
|
|
65
|
+
.mmx
|
|
66
|
+
|
|
67
|
+
name inflate_fast_x86
|
|
68
|
+
.MODEL FLAT
|
|
69
|
+
|
|
70
|
+
_DATA segment
|
|
71
|
+
inflate_fast_use_mmx:
|
|
72
|
+
dd 1
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
_TEXT segment
|
|
76
|
+
PUBLIC _inflate_fast
|
|
77
|
+
|
|
78
|
+
ALIGN 4
|
|
79
|
+
_inflate_fast:
|
|
80
|
+
jmp inflate_fast_entry
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
ALIGN 4
|
|
85
|
+
db 'Fast decoding Code from Chris Anderson'
|
|
86
|
+
db 0
|
|
87
|
+
|
|
88
|
+
ALIGN 4
|
|
89
|
+
invalid_literal_length_code_msg:
|
|
90
|
+
db 'invalid literal/length code'
|
|
91
|
+
db 0
|
|
92
|
+
|
|
93
|
+
ALIGN 4
|
|
94
|
+
invalid_distance_code_msg:
|
|
95
|
+
db 'invalid distance code'
|
|
96
|
+
db 0
|
|
97
|
+
|
|
98
|
+
ALIGN 4
|
|
99
|
+
invalid_distance_too_far_msg:
|
|
100
|
+
db 'invalid distance too far back'
|
|
101
|
+
db 0
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
ALIGN 4
|
|
105
|
+
inflate_fast_mask:
|
|
106
|
+
dd 0
|
|
107
|
+
dd 1
|
|
108
|
+
dd 3
|
|
109
|
+
dd 7
|
|
110
|
+
dd 15
|
|
111
|
+
dd 31
|
|
112
|
+
dd 63
|
|
113
|
+
dd 127
|
|
114
|
+
dd 255
|
|
115
|
+
dd 511
|
|
116
|
+
dd 1023
|
|
117
|
+
dd 2047
|
|
118
|
+
dd 4095
|
|
119
|
+
dd 8191
|
|
120
|
+
dd 16383
|
|
121
|
+
dd 32767
|
|
122
|
+
dd 65535
|
|
123
|
+
dd 131071
|
|
124
|
+
dd 262143
|
|
125
|
+
dd 524287
|
|
126
|
+
dd 1048575
|
|
127
|
+
dd 2097151
|
|
128
|
+
dd 4194303
|
|
129
|
+
dd 8388607
|
|
130
|
+
dd 16777215
|
|
131
|
+
dd 33554431
|
|
132
|
+
dd 67108863
|
|
133
|
+
dd 134217727
|
|
134
|
+
dd 268435455
|
|
135
|
+
dd 536870911
|
|
136
|
+
dd 1073741823
|
|
137
|
+
dd 2147483647
|
|
138
|
+
dd 4294967295
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
mode_state equ 0 ;/* state->mode */
|
|
142
|
+
wsize_state equ (32+zlib1222sup) ;/* state->wsize */
|
|
143
|
+
write_state equ (36+4+zlib1222sup) ;/* state->write */
|
|
144
|
+
window_state equ (40+4+zlib1222sup) ;/* state->window */
|
|
145
|
+
hold_state equ (44+4+zlib1222sup) ;/* state->hold */
|
|
146
|
+
bits_state equ (48+4+zlib1222sup) ;/* state->bits */
|
|
147
|
+
lencode_state equ (64+4+zlib1222sup) ;/* state->lencode */
|
|
148
|
+
distcode_state equ (68+4+zlib1222sup) ;/* state->distcode */
|
|
149
|
+
lenbits_state equ (72+4+zlib1222sup) ;/* state->lenbits */
|
|
150
|
+
distbits_state equ (76+4+zlib1222sup) ;/* state->distbits */
|
|
151
|
+
|
|
152
|
+
|
|
153
|
+
;;SECTION .text
|
|
154
|
+
; 205 "inffast.S"
|
|
155
|
+
;GLOBAL inflate_fast_use_mmx
|
|
156
|
+
|
|
157
|
+
;SECTION .data
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
; GLOBAL inflate_fast_use_mmx:object
|
|
161
|
+
;.size inflate_fast_use_mmx, 4
|
|
162
|
+
; 226 "inffast.S"
|
|
163
|
+
;SECTION .text
|
|
164
|
+
|
|
165
|
+
ALIGN 4
|
|
166
|
+
inflate_fast_entry:
|
|
167
|
+
push edi
|
|
168
|
+
push esi
|
|
169
|
+
push ebp
|
|
170
|
+
push ebx
|
|
171
|
+
pushfd
|
|
172
|
+
sub esp,64
|
|
173
|
+
cld
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
mov esi, [esp+88]
|
|
179
|
+
mov edi, [esi+28]
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
mov edx, [esi+4]
|
|
188
|
+
mov eax, [esi+0]
|
|
189
|
+
|
|
190
|
+
add edx,eax
|
|
191
|
+
sub edx,11
|
|
192
|
+
|
|
193
|
+
mov [esp+44],eax
|
|
194
|
+
mov [esp+20],edx
|
|
195
|
+
|
|
196
|
+
mov ebp, [esp+92]
|
|
197
|
+
mov ecx, [esi+16]
|
|
198
|
+
mov ebx, [esi+12]
|
|
199
|
+
|
|
200
|
+
sub ebp,ecx
|
|
201
|
+
neg ebp
|
|
202
|
+
add ebp,ebx
|
|
203
|
+
|
|
204
|
+
sub ecx,257
|
|
205
|
+
add ecx,ebx
|
|
206
|
+
|
|
207
|
+
mov [esp+60],ebx
|
|
208
|
+
mov [esp+40],ebp
|
|
209
|
+
mov [esp+16],ecx
|
|
210
|
+
; 285 "inffast.S"
|
|
211
|
+
mov eax, [edi+lencode_state]
|
|
212
|
+
mov ecx, [edi+distcode_state]
|
|
213
|
+
|
|
214
|
+
mov [esp+8],eax
|
|
215
|
+
mov [esp+12],ecx
|
|
216
|
+
|
|
217
|
+
mov eax,1
|
|
218
|
+
mov ecx, [edi+lenbits_state]
|
|
219
|
+
shl eax,cl
|
|
220
|
+
dec eax
|
|
221
|
+
mov [esp+0],eax
|
|
222
|
+
|
|
223
|
+
mov eax,1
|
|
224
|
+
mov ecx, [edi+distbits_state]
|
|
225
|
+
shl eax,cl
|
|
226
|
+
dec eax
|
|
227
|
+
mov [esp+4],eax
|
|
228
|
+
|
|
229
|
+
mov eax, [edi+wsize_state]
|
|
230
|
+
mov ecx, [edi+write_state]
|
|
231
|
+
mov edx, [edi+window_state]
|
|
232
|
+
|
|
233
|
+
mov [esp+52],eax
|
|
234
|
+
mov [esp+48],ecx
|
|
235
|
+
mov [esp+56],edx
|
|
236
|
+
|
|
237
|
+
mov ebp, [edi+hold_state]
|
|
238
|
+
mov ebx, [edi+bits_state]
|
|
239
|
+
; 321 "inffast.S"
|
|
240
|
+
mov esi, [esp+44]
|
|
241
|
+
mov ecx, [esp+20]
|
|
242
|
+
cmp ecx,esi
|
|
243
|
+
ja L_align_long
|
|
244
|
+
|
|
245
|
+
add ecx,11
|
|
246
|
+
sub ecx,esi
|
|
247
|
+
mov eax,12
|
|
248
|
+
sub eax,ecx
|
|
249
|
+
lea edi, [esp+28]
|
|
250
|
+
rep movsb
|
|
251
|
+
mov ecx,eax
|
|
252
|
+
xor eax,eax
|
|
253
|
+
rep stosb
|
|
254
|
+
lea esi, [esp+28]
|
|
255
|
+
mov [esp+20],esi
|
|
256
|
+
jmp L_is_aligned
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
L_align_long:
|
|
260
|
+
test esi,3
|
|
261
|
+
jz L_is_aligned
|
|
262
|
+
xor eax,eax
|
|
263
|
+
mov al, [esi]
|
|
264
|
+
inc esi
|
|
265
|
+
mov ecx,ebx
|
|
266
|
+
add ebx,8
|
|
267
|
+
shl eax,cl
|
|
268
|
+
or ebp,eax
|
|
269
|
+
jmp L_align_long
|
|
270
|
+
|
|
271
|
+
L_is_aligned:
|
|
272
|
+
mov edi, [esp+60]
|
|
273
|
+
; 366 "inffast.S"
|
|
274
|
+
L_check_mmx:
|
|
275
|
+
cmp dword ptr [inflate_fast_use_mmx],2
|
|
276
|
+
je L_init_mmx
|
|
277
|
+
ja L_do_loop
|
|
278
|
+
|
|
279
|
+
push eax
|
|
280
|
+
push ebx
|
|
281
|
+
push ecx
|
|
282
|
+
push edx
|
|
283
|
+
pushfd
|
|
284
|
+
mov eax, [esp]
|
|
285
|
+
xor dword ptr [esp],0200000h
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
|
|
290
|
+
popfd
|
|
291
|
+
pushfd
|
|
292
|
+
pop edx
|
|
293
|
+
xor edx,eax
|
|
294
|
+
jz L_dont_use_mmx
|
|
295
|
+
xor eax,eax
|
|
296
|
+
cpuid
|
|
297
|
+
cmp ebx,0756e6547h
|
|
298
|
+
jne L_dont_use_mmx
|
|
299
|
+
cmp ecx,06c65746eh
|
|
300
|
+
jne L_dont_use_mmx
|
|
301
|
+
cmp edx,049656e69h
|
|
302
|
+
jne L_dont_use_mmx
|
|
303
|
+
mov eax,1
|
|
304
|
+
cpuid
|
|
305
|
+
shr eax,8
|
|
306
|
+
and eax,15
|
|
307
|
+
cmp eax,6
|
|
308
|
+
jne L_dont_use_mmx
|
|
309
|
+
test edx,0800000h
|
|
310
|
+
jnz L_use_mmx
|
|
311
|
+
jmp L_dont_use_mmx
|
|
312
|
+
L_use_mmx:
|
|
313
|
+
mov dword ptr [inflate_fast_use_mmx],2
|
|
314
|
+
jmp L_check_mmx_pop
|
|
315
|
+
L_dont_use_mmx:
|
|
316
|
+
mov dword ptr [inflate_fast_use_mmx],3
|
|
317
|
+
L_check_mmx_pop:
|
|
318
|
+
pop edx
|
|
319
|
+
pop ecx
|
|
320
|
+
pop ebx
|
|
321
|
+
pop eax
|
|
322
|
+
jmp L_check_mmx
|
|
323
|
+
; 426 "inffast.S"
|
|
324
|
+
ALIGN 4
|
|
325
|
+
L_do_loop:
|
|
326
|
+
; 437 "inffast.S"
|
|
327
|
+
cmp bl,15
|
|
328
|
+
ja L_get_length_code
|
|
329
|
+
|
|
330
|
+
xor eax,eax
|
|
331
|
+
lodsw
|
|
332
|
+
mov cl,bl
|
|
333
|
+
add bl,16
|
|
334
|
+
shl eax,cl
|
|
335
|
+
or ebp,eax
|
|
336
|
+
|
|
337
|
+
L_get_length_code:
|
|
338
|
+
mov edx, [esp+0]
|
|
339
|
+
mov ecx, [esp+8]
|
|
340
|
+
and edx,ebp
|
|
341
|
+
mov eax, [ecx+edx*4]
|
|
342
|
+
|
|
343
|
+
L_dolen:
|
|
344
|
+
|
|
345
|
+
|
|
346
|
+
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
|
|
350
|
+
mov cl,ah
|
|
351
|
+
sub bl,ah
|
|
352
|
+
shr ebp,cl
|
|
353
|
+
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
test al,al
|
|
360
|
+
jnz L_test_for_length_base
|
|
361
|
+
|
|
362
|
+
shr eax,16
|
|
363
|
+
stosb
|
|
364
|
+
|
|
365
|
+
L_while_test:
|
|
366
|
+
|
|
367
|
+
|
|
368
|
+
cmp [esp+16],edi
|
|
369
|
+
jbe L_break_loop
|
|
370
|
+
|
|
371
|
+
cmp [esp+20],esi
|
|
372
|
+
ja L_do_loop
|
|
373
|
+
jmp L_break_loop
|
|
374
|
+
|
|
375
|
+
L_test_for_length_base:
|
|
376
|
+
; 502 "inffast.S"
|
|
377
|
+
mov edx,eax
|
|
378
|
+
shr edx,16
|
|
379
|
+
mov cl,al
|
|
380
|
+
|
|
381
|
+
test al,16
|
|
382
|
+
jz L_test_for_second_level_length
|
|
383
|
+
and cl,15
|
|
384
|
+
jz L_save_len
|
|
385
|
+
cmp bl,cl
|
|
386
|
+
jae L_add_bits_to_len
|
|
387
|
+
|
|
388
|
+
mov ch,cl
|
|
389
|
+
xor eax,eax
|
|
390
|
+
lodsw
|
|
391
|
+
mov cl,bl
|
|
392
|
+
add bl,16
|
|
393
|
+
shl eax,cl
|
|
394
|
+
or ebp,eax
|
|
395
|
+
mov cl,ch
|
|
396
|
+
|
|
397
|
+
L_add_bits_to_len:
|
|
398
|
+
mov eax,1
|
|
399
|
+
shl eax,cl
|
|
400
|
+
dec eax
|
|
401
|
+
sub bl,cl
|
|
402
|
+
and eax,ebp
|
|
403
|
+
shr ebp,cl
|
|
404
|
+
add edx,eax
|
|
405
|
+
|
|
406
|
+
L_save_len:
|
|
407
|
+
mov [esp+24],edx
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
L_decode_distance:
|
|
411
|
+
; 549 "inffast.S"
|
|
412
|
+
cmp bl,15
|
|
413
|
+
ja L_get_distance_code
|
|
414
|
+
|
|
415
|
+
xor eax,eax
|
|
416
|
+
lodsw
|
|
417
|
+
mov cl,bl
|
|
418
|
+
add bl,16
|
|
419
|
+
shl eax,cl
|
|
420
|
+
or ebp,eax
|
|
421
|
+
|
|
422
|
+
L_get_distance_code:
|
|
423
|
+
mov edx, [esp+4]
|
|
424
|
+
mov ecx, [esp+12]
|
|
425
|
+
and edx,ebp
|
|
426
|
+
mov eax, [ecx+edx*4]
|
|
427
|
+
|
|
428
|
+
|
|
429
|
+
L_dodist:
|
|
430
|
+
mov edx,eax
|
|
431
|
+
shr edx,16
|
|
432
|
+
mov cl,ah
|
|
433
|
+
sub bl,ah
|
|
434
|
+
shr ebp,cl
|
|
435
|
+
; 584 "inffast.S"
|
|
436
|
+
mov cl,al
|
|
437
|
+
|
|
438
|
+
test al,16
|
|
439
|
+
jz L_test_for_second_level_dist
|
|
440
|
+
and cl,15
|
|
441
|
+
jz L_check_dist_one
|
|
442
|
+
cmp bl,cl
|
|
443
|
+
jae L_add_bits_to_dist
|
|
444
|
+
|
|
445
|
+
mov ch,cl
|
|
446
|
+
xor eax,eax
|
|
447
|
+
lodsw
|
|
448
|
+
mov cl,bl
|
|
449
|
+
add bl,16
|
|
450
|
+
shl eax,cl
|
|
451
|
+
or ebp,eax
|
|
452
|
+
mov cl,ch
|
|
453
|
+
|
|
454
|
+
L_add_bits_to_dist:
|
|
455
|
+
mov eax,1
|
|
456
|
+
shl eax,cl
|
|
457
|
+
dec eax
|
|
458
|
+
sub bl,cl
|
|
459
|
+
and eax,ebp
|
|
460
|
+
shr ebp,cl
|
|
461
|
+
add edx,eax
|
|
462
|
+
jmp L_check_window
|
|
463
|
+
|
|
464
|
+
L_check_window:
|
|
465
|
+
; 625 "inffast.S"
|
|
466
|
+
mov [esp+44],esi
|
|
467
|
+
mov eax,edi
|
|
468
|
+
sub eax, [esp+40]
|
|
469
|
+
|
|
470
|
+
cmp eax,edx
|
|
471
|
+
jb L_clip_window
|
|
472
|
+
|
|
473
|
+
mov ecx, [esp+24]
|
|
474
|
+
mov esi,edi
|
|
475
|
+
sub esi,edx
|
|
476
|
+
|
|
477
|
+
sub ecx,3
|
|
478
|
+
mov al, [esi]
|
|
479
|
+
mov [edi],al
|
|
480
|
+
mov al, [esi+1]
|
|
481
|
+
mov dl, [esi+2]
|
|
482
|
+
add esi,3
|
|
483
|
+
mov [edi+1],al
|
|
484
|
+
mov [edi+2],dl
|
|
485
|
+
add edi,3
|
|
486
|
+
rep movsb
|
|
487
|
+
|
|
488
|
+
mov esi, [esp+44]
|
|
489
|
+
jmp L_while_test
|
|
490
|
+
|
|
491
|
+
ALIGN 4
|
|
492
|
+
L_check_dist_one:
|
|
493
|
+
cmp edx,1
|
|
494
|
+
jne L_check_window
|
|
495
|
+
cmp [esp+40],edi
|
|
496
|
+
je L_check_window
|
|
497
|
+
|
|
498
|
+
dec edi
|
|
499
|
+
mov ecx, [esp+24]
|
|
500
|
+
mov al, [edi]
|
|
501
|
+
sub ecx,3
|
|
502
|
+
|
|
503
|
+
mov [edi+1],al
|
|
504
|
+
mov [edi+2],al
|
|
505
|
+
mov [edi+3],al
|
|
506
|
+
add edi,4
|
|
507
|
+
rep stosb
|
|
508
|
+
|
|
509
|
+
jmp L_while_test
|
|
510
|
+
|
|
511
|
+
ALIGN 4
|
|
512
|
+
L_test_for_second_level_length:
|
|
513
|
+
|
|
514
|
+
|
|
515
|
+
|
|
516
|
+
|
|
517
|
+
test al,64
|
|
518
|
+
jnz L_test_for_end_of_block
|
|
519
|
+
|
|
520
|
+
mov eax,1
|
|
521
|
+
shl eax,cl
|
|
522
|
+
dec eax
|
|
523
|
+
and eax,ebp
|
|
524
|
+
add eax,edx
|
|
525
|
+
mov edx, [esp+8]
|
|
526
|
+
mov eax, [edx+eax*4]
|
|
527
|
+
jmp L_dolen
|
|
528
|
+
|
|
529
|
+
ALIGN 4
|
|
530
|
+
L_test_for_second_level_dist:
|
|
531
|
+
|
|
532
|
+
|
|
533
|
+
|
|
534
|
+
|
|
535
|
+
test al,64
|
|
536
|
+
jnz L_invalid_distance_code
|
|
537
|
+
|
|
538
|
+
mov eax,1
|
|
539
|
+
shl eax,cl
|
|
540
|
+
dec eax
|
|
541
|
+
and eax,ebp
|
|
542
|
+
add eax,edx
|
|
543
|
+
mov edx, [esp+12]
|
|
544
|
+
mov eax, [edx+eax*4]
|
|
545
|
+
jmp L_dodist
|
|
546
|
+
|
|
547
|
+
ALIGN 4
|
|
548
|
+
L_clip_window:
|
|
549
|
+
; 721 "inffast.S"
|
|
550
|
+
mov ecx,eax
|
|
551
|
+
mov eax, [esp+52]
|
|
552
|
+
neg ecx
|
|
553
|
+
mov esi, [esp+56]
|
|
554
|
+
|
|
555
|
+
cmp eax,edx
|
|
556
|
+
jb L_invalid_distance_too_far
|
|
557
|
+
|
|
558
|
+
add ecx,edx
|
|
559
|
+
cmp dword ptr [esp+48],0
|
|
560
|
+
jne L_wrap_around_window
|
|
561
|
+
|
|
562
|
+
sub eax,ecx
|
|
563
|
+
add esi,eax
|
|
564
|
+
; 749 "inffast.S"
|
|
565
|
+
mov eax, [esp+24]
|
|
566
|
+
cmp eax,ecx
|
|
567
|
+
jbe L_do_copy1
|
|
568
|
+
|
|
569
|
+
sub eax,ecx
|
|
570
|
+
rep movsb
|
|
571
|
+
mov esi,edi
|
|
572
|
+
sub esi,edx
|
|
573
|
+
jmp L_do_copy1
|
|
574
|
+
|
|
575
|
+
cmp eax,ecx
|
|
576
|
+
jbe L_do_copy1
|
|
577
|
+
|
|
578
|
+
sub eax,ecx
|
|
579
|
+
rep movsb
|
|
580
|
+
mov esi,edi
|
|
581
|
+
sub esi,edx
|
|
582
|
+
jmp L_do_copy1
|
|
583
|
+
|
|
584
|
+
L_wrap_around_window:
|
|
585
|
+
; 793 "inffast.S"
|
|
586
|
+
mov eax, [esp+48]
|
|
587
|
+
cmp ecx,eax
|
|
588
|
+
jbe L_contiguous_in_window
|
|
589
|
+
|
|
590
|
+
add esi, [esp+52]
|
|
591
|
+
add esi,eax
|
|
592
|
+
sub esi,ecx
|
|
593
|
+
sub ecx,eax
|
|
594
|
+
|
|
595
|
+
|
|
596
|
+
mov eax, [esp+24]
|
|
597
|
+
cmp eax,ecx
|
|
598
|
+
jbe L_do_copy1
|
|
599
|
+
|
|
600
|
+
sub eax,ecx
|
|
601
|
+
rep movsb
|
|
602
|
+
mov esi, [esp+56]
|
|
603
|
+
mov ecx, [esp+48]
|
|
604
|
+
cmp eax,ecx
|
|
605
|
+
jbe L_do_copy1
|
|
606
|
+
|
|
607
|
+
sub eax,ecx
|
|
608
|
+
rep movsb
|
|
609
|
+
mov esi,edi
|
|
610
|
+
sub esi,edx
|
|
611
|
+
jmp L_do_copy1
|
|
612
|
+
|
|
613
|
+
L_contiguous_in_window:
|
|
614
|
+
; 836 "inffast.S"
|
|
615
|
+
add esi,eax
|
|
616
|
+
sub esi,ecx
|
|
617
|
+
|
|
618
|
+
|
|
619
|
+
mov eax, [esp+24]
|
|
620
|
+
cmp eax,ecx
|
|
621
|
+
jbe L_do_copy1
|
|
622
|
+
|
|
623
|
+
sub eax,ecx
|
|
624
|
+
rep movsb
|
|
625
|
+
mov esi,edi
|
|
626
|
+
sub esi,edx
|
|
627
|
+
|
|
628
|
+
L_do_copy1:
|
|
629
|
+
; 862 "inffast.S"
|
|
630
|
+
mov ecx,eax
|
|
631
|
+
rep movsb
|
|
632
|
+
|
|
633
|
+
mov esi, [esp+44]
|
|
634
|
+
jmp L_while_test
|
|
635
|
+
; 878 "inffast.S"
|
|
636
|
+
ALIGN 4
|
|
637
|
+
L_init_mmx:
|
|
638
|
+
emms
|
|
639
|
+
|
|
640
|
+
|
|
641
|
+
|
|
642
|
+
|
|
643
|
+
|
|
644
|
+
movd mm0,ebp
|
|
645
|
+
mov ebp,ebx
|
|
646
|
+
; 896 "inffast.S"
|
|
647
|
+
movd mm4,[esp+0]
|
|
648
|
+
movq mm3,mm4
|
|
649
|
+
movd mm5,[esp+4]
|
|
650
|
+
movq mm2,mm5
|
|
651
|
+
pxor mm1,mm1
|
|
652
|
+
mov ebx, [esp+8]
|
|
653
|
+
jmp L_do_loop_mmx
|
|
654
|
+
|
|
655
|
+
ALIGN 4
|
|
656
|
+
L_do_loop_mmx:
|
|
657
|
+
psrlq mm0,mm1
|
|
658
|
+
|
|
659
|
+
cmp ebp,32
|
|
660
|
+
ja L_get_length_code_mmx
|
|
661
|
+
|
|
662
|
+
movd mm6,ebp
|
|
663
|
+
movd mm7,[esi]
|
|
664
|
+
add esi,4
|
|
665
|
+
psllq mm7,mm6
|
|
666
|
+
add ebp,32
|
|
667
|
+
por mm0,mm7
|
|
668
|
+
|
|
669
|
+
L_get_length_code_mmx:
|
|
670
|
+
pand mm4,mm0
|
|
671
|
+
movd eax,mm4
|
|
672
|
+
movq mm4,mm3
|
|
673
|
+
mov eax, [ebx+eax*4]
|
|
674
|
+
|
|
675
|
+
L_dolen_mmx:
|
|
676
|
+
movzx ecx,ah
|
|
677
|
+
movd mm1,ecx
|
|
678
|
+
sub ebp,ecx
|
|
679
|
+
|
|
680
|
+
test al,al
|
|
681
|
+
jnz L_test_for_length_base_mmx
|
|
682
|
+
|
|
683
|
+
shr eax,16
|
|
684
|
+
stosb
|
|
685
|
+
|
|
686
|
+
L_while_test_mmx:
|
|
687
|
+
|
|
688
|
+
|
|
689
|
+
cmp [esp+16],edi
|
|
690
|
+
jbe L_break_loop
|
|
691
|
+
|
|
692
|
+
cmp [esp+20],esi
|
|
693
|
+
ja L_do_loop_mmx
|
|
694
|
+
jmp L_break_loop
|
|
695
|
+
|
|
696
|
+
L_test_for_length_base_mmx:
|
|
697
|
+
|
|
698
|
+
mov edx,eax
|
|
699
|
+
shr edx,16
|
|
700
|
+
|
|
701
|
+
test al,16
|
|
702
|
+
jz L_test_for_second_level_length_mmx
|
|
703
|
+
and eax,15
|
|
704
|
+
jz L_decode_distance_mmx
|
|
705
|
+
|
|
706
|
+
psrlq mm0,mm1
|
|
707
|
+
movd mm1,eax
|
|
708
|
+
movd ecx,mm0
|
|
709
|
+
sub ebp,eax
|
|
710
|
+
and ecx, [inflate_fast_mask+eax*4]
|
|
711
|
+
add edx,ecx
|
|
712
|
+
|
|
713
|
+
L_decode_distance_mmx:
|
|
714
|
+
psrlq mm0,mm1
|
|
715
|
+
|
|
716
|
+
cmp ebp,32
|
|
717
|
+
ja L_get_dist_code_mmx
|
|
718
|
+
|
|
719
|
+
movd mm6,ebp
|
|
720
|
+
movd mm7,[esi]
|
|
721
|
+
add esi,4
|
|
722
|
+
psllq mm7,mm6
|
|
723
|
+
add ebp,32
|
|
724
|
+
por mm0,mm7
|
|
725
|
+
|
|
726
|
+
L_get_dist_code_mmx:
|
|
727
|
+
mov ebx, [esp+12]
|
|
728
|
+
pand mm5,mm0
|
|
729
|
+
movd eax,mm5
|
|
730
|
+
movq mm5,mm2
|
|
731
|
+
mov eax, [ebx+eax*4]
|
|
732
|
+
|
|
733
|
+
L_dodist_mmx:
|
|
734
|
+
|
|
735
|
+
movzx ecx,ah
|
|
736
|
+
mov ebx,eax
|
|
737
|
+
shr ebx,16
|
|
738
|
+
sub ebp,ecx
|
|
739
|
+
movd mm1,ecx
|
|
740
|
+
|
|
741
|
+
test al,16
|
|
742
|
+
jz L_test_for_second_level_dist_mmx
|
|
743
|
+
and eax,15
|
|
744
|
+
jz L_check_dist_one_mmx
|
|
745
|
+
|
|
746
|
+
L_add_bits_to_dist_mmx:
|
|
747
|
+
psrlq mm0,mm1
|
|
748
|
+
movd mm1,eax
|
|
749
|
+
movd ecx,mm0
|
|
750
|
+
sub ebp,eax
|
|
751
|
+
and ecx, [inflate_fast_mask+eax*4]
|
|
752
|
+
add ebx,ecx
|
|
753
|
+
|
|
754
|
+
L_check_window_mmx:
|
|
755
|
+
mov [esp+44],esi
|
|
756
|
+
mov eax,edi
|
|
757
|
+
sub eax, [esp+40]
|
|
758
|
+
|
|
759
|
+
cmp eax,ebx
|
|
760
|
+
jb L_clip_window_mmx
|
|
761
|
+
|
|
762
|
+
mov ecx,edx
|
|
763
|
+
mov esi,edi
|
|
764
|
+
sub esi,ebx
|
|
765
|
+
|
|
766
|
+
sub ecx,3
|
|
767
|
+
mov al, [esi]
|
|
768
|
+
mov [edi],al
|
|
769
|
+
mov al, [esi+1]
|
|
770
|
+
mov dl, [esi+2]
|
|
771
|
+
add esi,3
|
|
772
|
+
mov [edi+1],al
|
|
773
|
+
mov [edi+2],dl
|
|
774
|
+
add edi,3
|
|
775
|
+
rep movsb
|
|
776
|
+
|
|
777
|
+
mov esi, [esp+44]
|
|
778
|
+
mov ebx, [esp+8]
|
|
779
|
+
jmp L_while_test_mmx
|
|
780
|
+
|
|
781
|
+
ALIGN 4
|
|
782
|
+
L_check_dist_one_mmx:
|
|
783
|
+
cmp ebx,1
|
|
784
|
+
jne L_check_window_mmx
|
|
785
|
+
cmp [esp+40],edi
|
|
786
|
+
je L_check_window_mmx
|
|
787
|
+
|
|
788
|
+
dec edi
|
|
789
|
+
mov ecx,edx
|
|
790
|
+
mov al, [edi]
|
|
791
|
+
sub ecx,3
|
|
792
|
+
|
|
793
|
+
mov [edi+1],al
|
|
794
|
+
mov [edi+2],al
|
|
795
|
+
mov [edi+3],al
|
|
796
|
+
add edi,4
|
|
797
|
+
rep stosb
|
|
798
|
+
|
|
799
|
+
mov ebx, [esp+8]
|
|
800
|
+
jmp L_while_test_mmx
|
|
801
|
+
|
|
802
|
+
ALIGN 4
|
|
803
|
+
L_test_for_second_level_length_mmx:
|
|
804
|
+
test al,64
|
|
805
|
+
jnz L_test_for_end_of_block
|
|
806
|
+
|
|
807
|
+
and eax,15
|
|
808
|
+
psrlq mm0,mm1
|
|
809
|
+
movd ecx,mm0
|
|
810
|
+
and ecx, [inflate_fast_mask+eax*4]
|
|
811
|
+
add ecx,edx
|
|
812
|
+
mov eax, [ebx+ecx*4]
|
|
813
|
+
jmp L_dolen_mmx
|
|
814
|
+
|
|
815
|
+
ALIGN 4
|
|
816
|
+
L_test_for_second_level_dist_mmx:
|
|
817
|
+
test al,64
|
|
818
|
+
jnz L_invalid_distance_code
|
|
819
|
+
|
|
820
|
+
and eax,15
|
|
821
|
+
psrlq mm0,mm1
|
|
822
|
+
movd ecx,mm0
|
|
823
|
+
and ecx, [inflate_fast_mask+eax*4]
|
|
824
|
+
mov eax, [esp+12]
|
|
825
|
+
add ecx,ebx
|
|
826
|
+
mov eax, [eax+ecx*4]
|
|
827
|
+
jmp L_dodist_mmx
|
|
828
|
+
|
|
829
|
+
ALIGN 4
|
|
830
|
+
L_clip_window_mmx:
|
|
831
|
+
|
|
832
|
+
mov ecx,eax
|
|
833
|
+
mov eax, [esp+52]
|
|
834
|
+
neg ecx
|
|
835
|
+
mov esi, [esp+56]
|
|
836
|
+
|
|
837
|
+
cmp eax,ebx
|
|
838
|
+
jb L_invalid_distance_too_far
|
|
839
|
+
|
|
840
|
+
add ecx,ebx
|
|
841
|
+
cmp dword ptr [esp+48],0
|
|
842
|
+
jne L_wrap_around_window_mmx
|
|
843
|
+
|
|
844
|
+
sub eax,ecx
|
|
845
|
+
add esi,eax
|
|
846
|
+
|
|
847
|
+
cmp edx,ecx
|
|
848
|
+
jbe L_do_copy1_mmx
|
|
849
|
+
|
|
850
|
+
sub edx,ecx
|
|
851
|
+
rep movsb
|
|
852
|
+
mov esi,edi
|
|
853
|
+
sub esi,ebx
|
|
854
|
+
jmp L_do_copy1_mmx
|
|
855
|
+
|
|
856
|
+
cmp edx,ecx
|
|
857
|
+
jbe L_do_copy1_mmx
|
|
858
|
+
|
|
859
|
+
sub edx,ecx
|
|
860
|
+
rep movsb
|
|
861
|
+
mov esi,edi
|
|
862
|
+
sub esi,ebx
|
|
863
|
+
jmp L_do_copy1_mmx
|
|
864
|
+
|
|
865
|
+
L_wrap_around_window_mmx:
|
|
866
|
+
|
|
867
|
+
mov eax, [esp+48]
|
|
868
|
+
cmp ecx,eax
|
|
869
|
+
jbe L_contiguous_in_window_mmx
|
|
870
|
+
|
|
871
|
+
add esi, [esp+52]
|
|
872
|
+
add esi,eax
|
|
873
|
+
sub esi,ecx
|
|
874
|
+
sub ecx,eax
|
|
875
|
+
|
|
876
|
+
|
|
877
|
+
cmp edx,ecx
|
|
878
|
+
jbe L_do_copy1_mmx
|
|
879
|
+
|
|
880
|
+
sub edx,ecx
|
|
881
|
+
rep movsb
|
|
882
|
+
mov esi, [esp+56]
|
|
883
|
+
mov ecx, [esp+48]
|
|
884
|
+
cmp edx,ecx
|
|
885
|
+
jbe L_do_copy1_mmx
|
|
886
|
+
|
|
887
|
+
sub edx,ecx
|
|
888
|
+
rep movsb
|
|
889
|
+
mov esi,edi
|
|
890
|
+
sub esi,ebx
|
|
891
|
+
jmp L_do_copy1_mmx
|
|
892
|
+
|
|
893
|
+
L_contiguous_in_window_mmx:
|
|
894
|
+
|
|
895
|
+
add esi,eax
|
|
896
|
+
sub esi,ecx
|
|
897
|
+
|
|
898
|
+
|
|
899
|
+
cmp edx,ecx
|
|
900
|
+
jbe L_do_copy1_mmx
|
|
901
|
+
|
|
902
|
+
sub edx,ecx
|
|
903
|
+
rep movsb
|
|
904
|
+
mov esi,edi
|
|
905
|
+
sub esi,ebx
|
|
906
|
+
|
|
907
|
+
L_do_copy1_mmx:
|
|
908
|
+
|
|
909
|
+
|
|
910
|
+
mov ecx,edx
|
|
911
|
+
rep movsb
|
|
912
|
+
|
|
913
|
+
mov esi, [esp+44]
|
|
914
|
+
mov ebx, [esp+8]
|
|
915
|
+
jmp L_while_test_mmx
|
|
916
|
+
; 1174 "inffast.S"
|
|
917
|
+
L_invalid_distance_code:
|
|
918
|
+
|
|
919
|
+
|
|
920
|
+
|
|
921
|
+
|
|
922
|
+
|
|
923
|
+
mov ecx, invalid_distance_code_msg
|
|
924
|
+
mov edx,INFLATE_MODE_BAD
|
|
925
|
+
jmp L_update_stream_state
|
|
926
|
+
|
|
927
|
+
L_test_for_end_of_block:
|
|
928
|
+
|
|
929
|
+
|
|
930
|
+
|
|
931
|
+
|
|
932
|
+
|
|
933
|
+
test al,32
|
|
934
|
+
jz L_invalid_literal_length_code
|
|
935
|
+
|
|
936
|
+
mov ecx,0
|
|
937
|
+
mov edx,INFLATE_MODE_TYPE
|
|
938
|
+
jmp L_update_stream_state
|
|
939
|
+
|
|
940
|
+
L_invalid_literal_length_code:
|
|
941
|
+
|
|
942
|
+
|
|
943
|
+
|
|
944
|
+
|
|
945
|
+
|
|
946
|
+
mov ecx, invalid_literal_length_code_msg
|
|
947
|
+
mov edx,INFLATE_MODE_BAD
|
|
948
|
+
jmp L_update_stream_state
|
|
949
|
+
|
|
950
|
+
L_invalid_distance_too_far:
|
|
951
|
+
|
|
952
|
+
|
|
953
|
+
|
|
954
|
+
mov esi, [esp+44]
|
|
955
|
+
mov ecx, invalid_distance_too_far_msg
|
|
956
|
+
mov edx,INFLATE_MODE_BAD
|
|
957
|
+
jmp L_update_stream_state
|
|
958
|
+
|
|
959
|
+
L_update_stream_state:
|
|
960
|
+
|
|
961
|
+
mov eax, [esp+88]
|
|
962
|
+
test ecx,ecx
|
|
963
|
+
jz L_skip_msg
|
|
964
|
+
mov [eax+24],ecx
|
|
965
|
+
L_skip_msg:
|
|
966
|
+
mov eax, [eax+28]
|
|
967
|
+
mov [eax+mode_state],edx
|
|
968
|
+
jmp L_break_loop
|
|
969
|
+
|
|
970
|
+
ALIGN 4
|
|
971
|
+
L_break_loop:
|
|
972
|
+
; 1243 "inffast.S"
|
|
973
|
+
cmp dword ptr [inflate_fast_use_mmx],2
|
|
974
|
+
jne L_update_next_in
|
|
975
|
+
|
|
976
|
+
|
|
977
|
+
|
|
978
|
+
mov ebx,ebp
|
|
979
|
+
|
|
980
|
+
L_update_next_in:
|
|
981
|
+
; 1266 "inffast.S"
|
|
982
|
+
mov eax, [esp+88]
|
|
983
|
+
mov ecx,ebx
|
|
984
|
+
mov edx, [eax+28]
|
|
985
|
+
shr ecx,3
|
|
986
|
+
sub esi,ecx
|
|
987
|
+
shl ecx,3
|
|
988
|
+
sub ebx,ecx
|
|
989
|
+
mov [eax+12],edi
|
|
990
|
+
mov [edx+bits_state],ebx
|
|
991
|
+
mov ecx,ebx
|
|
992
|
+
|
|
993
|
+
lea ebx, [esp+28]
|
|
994
|
+
cmp [esp+20],ebx
|
|
995
|
+
jne L_buf_not_used
|
|
996
|
+
|
|
997
|
+
sub esi,ebx
|
|
998
|
+
mov ebx, [eax+0]
|
|
999
|
+
mov [esp+20],ebx
|
|
1000
|
+
add esi,ebx
|
|
1001
|
+
mov ebx, [eax+4]
|
|
1002
|
+
sub ebx,11
|
|
1003
|
+
add [esp+20],ebx
|
|
1004
|
+
|
|
1005
|
+
L_buf_not_used:
|
|
1006
|
+
mov [eax+0],esi
|
|
1007
|
+
|
|
1008
|
+
mov ebx,1
|
|
1009
|
+
shl ebx,cl
|
|
1010
|
+
dec ebx
|
|
1011
|
+
|
|
1012
|
+
|
|
1013
|
+
|
|
1014
|
+
|
|
1015
|
+
|
|
1016
|
+
cmp dword ptr [inflate_fast_use_mmx],2
|
|
1017
|
+
jne L_update_hold
|
|
1018
|
+
|
|
1019
|
+
|
|
1020
|
+
|
|
1021
|
+
psrlq mm0,mm1
|
|
1022
|
+
movd ebp,mm0
|
|
1023
|
+
|
|
1024
|
+
emms
|
|
1025
|
+
|
|
1026
|
+
L_update_hold:
|
|
1027
|
+
|
|
1028
|
+
|
|
1029
|
+
|
|
1030
|
+
and ebp,ebx
|
|
1031
|
+
mov [edx+hold_state],ebp
|
|
1032
|
+
|
|
1033
|
+
|
|
1034
|
+
|
|
1035
|
+
|
|
1036
|
+
mov ebx, [esp+20]
|
|
1037
|
+
cmp ebx,esi
|
|
1038
|
+
jbe L_last_is_smaller
|
|
1039
|
+
|
|
1040
|
+
sub ebx,esi
|
|
1041
|
+
add ebx,11
|
|
1042
|
+
mov [eax+4],ebx
|
|
1043
|
+
jmp L_fixup_out
|
|
1044
|
+
L_last_is_smaller:
|
|
1045
|
+
sub esi,ebx
|
|
1046
|
+
neg esi
|
|
1047
|
+
add esi,11
|
|
1048
|
+
mov [eax+4],esi
|
|
1049
|
+
|
|
1050
|
+
|
|
1051
|
+
|
|
1052
|
+
|
|
1053
|
+
L_fixup_out:
|
|
1054
|
+
|
|
1055
|
+
mov ebx, [esp+16]
|
|
1056
|
+
cmp ebx,edi
|
|
1057
|
+
jbe L_end_is_smaller
|
|
1058
|
+
|
|
1059
|
+
sub ebx,edi
|
|
1060
|
+
add ebx,257
|
|
1061
|
+
mov [eax+16],ebx
|
|
1062
|
+
jmp L_done
|
|
1063
|
+
L_end_is_smaller:
|
|
1064
|
+
sub edi,ebx
|
|
1065
|
+
neg edi
|
|
1066
|
+
add edi,257
|
|
1067
|
+
mov [eax+16],edi
|
|
1068
|
+
|
|
1069
|
+
|
|
1070
|
+
|
|
1071
|
+
|
|
1072
|
+
|
|
1073
|
+
L_done:
|
|
1074
|
+
add esp,64
|
|
1075
|
+
popfd
|
|
1076
|
+
pop ebx
|
|
1077
|
+
pop ebp
|
|
1078
|
+
pop esi
|
|
1079
|
+
pop edi
|
|
1080
|
+
ret
|
|
1081
|
+
|
|
1082
|
+
_TEXT ends
|
|
1083
|
+
end
|